Skip to content

Commit

Permalink
[Cherry-pick] Optimizing testQosSaiHeadroomPoolSize runtime #8775 (#1…
Browse files Browse the repository at this point in the history
…2159)

* Optimizing HeadroomPoolSize runtime

(cherry picked from commit f35a45c9958716d5ed01f2134a3288ae0119ec48)
  • Loading branch information
ansrajpu-git authored May 15, 2024
1 parent 9f89f84 commit 9d72265
Showing 1 changed file with 46 additions and 11 deletions.
57 changes: 46 additions & 11 deletions tests/saitests/py3/sai_qos_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -2616,10 +2616,26 @@ def runTest(self):
pkt_cnt = pkts_num_trig_pfc // self.pkt_size_factor
send_packet(
self, self.src_port_ids[sidx_dscp_pg_tuples[i][0]], pkt, int(pkt_cnt))
if platform_asic != "broadcom-dnx":
time.sleep(8) # wait pfc counter refresh and show the counters
self.show_port_counter(self.asic_type, recv_counters_bases, xmit_counters_base,
'To fill service pool, send {} pkt with DSCP {} PG {} from src_port{}'
' to dst_port'.format(pkt_cnt, sidx_dscp_pg_tuples[i][1],
sidx_dscp_pg_tuples[i][2], sidx_dscp_pg_tuples[i][0]))

time.sleep(8) # wait pfc counter refresh
self.show_port_counter(self.asic_type, recv_counters_bases, xmit_counters_base,
'To fill service pool, send {} pkt with DSCP {} PG {} from src_port{} to dst_port'.format(pkt_cnt, sidx_dscp_pg_tuples[i][1], sidx_dscp_pg_tuples[i][2], sidx_dscp_pg_tuples[i][0]))
if platform_asic and platform_asic == "broadcom-dnx":
time.sleep(8) # wait pfc counter refresh and show the counters
for i in range(0, self.pgs_num):
if self.pkts_num_trig_pfc:
pkts_num_trig_pfc = self.pkts_num_trig_pfc
else:
pkts_num_trig_pfc = self.pkts_num_trig_pfc_shp[i]

pkt_cnt = pkts_num_trig_pfc // self.pkt_size_factor
self.show_port_counter(self.asic_type, recv_counters_bases, xmit_counters_base,
'To fill service pool, send {} pkt with DSCP {} PG {} from src_port{}'
' to dst_port'.format(pkt_cnt, sidx_dscp_pg_tuples[i][1],
sidx_dscp_pg_tuples[i][2], sidx_dscp_pg_tuples[i][0]))

print("Service pool almost filled", file=sys.stderr)
sys.stderr.flush()
Expand Down Expand Up @@ -2655,9 +2671,13 @@ def runTest(self):
# queue_counters value is not of our interest here
recv_counters, _ = sai_thrift_read_port_counters(
self.src_client, self.asic_type, port_list['src'][self.src_port_ids[sidx_dscp_pg_tuples[i][0]]])
time.sleep(8) # wait pfc counter refresh
self.show_port_counter(self.asic_type, recv_counters_bases, xmit_counters_base,
'To trigger PFC, send {} pkt with DSCP {} PG {} from src_port{} to dst_port'.format(pkt_cnt, sidx_dscp_pg_tuples[i][1], sidx_dscp_pg_tuples[i][2], sidx_dscp_pg_tuples[i][0]))

if platform_asic != "broadcom-dnx":
time.sleep(8) # wait pfc counter refresh
self.show_port_counter(
self.asic_type, recv_counters_bases, xmit_counters_base,
'To trigger PFC, send {} pkt with DSCP {} PG {} from src_port{} to dst_port'
.format(pkt_cnt, sidx_dscp_pg_tuples[i][1], sidx_dscp_pg_tuples[i][2], sidx_dscp_pg_tuples[i][0]))

if pkt_cnt == 10:
sys.exit("Too many pkts needed to trigger pfc: %d" %
Expand Down Expand Up @@ -2699,13 +2719,28 @@ def runTest(self):
ip_tos=tos,
ip_ttl=ttl)

pkt_cnt = self.pkts_num_hdrm_full // self.pkt_size_factor if i != self.pgs_num - 1 else self.pkts_num_hdrm_partial // self.pkt_size_factor
send_packet(self, self.src_port_ids[sidx_dscp_pg_tuples[i][0]], pkt, pkt_cnt)
pkt_cnt = self.pkts_num_hdrm_full // self.pkt_size_factor if i != self.pgs_num - 1 \
else self.pkts_num_hdrm_partial // self.pkt_size_factor
send_packet(
self, self.src_port_ids[sidx_dscp_pg_tuples[i][0]], pkt, pkt_cnt)
# allow enough time for the dut to sync up the counter values in counters_db
time.sleep(8)
if platform_asic != "broadcom-dnx":
time.sleep(8)
self.show_port_counter(self.asic_type, recv_counters_bases, xmit_counters_base,
'To fill headroom pool, send {} pkt with DSCP {} PG {} from src_port{} '
'to dst_port'.format(pkt_cnt, sidx_dscp_pg_tuples[i][1],
sidx_dscp_pg_tuples[i][2],
sidx_dscp_pg_tuples[i][0]))

self.show_port_counter(self.asic_type, recv_counters_bases, xmit_counters_base,
'To fill headroom pool, send {} pkt with DSCP {} PG {} from src_port{} to dst_port'.format(pkt_cnt, sidx_dscp_pg_tuples[i][1], sidx_dscp_pg_tuples[i][2], sidx_dscp_pg_tuples[i][0]))
if platform_asic and platform_asic == "broadcom-dnx":
time.sleep(8)
for i in range(0, self.pgs_num):
pkt_cnt = self.pkts_num_hdrm_full // self.pkt_size_factor if i != self.pgs_num - 1 \
else self.pkts_num_hdrm_partial // self.pkt_size_factor
self.show_port_counter(self.asic_type, recv_counters_bases, xmit_counters_base,
'To fill headroom pool, send {} pkt with DSCP {} PG {} from src_port{}'
' to dst_port'.format(pkt_cnt, sidx_dscp_pg_tuples[i][1],
sidx_dscp_pg_tuples[i][2], sidx_dscp_pg_tuples[i][0]))

recv_counters, _ = sai_thrift_read_port_counters(
self.src_client, self.asic_type, port_list['src'][self.src_port_ids[sidx_dscp_pg_tuples[i][0]]])
Expand Down

0 comments on commit 9d72265

Please sign in to comment.