![]() |
FD.io VPP
v17.01.1-3-gc6833f8
Vector Packet Processing
|
IPv6 Neighbor Adjacency and Neighbor Discovery. More...
Include dependency graph for ip6_neighbor.c:Go to the source code of this file.
Data Structures | |
| struct | ip6_radv_prefix_t |
| struct | ip6_mldp_group_t |
| struct | ip6_radv_t |
| struct | pending_resolution_t |
| struct | ip6_neighbor_main_t |
| struct | ip6_neighbor_set_unset_rpc_args_t |
Macros | |
| #define | ETHER_MAC_ADDR_LEN 6 |
| #define | MIN_ADV_VALID_LIFETIME 7203 /* seconds */ |
| #define | DEF_ADV_VALID_LIFETIME 2592000 |
| #define | DEF_ADV_PREF_LIFETIME 604800 |
| #define | DEF_MAX_RADV_INTERVAL 200 |
| #define | DEF_MIN_RADV_INTERVAL .75 * DEF_MAX_RADV_INTERVAL |
| #define | DEF_CURR_HOP_LIMIT 64 |
| #define | DEF_DEF_RTR_LIFETIME 3 * DEF_MAX_RADV_INTERVAL |
| #define | MAX_DEF_RTR_LIFETIME 9000 |
| #define | MAX_INITIAL_RTR_ADVERT_INTERVAL 16 /* seconds */ |
| #define | MAX_INITIAL_RTR_ADVERTISEMENTS 3 /*transmissions */ |
| #define | MIN_DELAY_BETWEEN_RAS 3 /* seconds */ |
| #define | MAX_DELAY_BETWEEN_RAS 1800 /* seconds */ |
| #define | MAX_RA_DELAY_TIME .5 /* seconds */ |
| #define | IP6_NBR_MK_KEY(k, sw_if_index, addr) |
| #define | foreach_log_level |
Variables | |
| static ip6_neighbor_main_t | ip6_neighbor_main |
| static ip6_address_t | ip6a_zero |
| static vlib_cli_command_t | show_ip6_neighbors_command |
| (constructor) VLIB_CLI_COMMAND (show_ip6_neighbors_command) More... | |
| static vlib_cli_command_t | set_ip6_neighbor_command |
| (constructor) VLIB_CLI_COMMAND (set_ip6_neighbor_command) More... | |
| static char * | log_level_strings [] |
| static int | logmask = 1 << LOG_DEBUG |
| static vlib_node_registration_t | ip6_icmp_router_solicitation_node |
| (constructor) VLIB_REGISTER_NODE (ip6_icmp_router_solicitation_node) More... | |
| static vlib_node_registration_t | ip6_icmp_router_advertisement_node |
| (constructor) VLIB_REGISTER_NODE (ip6_icmp_router_advertisement_node) More... | |
| vlib_node_registration_t | ip6_icmp_neighbor_discovery_event_node |
| static vlib_node_registration_t | ip6_icmp_neighbor_solicitation_node |
| (constructor) VLIB_REGISTER_NODE (ip6_icmp_neighbor_solicitation_node) More... | |
| static vlib_node_registration_t | ip6_icmp_neighbor_advertisement_node |
| (constructor) VLIB_REGISTER_NODE (ip6_icmp_neighbor_advertisement_node) More... | |
| static vlib_cli_command_t | show_ip6_interface_command |
| (constructor) VLIB_CLI_COMMAND (show_ip6_interface_command) More... | |
| static vlib_cli_command_t | enable_ip6_interface_command |
| (constructor) VLIB_CLI_COMMAND (enable_ip6_interface_command) More... | |
| static vlib_cli_command_t | disable_ip6_interface_command |
| (constructor) VLIB_CLI_COMMAND (disable_ip6_interface_command) More... | |
| static vlib_cli_command_t | ip6_nd_command |
| (constructor) VLIB_CLI_COMMAND (ip6_nd_command) More... | |
| static vlib_cli_command_t | set_ip6_link_local_address_command |
| (constructor) VLIB_CLI_COMMAND (set_ip6_link_local_address_command) More... | |
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.
| #define DEF_ADV_PREF_LIFETIME 604800 |
Definition at line 60 of file ip6_neighbor.c.
| #define DEF_ADV_VALID_LIFETIME 2592000 |
Definition at line 59 of file ip6_neighbor.c.
| #define DEF_CURR_HOP_LIMIT 64 |
Definition at line 126 of file ip6_neighbor.c.
| #define DEF_DEF_RTR_LIFETIME 3 * DEF_MAX_RADV_INTERVAL |
Definition at line 127 of file ip6_neighbor.c.
| #define DEF_MAX_RADV_INTERVAL 200 |
Definition at line 124 of file ip6_neighbor.c.
| #define DEF_MIN_RADV_INTERVAL .75 * DEF_MAX_RADV_INTERVAL |
Definition at line 125 of file ip6_neighbor.c.
| #define ETHER_MAC_ADDR_LEN 6 |
Definition at line 36 of file ip6_neighbor.c.
| #define foreach_log_level |
Definition at line 1091 of file ip6_neighbor.c.
| #define IP6_NBR_MK_KEY | ( | k, | |
| sw_if_index, | |||
| addr | |||
| ) |
Definition at line 424 of file ip6_neighbor.c.
| #define MAX_DEF_RTR_LIFETIME 9000 |
Definition at line 128 of file ip6_neighbor.c.
| #define MAX_DELAY_BETWEEN_RAS 1800 /* seconds */ |
Definition at line 133 of file ip6_neighbor.c.
| #define MAX_INITIAL_RTR_ADVERT_INTERVAL 16 /* seconds */ |
Definition at line 130 of file ip6_neighbor.c.
| #define MAX_INITIAL_RTR_ADVERTISEMENTS 3 /*transmissions */ |
Definition at line 131 of file ip6_neighbor.c.
| #define MAX_RA_DELAY_TIME .5 /* seconds */ |
Definition at line 134 of file ip6_neighbor.c.
| #define MIN_ADV_VALID_LIFETIME 7203 /* seconds */ |
Definition at line 58 of file ip6_neighbor.c.
| #define MIN_DELAY_BETWEEN_RAS 3 /* seconds */ |
Definition at line 132 of file ip6_neighbor.c.
| Enumerator | |
|---|---|
| ICMP6_NEIGHBOR_SOLICITATION_NEXT_DROP | |
| ICMP6_NEIGHBOR_SOLICITATION_NEXT_REPLY | |
| ICMP6_NEIGHBOR_SOLICITATION_N_NEXT | |
Definition at line 852 of file ip6_neighbor.c.
| Enumerator | |
|---|---|
| ICMP6_ROUTER_SOLICITATION_NEXT_DROP | |
| ICMP6_ROUTER_SOLICITATION_NEXT_REPLY_RW | |
| ICMP6_ROUTER_SOLICITATION_NEXT_REPLY_TX | |
| ICMP6_ROUTER_SOLICITATION_N_NEXT | |
Definition at line 1147 of file ip6_neighbor.c.
| enum log_level_t |
| Enumerator | |
|---|---|
| foreach_log_level | |
Definition at line 1101 of file ip6_neighbor.c.
| clib_error_t* disable_ip6_interface | ( | vlib_main_t * | vm, |
| u32 | sw_if_index | ||
| ) |
Definition at line 3242 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
| clib_error_t* enable_ip6_interface | ( | vlib_main_t * | vm, |
| u32 | sw_if_index | ||
| ) |
Definition at line 3293 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
| void ethernet_ndp_change_mac | ( | u32 | sw_if_index | ) |
Definition at line 206 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
|
static |
| 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 | ||
| ) |
Definition at line 860 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:| static_always_inline uword icmp6_router_advertisement | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | node, | ||
| vlib_frame_t * | frame | ||
| ) |
| static_always_inline uword icmp6_router_solicitation | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | node, | ||
| vlib_frame_t * | frame | ||
| ) |
| void ip6_ethernet_update_adjacency | ( | vnet_main_t * | vnm, |
| u32 | sw_if_index, | ||
| u32 | ai | ||
| ) |
Definition at line 469 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
| int ip6_interface_enabled | ( | vlib_main_t * | vm, |
| u32 | sw_if_index | ||
| ) |
|
static |
Definition at line 333 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 432 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 401 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 451 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 411 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 461 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 3685 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:| clib_error_t* ip6_neighbor_cmd | ( | vlib_main_t * | vm, |
| unformat_input_t * | main_input, | ||
| vlib_cli_command_t * | cmd | ||
| ) |
|
static |
Definition at line 3794 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 2322 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:| 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 | ||
| ) |
Definition at line 2574 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:| 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 | ||
| ) |
Definition at line 2676 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
|
static |
Definition at line 690 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 702 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 1900 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
|
static |
Definition at line 1117 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:| ip6_neighbor_t* ip6_neighbors_entries | ( | u32 | sw_if_index | ) |
Definition at line 715 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 3030 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:| clib_error_t* ip6_set_neighbor_limit | ( | u32 | neighbor_limit | ) |
| clib_error_t* set_ip6_link_local_address | ( | vlib_main_t * | vm, |
| u32 | sw_if_index, | ||
| ip6_address_t * | address, | ||
| u8 | address_length | ||
| ) |
Definition at line 3582 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:| clib_error_t* set_ip6_link_local_address_cmd | ( | vlib_main_t * | vm, |
| unformat_input_t * | input, | ||
| vlib_cli_command_t * | cmd | ||
| ) |
|
static |
|
static |
Definition at line 315 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
|
static |
|
static |
Definition at line 272 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:| 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 | ||
| ) |
Definition at line 3878 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:| 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, | ||
| u8 | shg | ||
| ) |
Definition at line 3960 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void vnet_register_ip6_neighbor_resolution_event | ( | vnet_main_t * | vnm, |
| void * | address_arg, | ||
| uword | node_index, | ||
| uword | type_opaque, | ||
| uword | data | ||
| ) |
Definition at line 3848 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:| 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 | ||
| ) |
Definition at line 509 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:| VNET_SW_INTERFACE_ADMIN_UP_DOWN_FUNCTION | ( | ip6_neighbor_sw_interface_up_down | ) |
Here is the caller graph for this function:| 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 | ||
| ) |
Definition at line 646 of file ip6_neighbor.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
(constructor) VLIB_CLI_COMMAND (disable_ip6_interface_command)
Definition at line 3449 of file ip6_neighbor.c.
|
static |
(constructor) VLIB_CLI_COMMAND (enable_ip6_interface_command)
Definition at line 3410 of file ip6_neighbor.c.
|
static |
(constructor) VLIB_REGISTER_NODE (ip6_icmp_neighbor_advertisement_node)
Definition at line 2556 of file ip6_neighbor.c.
| vlib_node_registration_t ip6_icmp_neighbor_discovery_event_node |
Definition at line 2511 of file ip6_neighbor.c.
|
static |
(constructor) VLIB_REGISTER_NODE (ip6_icmp_neighbor_solicitation_node)
Definition at line 2538 of file ip6_neighbor.c.
|
static |
(constructor) VLIB_REGISTER_NODE (ip6_icmp_router_advertisement_node)
Definition at line 2495 of file ip6_neighbor.c.
|
static |
(constructor) VLIB_REGISTER_NODE (ip6_icmp_router_solicitation_node)
Definition at line 2302 of file ip6_neighbor.c.
|
static |
(constructor) VLIB_CLI_COMMAND (ip6_nd_command)
Definition at line 3573 of file ip6_neighbor.c.
|
static |
Definition at line 202 of file ip6_neighbor.c.
|
static |
Definition at line 203 of file ip6_neighbor.c.
|
static |
Definition at line 1108 of file ip6_neighbor.c.
|
static |
Definition at line 1114 of file ip6_neighbor.c.
|
static |
(constructor) VLIB_CLI_COMMAND (set_ip6_link_local_address_command)
Definition at line 3675 of file ip6_neighbor.c.
|
static |
(constructor) VLIB_CLI_COMMAND (set_ip6_neighbor_command)
Definition at line 844 of file ip6_neighbor.c.
|
static |
(constructor) VLIB_CLI_COMMAND (show_ip6_interface_command)
Definition at line 3233 of file ip6_neighbor.c.
|
static |
(constructor) VLIB_CLI_COMMAND (show_ip6_neighbors_command)
Definition at line 782 of file ip6_neighbor.c.