+ # MTU (only checked on encap)
+ rv = self.vapi.sw_interface_set_mtu(sw_if_index, 576)
+ rv = self.vapi.sw_interface_dump()
+ for i in rv:
+ if i.sw_if_index == sw_if_index:
+ self.assertEqual(i.mtu, 576)
+ break
+
+ # Should fail. Too large MTU
+ p4.flags = 'DF'
+ p_icmp4 = ICMP(type='dest-unreach', code='fragmentation-needed',
+ nexthopmtu=576, chksum=0xb6c7)
+ icmp4_reply = (IP(src=self.pg0.local_ip4,
+ dst=self.pg0.remote_ip4,
+ ttl=254, len=576, id=0) /
+ p_icmp4 / p_ip4 / p_payload)
+ icmp4_reply[1].flags = 'DF'
+ n = icmp4_reply.__class__(str(icmp4_reply))
+ s = str(icmp4_reply)
+ icmp4_reply = s[0:576]
+ rx = self.send_and_expect(self.pg0, p4*9, self.pg0)
+ for p in rx:
+ self.validate_bytes(str(p[1]), icmp4_reply)
+
+ # Reset MTU
+ rv = self.vapi.sw_interface_set_mtu(sw_if_index, 1480)
+