def runTest()

in ptf/sairif.py [0:0]


    def runTest(self):
        print("\nipv4MtuTest()")

        # set MTU to 200 for port 0 and lag 1
        mtu_port0_rif = sai_thrift_get_router_interface_attribute(
            self.client, self.port0_rif, mtu=True)
        mtu_lag1_rif = sai_thrift_get_router_interface_attribute(
            self.client, self.lag1_rif, mtu=True)

        sai_thrift_set_router_interface_attribute(
            self.client, self.port0_rif, mtu=200)
        sai_thrift_set_router_interface_attribute(
            self.client, self.lag1_rif, mtu=200)

        try:
            print("Max MTU is 200, send pkt size 199, send to port/lag")
            pkt = simple_tcp_packet(eth_dst=ROUTER_MAC,
                                    eth_src='00:22:22:22:22:22',
                                    ip_dst='10.10.10.1',
                                    ip_src='192.168.0.1',
                                    ip_id=105,
                                    ip_ttl=64,
                                    pktlen=199 + 14)
            exp_pkt = simple_tcp_packet(eth_dst='00:11:22:33:44:55',
                                        eth_src=ROUTER_MAC,
                                        ip_dst='10.10.10.1',
                                        ip_src='192.168.0.1',
                                        ip_id=105,
                                        ip_ttl=63,
                                        pktlen=199 + 14)

            print("Sending packet port %d -> port %d (192.168.0.1 -> "
                  "10.10.10.1)" % (self.dev_port1, self.dev_port0))
            send_packet(self, self.dev_port1, pkt)
            verify_packet(self, exp_pkt, self.dev_port0)
            self.port1_rif_counter_in += 1
            self.port0_rif_counter_out += 1
            self.port1_rif_counter_in_octects += len(pkt) + 4
            self.port0_rif_counter_out_octects += len(exp_pkt) + 4

            pkt['IP'].dst = '12.10.10.1'
            exp_pkt['IP'].dst = '12.10.10.1'
            exp_pkt['Ethernet'].dst = '00:33:22:33:44:55'

            print("Sending packet port %d -> lag 1 (192.168.0.1 -> "
                  "12.10.10.1)" % self.dev_port1)
            send_packet(self, self.dev_port1, pkt)
            verify_packet_any_port(
                self, exp_pkt, [self.dev_port2, self.dev_port3,
                                self.dev_port4])
            self.port1_rif_counter_in += 1
            self.lag1_rif_counter_out += 1
            self.port1_rif_counter_in_octects += len(pkt) + 4

            print("Max MTU is 200, send pkt size 200, send to port/lag")
            pkt = simple_tcp_packet(eth_dst=ROUTER_MAC,
                                    eth_src='00:22:22:22:22:22',
                                    ip_dst='10.10.10.1',
                                    ip_src='192.168.0.1',
                                    ip_id=105,
                                    ip_ttl=64,
                                    pktlen=200 + 14)
            exp_pkt = simple_tcp_packet(eth_dst='00:11:22:33:44:55',
                                        eth_src=ROUTER_MAC,
                                        ip_dst='10.10.10.1',
                                        ip_src='192.168.0.1',
                                        ip_id=105,
                                        ip_ttl=63,
                                        pktlen=200 + 14)

            print("Sending packet port %d -> port %d (192.168.0.1 -> "
                  "10.10.10.1)" % (self.dev_port1, self.dev_port0))
            send_packet(self, self.dev_port1, pkt)
            verify_packet(self, exp_pkt, self.dev_port0)
            self.port1_rif_counter_in += 1
            self.port0_rif_counter_out += 1
            self.port1_rif_counter_in_octects += len(pkt) + 4
            self.port0_rif_counter_out_octects += len(exp_pkt) + 4

            pkt['IP'].dst = '12.10.10.1'
            exp_pkt['IP'].dst = '12.10.10.1'
            exp_pkt['Ethernet'].dst = '00:33:22:33:44:55'

            print("Sending packet port %d -> lag 1 (192.168.0.1 -> "
                  "12.10.10.1)" % self.dev_port1)
            send_packet(self, self.dev_port1, pkt)
            verify_packet_any_port(
                self, exp_pkt, [self.dev_port2, self.dev_port3,
                                self.dev_port4])
            self.port1_rif_counter_in += 1
            self.lag1_rif_counter_out += 1
            self.port1_rif_counter_in_octects += len(pkt) + 4

            print("Max MTU is 200, send pkt size 201, dropped")
            pkt = simple_tcp_packet(eth_dst=ROUTER_MAC,
                                    eth_src='00:22:22:22:22:22',
                                    ip_dst='10.10.10.1',
                                    ip_src='192.168.0.1',
                                    ip_id=105,
                                    ip_ttl=64,
                                    pktlen=201 + 14)
            exp_pkt = simple_tcp_packet(eth_dst='00:11:22:33:44:55',
                                        eth_src=ROUTER_MAC,
                                        ip_dst='10.10.10.1',
                                        ip_src='192.168.0.1',
                                        ip_id=105,
                                        ip_ttl=63,
                                        pktlen=201 + 14)

            print("Sending packet port %d" % self.dev_port1, " dropped")
            send_packet(self, self.dev_port1, pkt)
            verify_no_other_packets(self, timeout=1)
            self.port1_rif_counter_in += 1
            self.port0_rif_counter_out += 1
            self.port1_rif_counter_in_octects += len(pkt) + 4
            self.port0_rif_counter_out_octects += len(exp_pkt) + 4

            pkt['IP'].dst = '12.10.10.1'
            exp_pkt['IP'].dst = '12.10.10.1'
            exp_pkt['Ethernet'].dst = '00:33:22:33:44:55'

            print("Sending packet port %d" % self.dev_port1, " dropped")
            send_packet(self, self.dev_port1, pkt)
            verify_no_other_packets(self, timeout=1)
            self.port1_rif_counter_in += 1
            self.lag1_rif_counter_out += 1
            self.port1_rif_counter_in_octects += len(pkt) + 4

            print("Changing MTU to 201, send pkt size 201, send to port/lag")
            sai_thrift_set_router_interface_attribute(
                self.client, self.port0_rif, mtu=201)
            pkt = simple_tcp_packet(eth_dst=ROUTER_MAC,
                                    eth_src='00:22:22:22:22:22',
                                    ip_dst='10.10.10.1',
                                    ip_src='192.168.0.1',
                                    ip_id=105,
                                    ip_ttl=64,
                                    pktlen=201 + 14)
            exp_pkt = simple_tcp_packet(eth_dst='00:11:22:33:44:55',
                                        eth_src=ROUTER_MAC,
                                        ip_dst='10.10.10.1',
                                        ip_src='192.168.0.1',
                                        ip_id=105,
                                        ip_ttl=63,
                                        pktlen=201 + 14)

            print("Sending packet port %d -> port %d (192.168.0.1 -> "
                  "10.10.10.1)" % (self.dev_port1, self.dev_port0))
            send_packet(self, self.dev_port1, pkt)
            verify_packet(self, exp_pkt, self.dev_port0)
            self.port1_rif_counter_in += 1
            self.port0_rif_counter_out += 1
            self.port1_rif_counter_in_octects += len(pkt) + 4
            self.port0_rif_counter_out_octects += len(exp_pkt) + 4

            pkt['IP'].dst = '12.10.10.1'
            exp_pkt['IP'].dst = '12.10.10.1'
            exp_pkt['Ethernet'].dst = '00:33:22:33:44:55'

            print("Sending packet port %d" % self.dev_port1, " dropped")
            send_packet(self, self.dev_port1, pkt)
            verify_no_other_packets(self, timeout=1)
            self.port1_rif_counter_in += 1
            self.lag1_rif_counter_out += 1
            self.port1_rif_counter_in_octects += len(pkt) + 4

            sai_thrift_set_router_interface_attribute(
                self.client, self.lag1_rif, mtu=201)

            print("Sending packet port %d -> lag 1 (192.168.0.1 -> "
                  "12.10.10.1)" % self.dev_port1)
            send_packet(self, self.dev_port1, pkt)
            verify_packet_any_port(
                self, exp_pkt, [self.dev_port2, self.dev_port3,
                                self.dev_port4])
            self.port1_rif_counter_in += 1
            self.lag1_rif_counter_out += 1
            self.port1_rif_counter_in_octects += len(pkt) + 4

            print("Max MTU is 201, send pkt size 202, dropped")
            pkt = simple_tcp_packet(eth_dst=ROUTER_MAC,
                                    eth_src='00:22:22:22:22:22',
                                    ip_dst='10.10.10.1',
                                    ip_src='192.168.0.1',
                                    ip_id=105,
                                    ip_ttl=64,
                                    pktlen=202 + 14)
            exp_pkt = simple_tcp_packet(eth_dst='00:11:22:33:44:55',
                                        eth_src=ROUTER_MAC,
                                        ip_dst='10.10.10.1',
                                        ip_src='192.168.0.1',
                                        ip_id=105,
                                        ip_ttl=63,
                                        pktlen=202 + 14)

            print("Sending packet port %d" % self.dev_port1, " dropped")
            send_packet(self, self.dev_port1, pkt)
            verify_no_other_packets(self, timeout=1)
            self.port1_rif_counter_in += 1
            self.port0_rif_counter_out += 1
            self.port1_rif_counter_in_octects += len(pkt) + 4
            self.port0_rif_counter_out_octects += len(exp_pkt) + 4

            pkt['IP'].dst = '12.10.10.1'
            exp_pkt['IP'].dst = '12.10.10.1'
            exp_pkt['Ethernet'].dst = '00:33:22:33:44:55'

            print("Sending packet port %d" % self.dev_port1, " dropped")
            send_packet(self, self.dev_port1, pkt)
            verify_no_other_packets(self, timeout=1)
            self.port1_rif_counter_in += 1
            self.lag1_rif_counter_out += 1
            self.port1_rif_counter_in_octects += len(pkt) + 4

        finally:
            sai_thrift_set_router_interface_attribute(
                self.client, self.port0_rif, mtu=mtu_port0_rif['mtu'])
            sai_thrift_set_router_interface_attribute(
                self.client, self.lag1_rif, mtu=mtu_lag1_rif['mtu'])