summaryrefslogtreecommitdiff
path: root/proto/babel/babel.c
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2023-08-23 15:55:31 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2023-08-23 16:08:40 +0200
commite3c0eca95642a846ab65261424a51dd99d954017 (patch)
treee108f29222cd8b62a40f7b05360c05b9f34d3b9a /proto/babel/babel.c
parent5121101136cb80151a9361c63dc4822afeb44eef (diff)
Nest: Treat VRF interfaces as inside respective VRFs
Despite not having defined 'master interface', VRF interfaces should be treated as being inside respective VRFs. They behave as a loopback for respective VRFs. Treating the VRF interface as inside the VRF allows e.g. OSPF to pick up IP addresses defined on the VRF interface. For this, we also need to tell apart VRF interfaces and regular interfaces. Extend Netlink code to parse interface type and mark VRF interfaces with IF_VRF flag. Based on the patch from Erin Shepherd, thanks!
Diffstat (limited to 'proto/babel/babel.c')
-rw-r--r--proto/babel/babel.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/proto/babel/babel.c b/proto/babel/babel.c
index 7f0cca73..4187d258 100644
--- a/proto/babel/babel.c
+++ b/proto/babel/babel.c
@@ -2062,7 +2062,7 @@ babel_reconfigure_ifaces(struct babel_proto *p, struct babel_config *cf)
WALK_LIST(iface, iface_list)
{
- if (p->p.vrf_set && p->p.vrf != iface->master)
+ if (p->p.vrf_set && !if_in_vrf(iface, p->p.vrf))
continue;
if (!(iface->flags & IF_UP))