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

Go to the source code of this file.

Data Structures

struct  ip_protocol_info_t
 
struct  tcp_udp_port_info_t
 
struct  ip_main_t
 

Functions

clib_error_tip_main_init (vlib_main_t *vm)
 
static ip_protocol_info_tip_get_protocol_info (ip_main_t *im, u32 protocol)
 
static tcp_udp_port_info_tip_get_tcp_udp_port_info (ip_main_t *im, u32 port)
 
static ip_csum_t ip_incremental_checksum_buffer (vlib_main_t *vm, vlib_buffer_t *first_buffer, u32 first_buffer_offset, u32 n_bytes_to_checksum, ip_csum_t sum)
 
static u16 ip_calculate_l4_checksum (vlib_main_t *vm, vlib_buffer_t *p0, ip_csum_t sum0, u32 payload_length, u8 *iph, u32 ip_header_size, u8 *l4h)
 
void ip_del_all_interface_addresses (vlib_main_t *vm, u32 sw_if_index)
 
void ip_table_create (fib_protocol_t fproto, u32 table_id, u8 is_api, const u8 *name)
 
void ip_table_delete (fib_protocol_t fproto, u32 table_id, u8 is_api)
 
int ip_table_bind (fib_protocol_t fproto, u32 sw_if_index, u32 table_id, u8 is_api)
 
u8 ip_is_zero (ip46_address_t *ip46_address, u8 is_ip4)
 
u8 ip_is_local_host (ip46_address_t *ip46_address, u8 is_ip4)
 
u8 ip4_is_local_host (ip4_address_t *ip4_address)
 
u8 ip6_is_local_host (ip6_address_t *ip6_address)
 
u8 ip_is_local (u32 fib_index, ip46_address_t *ip46_address, u8 is_ip4)
 Checks that an ip is local to the requested fib. More...
 
void ip_copy (ip46_address_t *dst, ip46_address_t *src, u8 is_ip4)
 
void ip_set (ip46_address_t *dst, void *src, u8 is_ip4)
 
void ip_feature_enable_disable (ip_address_family_t af, ip_sub_address_family_t safi, ip_feature_location_t loc, const char *feature, u32 sw_if_index, int enable_disable, void *feature_config, u32 n_feature_config_bytes)
 
static u32 vlib_buffer_get_ip4_fib_index (vlib_buffer_t *b)
 
static u32 vlib_buffer_get_ip6_fib_index (vlib_buffer_t *b)
 
static u32 vlib_buffer_get_ip_fib_index (vlib_buffer_t *b, u8 is_ip4)
 

Variables

ip_main_t ip_main
 
vlib_node_registration_t ip4_inacl_node
 (constructor) VLIB_REGISTER_NODE (ip4_inacl_node) More...
 
vlib_node_registration_t ip6_inacl_node
 (constructor) VLIB_REGISTER_NODE (ip6_inacl_node) More...
 

Function Documentation

◆ ip4_is_local_host()

u8 ip4_is_local_host ( ip4_address_t ip4_address)

Definition at line 41 of file ip.c.

+ Here is the caller graph for this function:

◆ ip6_is_local_host()

u8 ip6_is_local_host ( ip6_address_t *  ip6_address)

Definition at line 47 of file ip.c.

+ Here is the caller graph for this function:

◆ ip_calculate_l4_checksum()

static u16 ip_calculate_l4_checksum ( vlib_main_t vm,
vlib_buffer_t p0,
ip_csum_t  sum0,
u32  payload_length,
u8 iph,
u32  ip_header_size,
u8 l4h 
)
inlinestatic

Definition at line 184 of file ip.h.

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

◆ ip_copy()

void ip_copy ( ip46_address_t *  dst,
ip46_address_t *  src,
u8  is_ip4 
)

Definition at line 83 of file ip.c.

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

◆ ip_del_all_interface_addresses()

void ip_del_all_interface_addresses ( vlib_main_t vm,
u32  sw_if_index 
)

Definition at line 82 of file ip46_cli.c.

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

◆ ip_feature_enable_disable()

void ip_feature_enable_disable ( ip_address_family_t  af,
ip_sub_address_family_t  safi,
ip_feature_location_t  loc,
const char *  feature,
u32  sw_if_index,
int  enable_disable,
void *  feature_config,
u32  n_feature_config_bytes 
)

Definition at line 163 of file ip.c.

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

◆ ip_get_protocol_info()

static ip_protocol_info_t* ip_get_protocol_info ( ip_main_t im,
u32  protocol 
)
inlinestatic

Definition at line 134 of file ip.h.

+ Here is the caller graph for this function:

◆ ip_get_tcp_udp_port_info()

