FD.io VPP  v20.09-64-g4f7b92f0a
Vector Packet Processing
lookup.h File Reference

Definitions for all things IP (v4|v6) unicast and multicast lookup related. More...

+ Include dependency graph for lookup.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ip_interface_prefix_key_t
 
struct  ip_interface_prefix_t
 
struct  ip_interface_address_t
 
struct  ip_lookup_main_t
 

Macros

#define IP_FLOW_HASH_SRC_ADDR   (1<<0)
 Flow hash configuration. More...
 
#define IP_FLOW_HASH_DST_ADDR   (1<<1)
 
#define IP_FLOW_HASH_PROTO   (1<<2)
 
#define IP_FLOW_HASH_SRC_PORT   (1<<3)
 
#define IP_FLOW_HASH_DST_PORT   (1<<4)
 
#define IP_FLOW_HASH_REVERSE_SRC_DST   (1<<5)
 
#define IP_FLOW_HASH_SYMMETRIC   (1<<6)
 
#define IP_FLOW_HASH_DEFAULT   (0x1F)
 Default: 5-tuple without the "reverse" bit. More...
 
#define foreach_flow_hash_bit
 

Typedefs

typedef u32 flow_hash_config_t
 A flow hash configuration is a mask of the flow hash options. More...
 
typedef enum ip_interface_address_flags_t_ ip_interface_address_flags_t
 
typedef struct ip_lookup_main_t ip_lookup_main_t
 
typedef struct _vnet_ip_container_proxy_args vnet_ip_container_proxy_args_t
 
typedef int(* ip_container_proxy_cb_t) (const fib_prefix_t *pfx, u32 sw_if_index, void *ctx)
 

Enumerations

enum  ip_interface_address_flags_t_ { IP_INTERFACE_ADDRESS_FLAG_STALE = (1 << 0) }
 
enum  ip_local_next_t {
  IP_LOCAL_NEXT_DROP, IP_LOCAL_NEXT_PUNT, IP_LOCAL_NEXT_UDP_LOOKUP, IP_LOCAL_NEXT_ICMP,
  IP_LOCAL_NEXT_REASSEMBLY, IP_LOCAL_N_NEXT
}
 

Functions

u8format_ip_flow_hash_config (u8 *s, va_list *args)
 
static void ip_lookup_set_buffer_fib_index (u32 *fib_index_by_sw_if_index, vlib_buffer_t *b)
 
clib_error_tvnet_ip_container_proxy_add_del (vnet_ip_container_proxy_args_t *args)
 
void ip_container_proxy_walk (ip_container_proxy_cb_t cb, void *ctx)
 
void ip_lookup_init (ip_lookup_main_t *lm, u32 ip_lookup_node_index)
 

Variables

const ip46_address_t zero_addr
 

Detailed Description

Definitions for all things IP (v4|v6) unicast and multicast lookup related.

  • Adjacency definitions and registration.
  • Callbacks on route add.
  • Callbacks on interface address change.

Definition in file lookup.h.

Macro Definition Documentation

◆ foreach_flow_hash_bit

#define foreach_flow_hash_bit
Value:
#define IP_FLOW_HASH_SRC_PORT
Definition: lookup.h:64
#define IP_FLOW_HASH_REVERSE_SRC_DST
Definition: lookup.h:66
vl_api_address_t src
Definition: gre.api:54
#define IP_FLOW_HASH_DST_PORT
Definition: lookup.h:65
#define IP_FLOW_HASH_DST_ADDR
Definition: lookup.h:62
vl_api_ip_proto_t proto
Definition: acl_types.api:50
vl_api_address_t dst
Definition: gre.api:55
#define IP_FLOW_HASH_SYMMETRIC
Definition: lookup.h:67
#define IP_FLOW_HASH_SRC_ADDR
Flow hash configuration.
Definition: lookup.h:61
#define IP_FLOW_HASH_PROTO
Definition: lookup.h:63

