forked from mirrors/linux
		
	selftests: nic_link_layer: Add selftest case for speed and duplex states
Add selftest case for testing the speed and duplex state of local NIC driver and the partner based on the supported link modes obtained from the ethtool. Speed and duplex states are varied and verified using ethtool. Signed-off-by: Mohan Prasad J <mohan.prasad@microchip.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
		
							parent
							
								
									6116075e18
								
							
						
					
					
						commit
						c087dc5439
					
				
					 1 changed files with 22 additions and 0 deletions
				
			
		| 
						 | 
					@ -76,6 +76,28 @@ def test_autonegotiation(cfg: object, link_config: LinkConfig, time_delay: int)
 | 
				
			||||||
        time.sleep(time_delay)
 | 
					        time.sleep(time_delay)
 | 
				
			||||||
        verify_autonegotiation(cfg, state, link_config)
 | 
					        verify_autonegotiation(cfg, state, link_config)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def test_network_speed(cfg: object, link_config: LinkConfig, time_delay: int) -> None:
 | 
				
			||||||
 | 
					    _pre_test_checks(cfg, link_config)
 | 
				
			||||||
 | 
					    common_link_modes = link_config.common_link_modes
 | 
				
			||||||
 | 
					    if not common_link_modes:
 | 
				
			||||||
 | 
					        KsftSkipEx("No common link modes exist")
 | 
				
			||||||
 | 
					    speeds, duplex_modes = link_config.get_speed_duplex_values(common_link_modes)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if speeds and duplex_modes and len(speeds) == len(duplex_modes):
 | 
				
			||||||
 | 
					        for idx in range(len(speeds)):
 | 
				
			||||||
 | 
					            speed = speeds[idx]
 | 
				
			||||||
 | 
					            duplex = duplex_modes[idx]
 | 
				
			||||||
 | 
					            if not link_config.set_speed_and_duplex(speed, duplex):
 | 
				
			||||||
 | 
					                raise KsftFailEx(f"Unable to set speed and duplex parameters for {cfg.ifname}")
 | 
				
			||||||
 | 
					            time.sleep(time_delay)
 | 
				
			||||||
 | 
					            if not link_config.verify_speed_and_duplex(speed, duplex):
 | 
				
			||||||
 | 
					                raise KsftSkipEx(f"Error occurred while verifying speed and duplex states for interface {cfg.ifname}")
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        if not speeds or not duplex_modes:
 | 
				
			||||||
 | 
					            KsftSkipEx(f"No supported speeds or duplex modes found for interface {cfg.ifname}")
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            KsftSkipEx("Mismatch in the number of speeds and duplex modes")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def main() -> None:
 | 
					def main() -> None:
 | 
				
			||||||
    parser = argparse.ArgumentParser(description="Run basic link layer tests for NIC driver")
 | 
					    parser = argparse.ArgumentParser(description="Run basic link layer tests for NIC driver")
 | 
				
			||||||
    parser.add_argument('--time-delay', type=int, default=8, help='Time taken to wait for transitions to happen(in seconds). Default is 8 seconds.')
 | 
					    parser.add_argument('--time-delay', type=int, default=8, help='Time taken to wait for transitions to happen(in seconds). Default is 8 seconds.')
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue