diff options
| author | Igor Ryzhov <iryzhov@nfware.com> | 2021-06-29 18:10:41 +0300 |
|---|---|---|
| committer | mergify-bot <noreply@mergify.io> | 2021-07-23 09:13:24 +0000 |
| commit | 25e8a0160b9fbaa18fe9599dc68e767bae4ef143 (patch) | |
| tree | fff888ebd97d17039087d51aeb754f1525ee9615 | |
| parent | 381752f3679b43f53f5c72e91153729853930a3f (diff) | |
ospf6d: use per-vrf router id instead of one global
This code was not fully completed when adding support for VRFs.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
(cherry picked from commit 3c5122c5a7245f703bab3aec098a0f28822eb903)
| -rw-r--r-- | ospf6d/ospf6_top.c | 6 | ||||
| -rw-r--r-- | ospf6d/ospf6_top.h | 3 | ||||
| -rw-r--r-- | ospf6d/ospf6_zebra.c | 11 |
3 files changed, 10 insertions, 10 deletions
diff --git a/ospf6d/ospf6_top.c b/ospf6d/ospf6_top.c index c312b5d2ff..cd2413722d 100644 --- a/ospf6d/ospf6_top.c +++ b/ospf6d/ospf6_top.c @@ -563,7 +563,7 @@ void ospf6_router_id_update(struct ospf6 *ospf6) if (ospf6->router_id_static != 0) ospf6->router_id = ospf6->router_id_static; else - ospf6->router_id = om6->zebra_router_id; + ospf6->router_id = ospf6->router_id_zebra; } /* start ospf6 */ @@ -675,8 +675,8 @@ DEFUN(no_ospf6_router_id, } } o->router_id = 0; - if (o->router_id_zebra.s_addr) - o->router_id = (uint32_t)o->router_id_zebra.s_addr; + if (o->router_id_zebra) + o->router_id = o->router_id_zebra; return CMD_SUCCESS; } diff --git a/ospf6d/ospf6_top.h b/ospf6d/ospf6_top.h index e99ac1c387..d298fecb86 100644 --- a/ospf6d/ospf6_top.h +++ b/ospf6d/ospf6_top.h @@ -29,7 +29,6 @@ struct ospf6_master { struct list *ospf6; /* OSPFv3 thread master. */ struct thread_master *master; - in_addr_t zebra_router_id; }; /* ospf6->config_flags */ @@ -74,7 +73,7 @@ struct ospf6 { /* static router id */ in_addr_t router_id_static; - struct in_addr router_id_zebra; + in_addr_t router_id_zebra; /* start time */ struct timeval starttime; diff --git a/ospf6d/ospf6_zebra.c b/ospf6d/ospf6_zebra.c index 170d545c49..a7e15c68ae 100644 --- a/ospf6d/ospf6_zebra.c +++ b/ospf6d/ospf6_zebra.c @@ -90,15 +90,16 @@ static int ospf6_router_id_update_zebra(ZAPI_CALLBACK_ARGS) zebra_router_id_update_read(zclient->ibuf, &router_id); - om6->zebra_router_id = router_id.u.prefix4.s_addr; + if (IS_OSPF6_DEBUG_ZEBRA(RECV)) + zlog_debug("Zebra router-id update %pI4 vrf %s id %u", + &router_id.u.prefix4, ospf6_vrf_id_to_name(vrf_id), + vrf_id); + o = ospf6_lookup_by_vrf_id(vrf_id); if (o == NULL) return 0; - o->router_id_zebra = router_id.u.prefix4; - if (IS_OSPF6_DEBUG_ZEBRA(RECV)) - zlog_debug("%s: zebra router-id %pI4 update", __func__, - &router_id.u.prefix4); + o->router_id_zebra = router_id.u.prefix4.s_addr; ospf6_router_id_update(o); |
