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'])