void bgp_zebra_init (struct thread_master *master) { zclient_num_connects = 0; /* Set default values. */ zclient = zclient_new (master); zclient_init (zclient, ZEBRA_ROUTE_BGP); zclient->zebra_connected = bgp_zebra_connected; zclient->router_id_update = bgp_router_id_update; zclient->interface_add = bgp_interface_add; zclient->interface_delete = bgp_interface_delete; zclient->interface_address_add = bgp_interface_address_add; zclient->interface_address_delete = bgp_interface_address_delete; zclient->ipv4_route_add = zebra_read_ipv4; zclient->ipv4_route_delete = zebra_read_ipv4; zclient->interface_up = bgp_interface_up; zclient->interface_down = bgp_interface_down; zclient->ipv6_route_add = zebra_read_ipv6; zclient->ipv6_route_delete = zebra_read_ipv6; zclient->nexthop_update = bgp_read_nexthop_update; bgp_nexthop_buf = stream_new(BGP_NEXTHOP_BUF_SIZE); bgp_ifindices_buf = stream_new(BGP_IFINDICES_BUF_SIZE); }
void bgp_zebra_init (void) { /* Set default values. */ zclient = zclient_new (); zclient_init (zclient, ZEBRA_ROUTE_BGP); zclient->router_id_update = bgp_router_id_update; zclient->interface_add = bgp_interface_add; zclient->interface_delete = bgp_interface_delete; zclient->interface_address_add = bgp_interface_address_add; zclient->interface_address_delete = bgp_interface_address_delete; zclient->ipv4_route_add = zebra_read_ipv4; zclient->ipv4_route_delete = zebra_read_ipv4; zclient->interface_up = bgp_interface_up; zclient->interface_down = bgp_interface_down; #ifdef HAVE_IPV6 zclient->ipv6_route_add = zebra_read_ipv6; zclient->ipv6_route_delete = zebra_read_ipv6; #endif /* HAVE_IPV6 */ /* Interface related init. */ if_init (); bgp_nexthop_buf = stream_new(BGP_NEXTHOP_BUF_SIZE); }
void rsvp_zebra_init () { /* Allocate zebra structure. */ zclient = zclient_new (); zclient_init (zclient, ZEBRA_ROUTE_RSVP); zclient->router_id_update = rsvp_router_id_update_zebra; zclient->interface_add = rsvp_interface_add; zclient->interface_delete = rsvp_interface_delete; zclient->interface_up = rsvp_interface_state_up; zclient->interface_down = rsvp_interface_state_down; zclient->interface_address_add = rsvp_interface_address_add; zclient->interface_address_delete = rsvp_interface_address_delete; zclient->ipv4_route_add = rsvp_zebra_read_ipv4; zclient->ipv4_route_delete = rsvp_zebra_read_ipv4; #if 0 zclient->te_link_add = te_zebra_read_link; zclient->te_link_delete = te_zebra_read_link; zclient->te_link_update = te_zebra_read_link; zclient->te_link_remote_update = te_zebra_read_remote_link; zclient->te_link2rtrid_add = te_zebra_read_link2rtrid; zclient->te_link2rtrid_delete = te_zebra_read_link2rtrid; zclient->te_nexthop_add = te_zebra_read_nexthop; zclient->te_nexthop_delete = te_zebra_read_nexthop; #endif zclient_redistribute (ZEBRA_REDISTRIBUTE_ADD, zclient, ZEBRA_ROUTE_TE); #if 0 rdb_igp_hello(); #endif }
/* Test zebra client main routine. */ int main (int argc, char **argv) { FILE *fp; if (argc == 1) usage_exit (); /* Establish connection to zebra. */ zclient = zclient_new (); zclient->enable = 1; #ifdef HAVE_TCP_ZEBRA zclient->sock = zclient_socket (); #else zclient->sock = zclient_socket_un (ZEBRA_SERV_PATH); #endif /* HAVE_TCP_ZEBRA */ /* Open simulation file. */ fp = fopen (argv[1], "r"); if (fp == NULL) { fprintf (stderr, "can't open %s\n", argv[1]); exit (1); } /* Do main work. */ zebra_sim (fp); sleep (100); fclose (fp); close (sock); return 0; }
void pim_zebra_init (struct thread_master *master, char *zebra_sock_path) { int i; if (zebra_sock_path) zclient_serv_path_set(zebra_sock_path); #ifdef HAVE_TCP_ZEBRA zlog_notice("zclient update contacting ZEBRA daemon at socket TCP %s,%d", "127.0.0.1", ZEBRA_PORT); #else zlog_notice("zclient update contacting ZEBRA daemon at socket UNIX %s", zclient_serv_path_get()); #endif /* Socket for receiving updates from Zebra daemon */ qpim_zclient_update = zclient_new (master); qpim_zclient_update->zebra_connected = pim_zebra_connected; qpim_zclient_update->router_id_update = pim_router_id_update_zebra; qpim_zclient_update->interface_add = pim_zebra_if_add; qpim_zclient_update->interface_delete = pim_zebra_if_del; qpim_zclient_update->interface_up = pim_zebra_if_state_up; qpim_zclient_update->interface_down = pim_zebra_if_state_down; qpim_zclient_update->interface_address_add = pim_zebra_if_address_add; qpim_zclient_update->interface_address_delete = pim_zebra_if_address_del; qpim_zclient_update->ipv4_route_add = redist_read_ipv4_route; qpim_zclient_update->ipv4_route_delete = redist_read_ipv4_route; zclient_init(qpim_zclient_update, ZEBRA_ROUTE_PIM); if (PIM_DEBUG_PIM_TRACE) { zlog_info("zclient_init cleared redistribution request"); } zassert(qpim_zclient_update->redist_default == ZEBRA_ROUTE_PIM); /* Request all redistribution */ for (i = 0; i < ZEBRA_ROUTE_MAX; i++) { if (i == qpim_zclient_update->redist_default) continue; vrf_bitmap_set(qpim_zclient_update->redist[i], VRF_DEFAULT); if (PIM_DEBUG_PIM_TRACE) { zlog_debug("%s: requesting redistribution for %s (%i)", __PRETTY_FUNCTION__, zebra_route_string(i), i); } } /* Request default information */ vrf_bitmap_set(qpim_zclient_update->default_information, VRF_DEFAULT); if (PIM_DEBUG_PIM_TRACE) { zlog_info("%s: requesting default information redistribution", __PRETTY_FUNCTION__); zlog_notice("%s: zclient update socket initialized", __PRETTY_FUNCTION__); } zassert(!qpim_zclient_lookup); qpim_zclient_lookup = zclient_lookup_new(); zassert(qpim_zclient_lookup); }
void rip_zclient_init(struct thread_master *master) { /* Set default value to the zebra client structure. */ zclient = zclient_new(master, &zclient_options_default); zclient_init(zclient, ZEBRA_ROUTE_RIP, 0, &ripd_privs); zclient->zebra_connected = rip_zebra_connected; zclient->interface_add = rip_interface_add; zclient->interface_delete = rip_interface_delete; zclient->interface_address_add = rip_interface_address_add; zclient->interface_address_delete = rip_interface_address_delete; zclient->interface_up = rip_interface_up; zclient->interface_down = rip_interface_down; zclient->interface_vrf_update = rip_interface_vrf_update; zclient->redistribute_route_add = rip_zebra_read_route; zclient->redistribute_route_del = rip_zebra_read_route; }
void sharp_zebra_init(void) { struct zclient_options opt = {.receive_notify = true}; zclient = zclient_new(master, &opt); zclient_init(zclient, ZEBRA_ROUTE_SHARP, 0, &sharp_privs); zclient->zebra_connected = zebra_connected; zclient->interface_add = interface_add; zclient->interface_delete = interface_delete; zclient->interface_up = interface_state_up; zclient->interface_down = interface_state_down; zclient->interface_address_add = interface_address_add; zclient->interface_address_delete = interface_address_delete; zclient->route_notify_owner = route_notify_owner; zclient->nexthop_update = sharp_nexthop_update; zclient->import_check_update = sharp_nexthop_update; }
void nhrp_zebra_init(void) { zebra_rib[AFI_IP] = route_table_init(); zebra_rib[AFI_IP6] = route_table_init(); zclient = zclient_new(master, &zclient_options_default); zclient->zebra_connected = nhrp_zebra_connected; zclient->interface_add = nhrp_interface_add; zclient->interface_delete = nhrp_interface_delete; zclient->interface_up = nhrp_interface_up; zclient->interface_down = nhrp_interface_down; zclient->interface_address_add = nhrp_interface_address_add; zclient->interface_address_delete = nhrp_interface_address_delete; zclient->redistribute_route_add = nhrp_route_read; zclient->redistribute_route_del = nhrp_route_read; zclient_init(zclient, ZEBRA_ROUTE_NHRP, 0, &nhrpd_privs); }
void sisis_zebra_init (void) { /* Set default values. */ zclient = zclient_new (); zclient_init (zclient, ZEBRA_ROUTE_BGP); zclient->router_id_update = NULL; zclient->interface_add = NULL; zclient->interface_delete = NULL; zclient->interface_address_add = NULL; zclient->interface_address_delete = NULL; zclient->ipv4_route_add = NULL; zclient->ipv4_route_delete = NULL; zclient->interface_up = NULL; zclient->interface_down = NULL; #ifdef HAVE_IPV6 zclient->ipv6_route_add = NULL; zclient->ipv6_route_delete = NULL; #endif /* HAVE_IPV6 */ }
void isis_zebra_init () { zclient = zclient_new (); zclient_init (zclient, ZEBRA_ROUTE_ISIS); zclient->router_id_update = isis_router_id_update_zebra; zclient->interface_add = isis_zebra_if_add; zclient->interface_delete = isis_zebra_if_del; zclient->interface_up = isis_zebra_if_state_up; zclient->interface_down = isis_zebra_if_state_down; zclient->interface_address_add = isis_zebra_if_address_add; zclient->interface_address_delete = isis_zebra_if_address_del; zclient->ipv4_route_add = isis_zebra_read_ipv4; zclient->ipv4_route_delete = isis_zebra_read_ipv4; #ifdef HAVE_IPV6 zclient->ipv6_route_add = isis_zebra_read_ipv6; zclient->ipv6_route_delete = isis_zebra_read_ipv6; #endif /* HAVE_IPV6 */ return; }
struct zclient *zclient_lookup_new() { struct zclient *zlookup; zlookup = zclient_new(); if (!zlookup) { zlog_err("%s: zclient_new() failure", __PRETTY_FUNCTION__); return 0; } zlookup->sock = -1; zlookup->ibuf = stream_new(ZEBRA_MAX_PACKET_SIZ); zlookup->obuf = stream_new(ZEBRA_MAX_PACKET_SIZ); zlookup->t_connect = 0; zclient_lookup_sched_now(zlookup); zlog_notice("%s: zclient lookup socket initialized", __PRETTY_FUNCTION__); return zlookup; }
void ldp_zebra_init() { pending_out_segment = list_new(); pending_ftn = list_new(); pending_ftn->del = pending_delete; pending_xc = list_new(); pending_xc->del = pending_delete; /* Allocate zebra structure. */ zclient = zclient_new(); zclient_init(zclient, ZEBRA_ROUTE_LDP); zclient->router_id_update = ldp_router_id_update_zebra; zclient->interface_add = ldp_interface_add; zclient->interface_delete = ldp_interface_deletez; zclient->interface_up = ldp_interface_state_up; zclient->interface_down = ldp_interface_state_down; zclient->interface_address_add = ldp_interface_address_add; zclient->interface_address_delete = ldp_interface_address_delete; zclient->ipv4_route_add = ldp_zebra_read_ipv4; zclient->ipv4_route_delete = ldp_zebra_read_ipv4; /* *zclient->ipv6_route_add = ldp_zebra_read_ipv6; *zclient->ipv6_route_delete = ldp_zebra_read_ipv6; */ zclient->mpls_xc_add = ldp_xc_read; zclient->mpls_xc_delete = ldp_xc_read; zclient->mpls_in_segment_add = ldp_in_segment_read; zclient->mpls_in_segment_delete = ldp_in_segment_read; zclient->mpls_out_segment_add = ldp_out_segment_read; zclient->mpls_out_segment_delete = ldp_out_segment_read; zclient->mpls_labelspace_add = ldp_labelspace_read; zclient->mpls_labelspace_delete = ldp_labelspace_read; zclient->mpls_ftn_add = ldp_ftn_read; zclient->mpls_ftn_delete = ldp_ftn_read; memset(&router_id, 0, sizeof(router_id)); }