FD.io VPP  v21.06-3-gbb25fbf28
Vector Packet Processing
node.c File Reference
+ Include dependency graph for node.c:

Go to the source code of this file.

Data Structures

struct  srv6_as_localsid_trace_t
 
struct  srv6_as_rewrite_trace_t
 

Macros

#define foreach_srv6_as_rewrite_counter
 

Enumerations

enum  srv6_as_rewrite_counters { SRV6_AS_REWRITE_N_COUNTERS }
 
enum  srv6_as_localsid_next_t {
  SRV6_AS_LOCALSID_NEXT_ERROR, SRV6_AS_LOCALSID_NEXT_REWRITE4, SRV6_AS_LOCALSID_NEXT_REWRITE6, SRV6_AS_LOCALSID_NEXT_INTERFACE,
  SRV6_AS_LOCALSID_N_NEXT
}
 
enum  srv6_as_rewrite_next_t { SRV6_AS_REWRITE_NEXT_ERROR, SRV6_AS_REWRITE_NEXT_LOOKUP, SRV6_AS_REWRITE_N_NEXT }
 

Functions

static u8format_srv6_as_localsid_trace (u8 *s, va_list *args)
 
static u8format_srv6_as_rewrite_trace (u8 *s, va_list *args)
 
static_always_inline void end_as_processing (vlib_buffer_t *b0, ip6_header_t *ip0, srv6_as_localsid_t *ls0_mem, u32 *next0)
 Function doing SRH processing for AS behavior. More...
 
static uword srv6_as_localsid_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 SRv6 AS Localsid graph node. More...
 
static uword srv6_as2_rewrite_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 Graph node for applying a SR policy into an IPv6 packet. More...
 
static uword srv6_as4_rewrite_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 Graph node for applying a SR policy into an IPv6 packet. More...
 
static uword srv6_as6_rewrite_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 Graph node for applying a SR policy into an IPv6 packet. More...
 

Variables

vlib_node_registration_t srv6_as4_rewrite_node
 (constructor) VLIB_REGISTER_NODE (srv6_as4_rewrite_node) More...
 
vlib_node_registration_t srv6_as6_rewrite_node
 (constructor) VLIB_REGISTER_NODE (srv6_as6_rewrite_node) More...
 
static char * srv6_as_rewrite_counter_strings []
 
vlib_node_registration_t srv6_as_localsid_node
 (constructor) VLIB_REGISTER_NODE (srv6_as_localsid_node) More...
 
vlib_node_registration_t srv6_as2_rewrite_node
 (constructor) VLIB_REGISTER_NODE (srv6_as2_rewrite_node) More...
 

Macro Definition Documentation

◆ foreach_srv6_as_rewrite_counter

#define foreach_srv6_as_rewrite_counter
Value:
_(PROCESSED, "srv6-as rewritten packets") \
_(NO_RW, "(Error) No header for rewriting.")

Definition at line 69 of file node.c.

Enumeration Type Documentation

◆ srv6_as_localsid_next_t

Enumerator
SRV6_AS_LOCALSID_NEXT_ERROR 
SRV6_AS_LOCALSID_NEXT_REWRITE4 
SRV6_AS_LOCALSID_NEXT_REWRITE6 
SRV6_AS_LOCALSID_NEXT_INTERFACE 
SRV6_AS_LOCALSID_N_NEXT 

Definition at line 90 of file node.c.

◆ srv6_as_rewrite_counters

Enumerator
SRV6_AS_REWRITE_N_COUNTERS 

Definition at line 73 of file node.c.

◆ srv6_as_rewrite_next_t

Enumerator
SRV6_AS_REWRITE_NEXT_ERROR 
SRV6_AS_REWRITE_NEXT_LOOKUP 
SRV6_AS_REWRITE_N_NEXT 

Definition at line 99 of file node.c.

Function Documentation

◆ end_as_processing()

static_always_inline void end_as_processing ( vlib_buffer_t b0,
ip6_header_t ip0,
srv6_as_localsid_t ls0_mem,
u32 next0 
)

Function doing SRH processing for AS behavior.

Definition at line 113 of file node.c.

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

◆ format_srv6_as_localsid_trace()

static u8* format_srv6_as_localsid_trace ( u8 s,
va_list *  args 
)
static

Definition at line 35 of file node.c.

◆ format_srv6_as_rewrite_trace()

static u8* format_srv6_as_rewrite_trace ( u8 s,
va_list *  args 
)
static

Definition at line 45 of file node.c.

◆ srv6_as2_rewrite_fn()

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

Graph node for applying a SR policy into an IPv6 packet.

Encapsulation

Definition at line 264 of file node.c.

+ Here is the call graph for this function:

◆ srv6_as4_rewrite_fn()

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

Graph node for applying a SR policy into an IPv6 packet.

Encapsulation

Definition at line 398 of file node.c.

+ Here is the call graph for this function:

◆ srv6_as6_rewrite_fn()

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

Graph node for applying a SR policy into an IPv6 packet.

Encapsulation

Definition at line 542 of file node.c.

+ Here is the call graph for this function:

◆ srv6_as_localsid_fn()

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

SRv6 AS Localsid graph node.

Definition at line 167 of file node.c.

+ Here is the call graph for this function:

Variable Documentation

◆ srv6_as2_rewrite_node

vlib_node_registration_t srv6_as2_rewrite_node
Initial value:
= {
.function = srv6_as2_rewrite_fn,
.name = "srv6-as2-rewrite",
.vector_size = sizeof (u32),
.n_next_nodes = SRV6_AS_REWRITE_N_NEXT,
.next_nodes = {
[SRV6_AS_REWRITE_NEXT_LOOKUP] = "ip6-lookup",
[SRV6_AS_REWRITE_NEXT_ERROR] = "error-drop",
},
}

