FD.io VPP  v20.09-64-g4f7b92f0a
Vector Packet Processing
fib_path_ext.h File Reference
+ Include dependency graph for fib_path_ext.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  fib_path_ext_t_
 A path extension is a per-entry addition to the forwarding information when packets are sent for that entry over that path. More...
 

Macros

#define FIB_PATH_EXT_ADJ_ATTR_NAMES
 
#define FOR_EACH_PATH_EXT_ADJ_ATTR(_item)
 
#define FIB_PATH_EXT_MPLS_ATTR_NAMES
 
#define FOR_EACH_PATH_EXT_MPLS_ATTR(_item)
 
#define fpe_label_stack   fpe_path.frp_label_stack
 

Typedefs

typedef enum fib_path_ext_type_t_ fib_path_ext_type_t
 A description of the type of path extension. More...
 
typedef enum fib_path_ext_adj_attr_t_ fib_path_ext_adj_attr_t
 Flags present on an ADJ sourced path-extension. More...
 
typedef enum fib_path_ext_adj_flags_t_ fib_path_ext_adj_flags_t
 
typedef enum fib_path_ext_mpls_attr_t_ fib_path_ext_mpls_attr_t
 Flags present on an MPLS label sourced path-extension. More...
 
typedef enum fib_path_ext_mpls_flags_t_ fib_path_ext_mpls_flags_t
 
typedef struct fib_path_ext_t_ fib_path_ext_t
 A path extension is a per-entry addition to the forwarding information when packets are sent for that entry over that path. More...
 

Enumerations

enum  fib_path_ext_type_t_ { FIB_PATH_EXT_MPLS, FIB_PATH_EXT_ADJ }
 A description of the type of path extension. More...
 
enum  fib_path_ext_adj_attr_t_ { FIB_PATH_EXT_ADJ_ATTR_REFINES_COVER }
 Flags present on an ADJ sourced path-extension. More...
 
enum  fib_path_ext_adj_flags_t_ { FIB_PATH_EXT_ADJ_FLAG_NONE = 0, FIB_PATH_EXT_ADJ_FLAG_REFINES_COVER = (1 << FIB_PATH_EXT_ADJ_ATTR_REFINES_COVER) }
 
enum  fib_path_ext_mpls_attr_t_ { FIB_PATH_EXT_MPLS_ATTR_NO_IP_TTL_DECR }
 Flags present on an MPLS label sourced path-extension. More...
 
enum  fib_path_ext_mpls_flags_t_ { FIB_PATH_EXT_MPLS_FLAG_NONE = 0, FIB_PATH_EXT_MPLS_FLAG_NO_IP_TTL_DECR = (1 << FIB_PATH_EXT_MPLS_ATTR_NO_IP_TTL_DECR) }
 

Functions

u8format_fib_path_ext (u8 *s, va_list *args)
 
int fib_path_ext_cmp (fib_path_ext_t *path_ext, const fib_route_path_t *rpath)
 
void fib_path_ext_resolve (fib_path_ext_t *path_ext, fib_node_index_t path_list_index)
 
load_balance_path_tfib_path_ext_stack (fib_path_ext_t *path_ext, fib_forward_chain_type_t fct, fib_forward_chain_type_t imp_null_fct, load_balance_path_t *nhs)
 
fib_path_ext_tfib_path_ext_list_push_back (fib_path_ext_list_t *list, fib_node_index_t path_list_index, fib_path_ext_type_t ext_type, const fib_route_path_t *rpath)
 
fib_path_ext_tfib_path_ext_list_insert (fib_path_ext_list_t *list, fib_node_index_t path_list_index, fib_path_ext_type_t ext_type, const fib_route_path_t *rpath)
 
u8format_fib_path_ext_list (u8 *s, va_list *args)
 
void fib_path_ext_list_remove (fib_path_ext_list_t *list, fib_path_ext_type_t ext_type, const fib_route_path_t *rpath)
 
fib_path_ext_tfib_path_ext_list_find (const fib_path_ext_list_t *list, fib_path_ext_type_t ext_type, const fib_route_path_t *rpath)
 
fib_path_ext_tfib_path_ext_list_find_by_path_index (const fib_path_ext_list_t *list, fib_node_index_t path_index)
 
void fib_path_ext_list_resolve (fib_path_ext_list_t *list, fib_node_index_t path_list_index)
 
int fib_path_ext_list_length (const fib_path_ext_list_t *list)
 
void fib_path_ext_list_flush (fib_path_ext_list_t *list)
 

Macro Definition Documentation

◆ FIB_PATH_EXT_ADJ_ATTR_NAMES

#define FIB_PATH_EXT_ADJ_ATTR_NAMES
Value:

Definition at line 53 of file fib_path_ext.h.

◆ FIB_PATH_EXT_MPLS_ATTR_NAMES

#define FIB_PATH_EXT_MPLS_ATTR_NAMES
Value:
{ \
[FIB_PATH_EXT_MPLS_ATTR_NO_IP_TTL_DECR] = "no-ip-tll-decr", \
}
Do not decrement the TTL of IP packet during imposition.
Definition: fib_path_ext.h:70

Definition at line 79 of file fib_path_ext.h.

◆ FOR_EACH_PATH_EXT_ADJ_ATTR

#define FOR_EACH_PATH_EXT_ADJ_ATTR (   _item)

◆ FOR_EACH_PATH_EXT_MPLS_ATTR

#define FOR_EACH_PATH_EXT_MPLS_ATTR (   _item)
Value:
_item++)
Do not decrement the TTL of IP packet during imposition.
Definition: fib_path_ext.h:70

