Skip to content

Commit c087dc5

Browse files
MohanPrasad-JPaolo Abeni
authored andcommitted
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 <[email protected]> Signed-off-by: Paolo Abeni <[email protected]>
1 parent 6116075 commit c087dc5

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

tools/testing/selftests/drivers/net/hw/nic_link_layer.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,28 @@ def test_autonegotiation(cfg: object, link_config: LinkConfig, time_delay: int)
7676
time.sleep(time_delay)
7777
verify_autonegotiation(cfg, state, link_config)
7878

79+
def test_network_speed(cfg: object, link_config: LinkConfig, time_delay: int) -> None:
80+
_pre_test_checks(cfg, link_config)
81+
common_link_modes = link_config.common_link_modes
82+
if not common_link_modes:
83+
KsftSkipEx("No common link modes exist")
84+
speeds, duplex_modes = link_config.get_speed_duplex_values(common_link_modes)
85+
86+
if speeds and duplex_modes and len(speeds) == len(duplex_modes):
87+
for idx in range(len(speeds)):
88+
speed = speeds[idx]
89+
duplex = duplex_modes[idx]
90+
if not link_config.set_speed_and_duplex(speed, duplex):
91+
raise KsftFailEx(f"Unable to set speed and duplex parameters for {cfg.ifname}")
92+
time.sleep(time_delay)
93+
if not link_config.verify_speed_and_duplex(speed, duplex):
94+
raise KsftSkipEx(f"Error occurred while verifying speed and duplex states for interface {cfg.ifname}")
95+
else:
96+
if not speeds or not duplex_modes:
97+
KsftSkipEx(f"No supported speeds or duplex modes found for interface {cfg.ifname}")
98+
else:
99+
KsftSkipEx("Mismatch in the number of speeds and duplex modes")
100+
79101
def main() -> None:
80102
parser = argparse.ArgumentParser(description="Run basic link layer tests for NIC driver")
81103
parser.add_argument('--time-delay', type=int, default=8, help='Time taken to wait for transitions to happen(in seconds). Default is 8 seconds.')

0 commit comments

Comments
 (0)