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
This commit is contained in:

committed by
Damjan Marion

parent
3aa3d6d3f3
commit
53962fbccb
@ -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 """
|
||||
|
Reference in New Issue
Block a user