FD.io VPP  v16.06
Vector Packet Processing
ip_forward.c File Reference
+ Include dependency graph for ip_forward.c:

Go to the source code of this file.

Functions

static void ip4_sd_fib_set_adj_index (lisp_gpe_main_t *lgm, ip4_fib_t *fib, u32 flags, u32 dst_address_u32, u32 dst_address_length, u32 adj_index)
 
static void ip4_fib_init_adj_index_by_dst_address (ip_lookup_main_t *lm, ip4_fib_t *fib, u32 address_length)
 
static void ip4_sd_fib_add_del_src_route (lisp_gpe_main_t *lgm, ip4_add_del_route_args_t *a)
 
static voidip4_sd_get_src_route (lisp_gpe_main_t *lgm, u32 src_fib_index, ip4_address_t *src, u32 address_length)
 
typedef CLIB_PACKED (struct ip4_route{ip4_address_t address;u32 address_length:6;u32 index:26;})
 
static u8 ip4_fib_is_empty (ip4_fib_t *fib)
 
static int ip4_sd_fib_add_del_route (lisp_gpe_main_t *lgm, ip_prefix_t *dst_prefix, ip_prefix_t *src_prefix, u32 table_id, ip_adjacency_t *add_adj, u8 is_add)
 
static voidip4_sd_fib_get_route (lisp_gpe_main_t *lgm, ip_prefix_t *dst_prefix, ip_prefix_t *src_prefix, u32 table_id)
 
static u32 ip6_sd_get_src_route (lisp_gpe_main_t *lgm, u32 src_fib_index, ip6_address_t *src, u32 address_length)
 
static void compute_prefix_lengths_in_search_order (ip6_src_fib_t *fib)
 
static void ip6_sd_fib_add_del_src_route (lisp_gpe_main_t *lgm, ip6_add_del_route_args_t *a)
 
static void ip6_src_fib_init (ip6_src_fib_t *fib)
 
static int ip6_sd_fib_add_del_route (lisp_gpe_main_t *lgm, ip_prefix_t *dst_prefix, ip_prefix_t *src_prefix, u32 table_id, ip_adjacency_t *add_adj, u8 is_add)
 
static u32 ip6_sd_fib_get_route (lisp_gpe_main_t *lgm, ip_prefix_t *dst_prefix, ip_prefix_t *src_prefix, u32 table_id)
 
int ip_sd_fib_add_del_route (lisp_gpe_main_t *lgm, ip_prefix_t *dst_prefix, ip_prefix_t *src_prefix, u32 table_id, ip_adjacency_t *add_adj, u8 is_add)
 
u32 ip_sd_fib_get_route (lisp_gpe_main_t *lgm, ip_prefix_t *dst_prefix, ip_prefix_t *src_prefix, u32 table_id)
 
always_inline void ip4_src_fib_lookup_one (lisp_gpe_main_t *lgm, u32 src_fib_index0, ip4_address_t *addr0, u32 *src_adj_index0)
 
always_inline void ip4_src_fib_lookup_two (lisp_gpe_main_t *lgm, u32 src_fib_index0, u32 src_fib_index1, ip4_address_t *addr0, ip4_address_t *addr1, u32 *src_adj_index0, u32 *src_adj_index1)
 
