FD.io VPP  v20.09-64-g4f7b92f0a
Vector Packet Processing
ip6_neighbor.c File Reference
+ Include dependency graph for ip6_neighbor.c:

Go to the source code of this file.

Enumerations

enum  ip6_discover_neighbor_next_t { IP6_NBR_NEXT_DROP, IP6_NBR_NEXT_REPLY_TX, IP6_NBR_N_NEXT }
 
enum  ip6_discover_neighbor_error_t { IP6_NBR_ERROR_DROP, IP6_NBR_ERROR_REQUEST_SENT, IP6_NBR_ERROR_NO_SOURCE_ADDRESS, IP6_NBR_ERROR_NO_BUFFERS }
 

Functions

void ip6_neighbor_probe_dst (const ip_adjacency_t *adj, const ip6_address_t *dst)
 
void ip6_neighbor_advertise (vlib_main_t *vm, vnet_main_t *vnm, u32 sw_if_index, const ip6_address_t *addr)
 
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)
 
static clib_error_tip6_neighbor_init (vlib_main_t *vm)
 

Variables

static char * ip6_discover_neighbor_error_strings []
 
vlib_node_registration_t ip6_glean_node
 (constructor) VLIB_REGISTER_NODE (ip6_glean_node) More...
 
vlib_node_registration_t ip6_discover_neighbor_node
 (constructor) VLIB_REGISTER_NODE (ip6_discover_neighbor_node) More...
 
vlib_packet_template_t ip6_neighbor_packet_template
 

Enumeration Type Documentation

◆ ip6_discover_neighbor_error_t

Enumerator
IP6_NBR_ERROR_DROP 
IP6_NBR_ERROR_REQUEST_SENT 
IP6_NBR_ERROR_NO_SOURCE_ADDRESS 
IP6_NBR_ERROR_NO_BUFFERS 

Definition at line 110 of file ip6_neighbor.c.

◆ ip6_discover_neighbor_next_t

Enumerator
IP6_NBR_NEXT_DROP 
IP6_NBR_NEXT_REPLY_TX 
IP6_NBR_N_NEXT 

Definition at line 103 of file ip6_neighbor.c.

Function Documentation

◆ ip6_discover_neighbor()

static uword ip6_discover_neighbor ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 243 of file ip6_neighbor.c.

+ Here is the call graph for this function:

◆ ip6_discover_neighbor_inline()

static uword ip6_discover_neighbor_inline ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame,
int  is_glean 
)
static

Definition at line 119 of file ip6_neighbor.c.

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

◆ ip6_glean()

static uword ip6_glean ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 250 of file ip6_neighbor.c.

+ Here is the call graph for this function:

◆ ip6_neighbor_advertise()

void ip6_neighbor_advertise ( vlib_main_t vm,
vnet_main_t vnm,
u32  sw_if_index,
const ip6_address_t *  addr 
)

Definition at line 36 of file ip6_neighbor.c.

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

◆ ip6_neighbor_init()

static clib_error_t* ip6_neighbor_init ( vlib_main_t vm)
static

Definition at line 299 of file ip6_neighbor.c.

+ Here is the call graph for this function:

◆ ip6_neighbor_probe_dst()

void ip6_neighbor_probe_dst ( const ip_adjacency_t adj,
const ip6_address_t *  dst 
)

Definition at line 21 of file ip6_neighbor.c.

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

Variable Documentation

◆ ip6_discover_neighbor_error_strings

char* ip6_discover_neighbor_error_strings[]
static
Initial value:
= {
[IP6_NBR_ERROR_DROP] = "address overflow drops",
[IP6_NBR_ERROR_REQUEST_SENT] = "neighbor solicitations sent",
[IP6_NBR_ERROR_NO_SOURCE_ADDRESS] = "no source address for ND solicitation",
[IP6_NBR_ERROR_NO_BUFFERS] = "no buffers",
}

Definition at line 255 of file ip6_neighbor.c.

◆ ip6_discover_neighbor_node

vlib_node_registration_t ip6_discover_neighbor_node
Initial value:
=
{
.function = ip6_discover_neighbor,
.name = "ip6-discover-neighbor",
.vector_size = sizeof (u32),
.n_next_nodes = IP6_NBR_N_NEXT,
.next_nodes =
{
[IP6_NBR_NEXT_DROP] = "ip6-drop",
[IP6_NBR_NEXT_REPLY_TX] = "ip6-rewrite-mcast",
},
}
unsigned int u32
Definition: types.h:88
static char * ip6_discover_neighbor_error_strings[]
Definition: ip6_neighbor.c:255
static uword ip6_discover_neighbor(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: ip6_neighbor.c:243
#define ARRAY_LEN(x)
Definition: clib.h:67
u8 * format_ip6_forward_next_trace(u8 *s, va_list *args)
Definition: ip6_forward.c:951

(constructor) VLIB_REGISTER_NODE (ip6_discover_neighbor_node)

Definition at line 278 of file ip6_neighbor.c.

◆ ip6_glean_node

vlib_node_registration_t ip6_glean_node
Initial value:
=
{
.function = ip6_glean,
.name = "ip6-glean",
.vector_size = sizeof (u32),
.n_next_nodes = IP6_NBR_N_NEXT,
.next_nodes =
{
[IP6_NBR_NEXT_DROP] = "ip6-drop",
[IP6_NBR_NEXT_REPLY_TX] = "ip6-rewrite-mcast",
},
}
static uword ip6_glean(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: ip6_neighbor.c:250
unsigned int u32
Definition: types.h:88
static char * ip6_discover_neighbor_error_strings[]
Definition: ip6_neighbor.c:255
#define ARRAY_LEN(x)
Definition: clib.h:67
u8 * format_ip6_forward_next_trace(u8 *s, va_list *args)
Definition: ip6_forward.c:951

(constructor) VLIB_REGISTER_NODE (ip6_glean_node)

Definition at line 263 of file ip6_neighbor.c.

◆ ip6_neighbor_packet_template

vlib_packet_template_t ip6_neighbor_packet_template

Definition at line 296 of file ip6_neighbor.c.