Definition at line 72 of file lookup.h.

◆ IP_FLOW_HASH_DEFAULT

#define IP_FLOW_HASH_DEFAULT   (0x1F)

Default: 5-tuple without the "reverse" bit.

Definition at line 70 of file lookup.h.

◆ IP_FLOW_HASH_DST_ADDR

#define IP_FLOW_HASH_DST_ADDR   (1<<1)

Definition at line 62 of file lookup.h.

◆ IP_FLOW_HASH_DST_PORT

#define IP_FLOW_HASH_DST_PORT   (1<<4)

Definition at line 65 of file lookup.h.

◆ IP_FLOW_HASH_PROTO

#define IP_FLOW_HASH_PROTO   (1<<2)

Definition at line 63 of file lookup.h.

◆ IP_FLOW_HASH_REVERSE_SRC_DST

#define IP_FLOW_HASH_REVERSE_SRC_DST   (1<<5)

Definition at line 66 of file lookup.h.

◆ IP_FLOW_HASH_SRC_ADDR

#define IP_FLOW_HASH_SRC_ADDR   (1<<0)

Flow hash configuration.

Definition at line 61 of file lookup.h.

◆ IP_FLOW_HASH_SRC_PORT

#define IP_FLOW_HASH_SRC_PORT   (1<<3)

Definition at line 64 of file lookup.h.

◆ IP_FLOW_HASH_SYMMETRIC

#define IP_FLOW_HASH_SYMMETRIC   (1<<6)

Definition at line 67 of file lookup.h.

Typedef Documentation

◆ flow_hash_config_t

A flow hash configuration is a mask of the flow hash options.

Definition at line 84 of file lookup.h.

◆ ip_container_proxy_cb_t

typedef int(* ip_container_proxy_cb_t) (const fib_prefix_t *pfx, u32 sw_if_index, void *ctx)

Definition at line 215 of file lookup.h.

◆ ip_interface_address_flags_t

◆ ip_lookup_main_t

◆ vnet_ip_container_proxy_args_t

typedef struct _vnet_ip_container_proxy_args vnet_ip_container_proxy_args_t

Enumeration Type Documentation

◆ ip_interface_address_flags_t_

Enumerator
IP_INTERFACE_ADDRESS_FLAG_STALE 

Definition at line 89 of file lookup.h.

◆ ip_local_next_t

Enumerator
IP_LOCAL_NEXT_DROP 
IP_LOCAL_NEXT_PUNT 
IP_LOCAL_NEXT_UDP_LOOKUP 
IP_LOCAL_NEXT_ICMP 
IP_LOCAL_NEXT_REASSEMBLY 
IP_LOCAL_N_NEXT 

Definition at line 133 of file lookup.h.

Function Documentation

◆ format_ip_flow_hash_config()

u8* format_ip_flow_hash_config ( u8 s,
va_list *  args 
)

Definition at line 119 of file lookup.c.

+ Here is the caller graph for this function:

◆ ip_container_proxy_walk()

void ip_container_proxy_walk ( ip_container_proxy_cb_t  cb,
void *  ctx 
)

Definition at line 989 of file lookup.c.

+ Here is the caller graph for this function:

◆ ip_lookup_init()

void ip_lookup_init ( ip_lookup_main_t lm,
u32  ip_lookup_node_index 
)

Definition at line 76 of file lookup.c.

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

◆ ip_lookup_set_buffer_fib_index()

static void ip_lookup_set_buffer_fib_index ( u32 fib_index_by_sw_if_index,
vlib_buffer_t b 
)
inlinestatic

Definition at line 192 of file lookup.h.

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

◆ vnet_ip_container_proxy_add_del()

clib_error_t* vnet_ip_container_proxy_add_del ( vnet_ip_container_proxy_args_t args)

Definition at line 903 of file lookup.c.

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

Variable Documentation

◆ zero_addr

const ip46_address_t zero_addr

Definition at line 181 of file lookup.c.