|
static void | wc_nd_signal_report (wc_nd_report_t *r) |
|
static void | ra_signal_report (ra_report_t *r) |
|
ip6_address_t | ip6_neighbor_get_link_local_address (u32 sw_if_index) |
|
static int | vnet_nd_wc_publish (u32 sw_if_index, u8 *mac, ip6_address_t *ip6) |
| publish wildcard arp event More...
|
|
void | wc_nd_set_publisher_node (uword node_index, uword event_type) |
|
static int | ra_publish (ra_report_t *r) |
|
void | ra_set_publisher_node (uword node_index, uword event_type) |
|
static u8 * | format_ip6_neighbor_ip6_entry (u8 *s, va_list *va) |
|
static void | ip6_neighbor_adj_fib_remove (ip6_neighbor_t *n, u32 fib_index) |
|
static void | ip6_neighbor_set_unset_rpc_callback (ip6_neighbor_set_unset_rpc_args_t *a) |
|
static void | set_unset_ip6_neighbor_rpc (vlib_main_t *vm, u32 sw_if_index, ip6_address_t *a, u8 *link_layer_address, int is_add, int is_static, int is_no_fib_entry) |
|
static void | ip6_nbr_probe (ip_adjacency_t *adj) |
|
static void | ip6_nd_mk_complete (adj_index_t ai, ip6_neighbor_t *nbr) |
|
static void | ip6_nd_mk_incomplete (adj_index_t ai) |
|
static ip6_neighbor_t * | ip6_nd_find (u32 sw_if_index, const ip6_address_t *addr) |
|
static adj_walk_rc_t | ip6_nd_mk_complete_walk (adj_index_t ai, void *ctx) |
|
static adj_walk_rc_t | ip6_nd_mk_incomplete_walk (adj_index_t ai, void *ctx) |
|
static clib_error_t * | ip6_neighbor_sw_interface_up_down (vnet_main_t *vnm, u32 sw_if_index, u32 flags) |
|
| VNET_SW_INTERFACE_ADMIN_UP_DOWN_FUNCTION (ip6_neighbor_sw_interface_up_down) |
|
void | ip6_ethernet_update_adjacency (vnet_main_t *vnm, u32 sw_if_index, u32 ai) |
|
static void | ip6_neighbor_adj_fib_add (ip6_neighbor_t *n, u32 fib_index) |
|
static ip6_neighbor_t * | force_reuse_neighbor_entry (void) |
|
int | vnet_set_ip6_ethernet_neighbor (vlib_main_t *vm, u32 sw_if_index, ip6_address_t *a, u8 *link_layer_address, uword n_bytes_link_layer_address, int is_static, int is_no_fib_entry) |
|
int | vnet_unset_ip6_ethernet_neighbor (vlib_main_t *vm, u32 sw_if_index, ip6_address_t *a, u8 *link_layer_address, uword n_bytes_link_layer_address) |
|
static int | ip6_neighbor_sort (void *a1, void *a2) |
|
ip6_neighbor_t * | ip6_neighbors_pool (void) |
|
ip6_neighbor_t * | ip6_neighbors_entries (u32 sw_if_index) |
|
static clib_error_t * | show_ip6_neighbors (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static clib_error_t * | set_ip6_neighbor (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static_always_inline uword | icmp6_neighbor_solicitation_or_advertisement (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, uword is_solicitation) |
|
static void | ip6_neighbor_syslog (vlib_main_t *vm, int priority, char *fmt,...) |
|
clib_error_t * | call_ip6_neighbor_callbacks (void *data, _vnet_ip6_neighbor_function_list_elt_t *elt) |
|
static_always_inline uword | icmp6_router_solicitation (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
|
static_always_inline uword | icmp6_router_advertisement (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
|
static f64 | random_f64_from_to (f64 from, f64 to) |
|
static u8 | get_mac_address (u32 sw_if_index, u8 *address) |
|
static vlib_buffer_t * | create_buffer_for_rs (vlib_main_t *vm, ip6_radv_t *radv_info) |
|
static void | stop_sending_rs (vlib_main_t *vm, ip6_radv_t *ra) |
|
static bool | check_send_rs (vlib_main_t *vm, ip6_radv_t *radv_info, f64 current_time, f64 *due_time) |
|
static uword | send_rs_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f0) |
|
void | icmp6_send_router_solicitation (vlib_main_t *vm, u32 sw_if_index, u8 stop, icmp6_send_router_solicitation_params_t *params) |
|
static void | ip6_neighbor_add_mld_prefix (ip6_radv_t *radv_info, ip6_address_t *addr) |
| Add a multicast Address to the advertised MLD set. More...
|
|
static void | ip6_neighbor_del_mld_prefix (ip6_radv_t *radv_info, ip6_address_t *addr) |
| Delete a multicast Address from the advertised MLD set. More...
|
|
static void | ip6_neighbor_add_mld_grp (ip6_radv_t *a, ip6_multicast_address_scope_t scope, ip6_multicast_link_local_group_id_t group) |
| Add a multicast Address to the advertised MLD set. More...
|
|
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 More...
|
|
static void | ip6_neighbor_send_mldpv2_report (u32 sw_if_index) |
|
static uword | ip6_neighbor_process_timer_event (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
|
static uword | ip6_icmp_neighbor_discovery_event_process (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
|
static uword | icmp6_neighbor_solicitation (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
|
static uword | icmp6_neighbor_advertisement (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
|
static uword | ip6_discover_neighbor_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, int is_glean) |
|
static uword | ip6_discover_neighbor (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
|
static uword | ip6_glean (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
|
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) |
|
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) |
|
clib_error_t * | ip6_neighbor_cmd (vlib_main_t *vm, unformat_input_t *main_input, vlib_cli_command_t *cmd) |
|
static void | ip6_print_addrs (vlib_main_t *vm, u32 *addrs) |
|
static clib_error_t * | show_ip6_interface_cmd (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
clib_error_t * | disable_ip6_interface (vlib_main_t *vm, u32 sw_if_index) |
|
int | ip6_interface_enabled (vlib_main_t *vm, u32 sw_if_index) |
|
clib_error_t * | enable_ip6_interface (vlib_main_t *vm, u32 sw_if_index) |
|
int | ip6_get_ll_address (u32 sw_if_index, ip6_address_t *addr) |
|
static clib_error_t * | enable_ip6_interface_cmd (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static clib_error_t * | disable_ip6_interface_cmd (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
clib_error_t * | set_ip6_link_local_address (vlib_main_t *vm, u32 sw_if_index, ip6_address_t *address) |
|
clib_error_t * | set_ip6_link_local_address_cmd (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static void | ip6_neighbor_add_del_interface_address (ip6_main_t *im, uword opaque, u32 sw_if_index, ip6_address_t *address, u32 address_length, u32 if_address_index, u32 is_delete) |
| callback when an interface address is added or deleted More...
|
|
clib_error_t * | ip6_set_neighbor_limit (u32 neighbor_limit) |
|
static void | ip6_neighbor_table_bind (ip6_main_t *im, uword opaque, u32 sw_if_index, u32 new_fib_index, u32 old_fib_index) |
|
static clib_error_t * | ip6_neighbor_init (vlib_main_t *vm) |
|
void | vnet_register_ip6_neighbor_resolution_event (vnet_main_t *vnm, void *address_arg, uword node_index, uword type_opaque, uword data) |
|
int | vnet_add_del_ip6_nd_change_event (vnet_main_t *vnm, void *data_callback, u32 pid, void *address_arg, uword node_index, uword type_opaque, uword data, int is_add) |
|
int | vnet_ip6_nd_term (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_buffer_t *p0, ethernet_header_t *eth, ip6_header_t *ip, u32 sw_if_index, u16 bd_index) |
|
int | ip6_neighbor_proxy_add_del (u32 sw_if_index, ip6_address_t *addr, u8 is_del) |
|
static clib_error_t * | set_ip6_nd_proxy_cmd (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
void | ethernet_ndp_change_mac (u32 sw_if_index) |
|
void | send_ip6_na (vlib_main_t *vm, u32 sw_if_index) |
|
void | send_ip6_na_w_addr (vlib_main_t *vm, const ip6_address_t *ip6_addr, u32 sw_if_index) |
|
IPv6 Neighbor Adjacency and Neighbor Discovery.
The files contains the API and CLI code for managing IPv6 neighbor adjacency tables and neighbor discovery logic.
Definition in file ip6_neighbor.c.