evpn rebase to HEAD

Pim van Pelt pim at ipng.ch
Tue Mar 10 20:23:29 CET 2026


Hoi,

I spoke too soon, the patch _does_ work; When writing the mail below, I 
did not restart bird2 on all machines, so some where using the old 
version and only one was using the new version. With Ondrej's fix in 
b0ff170f, I now see the correct IMET endpoints using BGP.next_hop.

However, the issue that only one such IMET makes it from evpntab to etab 
remains, I would expect three for each VNI.
Current route.all.txt attached to see the full picture.

groet,
Pim

On 10.03.2026 13:58, Pim van Pelt via Bird-users wrote:
> Hoi,
>
> On 05.03.2026 17:11, Ondrej Zajicek wrote:
>> show route eth 00:00:00:00:00:00 table etab2
> I have built a fresh bird2.18+oz-evpn including your latest b0ff170f.
> I still see only one entry in etab, while I am expecting three. I do 
> see three entries in evpntab.
>
> I've attached 'show route all' and 'bird-example.conf' with the 
> current vpp0-0 config, so you can take a look, but for me only one 
> imet route made it to etab.
> root at vpp0-0:/etc/bird# birdc show route eth 00:00:00:00:00:00 vlan 
> 100  all table etab
> BIRD 2.18+branch.oz.evpn.b0ff170fbc70 ready.
> Table etab:
> 00:00:00:00:00:00 vlan 100 mpls 10040 unicast [evpn1 18:23:48.761] * (80)
>         via 2001:678:d78:200::2 on vxlan0 mpls 10040
>         Type: EVPN univ
>         mpls_label: 10040
> root at vpp0-0:/etc/bird# birdc show route eth 00:00:00:00:00:00 vlan 
> 200  all table etab
> BIRD 2.18+branch.oz.evpn.b0ff170fbc70 ready.
> Table etab:
> 00:00:00:00:00:00 vlan 200 mpls 20040 unicast [evpn2 18:23:48.761] * (80)
>         via 192.168.10.2 on vxlan0 mpls 20040
>         Type: EVPN univ
>         mpls_label: 20040
>
> The only clear difference I see with your output is that I'm using vid 
> 100 and vid200 in the evpn protocol, and both evpn1 and evpn2 use the 
> same etab.
>
>> Look at the patch:
>>
>> https://gitlab.nic.cz/labs/bird/-/commit/b0ff170fbc70bfc978efe92257ca8b49dbdbaf92 
>>
> Patch does not work for me, I am expecting the VNI 20040 to be IPv4, 
> correctly copied into the PMSI attribute, but its BGP.next_hop are 
> IPv6 with this patch, I am expecting IPv4 BGP next hops:
>
> evpn imet 8298:200 0 192.168.10.3  [vpp0_3 18:23:36.312 from 
> 2001:678:d78:200::3] * (100) [i]
>         Type: BGP univ
>         BGP.origin: IGP
>         BGP.as_path:
>         BGP.next_hop: 2001:678:d78:200::3
>         BGP.local_pref: 100
>         BGP.ext_community: (rt, 8298, 20040) (generic, 0x30c0000, 0x8)
>         BGP.pmsi_tunnel: ingress-replication 192.168.10.3 mpls 20040
> evpn imet 8298:200 0 192.168.10.2  [vpp0_2 18:23:48.761 from 
> 2001:678:d78:200::2] * (100) [i]
>         Type: BGP univ
>         BGP.origin: IGP
>         BGP.as_path:
>         BGP.next_hop: 2001:678:d78:200::2
>         BGP.local_pref: 100
>         BGP.ext_community: (rt, 8298, 20040) (generic, 0x30c0000, 0x8)
>         BGP.pmsi_tunnel: ingress-replication 192.168.10.2 mpls 20040
> evpn imet 8298:200 0 192.168.10.1  [vpp0_1 18:23:39.764 from 
> 2001:678:d78:200::1] * (100) [i]
>         Type: BGP univ
>         BGP.origin: IGP
>         BGP.as_path:
>         BGP.next_hop: 2001:678:d78:200::1
>         BGP.local_pref: 100
>         BGP.ext_community: (rt, 8298, 20040) (generic, 0x30c0000, 0x8)
>         BGP.pmsi_tunnel: ingress-replication 192.168.10.1 mpls 20040
>
> (full route-table in route.all.txt)
>
> I built at commit b0ff170fbc70bfc978efe92257ca8b49dbdbaf92 (HEAD -> 
> oz-evpn, origin/oz-evpn)
>
> groet,
> Pim
>

