aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_mpls.py
diff options
context:
space:
mode:
authorNeale Ranns <neale@graphiant.com>2021-12-20 18:18:42 +0000
committerDamjan Marion <dmarion@me.com>2021-12-21 11:13:41 +0000
commit53962fbccb4612af41e3fbd913cc50be09d3b24a (patch)
treeb576686d35593d8e20b8f858eed4585ae3e8ff65 /test/test_mpls.py
parent3aa3d6d3f347784f3df5c164b3078bdc5e80e54a (diff)
fib: MPLS EOS chains built for attached prefixes should link to a lookup DPO
Type: fix Presently a local label associated with an attached or connected prefix will link to the glean. This is a problem since it will never use the adj-fibs that are installed for that attached prefix. Instead link the local label to a lookup in the table in which the attached link is bound. Signed-off-by: Neale Ranns <neale@graphiant.com> Change-Id: Iad49fb6168b9ba47216a9a52bd262363b49c3c43
Diffstat (limited to 'test/test_mpls.py')
-rw-r--r--test/test_mpls.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/test_mpls.py b/test/test_mpls.py
index 2b959e48fb6..34645a9fce1 100644
--- a/test/test_mpls.py
+++ b/test/test_mpls.py
@@ -1563,6 +1563,33 @@ class TestMPLS(VppTestCase):
VppMplsLabel(32),
VppMplsLabel(99)])
+ def test_attached(self):
+ """ Attach Routes with Local Label """
+
+ #
+ # test that if a local label is associated with an attached/connected
+ # prefix, that we can reach hosts in the prefix.
+ #
+ binding = VppMplsIpBind(self, 44,
+ self.pg0._local_ip4_subnet,
+ self.pg0.local_ip4_prefix_len)
+ binding.add_vpp_config()
+
+ tx = (Ether(src=self.pg1.remote_mac,
+ dst=self.pg1.local_mac) /
+ MPLS(label=44, ttl=64) /
+ IP(src=self.pg0.remote_ip4, dst=self.pg0.remote_ip4) /
+ UDP(sport=1234, dport=1234) /
+ Raw(b'\xa5' * 100))
+ rxs = self.send_and_expect(self.pg0, [tx], self.pg0)
+ for rx in rxs:
+ # if there's an ARP then the label is linked to the glean
+ # which is wrong.
+ self.assertFalse(rx.haslayer(ARP))
+ # it should be unicasted to the host
+ self.assertEqual(rx[Ether].dst, self.pg0.remote_mac)
+ self.assertEqual(rx[IP].dst, self.pg0.remote_ip4)
+
class TestMPLSDisabled(VppTestCase):
""" MPLS disabled """