Definition at line 83 of file fib_path_ext.h.

◆ fpe_label_stack

#define fpe_label_stack   fpe_path.frp_label_stack

Definition at line 106 of file fib_path_ext.h.

Typedef Documentation

◆ fib_path_ext_adj_attr_t

Flags present on an ADJ sourced path-extension.

◆ fib_path_ext_adj_flags_t

◆ fib_path_ext_mpls_attr_t

Flags present on an MPLS label sourced path-extension.

◆ fib_path_ext_mpls_flags_t

◆ fib_path_ext_t

A path extension is a per-entry addition to the forwarding information when packets are sent for that entry over that path.

For example: ip route add 1.1.1.1/32 via 10.10.10.10 out-label 100

The out-going MPLS label value 100 is a path-extension. It is a value sepcific to the entry 1.1.1.1/32 and valid only when packets are sent via 10.10.10.10.

◆ fib_path_ext_type_t

A description of the type of path extension.

Enumeration Type Documentation

◆ fib_path_ext_adj_attr_t_

Flags present on an ADJ sourced path-extension.

Enumerator
FIB_PATH_EXT_ADJ_ATTR_REFINES_COVER 

Definition at line 42 of file fib_path_ext.h.

◆ fib_path_ext_adj_flags_t_

Enumerator
FIB_PATH_EXT_ADJ_FLAG_NONE 
FIB_PATH_EXT_ADJ_FLAG_REFINES_COVER 

Definition at line 47 of file fib_path_ext.h.

◆ fib_path_ext_mpls_attr_t_

Flags present on an MPLS label sourced path-extension.

Enumerator
FIB_PATH_EXT_MPLS_ATTR_NO_IP_TTL_DECR 

Do not decrement the TTL of IP packet during imposition.

Definition at line 65 of file fib_path_ext.h.

◆ fib_path_ext_mpls_flags_t_

Enumerator
FIB_PATH_EXT_MPLS_FLAG_NONE 
FIB_PATH_EXT_MPLS_FLAG_NO_IP_TTL_DECR 

Definition at line 73 of file fib_path_ext.h.

◆ fib_path_ext_type_t_

A description of the type of path extension.

Enumerator
FIB_PATH_EXT_MPLS 

An MPLS extension that maintains the path's outgoing labels,.

FIB_PATH_EXT_ADJ 

A adj-source extension indicating the path's refinement criteria result.

Definition at line 26 of file fib_path_ext.h.

Function Documentation

◆ fib_path_ext_cmp()

int fib_path_ext_cmp ( fib_path_ext_t path_ext,
const fib_route_path_t rpath 
)

Definition at line 89 of file fib_path_ext.c.

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

◆ fib_path_ext_list_find()

fib_path_ext_t* fib_path_ext_list_find ( const fib_path_ext_list_t list,
fib_path_ext_type_t  ext_type,
const fib_route_path_t rpath 
)

Definition at line 308 of file fib_path_ext.c.

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

◆ fib_path_ext_list_find_by_path_index()

fib_path_ext_t* fib_path_ext_list_find_by_path_index ( const fib_path_ext_list_t list,
fib_node_index_t  path_index 
)

Definition at line 326 of file fib_path_ext.c.

+ Here is the caller graph for this function:

◆ fib_path_ext_list_flush()

void fib_path_ext_list_flush ( fib_path_ext_list_t list)

Definition at line 448 of file fib_path_ext.c.

+ Here is the caller graph for this function:

◆ fib_path_ext_list_insert()

fib_path_ext_t* fib_path_ext_list_insert ( fib_path_ext_list_t list,
fib_node_index_t  path_list_index,
fib_path_ext_type_t  ext_type,
const fib_route_path_t rpath 
)

Definition at line 372 of file fib_path_ext.c.

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

◆ fib_path_ext_list_length()

int fib_path_ext_list_length ( const fib_path_ext_list_t list)

Definition at line 481 of file fib_path_ext.c.

+ Here is the caller graph for this function:

◆ fib_path_ext_list_push_back()

fib_path_ext_t* fib_path_ext_list_push_back ( fib_path_ext_list_t list,
fib_node_index_t  path_list_index,
fib_path_ext_type_t  ext_type,
const fib_route_path_t rpath 
)

Definition at line 346 of file fib_path_ext.c.

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

◆ fib_path_ext_list_remove()

void fib_path_ext_list_remove ( fib_path_ext_list_t list,
fib_path_ext_type_t  ext_type,
const fib_route_path_t rpath 
)

Definition at line 428 of file fib_path_ext.c.

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

◆ fib_path_ext_list_resolve()

void fib_path_ext_list_resolve ( fib_path_ext_list_t list,
fib_node_index_t  path_list_index 
)

Definition at line 416 of file fib_path_ext.c.

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

◆ fib_path_ext_resolve()

void fib_path_ext_resolve ( fib_path_ext_t path_ext,
fib_node_index_t  path_list_index 
)

Definition at line 112 of file fib_path_ext.c.

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

◆ fib_path_ext_stack()

load_balance_path_t* fib_path_ext_stack ( fib_path_ext_t path_ext,
fib_forward_chain_type_t  fct,
fib_forward_chain_type_t  imp_null_fct,
load_balance_path_t nhs 
)

Definition at line 165 of file fib_path_ext.c.

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

◆ format_fib_path_ext()

u8* format_fib_path_ext ( u8 s,
va_list *  args 
)

Definition at line 31 of file fib_path_ext.c.

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

◆ format_fib_path_ext_list()

u8* format_fib_path_ext_list ( u8 s,
va_list *  args 
)

Definition at line 461 of file fib_path_ext.c.

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