-- 
Pim van Pelt <pim at ipng.ch>
PBVP1-RIPE https://ipng.ch/

-------------- next part --------------
BIRD 2.18+branch.oz.evpn.4be7a384d029 ready.
Table master4:
192.168.10.4/31      unicast [direct1 20:18:25.988] * (240)
	dev e0
	Type: device univ
                     unicast [ospf4 20:18:26.086] I (150/5) [192.168.10.0]
	dev e0
	Type: OSPF univ
	OSPF.metric1: 5
	OSPF.router_id: 192.168.10.0
192.168.10.0/32      unicast [direct1 20:18:25.988] * (240)
	dev loop0
	Type: device univ
                     unicast [ospf4 20:18:26.086] I (150/0) [192.168.10.0]
	dev loop0
	Type: OSPF univ
	OSPF.metric1: 0
	OSPF.router_id: 192.168.10.0
192.168.10.8/31      unicast [ospf4 20:18:42.087] * I (150/10) [192.168.10.1]
	via 192.168.10.7 on e1
	Type: OSPF univ
	OSPF.metric1: 10
	OSPF.router_id: 192.168.10.1
192.168.10.3/32      unicast [ospf4 20:18:50.087] * I (150/15) [192.168.10.3]
	via 192.168.10.7 on e1
	Type: OSPF univ
	OSPF.metric1: 15
	OSPF.router_id: 192.168.10.3
192.168.10.2/32      unicast [ospf4 20:18:46.087] * I (150/10) [192.168.10.2]
	via 192.168.10.7 on e1
	Type: OSPF univ
	OSPF.metric1: 10
	OSPF.router_id: 192.168.10.2
192.168.10.0/24      unreachable [static4 20:18:25.986] * (200)
	Type: static univ
                     unicast [ospf4 20:18:42.087] E2 (150/5/10000) [192.168.10.1]
	via 192.168.10.7 on e1
	Type: OSPF-E2 univ
	OSPF.metric1: 5
	OSPF.metric2: 10000
	OSPF.tag: 0x00000000
	OSPF.router_id: 192.168.10.1
192.168.10.6/31      unicast [direct1 20:18:25.988] * (240)
	dev e1
	Type: device univ
                     unicast [ospf4 20:18:26.086] I (150/5) [192.168.10.0]
	dev e1
	Type: OSPF univ
	OSPF.metric1: 5
	OSPF.router_id: 192.168.10.0
192.168.10.1/32      unicast [ospf4 20:18:42.087] * I (150/5) [192.168.10.1]
	via 192.168.10.7 on e1
	Type: OSPF univ
	OSPF.metric1: 5
	OSPF.router_id: 192.168.10.1
192.168.10.10/31     unicast [ospf4 20:18:46.087] * I (150/15) [192.168.10.2]
	via 192.168.10.7 on e1
	Type: OSPF univ
	OSPF.metric1: 15
	OSPF.router_id: 192.168.10.2

Table master6:
2001:678:d78:20f::3:0/112 unicast [ospf6 20:18:50.087] * I (150/25) [192.168.10.3]
	via fe80::5054:ff:fef0:1110 on e1
	Type: OSPF univ
	OSPF.metric1: 25
	OSPF.router_id: 192.168.10.3
2001:678:d78:20f::/112 unicast [direct1 20:18:25.988] * (240)
	dev loop0
	Type: device univ
                     unicast [ospf6 20:18:26.086] I (150/10) [192.168.10.0]
	dev loop0
	Type: OSPF univ
	OSPF.metric1: 10
	OSPF.router_id: 192.168.10.0
2001:678:d78:200::/128 unicast [direct1 20:18:25.988] * (240)
	dev loop0
	Type: device univ
                     unicast [ospf6 20:18:26.086] I (150/0) [192.168.10.0]
	dev loop0
	Type: OSPF univ
	OSPF.metric1: 0
	OSPF.router_id: 192.168.10.0
