19 #ifndef included_ip6_neighbor_h 20 #define included_ip6_neighbor_h 54 u8 suppress,
u8 managed,
u8 other,
55 u8 ll_option,
u8 send_unicast,
u8 cease,
56 u8 use_lifetime,
u32 lifetime,
57 u32 initial_count,
u32 initial_interval,
58 u32 max_interval,
u32 min_interval,
63 u8 use_default,
u32 val_lifetime,
64 u32 pref_lifetime,
u8 no_advertise,
65 u8 off_link,
u8 no_autoconfig,
66 u8 no_onlink,
u8 is_no);
137 typedef struct _vnet_ip6_neighbor_function_list_elt
139 struct _vnet_ip6_neighbor_function_list_elt *next_ip6_neighbor_function;
141 } _vnet_ip6_neighbor_function_list_elt_t;
150 #define _VNET_IP6_NEIGHBOR_FUNCTION_DECL(f,tag) \ 152 static void __vnet_ip6_neighbor_function_init_##tag##_##f (void) \ 153 __attribute__((__constructor__)) ; \ 155 static void __vnet_ip6_neighbor_function_init_##tag##_##f (void) \ 157 ip6_neighbor_public_main_t * nm = &ip6_neighbor_public_main; \ 158 static _vnet_ip6_neighbor_function_list_elt_t init_function; \ 159 init_function.next_ip6_neighbor_function = nm->tag##_functions; \ 160 nm->tag##_functions = &init_function; \ 161 init_function.fp = (void *) &f; \ 164 static void __vnet_ip6_neighbor_function_deinit_##tag##_##f (void) \ 165 __attribute__((__destructor__)) ; \ 167 static void __vnet_ip6_neighbor_function_deinit_##tag##_##f (void) \ 169 ip6_neighbor_public_main_t * nm = &ip6_neighbor_public_main; \ 170 _vnet_ip6_neighbor_function_list_elt_t *next; \ 171 if (nm->tag##_functions->fp == (void *) &f) \ 173 nm->tag##_functions = \ 174 nm->tag##_functions->next_ip6_neighbor_function; \ 177 next = nm->tag##_functions; \ 178 while (next->next_ip6_neighbor_function) \ 180 if (next->next_ip6_neighbor_function->fp == (void *) &f) \ 182 next->next_ip6_neighbor_function = \ 183 next->next_ip6_neighbor_function->next_ip6_neighbor_function; \ 186 next = next->next_ip6_neighbor_function; \ 190 #define VNET_IP6_NEIGHBOR_RA_FUNCTION(f) \ 191 _VNET_IP6_NEIGHBOR_FUNCTION_DECL(f,ra_report) 194 _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)
int vnet_set_ip6_ethernet_neighbor(vlib_main_t *vm, u32 sw_if_index, const ip6_address_t *a, const mac_address_t *mac, ip_neighbor_flags_t flags)
vl_api_interface_index_t sw_if_index
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)
enum ip_neighbor_flags_t_ ip_neighbor_flags_t
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)
Aggregate type for a prefix.
u32 time_in_msec_between_retransmitted_neighbor_solicitations
ip6_address_t router_address
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
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)
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)
ip_neighbor_flags_t flags
_vnet_ip6_neighbor_function_list_elt_t * ra_report_functions
ip6_neighbor_t * ip6_neighbors_entries(u32 sw_if_index)