/* information about zebra. */
struct zclient *zclient = NULL;
-struct in_addr router_id_zebra;
-
/* Router-id update message from zebra. */
static int ospf6_router_id_update_zebra(int command, struct zclient *zclient,
zebra_size_t length, vrf_id_t vrf_id)
struct ospf6 *o = ospf6;
zebra_router_id_update_read(zclient->ibuf, &router_id);
- router_id_zebra = router_id.u.prefix4;
+
+ om6->zebra_router_id = router_id.u.prefix4.s_addr;
if (o == NULL)
return 0;
- if (o->router_id == 0)
- o->router_id = (u_int32_t)router_id_zebra.s_addr;
+ o->router_id_zebra = router_id.u.prefix4;
+ if (IS_OSPF6_DEBUG_ZEBRA(RECV)) {
+ char buf[INET_ADDRSTRLEN];
+
+ zlog_debug("%s: zebra router-id %s update",
+ __PRETTY_FUNCTION__,
+ inet_ntop(AF_INET, &router_id.u.prefix4,
+ buf, INET_ADDRSTRLEN));
+ }
+
+ ospf6_router_id_update();
return 0;
}
zlog_debug("Zebra Interface delete: %s index %d mtu %d",
ifp->name, ifp->ifindex, ifp->mtu6);
-#if 0
- /* XXX: ospf6_interface_if_del is not the right way to handle this,
- * because among other thinkable issues, it will also clear all
- * settings as they are contained in the struct ospf6_interface. */
- ospf6_interface_if_del (ifp);
-#endif /*0*/
-
- ifp->ifindex = IFINDEX_DELETED;
+ if_set_index(ifp, IFINDEX_INTERNAL);
return 0;
}
SHOW_STR
IPV6_STR
OSPF6_STR
- "Zebra information\n")
+ ZEBRA_STR)
{
int i;
if (zclient == NULL) {
{
int ret;
struct prefix_ipv6 p;
- u_char distance;
+ uint8_t distance;
struct route_node *rn;
struct ospf6_distance *odistance;
}
}
-u_char ospf6_distance_apply(struct prefix_ipv6 *p, struct ospf6_route * or)
+uint8_t ospf6_distance_apply(struct prefix_ipv6 *p, struct ospf6_route * or)
{
struct ospf6 *o;
void ospf6_zebra_init(struct thread_master *master)
{
/* Allocate zebra structure. */
- zclient = zclient_new(master);
- zclient_init(zclient, ZEBRA_ROUTE_OSPF6, 0);
+ zclient = zclient_new_notify(master, &zclient_options_default);
+ zclient_init(zclient, ZEBRA_ROUTE_OSPF6, 0, &ospf6d_privs);
zclient->zebra_connected = ospf6_zebra_connected;
zclient->router_id_update = ospf6_router_id_update_zebra;
zclient->interface_add = ospf6_zebra_if_add;