FD.io VPP  v17.01.1-3-gc6833f8
Vector Packet Processing
proxy_node.c File Reference
+ Include dependency graph for proxy_node.c:

Go to the source code of this file.

Data Structures

struct  dhcpv6_proxy_trace_t
 

Macros

#define dhcpv6_proxy_error(n, s)   s,
 
#define foreach_dhcpv6_proxy_to_server_input_next
 

Enumerations

enum  dhcpv6_proxy_to_server_input_next_t { DHCPV6_PROXY_TO_SERVER_INPUT_N_NEXT }
 

Functions

u8format_dhcpv6_proxy_trace (u8 *s, va_list *args)
 
u8format_dhcpv6_proxy_header_with_length (u8 *s, va_list *args)
 
static ip6_address_tip6_interface_first_global_or_site_address (ip6_main_t *im, u32 sw_if_index)
 
static ip6_address_tip6_interface_first_address (ip6_main_t *im, u32 sw_if_index)
 
static void copy_ip6_address (ip6_address_t *dst, ip6_address_t *src)
 
static uword dhcpv6_proxy_to_server_input (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
static uword dhcpv6_proxy_to_client_input (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
clib_error_tdhcpv6_proxy_init (vlib_main_t *vm)
 
int dhcpv6_proxy_set_server (ip6_address_t *addr, ip6_address_t *src_address, u32 fib_id, int insert_vss, int is_del)
 
int dhcpv6_proxy_set_server_2 (ip6_address_t *addr, ip6_address_t *src_address, u32 rx_fib_id, u32 server_fib_id, int insert_vss, int is_del)
 
static clib_error_tdhcpv6_proxy_set_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
u8format_dhcpv6_proxy_server (u8 *s, va_list *args)
 
static clib_error_tdhcpv6_proxy_show_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
int dhcpv6_proxy_set_vss (u32 tbl_id, u32 oui, u32 fib_id, int is_del)
 
static clib_error_tdhcpv6_vss_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tdhcpv6_vss_show_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tdhcpv6_link_address_show_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 

Variables

static char * dhcpv6_proxy_error_strings []
 
vlib_node_registration_t dhcpv6_proxy_to_server_node
 (constructor) VLIB_REGISTER_NODE (dhcpv6_proxy_to_server_node) More...
 
vlib_node_registration_t dhcpv6_proxy_to_client_node
 (constructor) VLIB_REGISTER_NODE (dhcpv6_proxy_to_client_node) More...
 
static vlib_cli_command_t dhcpv6_proxy_set_command
 (constructor) VLIB_CLI_COMMAND (dhcpv6_proxy_set_command) More...
 
static vlib_cli_command_t dhcpv6_proxy_show_command
 (constructor) VLIB_CLI_COMMAND (dhcpv6_proxy_show_command) More...
 
static vlib_cli_command_t dhcpv6_proxy_vss_command
 (constructor) VLIB_CLI_COMMAND (dhcpv6_proxy_vss_command) More...
 
static vlib_cli_command_t dhcpv6_proxy_vss_show_command
 (constructor) VLIB_CLI_COMMAND (dhcpv6_proxy_vss_show_command) More...
 
static vlib_cli_command_t dhcpv6_proxy_address_show_command
 (constructor) VLIB_CLI_COMMAND (dhcpv6_proxy_address_show_command) More...
 

Macro Definition Documentation

#define dhcpv6_proxy_error (   n,
 
)    s,
#define foreach_dhcpv6_proxy_to_server_input_next
Value:
_ (DROP, "error-drop") \
_ (LOOKUP, "ip6-lookup") \
_ (SEND_TO_CLIENT, "dhcpv6-proxy-to-client")
DROP
Definition: error.def:41

Definition at line 29 of file proxy_node.c.

Enumeration Type Documentation

Enumerator
DHCPV6_PROXY_TO_SERVER_INPUT_N_NEXT 

Definition at line 35 of file proxy_node.c.

Function Documentation

static void copy_ip6_address ( ip6_address_t dst,
ip6_address_t src 
)
inlinestatic

Definition at line 129 of file proxy_node.c.

+ Here is the caller graph for this function:

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

Definition at line 1153 of file proxy_node.c.

+ Here is the call graph for this function:

clib_error_t* dhcpv6_proxy_init ( vlib_main_t vm)

Definition at line 768 of file proxy_node.c.

+ Here is the call graph for this function:

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

Definition at line 884 of file proxy_node.c.

+ Here is the call graph for this function:

int dhcpv6_proxy_set_server ( ip6_address_t addr,
ip6_address_t src_address,
u32  fib_id,
int  insert_vss,
int  is_del 
)

Definition at line 805 of file proxy_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int dhcpv6_proxy_set_server_2 ( ip6_address_t addr,
ip6_address_t src_address,
u32  rx_fib_id,
u32  server_fib_id,
int  insert_vss,
int  is_del 
)

Definition at line 813 of file proxy_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int dhcpv6_proxy_set_vss ( u32  tbl_id,
u32  oui,
u32  fib_id,
int  is_del 
)

Definition at line 1012 of file proxy_node.c.

+ Here is the caller graph for this function:

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

Definition at line 980 of file proxy_node.c.

+ Here is the call graph for this function:

static uword dhcpv6_proxy_to_client_input ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t from_frame 
)
static

