def runTest()

in ptf/sairif.py [0:0]


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

        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)

        # set MTU to 200 for port 0 and lag 1
        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_tcpv6_packet(
                eth_dst=ROUTER_MAC,
                eth_src='00:22:22:22:22:22',
                ipv6_dst='1234:5678:9abc:def0:4422:1133:5577:99aa',
                ipv6_src='2000::1',
                ipv6_hlim=64,
                pktlen=199 + 14 + 40)
            exp_pkt = simple_tcpv6_packet(
                eth_dst='00:11:22:33:44:55',
                eth_src=ROUTER_MAC,
                ipv6_dst='1234:5678:9abc:def0:4422:1133:5577:99aa',
                ipv6_src='2000::1',
                ipv6_hlim=63,
                pktlen=199 + 14 + 40)

            print("Sending packet port %d -> port %d "
                  "(2000::1 -> 1234:5678:9abc:def0:4422:1133:5577:99aa')"
                  % (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['IPv6'].dst = '1234:5678:9abc:def0:1122:3344:5566:7788'
            exp_pkt['IPv6'].dst = '1234:5678:9abc:def0:1122:3344:5566:7788'
            exp_pkt['Ethernet'].dst = '00:33:22:33:44:55'

            print("Sending packet port %d -> lag 1 (2000::1 -> "
                  "1234:5678:9abc:def0:1122:3344:5566:7788)"
                  % 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_tcpv6_packet(
                eth_dst=ROUTER_MAC,
                eth_src='00:22:22:22:22:22',
                ipv6_dst='1234:5678:9abc:def0:4422:1133:5577:99aa',
                ipv6_src='2000::1',
                ipv6_hlim=64,
                pktlen=200 + 14 + 40)
            exp_pkt = simple_tcpv6_packet(
                eth_dst='00:11:22:33:44:55',
                eth_src=ROUTER_MAC,
                ipv6_dst='1234:5678:9abc:def0:4422:1133:5577:99aa',
                ipv6_src='2000::1',
                ipv6_hlim=63,
                pktlen=200 + 14 + 40)

            print("Sending packet port %d -> port %d "
                  "(2000::1 -> 1234:5678:9abc:def0:4422:1133:5577:99aa')"
                  % (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['IPv6'].dst = '1234:5678:9abc:def0:1122:3344:5566:7788'
            exp_pkt['IPv6'].dst = '1234:5678:9abc:def0:1122:3344:5566:7788'
            exp_pkt['Ethernet'].dst = '00:33:22:33:44:55'

            print("Sending packet port %d -> lag 1 (2000::1 -> "
                  "1234:5678:9abc:def0:1122:3344:5566:7788)"
                  % 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_tcpv6_packet(
                eth_dst=ROUTER_MAC,
                eth_src='00:22:22:22:22:22',
                ipv6_dst='1234:5678:9abc:def0:4422:1133:5577:99aa',
                ipv6_src='2000::1',
                ipv6_hlim=64,
                pktlen=201 + 14 + 40)
            exp_pkt = simple_tcpv6_packet(
                eth_dst='00:11:22:33:44:55',
                eth_src=ROUTER_MAC,
                ipv6_dst='1234:5678:9abc:def0:4422:1133:5577:99aa',
                ipv6_src='2000::1',
                ipv6_hlim=63,
                pktlen=201 + 14 + 40)

            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['IPv6'].dst = '1234:5678:9abc:def0:1122:3344:5566:7788'
            exp_pkt['IPv6'].dst = '1234:5678:9abc:def0:1122:3344:5566:7788'
            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_tcpv6_packet(
                eth_dst=ROUTER_MAC,
                eth_src='00:22:22:22:22:22',
                ipv6_dst='1234:5678:9abc:def0:4422:1133:5577:99aa',
                ipv6_src='2000::1',
                ipv6_hlim=64,
                pktlen=201 + 14 + 40)
            exp_pkt = simple_tcpv6_packet(
                eth_dst='00:11:22:33:44:55',
                eth_src=ROUTER_MAC,
                ipv6_dst='1234:5678:9abc:def0:4422:1133:5577:99aa',
                ipv6_src='2000::1',
                ipv6_hlim=63,
                pktlen=201 + 14 + 40)
            print("Sending packet port %d -> port %d "
                  "(2000::1 -> 1234:5678:9abc:def0:4422:1133:5577:99aa')"
                  % (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['IPv6'].dst = '1234:5678:9abc:def0:1122:3344:5566:7788'
            exp_pkt['IPv6'].dst = '1234:5678:9abc:def0:1122:3344:5566:7788'
            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 (2000::1 ->"
                  "1234:5678:9abc:def0:1122:3344:5566:7788)"
                  % 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_tcpv6_packet(
                eth_dst=ROUTER_MAC,
                eth_src='00:22:22:22:22:22',
                ipv6_dst='1234:5678:9abc:def0:4422:1133:5577:99aa',
                ipv6_src='2000::1',
                ipv6_hlim=64,
                pktlen=202 + 14 + 40)
            exp_pkt = simple_tcpv6_packet(
                eth_dst='00:11:22:33:44:55',
                eth_src=ROUTER_MAC,
                ipv6_dst='1234:5678:9abc:def0:4422:1133:5577:99aa',
                ipv6_src='2000::1',
                ipv6_hlim=63,
                pktlen=202 + 14 + 40)

            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['IPv6'].dst = '1234:5678:9abc:def0:1122:3344:5566:7788'
            exp_pkt['IPv6'].dst = '1234:5678:9abc:def0:1122:3344:5566:7788'
            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'])