X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fip-neighbor%2Fip_neighbor.h;h=064569b56ce44c01647f6075f2bf0f2b2adae6aa;hb=e2fe09742;hp=cb384c5e2400384b30a2f858e0409eecafdb24f9;hpb=cbe25aab3be72154f2c706c39eeba6a77f34450f;p=vpp.git diff --git a/src/vnet/ip-neighbor/ip_neighbor.h b/src/vnet/ip-neighbor/ip_neighbor.h index cb384c5e240..064569b56ce 100644 --- a/src/vnet/ip-neighbor/ip_neighbor.h +++ b/src/vnet/ip-neighbor/ip_neighbor.h @@ -22,31 +22,30 @@ #include -void ip_neighbor_scan_enable_disable (ip_neighbor_scan_arg_t * arg); - /***** * APIs external modules can invoke on the neighbor subsystem */ extern ip_neighbor_t *ip_neighbor_get (index_t ipni); -extern int ip_neighbor_add (const ip46_address_t * ip, - ip46_type_t type, +extern int ip_neighbor_add (const ip_address_t * ip, const mac_address_t * mac, u32 sw_if_index, ip_neighbor_flags_t flags, u32 * stats_index); -extern int ip_neighbor_del (const ip46_address_t * ip, - ip46_type_t type, u32 sw_if_index); +extern int ip_neighbor_del (const ip_address_t * ip, u32 sw_if_index); + +extern int ip_neighbor_config (ip_address_family_t af, + u32 limit, u32 age, bool recycle); -extern int ip_neighbor_config (ip46_type_t type, u32 limit, u32 age, - bool recycle); +extern void ip_neighbor_del_all (ip_address_family_t af, u32 sw_if_index); typedef walk_rc_t (*ip_neighbor_walk_cb_t) (index_t ipni, void *ctx); -extern void ip_neighbor_walk (ip46_type_t type, +extern void ip_neighbor_walk (ip_address_family_t af, u32 sw_if_index, ip_neighbor_walk_cb_t fn, void *ctx); -extern const ip46_address_t *ip_neighbor_get_ip (const ip_neighbor_t * ipn); +extern const ip_address_t *ip_neighbor_get_ip (const ip_neighbor_t * ipn); +extern ip_address_family_t ip_neighbor_get_af (const ip_neighbor_t * ipn); extern const mac_address_t *ip_neighbor_get_mac (const ip_neighbor_t * ipn); extern const u32 ip_neighbor_get_sw_if_index (const ip_neighbor_t * ipn); @@ -54,18 +53,18 @@ extern void ip_neighbor_learn (const ip_neighbor_learn_t * l); extern void ip_neighbor_update (vnet_main_t * vnm, adj_index_t ai); -extern void ip_neighbor_advertise (vlib_main_t * vm, - ip46_type_t tyoe, - const ip46_address_t * addr, - u32 sw_if_index); extern void ip_neighbor_probe (const ip_adjacency_t * adj); -extern void ip_neighbor_probe_dst (const ip_adjacency_t * adj, +extern void ip_neighbor_probe_dst (u32 sw_if_index, + ip_address_family_t af, const ip46_address_t * ip); +extern void ip_neighbor_mark (ip_address_family_t af); +extern void ip_neighbor_sweep (ip_address_family_t af); + /** * From the watcher to the API to publish a new neighbor */ -extern void ip_neighbor_handle_event (const ip_neighbor_event_t * ipne); +extern void ip_neighbor_handle_event (ip_neighbor_event_t * ipne); /** * The set of function that vnet requires from the IP neighbour module. @@ -109,7 +108,7 @@ typedef struct ip_neighbor_vft_t_ ip6_neighbor_proxy_cfg_t inv_proxy6_del; } ip_neighbor_vft_t; -extern void ip_neighbor_register (ip46_type_t type, +extern void ip_neighbor_register (ip_address_family_t af, const ip_neighbor_vft_t * vft);