From 8ca42437a932fe2c4920b1d00460837c72be7ae4 Mon Sep 17 00:00:00 2001 From: ansrajpu-git <113939367+ansrajpu-git@users.noreply.github.com> Date: Wed, 16 Aug 2023 23:13:27 -0400 Subject: [PATCH] Optimizing testQosSaiHeadroomPoolSize runtime (#8775) * Optimizing HeadroomPoolSize runtime --- tests/saitests/py3/sai_qos_tests.py | 52 +++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 13 deletions(-) diff --git a/tests/saitests/py3/sai_qos_tests.py b/tests/saitests/py3/sai_qos_tests.py index b3f1aebcca..d2ae19e75c 100644 --- a/tests/saitests/py3/sai_qos_tests.py +++ b/tests/saitests/py3/sai_qos_tests.py @@ -2311,12 +2311,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() @@ -2352,7 +2366,9 @@ 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 + + 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' @@ -2398,17 +2414,27 @@ 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 + 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]]])