FD.io VPP  v19.01.3-6-g70449b9b9
Vector Packet Processing
rd_cp.c File Reference
+ Include dependency graph for rd_cp.c:

Go to the source code of this file.

Data Structures

struct  slaac_address_t
 
struct  default_route_t
 
struct  interface_config_t
 
struct  rd_cp_main_t
 

Macros

#define vl_typedefs   /* define message structures */
 
#define vl_endianfun   /* define message structures */
 
#define foreach_rd_cp_msg   _(IP6_ND_ADDRESS_AUTOCONFIG, ip6_nd_address_autoconfig)
 
#define vl_api_ip6_nd_address_autoconfig_t_print   vl_noop_handler
 
#define PREFIX_FLAG_A   (1 << 6)
 
#define PREFIX_FLAG_L   (1 << 7)
 
#define vl_msg_name_crc_list
 

Enumerations

enum  { RD_CP_EVENT_INTERRUPT }
 

Functions

static void router_solicitation_start_stop (u32 sw_if_index, u8 start)
 
static void interrupt_process (void)
 
static int add_slaac_address (vlib_main_t *vm, u32 sw_if_index, u8 address_length, ip6_address_t *address, f64 due_time)
 
static void add_default_route (vlib_main_t *vm, u32 sw_if_index, ip6_address_t *next_hop_address, f64 due_time)
 
static int remove_slaac_address (vlib_main_t *vm, slaac_address_t *slaac_address)
 
static void remove_default_route (vlib_main_t *vm, default_route_t *default_route)
 
static u32 get_interface_mac_address (u32 sw_if_index, u8 mac[])
 
static u32 ip6_enable (u32 sw_if_index)
 
static u8 ip6_prefixes_equal (ip6_address_t *prefix1, ip6_address_t *prefix2, u8 len)
 
static clib_error_tip6_ra_report_handler (void *data)
 
 VNET_IP6_NEIGHBOR_RA_FUNCTION (ip6_ra_report_handler)
 
static uword rd_cp_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
static int set_address_autoconfig (u32 sw_if_index, u8 enable, u8 install_default_routes)
 
static clib_error_tip6_nd_address_autoconfig (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static void vl_api_ip6_nd_address_autoconfig_t_handler (vl_api_ip6_nd_address_autoconfig_t *mp)
 
static void setup_message_id_table (api_main_t *am)
 
static clib_error_trd_cp_init (vlib_main_t *vm)
 

Variables

rd_cp_main_t rd_cp_main
 
vlib_node_registration_t rd_cp_process_node
 (constructor) VLIB_REGISTER_NODE (rd_cp_process_node) More...
 
static vlib_cli_command_t ip6_nd_address_autoconfig_command
 (constructor) VLIB_CLI_COMMAND (ip6_nd_address_autoconfig_command) More...
 

Macro Definition Documentation

◆ foreach_rd_cp_msg

#define foreach_rd_cp_msg   _(IP6_ND_ADDRESS_AUTOCONFIG, ip6_nd_address_autoconfig)

Definition at line 36 of file rd_cp.c.

◆ PREFIX_FLAG_A

#define PREFIX_FLAG_A   (1 << 6)

Definition at line 261 of file rd_cp.c.

◆ PREFIX_FLAG_L

#define PREFIX_FLAG_L   (1 << 7)

Definition at line 262 of file rd_cp.c.

◆ vl_api_ip6_nd_address_autoconfig_t_print

#define vl_api_ip6_nd_address_autoconfig_t_print   vl_noop_handler

Definition at line 91 of file rd_cp.c.

◆ vl_endianfun

#define vl_endianfun   /* define message structures */

Definition at line 30 of file rd_cp.c.

◆ vl_msg_name_crc_list

#define vl_msg_name_crc_list

Definition at line 641 of file rd_cp.c.

◆ vl_typedefs

#define vl_typedefs   /* define message structures */

Definition at line 26 of file rd_cp.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
RD_CP_EVENT_INTERRUPT 

Definition at line 86 of file rd_cp.c.

Function Documentation

◆ add_default_route()

static void add_default_route ( vlib_main_t vm,
u32  sw_if_index,
ip6_address_t next_hop_address,
f64  due_time 
)
static

Definition at line 134 of file rd_cp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ add_slaac_address()

static int add_slaac_address ( vlib_main_t vm,
u32  sw_if_index,
u8  address_length,
ip6_address_t address,
f64  due_time 
)
static

Definition at line 112 of file rd_cp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_interface_mac_address()

static u32 get_interface_mac_address ( u32  sw_if_index,
u8  mac[] 
)
static

Definition at line 208 of file rd_cp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ interrupt_process()

static void interrupt_process ( void  )
static

Definition at line 488 of file rd_cp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ip6_enable()

static u32 ip6_enable ( u32  sw_if_index)
static

Definition at line 236 of file rd_cp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ip6_nd_address_autoconfig()

static clib_error_t* ip6_nd_address_autoconfig ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 563 of file rd_cp.c.

+ Here is the call graph for this function:

◆ ip6_prefixes_equal()

static u8 ip6_prefixes_equal ( ip6_address_t prefix1,
ip6_address_t prefix2,
u8  len 
)
static

Definition at line 247 of file rd_cp.c.

◆ ip6_ra_report_handler()

static clib_error_t* ip6_ra_report_handler ( void *  data)
static

Definition at line 265 of file rd_cp.c.

+ Here is the call graph for this function:

◆ rd_cp_init()

static clib_error_t* rd_cp_init ( vlib_main_t vm)
static

Definition at line 654 of file rd_cp.c.

+ Here is the call graph for this function:

◆ rd_cp_process()

static uword rd_cp_process ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f 
)
static

