diff options
author | Philippe Guibert <philippe.guibert@6wind.com> | 2019-09-26 18:49:59 +0200 |
---|---|---|
committer | Philippe Guibert <philippe.guibert@6wind.com> | 2020-05-18 14:11:03 +0200 |
commit | 28254125d06f65cc4344b6156eec76a37ec6aede (patch) | |
tree | 61550bd2d0a769c2b7052713f2bc4fe0f813dc26 /lib/netns_linux.c | |
parent | zebra: across network namespace, vxlan remembers the link information (diff) | |
download | frr-28254125d06f65cc4344b6156eec76a37ec6aede.tar.xz frr-28254125d06f65cc4344b6156eec76a37ec6aede.zip |
zebra: importation of bgp evpn rt5 from vni with other netns
With vrf-lite mechanisms, it is possible to create layer 3 vnis by
creating a bridge interface in default vr, by creating a vxlan interface
that is attached to that bridge interface, then by moving the vxlan
interface to the wished vrf.
With vrf-netns mechanism, it is slightly different since bridged
interfaces can not be separated in different network namespaces. To make
it work, the setup consists in :
- creating a vxlan interface on default vrf.
- move the vxlan interface to the wished vrf ( with an other netns)
- create a bridge interface in the wished vrf
- attach the vxlan interface to that bridged interface
from that point, if BGP is enabled to advertise vnis in default vrf,
then vxlan interfaces are discovered appropriately in other vrfs,
provided that the link interface still resides in the vrf where l2vpn is
advertised.
to import ipv4 entries from a separate vrf, into the l2vpn, the
configuration of vni in the dedicated vrf + the advertisement of ipv4
entries in bgp vrf will import the entries in the bgp l2vpn.
the modification consists in parsing the vxlan interfaces in all network
namespaces, where the link resides in the same network namespace as the
bgp core instance where bgp l2vpn is enabled.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Diffstat (limited to 'lib/netns_linux.c')
-rw-r--r-- | lib/netns_linux.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/netns_linux.c b/lib/netns_linux.c index 98f359401..09a42b850 100644 --- a/lib/netns_linux.c +++ b/lib/netns_linux.c @@ -51,7 +51,7 @@ static struct ns *ns_lookup_name_internal(const char *name); RB_GENERATE(ns_head, ns, entry, ns_compare) -static struct ns_head ns_tree = RB_INITIALIZER(&ns_tree); +struct ns_head ns_tree = RB_INITIALIZER(&ns_tree); static struct ns *default_ns; static int ns_current_ns_fd; |