aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorNeale Ranns <neale@graphiant.com>2022-03-18 13:05:09 +0000
committerNeale Ranns <neale@graphiant.com>2022-03-24 13:56:43 +0000
commitfbc633f5542be4b0b85963f7dcba9ab143c61d62 (patch)
tree6d5d2223878661230f9e09f18f5bada574f0bc18 /test
parentbb498ccb1c5d5448fdcb106cacc1ef1bfbc69e16 (diff)
mpls: Set the MTU field in the frag-needed ICMP when doing MPLS fragmentation
Type: fix The reported MTU should include the MPLS label overhead Signed-off-by: Neale Ranns <neale@graphiant.com> Change-Id: I3df6d2e0b13f49701e187a766a157498dcaafbc0
Diffstat (limited to 'test')
-rw-r--r--test/test_ip4.py1
-rw-r--r--test/test_mpls.py10
2 files changed, 8 insertions, 3 deletions
diff --git a/test/test_ip4.py b/test/test_ip4.py
index 873a38a22be..fb9b8faa769 100644
--- a/test/test_ip4.py
+++ b/test/test_ip4.py
@@ -1977,6 +1977,7 @@ class TestIPInput(VppTestCase):
self.assertEqual(icmptypes[icmp.type], "dest-unreach")
self.assertEqual(icmpcodes[icmp.type][icmp.code],
"fragmentation-needed")
+ self.assertEqual(icmp.nexthopmtu, 1500)
self.assertEqual(icmp.src, self.pg0.remote_ip4)
self.assertEqual(icmp.dst, self.pg1.remote_ip4)
diff --git a/test/test_mpls.py b/test/test_mpls.py
index d94676b67da..a568f849aed 100644
--- a/test/test_mpls.py
+++ b/test/test_mpls.py
@@ -17,7 +17,7 @@ from vpp_papi import VppEnum
import scapy.compat
from scapy.packet import Raw
from scapy.layers.l2 import Ether, ARP
-from scapy.layers.inet import IP, UDP, ICMP
+from scapy.layers.inet import IP, UDP, ICMP, icmptypes, icmpcodes
from scapy.layers.inet6 import IPv6, ICMPv6TimeExceeded, ICMPv6EchoRequest, \
ICMPv6PacketTooBig
from scapy.contrib.mpls import MPLS
@@ -961,7 +961,11 @@ class TestMPLS(VppTestCase):
rxs = self.send_and_expect_some(self.pg0, tx, self.pg0)
for rx in rxs:
- rx[ICMP].code = "fragmentation-needed"
+ self.assertEqual(icmptypes[rx[ICMP].type], "dest-unreach")
+ self.assertEqual(icmpcodes[rx[ICMP].type][rx[ICMP].code],
+ "fragmentation-needed")
+ # the link MTU is 9000, the MPLS over head is 4 bytes
+ self.assertEqual(rx[ICMP].nexthopmtu, 9000 - 4)
self.assertEqual(self.statistics.get_err_counter(
"/err/mpls-frag/can't fragment this packet"),
@@ -976,7 +980,7 @@ class TestMPLS(VppTestCase):
rxs = self.send_and_expect_some(self.pg0, tx, self.pg0)
for rx in rxs:
- rx[ICMPv6PacketTooBig].mtu = 9000
+ self.assertEqual(rx[ICMPv6PacketTooBig].mtu, 9000 - 4)
#
# cleanup