always_inline uword lgpe_ip4_lookup (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
static u32 ip6_src_fib_lookup (lisp_gpe_main_t *lgm, u32 src_fib_index, ip6_address_t *src)
 
always_inline uword lgpe_ip6_lookup (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 

Variables

vlib_node_registration_t lgpe_ip4_lookup_node
 (constructor) VLIB_REGISTER_NODE (lgpe_ip4_lookup_node) More...
 
vlib_node_registration_t lgpe_ip6_lookup_node
 (constructor) VLIB_REGISTER_NODE (lgpe_ip6_lookup_node) More...
 

Function Documentation

typedef CLIB_PACKED ( struct ip4_route{ip4_address_t address;u32 address_length:6;u32 index:26;}  )

Definition at line 145 of file ip_forward.c.

+ Here is the call graph for this function:

static void compute_prefix_lengths_in_search_order ( ip6_src_fib_t fib)
static

Definition at line 383 of file ip_forward.c.

+ Here is the caller graph for this function:

static void ip4_fib_init_adj_index_by_dst_address ( ip_lookup_main_t lm,
ip4_fib_t fib,
u32  address_length 
)
static

Definition at line 48 of file ip_forward.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u8 ip4_fib_is_empty ( ip4_fib_t fib)
static

Definition at line 188 of file ip_forward.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int ip4_sd_fib_add_del_route ( lisp_gpe_main_t lgm,
ip_prefix_t *  dst_prefix,
ip_prefix_t *  src_prefix,
u32  table_id,
ip_adjacency_t add_adj,
u8  is_add 
)
static

Definition at line 208 of file ip_forward.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ip4_sd_fib_add_del_src_route ( lisp_gpe_main_t lgm,
ip4_add_del_route_args_t a 
)
static

Definition at line 74 of file ip_forward.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void* ip4_sd_fib_get_route ( lisp_gpe_main_t lgm,
ip_prefix_t *  dst_prefix,
ip_prefix_t *  src_prefix,
u32  table_id 
)
static

Definition at line 324 of file ip_forward.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ip4_sd_fib_set_adj_index ( lisp_gpe_main_t lgm,
ip4_fib_t fib,
u32  flags,
u32  dst_address_u32,
u32  dst_address_length,
u32  adj_index 
)
static

Definition at line 20 of file ip_forward.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void* ip4_sd_get_src_route ( lisp_gpe_main_t lgm,
u32  src_fib_index,
ip4_address_t src,
u32  address_length 
)
static

Definition at line 134 of file ip_forward.c.

+ Here is the caller graph for this function:

always_inline void ip4_src_fib_lookup_one ( lisp_gpe_main_t lgm,
u32  src_fib_index0,
ip4_address_t addr0,
u32 src_adj_index0 
)

Definition at line 693 of file ip_forward.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

always_inline void ip4_src_fib_lookup_two ( lisp_gpe_main_t lgm,
u32  src_fib_index0,
u32  src_fib_index1,
ip4_address_t addr0,
ip4_address_t addr1,
u32 src_adj_index0,
u32 src_adj_index1 
)

Definition at line 713 of file ip_forward.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int ip6_sd_fib_add_del_route ( lisp_gpe_main_t lgm,
ip_prefix_t *  dst_prefix,
ip_prefix_t *  src_prefix,
u32  table_id,
ip_adjacency_t add_adj,
u8  is_add 
)
static

Definition at line 521 of file ip_forward.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ip6_sd_fib_add_del_src_route ( lisp_gpe_main_t lgm,
ip6_add_del_route_args_t a 
)
static

Definition at line 396 of file ip_forward.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 ip6_sd_fib_get_route ( lisp_gpe_main_t lgm,
ip_prefix_t *  dst_prefix,
ip_prefix_t *  src_prefix,
u32  table_id 
)
static

Definition at line 639 of file ip_forward.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 ip6_sd_get_src_route ( lisp_gpe_main_t lgm,
u32  src_fib_index,
ip6_address_t src,
u32  address_length 
)
static

Definition at line 351 of file ip_forward.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ip6_src_fib_init ( ip6_src_fib_t fib)
static

Definition at line 487 of file ip_forward.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 ip6_src_fib_lookup ( lisp_gpe_main_t lgm,
u32  src_fib_index,
ip6_address_t src 
)
static

Definition at line 928 of file ip_forward.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int ip_sd_fib_add_del_route ( lisp_gpe_main_t lgm,
ip_prefix_t *  dst_prefix,
ip_prefix_t *  src_prefix,
u32  table_id,
ip_adjacency_t add_adj,
u8  is_add 
)

Definition at line 666 of file ip_forward.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 ip_sd_fib_get_route ( lisp_gpe_main_t lgm,
ip_prefix_t *  dst_prefix,
ip_prefix_t *  src_prefix,
u32  table_id 
)

Definition at line 679 of file ip_forward.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

always_inline uword lgpe_ip4_lookup ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t from_frame 
)

Definition at line 746 of file ip_forward.c.

+ Here is the call graph for this function:

always_inline uword lgpe_ip6_lookup ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t from_frame 
)

Definition at line 960 of file ip_forward.c.

+ Here is the call graph for this function:

Variable Documentation

vlib_node_registration_t lgpe_ip4_lookup_node
Initial value:
= {
.function = lgpe_ip4_lookup,
.name = "lgpe-ip4-lookup",
.vector_size = sizeof (u32),
.n_next_nodes = LGPE_IP4_LOOKUP_N_NEXT,
.next_nodes = {
#define _(sym,str)
},
}
bad routing header type(not 4)") sr_error (NO_MORE_SEGMENTS
always_inline uword lgpe_ip4_lookup(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
Definition: ip_forward.c:746
#define foreach_lgpe_ip4_lookup_next
Definition: lisp_gpe.h:244
unsigned int u32
Definition: types.h:88

(constructor) VLIB_REGISTER_NODE (lgpe_ip4_lookup_node)

Definition at line 912 of file ip_forward.c.

vlib_node_registration_t lgpe_ip6_lookup_node
Initial value:
= {
.function = lgpe_ip6_lookup,
.name = "lgpe-ip6-lookup",
.vector_size = sizeof (u32),
.n_next_nodes = LGPE_IP6_LOOKUP_N_NEXT,
.next_nodes = {
#define _(sym,str)
},
}
bad routing header type(not 4)") sr_error (NO_MORE_SEGMENTS
unsigned int u32
Definition: types.h:88
#define foreach_lgpe_ip6_lookup_next
Definition: lisp_gpe.h:256
always_inline uword lgpe_ip6_lookup(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
Definition: ip_forward.c:960

(constructor) VLIB_REGISTER_NODE (lgpe_ip6_lookup_node)

Definition at line 1129 of file ip_forward.c.