static tcp_udp_port_info_t* ip_get_tcp_udp_port_info ( ip_main_t im,
u32  port 
)
inlinestatic

Definition at line 143 of file ip.h.

+ Here is the caller graph for this function:

◆ ip_incremental_checksum_buffer()

static ip_csum_t ip_incremental_checksum_buffer ( vlib_main_t vm,
vlib_buffer_t first_buffer,
u32  first_buffer_offset,
u32  n_bytes_to_checksum,
ip_csum_t  sum 
)
inlinestatic

Definition at line 152 of file ip.h.

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

◆ ip_is_local()

u8 ip_is_local ( u32  fib_index,
ip46_address_t *  ip46_address,
u8  is_ip4 
)

Checks that an ip is local to the requested fib.

Definition at line 57 of file ip.c.

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

◆ ip_is_local_host()

u8 ip_is_local_host ( ip46_address_t *  ip46_address,
u8  is_ip4 
)

Definition at line 31 of file ip.c.

+ Here is the caller graph for this function:

◆ ip_is_zero()

u8 ip_is_zero ( ip46_address_t *  ip46_address,
u8  is_ip4 
)

Definition at line 22 of file ip.c.

+ Here is the caller graph for this function:

◆ ip_main_init()

clib_error_t* ip_main_init ( vlib_main_t vm)

Definition at line 45 of file ip_init.c.

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

◆ ip_set()

void ip_set ( ip46_address_t *  dst,
void *  src,
u8  is_ip4 
)

Definition at line 95 of file ip.c.

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

◆ ip_table_bind()

int ip_table_bind ( fib_protocol_t  fproto,
u32  sw_if_index,
u32  table_id,
u8  is_api 
)

Definition at line 482 of file interface_api.c.

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

◆ ip_table_create()

void ip_table_create ( fib_protocol_t  fproto,
u32  table_id,
u8  is_api,
const u8 name 
)

Definition at line 884 of file ip_api.c.

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

◆ ip_table_delete()

void ip_table_delete ( fib_protocol_t  fproto,
u32  table_id,
u8  is_api 
)

Definition at line 574 of file ip_api.c.

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

◆ vlib_buffer_get_ip4_fib_index()

static u32 vlib_buffer_get_ip4_fib_index ( vlib_buffer_t b)
inlinestatic
+ Here is the caller graph for this function:

◆ vlib_buffer_get_ip6_fib_index()

static u32 vlib_buffer_get_ip6_fib_index ( vlib_buffer_t b)
inlinestatic
+ Here is the caller graph for this function:

◆ vlib_buffer_get_ip_fib_index()

static u32 vlib_buffer_get_ip_fib_index ( vlib_buffer_t b,
u8  is_ip4 
)
inlinestatic

Definition at line 292 of file ip.h.

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

Variable Documentation

◆ ip4_inacl_node

vlib_node_registration_t ip4_inacl_node
Initial value:
= {
.name = "ip4-inacl",
.vector_size = sizeof (u32),
.format_trace = format_ip_inacl_trace,
.error_strings = ip_inacl_error_strings,
.n_next_nodes = ACL_NEXT_INDEX_N_NEXT,
.next_nodes = {
[ACL_NEXT_INDEX_DENY] = "ip4-drop",
},
}

(constructor) VLIB_REGISTER_NODE (ip4_inacl_node)

Definition at line 833 of file ip_in_out_acl.c.

◆ ip6_inacl_node

vlib_node_registration_t ip6_inacl_node
Initial value:
= {
.name = "ip6-inacl",
.vector_size = sizeof (u32),
.format_trace = format_ip_inacl_trace,
.error_strings = ip_inacl_error_strings,
.n_next_nodes = ACL_NEXT_INDEX_N_NEXT,
.next_nodes = {
[ACL_NEXT_INDEX_DENY] = "ip6-drop",
},
}

(constructor) VLIB_REGISTER_NODE (ip6_inacl_node)

Definition at line 911 of file ip_in_out_acl.c.

◆ ip_main

ip_main_t ip_main

Definition at line 42 of file ip_init.c.

format_ip_inacl_trace
static u8 * format_ip_inacl_trace(u8 *s, va_list *args)
Definition: ip_in_out_acl.c:43
ACL_NEXT_INDEX_DENY
@ ACL_NEXT_INDEX_DENY
Definition: in_out_acl.h:25
ARRAY_LEN
#define ARRAY_LEN(x)
Definition: clib.h:70
ip_inacl_error_strings
static char * ip_inacl_error_strings[]
Definition: ip_in_out_acl.c:78
u32
unsigned int u32
Definition: types.h:88
ACL_NEXT_INDEX_N_NEXT
@ ACL_NEXT_INDEX_N_NEXT
Definition: in_out_acl.h:26