Skip to content

Commit 002acc8

Browse files
arista-nwolfeytzur1
authored andcommitted
Add multi-asic support to test_pktgen.py (sonic-net#19399)
Signed-off-by: Yael Tzur <ytzur@nvidia.com>
1 parent e969534 commit 002acc8

File tree

1 file changed

+27
-17
lines changed

1 file changed

+27
-17
lines changed

tests/test_pktgen.py

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,25 @@
1919

2020
CLEANUP_CMDS = [
2121
"modprobe pktgen",
22-
"echo 'reset' > /proc/net/pktgen/pgctrl",
23-
"echo 'rem_device_all' > /proc/net/pktgen/kpktgend_0"
22+
]
23+
24+
CLEANUP_ASIC_CMDS = [
25+
"sh -c \"echo 'reset' > /proc/net/pktgen/pgctrl\"",
26+
"sh -c \"echo 'rem_device_all' > /proc/net/pktgen/kpktgend_0\""
2427
]
2528

2629
PKTGEN_CMDS = [
27-
"echo 'add_device {}' > /proc/net/pktgen/kpktgend_0",
28-
"echo 'count 15000' > /proc/net/pktgen/{}",
29-
"echo 'pkt_size 1460' > /proc/net/pktgen/{}",
30-
"echo 'src_min 10.10.1.2' > /proc/net/pktgen/{}",
31-
"echo 'dst_min 10.10.1.3' > /proc/net/pktgen/{}",
32-
"echo 'src_mac {}' > /proc/net/pktgen/{}",
33-
"echo 'dst_mac 00:06:07:08:09:00' > /proc/net/pktgen/{}",
34-
"echo 'udp_src_min 5000' > /proc/net/pktgen/{}",
35-
"echo 'udp_src_max 5000' > /proc/net/pktgen/{}",
36-
"echo 'udp_dst_min 5001' > /proc/net/pktgen/{}",
37-
"echo 'udp_dst_max 5001' > /proc/net/pktgen/{}",
30+
"sh -c \"echo 'add_device {}' > /proc/net/pktgen/kpktgend_0\"",
31+
"sh -c \"echo 'count 15000' > /proc/net/pktgen/{}\"",
32+
"sh -c \"echo 'pkt_size 1460' > /proc/net/pktgen/{}\"",
33+
"sh -c \"echo 'src_min 10.10.1.2' > /proc/net/pktgen/{}\"",
34+
"sh -c \"echo 'dst_min 10.10.1.3' > /proc/net/pktgen/{}\"",
35+
"sh -c \"echo 'src_mac {}' > /proc/net/pktgen/{}\"",
36+
"sh -c \"echo 'dst_mac 00:06:07:08:09:00' > /proc/net/pktgen/{}\"",
37+
"sh -c \"echo 'udp_src_min 5000' > /proc/net/pktgen/{}\"",
38+
"sh -c \"echo 'udp_src_max 5000' > /proc/net/pktgen/{}\"",
39+
"sh -c \"echo 'udp_dst_min 5001' > /proc/net/pktgen/{}\"",
40+
"sh -c \"echo 'udp_dst_max 5001' > /proc/net/pktgen/{}\"",
3841
]
3942

4043

@@ -48,12 +51,18 @@ def clear_pktgen(duthosts, enum_dut_hostname):
4851
duthost = duthosts[enum_dut_hostname]
4952
for cmd in CLEANUP_CMDS:
5053
duthost.shell(cmd)
54+
for asichost in duthost.asics:
55+
for cmd in CLEANUP_ASIC_CMDS:
56+
asichost.command(cmd)
5157
duthost.shell("sonic-clear counters")
5258

5359
yield
5460

5561
for cmd in CLEANUP_CMDS:
5662
duthost.shell(cmd)
63+
for asichost in duthost.asics:
64+
for cmd in CLEANUP_ASIC_CMDS:
65+
asichost.command(cmd)
5766

5867

5968
def test_pktgen(duthosts, enum_dut_hostname, enum_frontend_asic_index, tbinfo, loganalyzer):
@@ -78,24 +87,25 @@ def test_pktgen(duthosts, enum_dut_hostname, enum_frontend_asic_index, tbinfo, l
7887
# Select a random port to run traffic
7988
port_list = get_port_list(duthost, tbinfo)
8089
port = random.choice(port_list)
90+
asichost = duthost.get_port_asic_instance(port)
8191

8292
# Populate packet details
8393
for cmd in PKTGEN_CMDS:
8494
if "src_mac" in cmd:
85-
duthost.shell(cmd.format(router_mac, port))
95+
asichost.command(cmd.format(router_mac, port))
8696
else:
87-
duthost.shell(cmd.format(port))
97+
asichost.command(cmd.format(port))
8898

8999
try:
90100
loganalyzer.ignore_regex.extend(ignoreRegex)
91101
with loganalyzer:
92102
# Send packet
93-
duthost.shell("sudo echo 'start' > /proc/net/pktgen/pgctrl")
103+
asichost.command("sh -c \"sudo echo 'start' > /proc/net/pktgen/pgctrl\"")
94104
except LogAnalyzerError as err:
95105
raise err
96106

97107
# Verify packet count from pktgen
98-
pktgen_param = duthost.shell("cat /proc/net/pktgen/{}".format(port))["stdout"]
108+
pktgen_param = asichost.command("cat /proc/net/pktgen/{}".format(port))["stdout"]
99109
pktgen_param = pktgen_param.split("\n")[0]
100110
pytest_assert(int(re.match(r".*count\s(\d+)", pktgen_param).group(1)) == 15000,
101111
"Mismatch between number of packets intended to be generated and number of packets generated")

0 commit comments

Comments
 (0)