2001:678:d78:200::3/128 unicast [ospf6 20:18:50.087] * I (150/15) [192.168.10.3]
	via fe80::5054:ff:fef0:1110 on e1
	Type: OSPF univ
	OSPF.metric1: 15
	OSPF.router_id: 192.168.10.3
2001:678:d78:20f::1:0/112 unicast [ospf6 20:18:42.087] * I (150/15) [192.168.10.1]
	via fe80::5054:ff:fef0:1110 on e1
	Type: OSPF univ
	OSPF.metric1: 15
	OSPF.router_id: 192.168.10.1
2001:678:d78:201::2:0/112 unicast [ospf6 20:18:42.087] * I (150/10) [192.168.10.1]
	via fe80::5054:ff:fef0:1110 on e1
	Type: OSPF univ
	OSPF.metric1: 10
	OSPF.router_id: 192.168.10.1
2001:678:d78:201::3:0/112 unicast [ospf6 20:18:46.087] * I (150/15) [192.168.10.2]
	via fe80::5054:ff:fef0:1110 on e1
	Type: OSPF univ
	OSPF.metric1: 15
	OSPF.router_id: 192.168.10.2
2001:678:d78:200::2/128 unicast [ospf6 20:18:46.087] * I (150/10) [192.168.10.2]
	via fe80::5054:ff:fef0:1110 on e1
	Type: OSPF univ
	OSPF.metric1: 10
	OSPF.router_id: 192.168.10.2
2001:678:d78:201::/112 unicast [direct1 20:18:25.988] * (240)
	dev e0
	Type: device univ
                     unicast [ospf6 20:18:26.086] I (150/5) [192.168.10.0]
	dev e0
	Type: OSPF univ
	OSPF.metric1: 5
	OSPF.router_id: 192.168.10.0
2001:678:d78:200::/60 unreachable [static6 20:18:25.986] * (200)
	Type: static univ
                     unicast [ospf6 20:18:42.087] E2 (150/5/10000) [192.168.10.1]
	via fe80::5054:ff:fef0:1110 on e1
	Type: OSPF-E2 univ
	OSPF.metric1: 5
	OSPF.metric2: 10000
	OSPF.tag: 0x00000000
	OSPF.router_id: 192.168.10.1
2001:678:d78:201::1:0/112 unicast [direct1 20:18:25.988] * (240)
	dev e1
	Type: device univ
                     unicast [ospf6 20:18:26.086] I (150/5) [192.168.10.0]
	dev e1
	Type: OSPF univ
	OSPF.metric1: 5
	OSPF.router_id: 192.168.10.0
2001:678:d78:200::1/128 unicast [ospf6 20:18:42.087] * I (150/5) [192.168.10.1]
	via fe80::5054:ff:fef0:1110 on e1
	Type: OSPF univ
	OSPF.metric1: 5
	OSPF.router_id: 192.168.10.1
2001:678:d78:20f::2:0/112 unicast [ospf6 20:18:46.087] * I (150/20) [192.168.10.2]
	via fe80::5054:ff:fef0:1110 on e1
	Type: OSPF univ
	OSPF.metric1: 20
	OSPF.router_id: 192.168.10.2

Table etab:
00:00:00:00:00:00 vlan 200 mpls 20040 unicast [evpn2 20:18:51.089] * (80)
	via 192.168.10.3 on vxlan0 mpls 20040
	Type: EVPN univ
	mpls_label: 20040
00:00:02:00:00:01 vlan 200 prohibited [static1 20:18:25.986] * (200)
	Type: static univ
00:00:00:00:00:00 vlan 100 mpls 10040 unicast [evpn1 20:18:51.089] * (80)
	via 2001:678:d78:200::3 on vxlan0 mpls 10040
	Type: EVPN univ
	mpls_label: 10040
00:00:01:00:00:01 vlan 100 prohibited [static1 20:18:25.986] * (200)
	Type: static univ

Table evpntab:
evpn mac 8298:100 0 00:00:01:00:00:01 * mpls 10040  [evpn1 20:18:25.988] * (120)
	Type: EVPN univ
	mpls_label: 10040
	BGP.next_hop: 2001:678:d78:200::
	BGP.ext_community: (generic, 0x30c0000, 0x8) (rt, 8298, 10040)
	BGP.mpls_label_stack: 10040
