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

Go to the source code of this file.

Macros

#define SID_CREATE_IFACE_FEATURE_ERROR   -1
 
#define SID_CREATE_INVALID_IFACE_TYPE   -3
 
#define SID_CREATE_INVALID_IFACE_INDEX   -4
 
#define SID_CREATE_INVALID_ADJ_INDEX   -5
 
#define PARAM_AS_NH   (1 << 0)
 
#define PARAM_AS_OIF   (1 << 1)
 
#define PARAM_AS_IIF   (1 << 2)
 
#define PARAM_AS_SRC   (1 << 3)
 

Functions

static u8prepare_rewrite (ip6_address_t src_addr, ip6_address_t *sid_list, u8 protocol)
 
static void free_ls_mem (srv6_as_localsid_t *ls_mem)
 
static int srv6_as_localsid_creation_fn (ip6_sr_localsid_t *localsid)
 
static int srv6_as_localsid_removal_fn (ip6_sr_localsid_t *localsid)
 
u8format_srv6_as_localsid (u8 *s, va_list *args)
 
uword unformat_srv6_as_localsid (unformat_input_t *input, va_list *args)
 
static u8format_srv6_as_dpo (u8 *s, va_list *args)
 
void srv6_as_dpo_lock (dpo_id_t *dpo)
 
void srv6_as_dpo_unlock (dpo_id_t *dpo)
 
static clib_error_tsrv6_as_init (vlib_main_t *vm)
 
 VNET_FEATURE_INIT (srv6_as2_rewrite, static)
 
 VNET_FEATURE_INIT (srv6_as4_rewrite, static)
 
 VNET_FEATURE_INIT (srv6_as6_rewrite, static)
 
 VLIB_PLUGIN_REGISTER ()
 

Variables

unsigned char function_name [] = "SRv6-AS-plugin"
 
unsigned char keyword_str [] = "End.AS"
 
unsigned char def_str []
 
unsigned char params_str []
 
srv6_as_main_t srv6_as_main
 
const static dpo_vft_t srv6_as_vft
 
const static char *const srv6_as_ip6_nodes []
 
const static char *const *const srv6_as_nodes [DPO_PROTO_NUM]
 

Macro Definition Documentation

◆ PARAM_AS_IIF

#define PARAM_AS_IIF   (1 << 2)

◆ PARAM_AS_NH

#define PARAM_AS_NH   (1 << 0)

◆ PARAM_AS_OIF

#define PARAM_AS_OIF   (1 << 1)

◆ PARAM_AS_SRC

#define PARAM_AS_SRC   (1 << 3)

◆ SID_CREATE_IFACE_FEATURE_ERROR

#define SID_CREATE_IFACE_FEATURE_ERROR   -1

Definition at line 27 of file as.c.

◆ SID_CREATE_INVALID_ADJ_INDEX

#define SID_CREATE_INVALID_ADJ_INDEX   -5

Definition at line 30 of file as.c.

◆ SID_CREATE_INVALID_IFACE_INDEX

#define SID_CREATE_INVALID_IFACE_INDEX   -4

Definition at line 29 of file as.c.

◆ SID_CREATE_INVALID_IFACE_TYPE

#define SID_CREATE_INVALID_IFACE_TYPE   -3

Definition at line 28 of file as.c.

Function Documentation

◆ format_srv6_as_dpo()

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

Definition at line 494 of file as.c.

◆ format_srv6_as_localsid()

u8* format_srv6_as_localsid ( u8 s,
va_list *  args 
)

Definition at line 339 of file as.c.

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

◆ free_ls_mem()

static void free_ls_mem ( srv6_as_localsid_t ls_mem)
inlinestatic

Definition at line 103 of file as.c.

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

◆ prepare_rewrite()

static u8* prepare_rewrite ( ip6_address_t  src_addr,
ip6_address_t *  sid_list,
u8  protocol 
)
inlinestatic

Definition at line 42 of file as.c.

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

◆ srv6_as_dpo_lock()

void srv6_as_dpo_lock ( dpo_id_t dpo)

Definition at line 503 of file as.c.

◆ srv6_as_dpo_unlock()

void srv6_as_dpo_unlock ( dpo_id_t dpo)

Definition at line 508 of file as.c.

◆ srv6_as_init()

static clib_error_t* srv6_as_init ( vlib_main_t vm)
static

Definition at line 529 of file as.c.

+ Here is the call graph for this function:

◆ srv6_as_localsid_creation_fn()

static int srv6_as_localsid_creation_fn ( ip6_sr_localsid_t localsid)
static

Definition at line 114 of file as.c.

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

◆ srv6_as_localsid_removal_fn()

static int srv6_as_localsid_removal_fn ( ip6_sr_localsid_t localsid)
static

Definition at line 269 of file as.c.

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

◆ unformat_srv6_as_localsid()

uword unformat_srv6_as_localsid ( unformat_input_t input,
va_list *  args 
)

Definition at line 396 of file as.c.

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

◆ VLIB_PLUGIN_REGISTER()

VLIB_PLUGIN_REGISTER ( )

◆ VNET_FEATURE_INIT() [1/3]

VNET_FEATURE_INIT ( srv6_as2_rewrite  ,
static   
)

◆ VNET_FEATURE_INIT() [2/3]

VNET_FEATURE_INIT ( srv6_as4_rewrite  ,
static   
)

◆ VNET_FEATURE_INIT() [3/3]

VNET_FEATURE_INIT ( srv6_as6_rewrite  ,
static   
)

Variable Documentation

◆ def_str

unsigned char def_str[]
Initial value:
=
"Endpoint with static proxy to SR-unaware appliance"

Definition at line 34 of file as.c.

◆ function_name

unsigned char function_name[] = "SRv6-AS-plugin"

Definition at line 32 of file as.c.

◆ keyword_str

unsigned char keyword_str[] = "End.AS"

Definition at line 33 of file as.c.

◆ params_str

unsigned char params_str[]
Initial value:
=
"nh <next-hop> oif <iface-out> iif <iface-in> src <src-addr> next <sid> [next <sid> ...]"

Definition at line 36 of file as.c.

◆ srv6_as_ip6_nodes

const static char* const srv6_as_ip6_nodes[]
static
Initial value:
= {
"srv6-as-localsid",
NULL,
}

Definition at line 518 of file as.c.

◆ srv6_as_main

srv6_as_main_t srv6_as_main

Definition at line 39 of file as.c.

◆ srv6_as_nodes

const static char* const * const srv6_as_nodes[DPO_PROTO_NUM]
static
Initial value:

Definition at line 523 of file as.c.

◆ srv6_as_vft

const static dpo_vft_t srv6_as_vft
static
Initial value:
= {
.dv_lock = srv6_as_dpo_lock,
.dv_unlock = srv6_as_dpo_unlock,
.dv_format = format_srv6_as_dpo,
}

Definition at line 512 of file as.c.

srv6_as_dpo_lock
void srv6_as_dpo_lock(dpo_id_t *dpo)
Definition: as.c:503
format_srv6_as_dpo
static u8 * format_srv6_as_dpo(u8 *s, va_list *args)
Definition: as.c:494
srv6_as_ip6_nodes
const static char *const srv6_as_ip6_nodes[]
Definition: as.c:518
DPO_PROTO_IP6
@ DPO_PROTO_IP6
Definition: dpo.h:65
srv6_as_dpo_unlock
void srv6_as_dpo_unlock(dpo_id_t *dpo)
Definition: as.c:508