diff options
Diffstat (limited to 'ospf6d/ospf6_zebra.c')
| -rw-r--r-- | ospf6d/ospf6_zebra.c | 44 |
1 files changed, 7 insertions, 37 deletions
diff --git a/ospf6d/ospf6_zebra.c b/ospf6d/ospf6_zebra.c index 170d545c49..5403e643dc 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); @@ -130,38 +131,17 @@ void ospf6_zebra_no_redistribute(int type, vrf_id_t vrf_id) static int ospf6_zebra_if_address_update_add(ZAPI_CALLBACK_ARGS) { struct connected *c; - struct ospf6_interface *oi; - int ipv6_count = 0; c = zebra_interface_address_read(ZEBRA_INTERFACE_ADDRESS_ADD, zclient->ibuf, vrf_id); if (c == NULL) return 0; - oi = (struct ospf6_interface *)c->ifp->info; - if (oi == NULL) - oi = ospf6_interface_create(c->ifp); - assert(oi); - if (IS_OSPF6_DEBUG_ZEBRA(RECV)) zlog_debug("Zebra Interface address add: %s %5s %pFX", c->ifp->name, prefix_family_str(c->address), c->address); - ipv6_count = connected_count_by_family(c->ifp, AF_INET6); - if (oi->ifmtu == OSPF6_DEFAULT_MTU && ipv6_count > OSPF6_MAX_IF_ADDRS) { - zlog_warn( - "Zebra Interface : %s has too many interface addresses %d only support %d, increase MTU", - c->ifp->name, ipv6_count, OSPF6_MAX_IF_ADDRS); - return 0; - } else if (oi->ifmtu >= OSPF6_JUMBO_MTU - && ipv6_count > OSPF6_MAX_IF_ADDRS_JUMBO) { - zlog_warn( - "Zebra Interface : %s has too many interface addresses %d only support %d", - c->ifp->name, ipv6_count, OSPF6_MAX_IF_ADDRS_JUMBO); - return 0; - } - if (c->address->family == AF_INET6) { ospf6_interface_state_update(c->ifp); ospf6_interface_connected_route_update(c->ifp); @@ -193,16 +173,6 @@ static int ospf6_zebra_if_address_update_delete(ZAPI_CALLBACK_ARGS) return 0; } -static int is_prefix_default(struct prefix_ipv6 *p) -{ - struct prefix_ipv6 q = {}; - - q.family = AF_INET6; - q.prefixlen = 0; - - return prefix_same((struct prefix *)p, (struct prefix *)&q); -} - static int ospf6_zebra_read_route(ZAPI_CALLBACK_ARGS) { struct zapi_route api; @@ -238,7 +208,7 @@ static int ospf6_zebra_read_route(ZAPI_CALLBACK_ARGS) ifindex, api.tag); memcpy(&p, &api.prefix, sizeof(p)); - if (is_prefix_default(&p)) + if (is_default_prefix6(&p)) api.type = DEFAULT_ROUTE; if (cmd == ZEBRA_REDISTRIBUTE_ROUTE_ADD) |