evpn imet 8298:100 0 2001:678:d78:200::3  [vpp0_3 20:18:51.089 from 2001:678:d78:200::3] * (100) [i]
	Type: BGP univ
	BGP.origin: IGP
	BGP.as_path: 
	BGP.next_hop: 2001:678:d78:200::3
	BGP.local_pref: 100
	BGP.ext_community: (rt, 8298, 10040) (generic, 0x30c0000, 0x8)
	BGP.pmsi_tunnel: ingress-replication 2001:678:d78:200::3 mpls 10040
evpn imet 8298:100 0 2001:678:d78:200::2  [vpp0_2 20:18:47.901 from 2001:678:d78:200::2] * (100) [i]
	Type: BGP univ
	BGP.origin: IGP
	BGP.as_path: 
	BGP.next_hop: 2001:678:d78:200::2
	BGP.local_pref: 100
	BGP.ext_community: (rt, 8298, 10040) (generic, 0x30c0000, 0x8)
	BGP.pmsi_tunnel: ingress-replication 2001:678:d78:200::2 mpls 10040
evpn imet 8298:100 0 2001:678:d78:200::1  [vpp0_1 20:18:43.168 from 2001:678:d78:200::1] * (100) [i]
	Type: BGP univ
	BGP.origin: IGP
	BGP.as_path: 
	BGP.next_hop: 2001:678:d78:200::1
	BGP.local_pref: 100
	BGP.ext_community: (rt, 8298, 10040) (generic, 0x30c0000, 0x8)
	BGP.pmsi_tunnel: ingress-replication 2001:678:d78:200::1 mpls 10040
evpn imet 8298:100 0 2001:678:d78:200::  [evpn1 20:18:25.988] * (120)
	Type: EVPN univ
	BGP.next_hop: 2001:678:d78:200::
	BGP.ext_community: (generic, 0x30c0000, 0x8) (rt, 8298, 10040)
	BGP.pmsi_tunnel: ingress-replication 2001:678:d78:200:: mpls 10040
evpn mac 8298:200 0 00:00:02:00:00:01 * mpls 20040  [evpn2 20:18:25.988] * (120)
	Type: EVPN univ
	mpls_label: 20040
	BGP.next_hop: 192.168.10.0
	BGP.ext_community: (generic, 0x30c0000, 0x8) (rt, 8298, 20040)
	BGP.mpls_label_stack: 20040
evpn imet 8298:200 0 192.168.10.3  [vpp0_3 20:18:51.089 from 2001:678:d78:200::3] * (100) [i]
	Type: BGP univ
	BGP.origin: IGP
	BGP.as_path: 
	BGP.next_hop: 192.168.10.3
	BGP.local_pref: 100
	BGP.ext_community: (rt, 8298, 20040) (generic, 0x30c0000, 0x8)
	BGP.pmsi_tunnel: ingress-replication 192.168.10.3 mpls 20040
evpn imet 8298:200 0 192.168.10.2  [vpp0_2 20:18:47.901 from 2001:678:d78:200::2] * (100) [i]
	Type: BGP univ
	BGP.origin: IGP
	BGP.as_path: 
	BGP.next_hop: 192.168.10.2
	BGP.local_pref: 100
	BGP.ext_community: (rt, 8298, 20040) (generic, 0x30c0000, 0x8)
	BGP.pmsi_tunnel: ingress-replication 192.168.10.2 mpls 20040
evpn imet 8298:200 0 192.168.10.1  [vpp0_1 20:18:43.168 from 2001:678:d78:200::1] * (100) [i]
	Type: BGP univ
	BGP.origin: IGP
	BGP.as_path: 
	BGP.next_hop: 192.168.10.1
	BGP.local_pref: 100
	BGP.ext_community: (rt, 8298, 20040) (generic, 0x30c0000, 0x8)
	BGP.pmsi_tunnel: ingress-replication 192.168.10.1 mpls 20040
evpn imet 8298:200 0 192.168.10.0  [evpn2 20:18:25.988] * (120)
	Type: EVPN univ
	BGP.next_hop: 192.168.10.0
	BGP.ext_community: (generic, 0x30c0000, 0x8) (rt, 8298, 20040)
	BGP.pmsi_tunnel: ingress-replication 192.168.10.0 mpls 20040


More information about the Bird-users mailing list