ptf/saiswitch.py [886:1070]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        init_interval = attr["counter_refresh_interval"]
        print("Counters refresh interval initially set to %d sec"
              % init_interval)

        test_vlan = self.vlan10
        test_vlan_port = self.dev_port0
        test_rif = self.port10_rif
        test_rif_port = self.dev_port10
        test_interval = 10

        vlan_stats = query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)
        init_vlan_counter = vlan_stats['SAI_VLAN_STAT_IN_PACKETS']

        rif_stats = query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)
        init_rif_counter = rif_stats['SAI_ROUTER_INTERFACE_STAT_IN_PACKETS']

        pkt = simple_udp_packet()

        try:
            print("\nTesting VLAN stats counters refresh time")
            # compensate refresh time shift
            send_packet(self, test_vlan_port, pkt)
            while query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)[
                    'SAI_VLAN_STAT_IN_PACKETS'] == init_vlan_counter:
                time.sleep(0.1)
            init_vlan_counter += 1

            send_packet(self, test_vlan_port, pkt)
            vlan_stats = query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)
            counter = vlan_stats['SAI_VLAN_STAT_IN_PACKETS']
            self.assertEqual(counter, init_vlan_counter)

            # determine refresh time
            timer_start = time.time()
            timer_end = time.time()
            while counter == init_vlan_counter:
                vlan_stats = query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)
                counter = vlan_stats['SAI_VLAN_STAT_IN_PACKETS']
                timer_end = time.time()
            init_vlan_counter += 1

            interval = int(round(timer_end - timer_start))
            print("VLAN stats refreshed after %d sec" % interval)
            self.assertEqual(init_interval, int(round(interval)))

            vlan_stats = query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)
            counter = vlan_stats['SAI_VLAN_STAT_IN_PACKETS']
            self.assertEqual(counter, init_vlan_counter)

            print("Setting refresh interval to %d sec" % test_interval)
            sai_thrift_set_switch_attribute(
                self.client, counter_refresh_interval=test_interval)

            attr = sai_thrift_get_switch_attribute(
                self.client, counter_refresh_interval=True)
            set_interval = attr["counter_refresh_interval"]
            print("Refresh interval set to %d sec" % set_interval)
            self.assertEqual(set_interval, test_interval)

            # compensate refresh time shift
            send_packet(self, test_vlan_port, pkt)
            while query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)[
                    'SAI_VLAN_STAT_IN_PACKETS'] == init_vlan_counter:
                time.sleep(0.1)
            init_vlan_counter += 1

            send_packet(self, test_vlan_port, pkt)
            vlan_stats = query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)
            counter = vlan_stats['SAI_VLAN_STAT_IN_PACKETS']
            self.assertEqual(counter, init_vlan_counter)

            # determine refresh time
            timer_start = time.time()
            timer_end = time.time()
            while counter == init_vlan_counter:
                vlan_stats = query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)
                counter = vlan_stats['SAI_VLAN_STAT_IN_PACKETS']
                timer_end = time.time()
            init_vlan_counter += 1

            interval = int(round(timer_end - timer_start))
            print("VLAN stats refreshed after %d sec" % interval)
            self.assertEqual(test_interval, interval)

            vlan_stats = query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)
            counter = vlan_stats['SAI_VLAN_STAT_IN_PACKETS']
            self.assertEqual(counter, init_vlan_counter)

        finally:
            sai_thrift_set_switch_attribute(
                self.client, counter_refresh_interval=init_interval)

        try:
            print("\nTesting RIF stats counters refresh time")
            # compensate refresh time shift
            send_packet(self, test_rif_port, pkt)
            while query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)[
                    'SAI_ROUTER_INTERFACE_STAT_IN_PACKETS'] == \
                    init_rif_counter:
                time.sleep(0.1)
            init_rif_counter += 1

            send_packet(self, test_rif_port, pkt)
            rif_stats = query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)
            counter = rif_stats['SAI_ROUTER_INTERFACE_STAT_IN_PACKETS']
            self.assertEqual(counter, init_rif_counter)

            # determine refresh time
            timer_start = time.time()
            timer_end = time.time()
            while counter == init_rif_counter:
                rif_stats = query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)
                counter = rif_stats['SAI_ROUTER_INTERFACE_STAT_IN_PACKETS']
                timer_end = time.time()
            init_rif_counter += 1

            interval = int(round(timer_end - timer_start))
            print("RIF stats refreshed after %d sec" % interval)
            self.assertEqual(init_interval, int(round(interval)))

            rif_stats = query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)
            counter = rif_stats['SAI_ROUTER_INTERFACE_STAT_IN_PACKETS']
            self.assertEqual(counter, init_rif_counter)

            print("Setting refresh interval to %d sec" % test_interval)
            sai_thrift_set_switch_attribute(
                self.client, counter_refresh_interval=test_interval)

            attr = sai_thrift_get_switch_attribute(
                self.client, counter_refresh_interval=True)
            set_interval = attr["counter_refresh_interval"]
            print("Refresh interval set to %d sec" % set_interval)
            self.assertEqual(set_interval, test_interval)

            # compensate refresh time shift
            send_packet(self, test_rif_port, pkt)
            while query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)[
                    'SAI_ROUTER_INTERFACE_STAT_IN_PACKETS'] == \
                    init_rif_counter:
                time.sleep(0.1)
            init_rif_counter += 1

            send_packet(self, test_rif_port, pkt)
            rif_stats = query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)
            counter = rif_stats['SAI_ROUTER_INTERFACE_STAT_IN_PACKETS']
            self.assertEqual(counter, init_rif_counter)

            # determine refresh time
            timer_start = time.time()
            timer_end = time.time()
            while counter == init_rif_counter:
                rif_stats = query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)
                counter = rif_stats['SAI_ROUTER_INTERFACE_STAT_IN_PACKETS']
                timer_end = time.time()
            init_rif_counter += 1

            interval = int(round(timer_end - timer_start))
            print("RIF stats refreshed after %d sec" % interval)
            self.assertEqual(test_interval, interval)

            rif_stats = query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)
            counter = rif_stats['SAI_VLAN_STAT_IN_PACKETS']
            self.assertEqual(counter, init_vlan_counter)

        finally:
            sai_thrift_set_switch_attribute(
                self.client, counter_refresh_interval=init_interval)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



