Replace all post_url with Hugo ref blocks
This commit is contained in:
@ -14,11 +14,10 @@ performance and versatility. For those of us who have used Cisco IOS/XR devices,
|
||||
_ASR_ (aggregation service router), VPP will look and feel quite familiar as many of the approaches
|
||||
are shared between the two.
|
||||
|
||||
In the [[first article]({%post_url 2023-05-07-vpp-mpls-1 %})] of this series, I took a look at MPLS
|
||||
In the [[first article]({{< ref "2023-05-07-vpp-mpls-1" >}})] of this series, I took a look at MPLS
|
||||
in general, and how setting up static _Label Switched Paths_ can be done in VPP. A few details on
|
||||
special case labels (such as _Implicit Null_ which enabled the fabled _Penultimate Hop Popping_)
|
||||
were missing, so I took a good look at them in the [[second article]({% post_url
|
||||
2023-05-17-vpp-mpls-2 %})] of the series.
|
||||
were missing, so I took a good look at them in the [[second article]({{< ref "2023-05-17-vpp-mpls-2" >}})] of the series.
|
||||
|
||||
This was all just good fun but also allowed me to buy some time for
|
||||
[@vifino](https://chaos.social/@vifino) who has been implementing MPLS handling within the Linux
|
||||
@ -41,13 +40,13 @@ integrations, while using the Linux netlink subsystem feels easier from an end-u
|
||||
This is a technical deep dive into the implementation of MPLS in the Linux Control Plane plugin for
|
||||
VPP. If you haven't already, now is a good time to read up on the initial implementation of LCP:
|
||||
|
||||
* [[Part 1]({% post_url 2021-08-12-vpp-1 %})]: Punting traffic through TUN/TAP interfaces into Linux
|
||||
* [[Part 2]({% post_url 2021-08-13-vpp-2 %})]: Mirroring VPP interface configuration into Linux
|
||||
* [[Part 3]({% post_url 2021-08-15-vpp-3 %})]: Automatically creating sub-interfaces in Linux
|
||||
* [[Part 4]({% post_url 2021-08-25-vpp-4 %})]: Synchronize link state, MTU and addresses to Linux
|
||||
* [[Part 5]({% post_url 2021-09-02-vpp-5 %})]: Netlink Listener, synchronizing state from Linux to VPP
|
||||
* [[Part 6]({% post_url 2021-09-10-vpp-6 %})]: Observability with LibreNMS and VPP SNMP Agent
|
||||
* [[Part 7]({% post_url 2021-09-21-vpp-7 %})]: Productionizing and reference Supermicro fleet at IPng
|
||||
* [[Part 1]({{< ref "2021-08-12-vpp-1" >}})]: Punting traffic through TUN/TAP interfaces into Linux
|
||||
* [[Part 2]({{< ref "2021-08-13-vpp-2" >}})]: Mirroring VPP interface configuration into Linux
|
||||
* [[Part 3]({{< ref "2021-08-15-vpp-3" >}})]: Automatically creating sub-interfaces in Linux
|
||||
* [[Part 4]({{< ref "2021-08-25-vpp-4" >}})]: Synchronize link state, MTU and addresses to Linux
|
||||
* [[Part 5]({{< ref "2021-09-02-vpp-5" >}})]: Netlink Listener, synchronizing state from Linux to VPP
|
||||
* [[Part 6]({{< ref "2021-09-10-vpp-6" >}})]: Observability with LibreNMS and VPP SNMP Agent
|
||||
* [[Part 7]({{< ref "2021-09-21-vpp-7" >}})]: Productionizing and reference Supermicro fleet at IPng
|
||||
|
||||
To keep this writeup focused, I'll assume the anatomy of VPP plugins and the Linux Controlplane
|
||||
_Interface_ and _Netlink_ plugins are understood. That way, I can focus on the _changes_ needed for
|
||||
@ -102,7 +101,7 @@ bits and TTL, and these can be added to the route path in VPP by casting them to
|
||||
fib_mpls_label_t`. The last label in the stackwill have the S-bit set, so we can continue consuming these
|
||||
until we find that condition. The first patchset that plays around with these semantics is
|
||||
[[38702#2](https://gerrit.fd.io/r/c/vpp/+/38702/2)]. As you can see, MPLS is going to look very much
|
||||
like IPv4 and IPv6 route updates in [[previous work]({%post_url 2021-09-02-vpp-5 %})], in that they
|
||||
like IPv4 and IPv6 route updates in [[previous work]({{< ref "2021-09-02-vpp-5" >}})], in that they
|
||||
take the Netlink representation, rewrite them into VPP representation, and update the FIB.
|
||||
|
||||
Up until now, the Linux Controlplane netlink plugin understands only IPv4 and IPv6. So some
|
||||
@ -187,7 +186,7 @@ exit
|
||||
```
|
||||
|
||||
I configure _LDP_ here to prefer advertising locally connected routes as _MPLS Explicit NULL_, which I
|
||||
described in detail in the [[previous post]({% post_url 2023-05-17-vpp-mpls-2 %})]. It tells the
|
||||
described in detail in the [[previous post]({{< ref "2023-05-17-vpp-mpls-2" >}})]. It tells the
|
||||
penultimate router to send the router a packet as MPLS with label value 0,S=1 for IPv4 and value 2,S=1
|
||||
for IPv6, so that VPP knows imediately to decapsulate the packet and continue to IPv4/IPv6 forwarding.
|
||||
An alternative here is setting implicit-null, which instructs the router before this one to perform
|
||||
|
Reference in New Issue
Block a user