19 #ifndef included_ip6_neighbor_h 20 #define included_ip6_neighbor_h 41 u8 link_layer_address[8];
59 u8 suppress,
u8 managed,
u8 other,
60 u8 ll_option,
u8 send_unicast,
u8 cease,
61 u8 use_lifetime,
u32 lifetime,
62 u32 initial_count,
u32 initial_interval,
63 u32 max_interval,
u32 min_interval,
68 u8 use_default,
u32 val_lifetime,
69 u32 pref_lifetime,
u8 no_advertise,
70 u8 off_link,
u8 no_autoconfig,
71 u8 no_onlink,
u8 is_no);
84 const u8 * link_layer_address,
85 uword n_bytes_link_layer_address,
132 u8 router_address[16];
145 typedef struct _vnet_ip6_neighbor_function_list_elt
147 struct _vnet_ip6_neighbor_function_list_elt *next_ip6_neighbor_function;
149 } _vnet_ip6_neighbor_function_list_elt_t;
158 #define _VNET_IP6_NEIGHBOR_FUNCTION_DECL(f,tag) \ 160 static void __vnet_ip6_neighbor_function_init_##tag##_##f (void) \ 161 __attribute__((__constructor__)) ; \ 163 static void __vnet_ip6_neighbor_function_init_##tag##_##f (void) \ 165 ip6_neighbor_public_main_t * nm = &ip6_neighbor_public_main; \ 166 static _vnet_ip6_neighbor_function_list_elt_t init_function; \ 167 init_function.next_ip6_neighbor_function = nm->tag##_functions; \ 168 nm->tag##_functions = &init_function; \ 169 init_function.fp = (void *) &f; \ 172 static void __vnet_ip6_neighbor_function_deinit_##tag##_##f (void) \ 173 __attribute__((__destructor__)) ; \ 175 static void __vnet_ip6_neighbor_function_deinit_##tag##_##f (void) \ 177 ip6_neighbor_public_main_t * nm = &ip6_neighbor_public_main; \ 178 _vnet_ip6_neighbor_function_list_elt_t *next; \ 179 if (nm->tag##_functions->fp == (void *) &f) \ 181 nm->tag##_functions = \ 182 nm->tag##_functions->next_ip6_neighbor_function; \ 185 next = nm->tag##_functions; \ 186 while (next->next_ip6_neighbor_function) \ 188 if (next->next_ip6_neighbor_function->fp == (void *) &f) \ 190 next->next_ip6_neighbor_function = \ 191 next->next_ip6_neighbor_function->next_ip6_neighbor_function; \ 194 next = next->next_ip6_neighbor_function; \ 198 #define VNET_IP6_NEIGHBOR_RA_FUNCTION(f) \ 199 _VNET_IP6_NEIGHBOR_FUNCTION_DECL(f,ra_report) 202 _vnet_ip6_neighbor_function_list_elt_t
ip6_neighbor_t * ip6_neighbors_pool(void)
ip6_address_t ip6_neighbor_get_link_local_address(u32 sw_if_index)
ip6_neighbor_flags_t flags
int ip6_neighbor_ra_prefix(vlib_main_t *vm, u32 sw_if_index, ip6_address_t *prefix_addr, u8 prefix_len, u8 use_default, u32 val_lifetime, u32 pref_lifetime, u8 no_advertise, u8 off_link, u8 no_autoconfig, u8 no_onlink, u8 is_no)
void wc_nd_set_publisher_node(uword node_index, uword event_type)
void icmp6_send_router_solicitation(vlib_main_t *vm, u32 sw_if_index, u8 stop, icmp6_send_router_solicitation_params_t *params)
u32 time_in_msec_between_retransmitted_neighbor_solicitations
ip6_neighbor_public_main_t ip6_neighbor_public_main
int ip6_neighbor_ra_config(vlib_main_t *vm, u32 sw_if_index, u8 suppress, u8 managed, u8 other, u8 ll_option, u8 send_unicast, u8 cease, u8 use_lifetime, u32 lifetime, u32 initial_count, u32 initial_interval, u32 max_interval, u32 min_interval, u8 is_no)
u32 neighbor_reachable_time_in_msec
enum ip6_neighbor_flags_t_ ip6_neighbor_flags_t
u16 router_lifetime_in_sec
ra_report_prefix_info_t * prefixes
int vnet_unset_ip6_ethernet_neighbor(vlib_main_t *vm, u32 sw_if_index, const ip6_address_t *a)
int ip6_neighbor_proxy_add_del(u32 sw_if_index, ip6_address_t *addr, u8 is_add)
u32 ip6_neighbor_sw_interface_add_del(vnet_main_t *vnm, u32 sw_if_index, u32 is_add)
create and initialize router advertisement parameters with default values for this intfc ...
u32 fib_node_index_t
A typedef of a node index.
fib_node_index_t fib_entry_index
void vnet_register_ip6_neighbor_resolution_event(vnet_main_t *vnm, void *address_arg, uword node_index, uword type_opaque, uword data)
ip6_address_t ip6_address
clib_error_t * call_ip6_neighbor_callbacks(void *data, _vnet_ip6_neighbor_function_list_elt_t *elt)
int vnet_set_ip6_ethernet_neighbor(vlib_main_t *vm, u32 sw_if_index, const ip6_address_t *a, const u8 *link_layer_address, uword n_bytes_link_layer_address, int is_static, int is_no_fib_entry)
void ra_set_publisher_node(uword node_index, uword event_type)
clib_error_t * ip6_set_neighbor_limit(u32 neighbor_limit)
clib_error_t * ip6_neighbor_set_link_local_address(vlib_main_t *vm, u32 sw_if_index, ip6_address_t *address)
_vnet_ip6_neighbor_function_list_elt_t * ra_report_functions
ip6_neighbor_t * ip6_neighbors_entries(u32 sw_if_index)
ip6_address_t dst_address