FD.io VPP  v21.01.1
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_api_ip6_nd_address_autoconfig_t_print   vl_noop_handler
 
#define PREFIX_FLAG_A   (1 << 6)
 
#define PREFIX_FLAG_L   (1 << 7)
 

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, const ip6_address_t *address, f64 due_time)
 
static void add_default_route (vlib_main_t *vm, u32 sw_if_index, const 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 u8 ip6_prefixes_equal (ip6_address_t *prefix1, ip6_address_t *prefix2, u8 len)
 
static void ip6_ra_report_handler (const ip6_ra_report_t *r)
 
static uword rd_cp_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
int rd_cp_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 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

◆ PREFIX_FLAG_A

#define PREFIX_FLAG_A   (1 << 6)

Definition at line 234 of file rd_cp.c.

◆ PREFIX_FLAG_L

#define PREFIX_FLAG_L   (1 << 7)

Definition at line 235 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 75 of file rd_cp.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
RD_CP_EVENT_INTERRUPT 

Definition at line 70 of file rd_cp.c.

Function Documentation

◆ add_default_route()

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

Definition at line 118 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,
const ip6_address_t *  address,
f64  due_time 
)
static

Definition at line 96 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 192 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 465 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 541 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 220 of file rd_cp.c.

+ Here is the caller graph for this function:

◆ ip6_ra_report_handler()

static void ip6_ra_report_handler ( const ip6_ra_report_t r)
static

Definition at line 238 of file rd_cp.c.

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

◆ rd_cp_init()

static clib_error_t* rd_cp_init ( vlib_main_t vm)
static

Definition at line 600 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 391 of file rd_cp.c.

+ Here is the call graph for this function:

◆ rd_cp_set_address_autoconfig()

int rd_cp_set_address_autoconfig ( u32  sw_if_index,
u8  enable,
u8  install_default_routes 
)

Definition at line 475 of file rd_cp.c.

+ Here is the call graph for this function:
+ Here is the caller 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 166 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 151 of file rd_cp.c.

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

◆ router_solicitation_start_stop()

static void router_solicitation_start_stop ( u32  sw_if_index,
u8  start 
)
static

Definition at line 78 of file rd_cp.c.

+ Here is the call graph for this function:
+ 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:541

(constructor) VLIB_CLI_COMMAND (ip6_nd_address_autoconfig_command)

Definition at line 592 of file rd_cp.c.

◆ rd_cp_main

rd_cp_main_t rd_cp_main

Definition at line 68 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:391

(constructor) VLIB_REGISTER_NODE (rd_cp_process_node)

Definition at line 457 of file rd_cp.c.