ptf/saiswitch.py [2062:2246]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        init_interval = attr["counter_refresh_interval"]
        print("Counters refresh interval initially set to %d sec"
              % init_interval)

        test_vlan = self.vlan10
        test_vlan_port = self.dev_port0
        test_rif = self.port10_rif
        test_rif_port = self.dev_port10
        test_interval = 10

        vlan_stats = query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)
        init_vlan_counter = vlan_stats['SAI_VLAN_STAT_IN_PACKETS']

        rif_stats = query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)
        init_rif_counter = rif_stats['SAI_ROUTER_INTERFACE_STAT_IN_PACKETS']

        pkt = simple_udp_packet()

        try:
            print("\nTesting VLAN stats counters refresh time")
            # compensate refresh time shift
            send_packet(self, test_vlan_port, pkt)
            while query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)[
                    'SAI_VLAN_STAT_IN_PACKETS'] == init_vlan_counter:
                time.sleep(0.1)
            init_vlan_counter += 1

            send_packet(self, test_vlan_port, pkt)
            vlan_stats = query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)
            counter = vlan_stats['SAI_VLAN_STAT_IN_PACKETS']
            self.assertEqual(counter, init_vlan_counter)

            # determine refresh time
            timer_start = time.time()
            timer_end = time.time()
            while counter == init_vlan_counter:
                vlan_stats = query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)
                counter = vlan_stats['SAI_VLAN_STAT_IN_PACKETS']
                timer_end = time.time()
            init_vlan_counter += 1

            interval = int(round(timer_end - timer_start))
            print("VLAN stats refreshed after %d sec" % interval)
            self.assertEqual(init_interval, int(round(interval)))

            vlan_stats = query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)
            counter = vlan_stats['SAI_VLAN_STAT_IN_PACKETS']
            self.assertEqual(counter, init_vlan_counter)

            print("Setting refresh interval to %d sec" % test_interval)
            sai_thrift_set_switch_attribute(
                self.client, counter_refresh_interval=test_interval)

            attr = sai_thrift_get_switch_attribute(
                self.client, counter_refresh_interval=True)
            set_interval = attr["counter_refresh_interval"]
            print("Refresh interval set to %d sec" % set_interval)
            self.assertEqual(set_interval, test_interval)

            # compensate refresh time shift
            send_packet(self, test_vlan_port, pkt)
            while query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)[
                    'SAI_VLAN_STAT_IN_PACKETS'] == init_vlan_counter:
                time.sleep(0.1)
            init_vlan_counter += 1

            send_packet(self, test_vlan_port, pkt)
            vlan_stats = query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)
            counter = vlan_stats['SAI_VLAN_STAT_IN_PACKETS']
            self.assertEqual(counter, init_vlan_counter)

            # determine refresh time
            timer_start = time.time()
            timer_end = time.time()
            while counter == init_vlan_counter:
                vlan_stats = query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)
                counter = vlan_stats['SAI_VLAN_STAT_IN_PACKETS']
                timer_end = time.time()
            init_vlan_counter += 1

            interval = int(round(timer_end - timer_start))
            print("VLAN stats refreshed after %d sec" % interval)
            self.assertEqual(test_interval, interval)

            vlan_stats = query_counter(
                    self, sai_thrift_get_vlan_stats, test_vlan)
            counter = vlan_stats['SAI_VLAN_STAT_IN_PACKETS']
            self.assertEqual(counter, init_vlan_counter)

        finally:
            sai_thrift_set_switch_attribute(
                self.client, counter_refresh_interval=init_interval)

        try:
            print("\nTesting RIF stats counters refresh time")
            # compensate refresh time shift
            send_packet(self, test_rif_port, pkt)
            while query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)[
                    'SAI_ROUTER_INTERFACE_STAT_IN_PACKETS'] == \
                    init_rif_counter:
                time.sleep(0.1)
            init_rif_counter += 1

            send_packet(self, test_rif_port, pkt)
            rif_stats = query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)
            counter = rif_stats['SAI_ROUTER_INTERFACE_STAT_IN_PACKETS']
            self.assertEqual(counter, init_rif_counter)

            # determine refresh time
            timer_start = time.time()
            timer_end = time.time()
            while counter == init_rif_counter:
                rif_stats = query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)
                counter = rif_stats['SAI_ROUTER_INTERFACE_STAT_IN_PACKETS']
                timer_end = time.time()
            init_rif_counter += 1

            interval = int(round(timer_end - timer_start))
            print("RIF stats refreshed after %d sec" % interval)
            self.assertEqual(init_interval, int(round(interval)))

            rif_stats = query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)
            counter = rif_stats['SAI_ROUTER_INTERFACE_STAT_IN_PACKETS']
            self.assertEqual(counter, init_rif_counter)

            print("Setting refresh interval to %d sec" % test_interval)
            sai_thrift_set_switch_attribute(
                self.client, counter_refresh_interval=test_interval)

            attr = sai_thrift_get_switch_attribute(
                self.client, counter_refresh_interval=True)
            set_interval = attr["counter_refresh_interval"]
            print("Refresh interval set to %d sec" % set_interval)
            self.assertEqual(set_interval, test_interval)

            # compensate refresh time shift
            send_packet(self, test_rif_port, pkt)
            while query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)[
                    'SAI_ROUTER_INTERFACE_STAT_IN_PACKETS'] == \
                    init_rif_counter:
                time.sleep(0.1)
            init_rif_counter += 1

            send_packet(self, test_rif_port, pkt)
            rif_stats = query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)
            counter = rif_stats['SAI_ROUTER_INTERFACE_STAT_IN_PACKETS']
            self.assertEqual(counter, init_rif_counter)

            # determine refresh time
            timer_start = time.time()
            timer_end = time.time()
            while counter == init_rif_counter:
                rif_stats = query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)
                counter = rif_stats['SAI_ROUTER_INTERFACE_STAT_IN_PACKETS']
                timer_end = time.time()
            init_rif_counter += 1

            interval = int(round(timer_end - timer_start))
            print("RIF stats refreshed after %d sec" % interval)
            self.assertEqual(test_interval, interval)

            rif_stats = query_counter(
                    self, sai_thrift_get_router_interface_stats, test_rif)
            counter = rif_stats['SAI_VLAN_STAT_IN_PACKETS']
            self.assertEqual(counter, init_vlan_counter)

        finally:
            sai_thrift_set_switch_attribute(
                self.client, counter_refresh_interval=init_interval)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



