]> git.proxmox.com Git - mirror_frr.git/commit - zebra/zebra_evpn.c
bgpd,zebra,lib: bgp evpn vni macip into two tables
authorStephen Worley <sworley@nvidia.com>
Tue, 26 Oct 2021 21:55:54 +0000 (17:55 -0400)
committerStephen Worley <sworley@nvidia.com>
Tue, 11 Oct 2022 20:18:21 +0000 (16:18 -0400)
commit852d9f97570045dc4186940d424c856995999fbb
treef00c5fd3f0777aaa1e5e8a0ccf55707fee671e23
parent36bac85c7f7b059818a8bc60c08e383369453750
bgpd,zebra,lib: bgp evpn vni macip into two tables

Re-work the bgp vni table to use separately keyed tables for type2
routes.

So, with type2 routes, we have the main table keyed off of the IP and a
new MAC table keyed off of MACs.

By separating out the two, we are able to run path selection separately
for the neigh and mac. Keeping the two separate is also more in-line
with what happens in zebra (they are managed comptletely seperate).

With this change type2 routes go into each table like so:

```
Remote MAC-IP -> IP Table & MAC Table
Remote MAC -> MAC Table

Local MAC-IP -> IP Table
Local MAC -> MAC Table
```

The difference for local is necessary because we should not ever allow
multiple paths for a local MAC.

Also cleaned up the commands for querying the vni tables:

```
show bgp vni all type ...
show bgp vni VNI type ...

```

Old commands will be deprecated in a separate commit.

Signed-off-by: Stephen Worley <sworley@nvidia.com>
12 files changed:
bgpd/bgp_evpn.c
bgpd/bgp_evpn_mh.c
bgpd/bgp_evpn_private.h
bgpd/bgp_evpn_vty.c
bgpd/bgp_evpn_vty.h
bgpd/bgp_route.h
lib/command.h
zebra/zebra_evpn.c
zebra/zebra_evpn_mac.c
zebra/zebra_evpn_mac.h
zebra/zebra_evpn_neigh.c
zebra/zebra_evpn_neigh.h