(constructor) VLIB_REGISTER_NODE (srv6_as2_rewrite_node)

Definition at line 377 of file node.c.

◆ srv6_as4_rewrite_node

vlib_node_registration_t srv6_as4_rewrite_node
Initial value:
= {
.function = srv6_as4_rewrite_fn,
.name = "srv6-as4-rewrite",
.vector_size = sizeof (u32),
.n_next_nodes = SRV6_AS_REWRITE_N_NEXT,
.next_nodes = {
[SRV6_AS_REWRITE_NEXT_LOOKUP] = "ip6-lookup",
[SRV6_AS_REWRITE_NEXT_ERROR] = "error-drop",
},
}

(constructor) VLIB_REGISTER_NODE (srv6_as4_rewrite_node)

Definition at line 63 of file node.c.

◆ srv6_as6_rewrite_node

vlib_node_registration_t srv6_as6_rewrite_node
Initial value:
= {
.function = srv6_as6_rewrite_fn,
.name = "srv6-as6-rewrite",
.vector_size = sizeof (u32),
.n_next_nodes = SRV6_AS_REWRITE_N_NEXT,
.next_nodes = {
[SRV6_AS_REWRITE_NEXT_LOOKUP] = "ip6-lookup",
[SRV6_AS_REWRITE_NEXT_ERROR] = "error-drop",
},
}

(constructor) VLIB_REGISTER_NODE (srv6_as6_rewrite_node)

Definition at line 64 of file node.c.

◆ srv6_as_localsid_node

vlib_node_registration_t srv6_as_localsid_node
Initial value:
= {
.function = srv6_as_localsid_fn,
.name = "srv6-as-localsid",
.vector_size = sizeof (u32),
.n_next_nodes = SRV6_AS_LOCALSID_N_NEXT,
.next_nodes = {
[SRV6_AS_LOCALSID_NEXT_REWRITE4] = "ip4-rewrite",
[SRV6_AS_LOCALSID_NEXT_REWRITE6] = "ip6-rewrite",
[SRV6_AS_LOCALSID_NEXT_INTERFACE] = "interface-output",
[SRV6_AS_LOCALSID_NEXT_ERROR] = "error-drop",
},
}

(constructor) VLIB_REGISTER_NODE (srv6_as_localsid_node)

Definition at line 241 of file node.c.

◆ srv6_as_rewrite_counter_strings

char* srv6_as_rewrite_counter_strings[]
static
Initial value:
= {
#define _(sym,string)
}

Definition at line 81 of file node.c.

foreach_srv6_as_rewrite_counter
#define foreach_srv6_as_rewrite_counter
Definition: node.c:69
srv6_as4_rewrite_fn
static uword srv6_as4_rewrite_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Graph node for applying a SR policy into an IPv6 packet.
Definition: node.c:398
format_srv6_as_rewrite_trace
static u8 * format_srv6_as_rewrite_trace(u8 *s, va_list *args)
Definition: node.c:45
SRV6_AS_REWRITE_NEXT_ERROR
@ SRV6_AS_REWRITE_NEXT_ERROR
Definition: node.c:101
VLIB_NODE_TYPE_INTERNAL
@ VLIB_NODE_TYPE_INTERNAL
Definition: node.h:72
format_srv6_as_localsid_trace
static u8 * format_srv6_as_localsid_trace(u8 *s, va_list *args)
Definition: node.c:35
SRV6_AS_REWRITE_N_NEXT
@ SRV6_AS_REWRITE_N_NEXT
Definition: node.c:103
srv6_as_rewrite_counter_strings
static char * srv6_as_rewrite_counter_strings[]
Definition: node.c:81
SRV6_AS_REWRITE_N_COUNTERS
@ SRV6_AS_REWRITE_N_COUNTERS
Definition: node.c:78
SRV6_AS_REWRITE_NEXT_LOOKUP
@ SRV6_AS_REWRITE_NEXT_LOOKUP
Definition: node.c:102
srv6_as6_rewrite_fn
static uword srv6_as6_rewrite_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Graph node for applying a SR policy into an IPv6 packet.
Definition: node.c:542
SRV6_AS_LOCALSID_NEXT_ERROR
@ SRV6_AS_LOCALSID_NEXT_ERROR
Definition: node.c:92
u32
unsigned int u32
Definition: types.h:88
SRV6_AS_LOCALSID_NEXT_REWRITE6
@ SRV6_AS_LOCALSID_NEXT_REWRITE6
Definition: node.c:94
SRV6_AS_LOCALSID_NEXT_REWRITE4
@ SRV6_AS_LOCALSID_NEXT_REWRITE4
Definition: node.c:93
srv6_as_localsid_fn
static uword srv6_as_localsid_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
SRv6 AS Localsid graph node.
Definition: node.c:167
SRV6_AS_LOCALSID_NEXT_INTERFACE
@ SRV6_AS_LOCALSID_NEXT_INTERFACE
Definition: node.c:95
type
vl_api_fib_path_type_t type
Definition: fib_types.api:123
srv6_as2_rewrite_fn
static uword srv6_as2_rewrite_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Graph node for applying a SR policy into an IPv6 packet.
Definition: node.c:264
SRV6_AS_LOCALSID_N_NEXT
@ SRV6_AS_LOCALSID_N_NEXT
Definition: node.c:96