Setting bgp_next_hop in EVPN resets VNI

André Grüneberg andre.grueneberg at bcix.de
Thu May 28 16:29:36 CEST 2026


Hi all,

Yesterday I was partying that I was able to inject static MAC-IP routes
into EVPN on Bird 3.3.0 with the correct VNI using the mpls_label attribute.

The joy was disturbed today, when I tried to set a different bgp_next_hop
than the local host. As soon as I set the bgp_next_hop this forces the
VNI/mpls_label to be encoded as 0. While the local export table shows the
configured mpls_label, the remote side receives VNI=0.

>From reading the code, I suspect that
https://gitlab.nic.cz/labs/bird/-/blob/v3.3.0/proto/bgp/packets.c#L1321 is
triggering this behaviour. I have no real clue how to get values into
nhloc->labels (statically).

I found a workaround in explicitly setting next hop address in the BGP
protocol's evpn channel.

Yet my expectation would be that explicitly setting bgp_next_hop does not
have any influence on treating the VNI/mpls_label.

Abbreviated config:

evpn table t_evpn;
protocol static {
        evpn { table t_evpn; };
        route evpn mac 172.25.110.202:100 0 c0:12:34:56:78:9a 2001:db8::1
drop;
}

filter export_evpn {
        if ( net.evpn_type = NET_EVPN_MAC ) then {
                bgp_ext_community.add((generic, 0x30c0000, 0x8));
                bgp_ext_community.add((rt, 10, my_vlan));
                bgp_ext_community.add((generic, 0x6000000, 0x0));
                mpls_label = 100100;
                bgp_next_hop = 10.49.0.0;
        }
        accept;
}

protocol bgp core01 {
        local as my_asn;
        evpn {
                table t_evpn;
                import none;
                export filter export_evpn;
                next hop address 10.49.0.0;
        };
        neighbor 172.25.110.201 as my_asn;
}

With this configuration the VNI in outbound UPDATE is set to 0. Without
bgp_next_hop in the filter the BGP UPDATE contains VNI 100100.

Best wishes,
André

-- 
André Grüneberg, Managing Director
andre.grueneberg at bcix.de
+49 30 2332195 42

BCIX Management GmbH
Albrechtstr. 110
12103 Berlin
Germany

Geschäftsführer/Managing Directors: Jens Lietzmann, André Grüneberg
Handelsregister: Amtsgericht Charlottenburg, HRB 143581 B
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20260528/46219a1c/attachment.htm>


More information about the Bird-users mailing list