EPVN MPLS label parsing error

William bird at is.unlawful.id.au
Fri Oct 10 23:46:00 CEST 2025


Hi Ondrej,

Thanks for the fast reply!  Just noticed the assorted typo's in the email.

On 10/10/2025 11:42 pm, Ondrej Zajicek wrote:

> On Fri, Oct 10, 2025 at 06:52:28PM +1100, William via Bird-users wrote:
>> Hi BIRDians,
>> Been tinkering with EPVN in (built from git on Debian 13.1) hooked into an
>> Arista vEOS-LAB network, with an IPv6 underlay.
> Hi
>
> I am glad to hear someone is playing with it. Do you use the 'evpn' branch?

Yes I'm using the evpn branch:

BIRD v2.13.1-161-gc5c9bd81-x ready.

>
>> Have all the BGP sessions up and running, pushing MACs and their next hops,
>> receiving traffic on the VXLAN interface, all good.
>>
>> But I'm not seeing the traffic coming out of the linux bridge to the
>> respective VLAN subinterface for processing.  Digging round I see this in
>> the bridge FDB:
>>
>> <snip>
>> 00:50:00:00:12:01 dev vxlan100 vlan 40 extern_learn master br1
>> 42:a5:d1:11:88:4b dev vxlan100 vlan 40 master br1 permanent
>> 42:a5:d1:11:88:4b dev vxlan100 master br1 permanent
>> 00:00:00:00:00:00 dev vxlan100 dst 2001:db8:ffff:1ad::403 vni 10040 self
>> extern_learn permanent
>> 00:50:00:00:12:01 dev vxlan100 dst 2001:db8:ffff:1ad::401 vni 627 self
>> extern_learn permanent
>>
>>
>> 627?  the VNI is 10040.
> Also note that on IMET route, the VNI is decoded correctly, only for
> MAC route it is decoded incorrectly.
>
>
>> Having a look at a packet dump of an EVPN update on the wire:
>> 18:21:59.434664 IP6 (class 0xc0, flowlabel 0x59dd9, hlim 3, next-header TCP
>> (6) payload length: 151) 2001:db8:ffff:1aa::1.40949 >
>> 2001:db8:ffff:1aa::501.179: Flags [P.], cksum 0x107d (correct), seq
>> 4225498746:4225498865, ack 3651948816, win 498, options [nop,nop,TS val
>> 3223710250 ecr 3856730090], length 119: BGP
>>          Update Message (2), length: 119
>>            Origin (1), length: 1, Flags [T]: IGP
>>              0x0000:  00
>>            AS Path (2), length: 10, Flags [T]: 4201003001 4201004001
>>              0x0000:  0202 fa66 37f9 fa66 3be1
>>            Multi-Protocol Reach NLRI (14), length: 56, Flags [OE]:
>>              AFI: VPLS (25), SAFI: EVPN (70)
>>              no AFI 25 / SAFI 70 decoder
>>              0x0000:  0019 4610 2001 0db8 ffff 01ad 0000 0000
>>              0x0010:  0000 0401 0002 2100 0200 0f51 e327 3800
>>              0x0020:  0000 0000 0000 0000 0000 0000 0030 fe40
>>              0x0030:  197e 2a79 0000 2738
>>            Extended Community (16), length: 16, Flags [OT]:
>>              target (0x0202), Flags [none]: 1004003:10040
>>              encapsulation (0x030c), Flags [none]: Tunnel type: VXLAN
>>              0x0000:  0202 000f 51e3 2738 030c 0000 0000 0008
>>
>> The RT there is showing correctly.
>>
>> Hang on... 627 HEX is 273... looks like the 2 bytes of the latter half of
>> the RT is being trimmed by 4 bits.
> First, note that the VNI is not decoded from RT, but from the MPLS field
> of Multi-Protocol Reach NLRI (14) - last 24 bits (00 2738). It is just a
> convention for RT to use the same value as VNI.
>
> IIRC there is a confusion about this field w.r.t. EVPN, as EVPN can use both
> MPLS and VXLAN as underlying transport, VXLAN VNIs are 24 bit long, but
> MPLS labels are 20 bit long and unfortunately padded from the LSB side.
> So it si read as MPLS label, ignoring the last four bits.

Gotta love standards!  So that brings an interesting side case I wouldn't have
thought of - the "usable" VNI range is trimmed due to this?

>
>> I couldn't get a hang of the code to try and ID where it's playing up so
>> sorry, no patch.
>>
>> Also, I'm not able to use 4-byte ASNs in the first part of the RT.  The docs
>> indicate that we should be able to, but the config barfs with out-of-range
>> (was trying to use 1005001 - a subset of the ASNs being used).
> In which context? From the config file below i see 'import target (rt, 1004001, 10040)',
> so 32bit ASN.

That was one of my typo's - I meant route descriptor, not route target.

>
>> Took a bit to work it all out based on a previous thread and the testing
>> config, but got there in the end, then found this :(
>>
>> If you're able to spin up a patch I can re-compile with it and test.
> Will look on both issues and make a fix, probably during weekend.
>
Thank you!

Regards,

William


-- 
This email has been checked for viruses by Avast antivirus software.
www.avast.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20251011/b82ae145/attachment.htm>


More information about the Bird-users mailing list