1919
2020CLEANUP_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
2629PKTGEN_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
5968def 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