Definition at line 505 of file proxy_node.c.

+ Here is the call graph for this function:

static uword dhcpv6_proxy_to_server_input ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t from_frame 
)
static

Definition at line 137 of file proxy_node.c.

+ Here is the call graph for this function:

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

Definition at line 1061 of file proxy_node.c.

+ Here is the call graph for this function:

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

Definition at line 1121 of file proxy_node.c.

+ Here is the call graph for this function:

u8* format_dhcpv6_proxy_header_with_length ( u8 s,
va_list *  args 
)

Definition at line 76 of file proxy_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_dhcpv6_proxy_server ( u8 s,
va_list *  args 
)

Definition at line 947 of file proxy_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_dhcpv6_proxy_trace ( u8 s,
va_list *  args 
)

Definition at line 55 of file proxy_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static ip6_address_t* ip6_interface_first_address ( ip6_main_t im,
u32  sw_if_index 
)
static

Definition at line 113 of file proxy_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static ip6_address_t* ip6_interface_first_global_or_site_address ( ip6_main_t im,
u32  sw_if_index 
)
static

Definition at line 92 of file proxy_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

vlib_cli_command_t dhcpv6_proxy_address_show_command
static
Initial value:
= {
.path = "show dhcpv6 link-address interface",
.short_help = "show dhcpv6 link-address interface <interface>",
}
static clib_error_t * dhcpv6_link_address_show_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: proxy_node.c:1153

(constructor) VLIB_CLI_COMMAND (dhcpv6_proxy_address_show_command)

Definition at line 1191 of file proxy_node.c.

char* dhcpv6_proxy_error_strings[]
static
Initial value:
= {
#define dhcpv6_proxy_error(n,s)
dhcpv6_proxy_error (NONE, "no error")
dhcpv6_proxy_error (NO_SERVER, "no dhcpv6 server configured")
dhcpv6_proxy_error (RELAY_TO_SERVER, "DHCPV6 packets relayed to the server")
dhcpv6_proxy_error (RELAY_TO_CLIENT, "DHCPV6 packets relayed to clients")
dhcpv6_proxy_error (NO_INTERFACE_ADDRESS, "DHCPV6 no interface address")
dhcpv6_proxy_error (WRONG_MESSAGE_TYPE, "DHCPV6 wrong message type.")
dhcpv6_proxy_error (NO_SRC_ADDRESS, "DHCPV6 no srouce IPv6 address configured.")
dhcpv6_proxy_error (NO_CIRCUIT_ID_OPTION, "DHCPv6 reply packets without circuit ID option")
dhcpv6_proxy_error (NO_RELAY_MESSAGE_OPTION, "DHCPv6 reply packets without relay message option")
dhcpv6_proxy_error (BAD_SVR_FIB_OR_ADDRESS, "DHCPv6 packets not from DHCPv6 server or server FIB.")
dhcpv6_proxy_error (PKT_TOO_BIG, "DHCPv6 packets which are too big.")
dhcpv6_proxy_error (WRONG_INTERFACE_ID_OPTION, "DHCPv6 reply to invalid interface.")
}
bad routing header type(not 4)") sr_error (NO_MORE_SEGMENTS
#define dhcpv6_proxy_error(n, s)

