X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fadj%2Fadj_internal.h;h=380af46e22a1d647d346f2d0873cafd096d90323;hb=dea806da536b8f1b49af9a852441d5f772f14486;hp=3b7ddb2f10cd725879994cb563c721f54930a78d;hpb=c819fc612f9a79eaba2981dc2e8f7c31552db5ea;p=vpp.git diff --git a/src/vnet/adj/adj_internal.h b/src/vnet/adj/adj_internal.h index 3b7ddb2f10c..380af46e22a 100644 --- a/src/vnet/adj/adj_internal.h +++ b/src/vnet/adj/adj_internal.h @@ -31,16 +31,20 @@ /* * Debug macro */ -#ifdef ADJ_DEBUG -#define ADJ_DBG(_adj, _fmt, _args...) \ -{ \ - clib_warning("adj:[%d:%p]:" _fmt, \ - _adj - adj_pool, _adj, \ - ##_args); \ +extern vlib_log_class_t adj_logger; +#define ADJ_DBG(_adj, _fmt, _args...) \ +{ \ + vlib_log_debug(adj_logger, "adj:[%d:%p]:" _fmt, \ + _adj - adj_pool, _adj, \ + ##_args); \ } -#else -#define ADJ_DBG(_e, _fmt, _args...) -#endif + +/* + * Vlib nodes + */ +extern vlib_node_registration_t adj_nsh_midchain_node; +extern vlib_node_registration_t adj_nsh_rewrite_node; +extern vlib_node_registration_t adj_midchain_tx; static inline u32 adj_get_rewrite_node (vnet_link_t linkt) @@ -53,7 +57,7 @@ adj_get_rewrite_node (vnet_link_t linkt) case VNET_LINK_MPLS: return (mpls_output_node.index); case VNET_LINK_ETHERNET: - return (adj_l2_rewrite_node.index); + return (adj_l2_rewrite_node.index); case VNET_LINK_NSH: return (adj_nsh_rewrite_node.index); case VNET_LINK_ARP: @@ -98,7 +102,7 @@ adj_proto_to_46 (fib_protocol_t proto) * Get a pointer to an adjacency object from its index */ static inline adj_index_t -adj_get_index (ip_adjacency_t *adj) +adj_get_index (const ip_adjacency_t *adj) { return (adj - adj_pool); } @@ -120,11 +124,26 @@ extern void adj_nbr_remove(adj_index_t ai, vnet_link_t link_type, const ip46_address_t *nh_addr, u32 sw_if_index); -extern void adj_glean_remove(fib_protocol_t proto, - u32 sw_if_index); +extern u32 adj_nbr_get_n_adjs(vnet_link_t link_type, u32 sw_if_index); +extern void adj_glean_remove(ip_adjacency_t *adj); extern void adj_mcast_remove(fib_protocol_t proto, u32 sw_if_index); +extern void adj_midchain_teardown(ip_adjacency_t *adj); extern u32 adj_dpo_get_urpf(const dpo_id_t *dpo); +extern u16 adj_dpo_get_mtu(const dpo_id_t *dpo); + +/* + * Adj BFD + */ +extern int adj_bfd_is_up (adj_index_t ai); + +/* + * Adj delegates + */ +extern void adj_delegate_adj_deleted(ip_adjacency_t *adj); +extern void adj_delegate_adj_created(ip_adjacency_t *adj); +extern void adj_delegate_adj_modified(ip_adjacency_t *adj); +extern u8* adj_delegate_format(u8* s, ip_adjacency_t *adj); #endif