Definition at line 422 of file rd_cp.c.

+ Here is the call graph for this function:

◆ remove_default_route()

static void remove_default_route ( vlib_main_t vm,
default_route_t default_route 
)
static

Definition at line 182 of file rd_cp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ remove_slaac_address()

static int remove_slaac_address ( vlib_main_t vm,
slaac_address_t slaac_address 
)
static

Definition at line 167 of file rd_cp.c.

+ Here is the call graph for this function:

◆ router_solicitation_start_stop()

static void router_solicitation_start_stop ( u32  sw_if_index,
u8  start 
)
static

Definition at line 94 of file rd_cp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ set_address_autoconfig()

static int set_address_autoconfig ( u32  sw_if_index,
u8  enable,
u8  install_default_routes 
)
static

Definition at line 498 of file rd_cp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setup_message_id_table()

static void setup_message_id_table ( api_main_t am)
static

Definition at line 646 of file rd_cp.c.

+ Here is the caller graph for this function:

◆ vl_api_ip6_nd_address_autoconfig_t_handler()

static void vl_api_ip6_nd_address_autoconfig_t_handler ( vl_api_ip6_nd_address_autoconfig_t mp)
static

Definition at line 621 of file rd_cp.c.

+ Here is the call graph for this function:

◆ VNET_IP6_NEIGHBOR_RA_FUNCTION()

VNET_IP6_NEIGHBOR_RA_FUNCTION ( ip6_ra_report_handler  )
+ Here is the caller graph for this function:

Variable Documentation

◆ ip6_nd_address_autoconfig_command

vlib_cli_command_t ip6_nd_address_autoconfig_command
static
Initial value:
= {
.path = "ip6 nd address autoconfig",
.short_help = "ip6 nd address autoconfig <interface> [default-route|disable]",
}
static clib_error_t * ip6_nd_address_autoconfig(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: rd_cp.c:563

(constructor) VLIB_CLI_COMMAND (ip6_nd_address_autoconfig_command)

Definition at line 613 of file rd_cp.c.

◆ rd_cp_main

rd_cp_main_t rd_cp_main

Definition at line 84 of file rd_cp.c.

◆ rd_cp_process_node

vlib_node_registration_t rd_cp_process_node
Initial value:
= {
.function = rd_cp_process,
.name = "rd-cp-process",
}
static uword rd_cp_process(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: rd_cp.c:422

(constructor) VLIB_REGISTER_NODE (rd_cp_process_node)

Definition at line 480 of file rd_cp.c.