Definition at line 23 of file proxy_node.c.

vlib_cli_command_t dhcpv6_proxy_set_command
static
Initial value:
= {
.path = "set dhcpv6 proxy",
.short_help = "set dhcpv6 proxy [del] server <ipv6-addr> src-address <ipv6-addr> "
"[add-vss-option] [server-fib-id <fib-id>] [rx-fib-id <fib-id>] ",
}
static clib_error_t * dhcpv6_proxy_set_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: proxy_node.c:884

(constructor) VLIB_CLI_COMMAND (dhcpv6_proxy_set_command)

Definition at line 940 of file proxy_node.c.

vlib_cli_command_t dhcpv6_proxy_show_command
static
Initial value:
= {
.path = "show dhcpv6 proxy",
.short_help = "Display dhcpv6 proxy info",
}
static clib_error_t * dhcpv6_proxy_show_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: proxy_node.c:980

(constructor) VLIB_CLI_COMMAND (dhcpv6_proxy_show_command)

Definition at line 1006 of file proxy_node.c.

vlib_node_registration_t dhcpv6_proxy_to_client_node
Initial value:
= {
.name = "dhcpv6-proxy-to-client",
.vector_size = sizeof (u32),
.n_errors = DHCPV6_PROXY_N_ERROR,
.error_strings = dhcpv6_proxy_error_strings,
.format_trace = format_dhcpv6_proxy_trace,
}
u8 * format_dhcpv6_proxy_header_with_length(u8 *s, va_list *args)
Definition: proxy_node.c:76
unsigned int u32
Definition: types.h:88
u8 * format_dhcpv6_proxy_trace(u8 *s, va_list *args)
Definition: proxy_node.c:55
static char * dhcpv6_proxy_error_strings[]
Definition: proxy_node.c:23
static uword dhcpv6_proxy_to_client_input(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
Definition: proxy_node.c:505

(constructor) VLIB_REGISTER_NODE (dhcpv6_proxy_to_client_node)

Definition at line 52 of file proxy_node.c.

vlib_node_registration_t dhcpv6_proxy_to_server_node
Initial value:
= {
.name = "dhcpv6-proxy-to-server",
.vector_size = sizeof (u32),
.n_errors = DHCPV6_PROXY_N_ERROR,
.error_strings = dhcpv6_proxy_error_strings,
.next_nodes = {
#define _(s,n)
},
.format_trace = format_dhcpv6_proxy_trace,
}
static uword dhcpv6_proxy_to_server_input(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
Definition: proxy_node.c:137
u8 * format_dhcpv6_proxy_header_with_length(u8 *s, va_list *args)
Definition: proxy_node.c:76
unsigned int u32
Definition: types.h:88
u8 * format_dhcpv6_proxy_trace(u8 *s, va_list *args)
Definition: proxy_node.c:55
#define foreach_dhcpv6_proxy_to_server_input_next
Definition: proxy_node.c:29
static char * dhcpv6_proxy_error_strings[]
Definition: proxy_node.c:23

(constructor) VLIB_REGISTER_NODE (dhcpv6_proxy_to_server_node)

Definition at line 51 of file proxy_node.c.

vlib_cli_command_t dhcpv6_proxy_vss_command
static
Initial value:
= {
.path = "set dhcpv6 vss",
.short_help = "set dhcpv6 vss table <table-id> oui <oui> vpn-idx <vpn-idx>",
.function = dhcpv6_vss_command_fn,
}
static clib_error_t * dhcpv6_vss_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: proxy_node.c:1061

(constructor) VLIB_CLI_COMMAND (dhcpv6_proxy_vss_command)

Definition at line 1114 of file proxy_node.c.

vlib_cli_command_t dhcpv6_proxy_vss_show_command
static
Initial value:
= {
.path = "show dhcpv6 vss",
.short_help = "show dhcpv6 VSS",
}
static clib_error_t * dhcpv6_vss_show_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: proxy_node.c:1121

(constructor) VLIB_CLI_COMMAND (dhcpv6_proxy_vss_show_command)

Definition at line 1146 of file proxy_node.c.