FD.io VPP  v19.04.4-rc0-5-ge88582fac
Vector Packet Processing
flow.h File Reference
+ Include dependency graph for flow.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ip_port_and_mask_t
 
struct  vnet_flow_t
 
struct  vnet_flow_range_t
 
struct  vnet_flow_main_t
 

Macros

#define foreach_flow_type
 
#define foreach_flow_entry_ip4_n_tuple
 
#define foreach_flow_entry_ip6_n_tuple
 
#define foreach_flow_entry_ip4_vxlan
 
#define foreach_flow_entry_ip6_vxlan
 
#define foreach_flow_action
 
#define foreach_flow_error
 

Enumerations

enum  vnet_flow_action_t { foreach_flow_action }
 
enum  vnet_flow_error_t { VNET_FLOW_NO_ERROR = 0, foreach_flow_error }
 
enum  vnet_flow_type_t { VNET_FLOW_TYPE_UNKNOWN, VNET_FLOW_N_TYPES }
 

Functions

int vnet_flow_get_range (vnet_main_t *vnm, char *owner, u32 count, u32 *start)
 
int vnet_flow_add (vnet_main_t *vnm, vnet_flow_t *flow, u32 *flow_index)
 
int vnet_flow_enable (vnet_main_t *vnm, u32 flow_index, u32 hw_if_index)
 
int vnet_flow_disable (vnet_main_t *vnm, u32 flow_index, u32 hw_if_index)
 
int vnet_flow_del (vnet_main_t *vnm, u32 flow_index)
 
vnet_flow_tvnet_get_flow (u32 flow_index)
 

Variables

 foreach_flow_type
 
vnet_flow_main_t flow_main
 
format_function_t format_flow_actions
 
format_function_t format_flow_enabled_hw
 

Macro Definition Documentation

◆ foreach_flow_action

#define foreach_flow_action
Value:
_(0, COUNT, "count") \
_(1, MARK, "mark") \
_(2, BUFFER_ADVANCE, "buffer-advance") \
_(3, REDIRECT_TO_NODE, "redirect-to-node") \
_(4, REDIRECT_TO_QUEUE, "redirect-to-queue") \
_(5, DROP, "drop")
DROP
Definition: error.def:41

Definition at line 57 of file flow.h.

◆ foreach_flow_entry_ip4_n_tuple

#define foreach_flow_entry_ip4_n_tuple
Value:
_fe(ip4_address_and_mask_t, src_addr) \
_fe(ip4_address_and_mask_t, dst_addr) \
u16 src_port
Definition: udp.api:41
enum ip_protocol ip_protocol_t
u16 dst_port
Definition: udp.api:42
u8 protocol
Definition: ipsec.api:96

Definition at line 31 of file flow.h.

◆ foreach_flow_entry_ip4_vxlan

#define foreach_flow_entry_ip4_vxlan
Value:
_fe(ip4_address_t, src_addr) \
_fe(ip4_address_t, dst_addr) \
_fe(u16, dst_port) \
_fe(u16, vni)
unsigned short u16
Definition: types.h:57
u32 vni
Definition: vxlan_gbp.api:42
u16 dst_port
Definition: udp.api:42

Definition at line 45 of file flow.h.

◆ foreach_flow_entry_ip6_n_tuple

#define foreach_flow_entry_ip6_n_tuple
Value:
_fe(ip6_address_and_mask_t, src_addr) \
_fe(ip6_address_and_mask_t, dst_addr) \
u16 src_port
Definition: udp.api:41
enum ip_protocol ip_protocol_t
u16 dst_port
Definition: udp.api:42
u8 protocol
Definition: ipsec.api:96

Definition at line 38 of file flow.h.

◆ foreach_flow_entry_ip6_vxlan

#define foreach_flow_entry_ip6_vxlan
Value:
_fe(ip6_address_t, src_addr) \
_fe(ip6_address_t, dst_addr) \
_fe(u16, dst_port) \
_fe(u16, vni)
unsigned short u16
Definition: types.h:57
u32 vni
Definition: vxlan_gbp.api:42
u16 dst_port
Definition: udp.api:42

Definition at line 51 of file flow.h.

◆ foreach_flow_error

#define foreach_flow_error
Value:
_( -1, NOT_SUPPORTED, "not supported") \
_( -2, ALREADY_DONE, "already done") \
_( -3, ALREADY_EXISTS, "already exists") \
_( -4, NO_SUCH_ENTRY, "no such entry") \
_( -5, NO_SUCH_INTERFACE, "no such interface") \
_( -6, INTERNAL, "internal error")

Definition at line 73 of file flow.h.

◆ foreach_flow_type

#define foreach_flow_type
Value:
_(IP4_N_TUPLE, ip4_n_tuple, "ipv4-n-tuple") \
_(IP6_N_TUPLE, ip6_n_tuple, "ipv6-n-tuple") \
_(IP4_VXLAN, ip4_vxlan, "ipv4-vxlan") \
_(IP6_VXLAN, ip6_vxlan, "ipv6-vxlan")

Definition at line 25 of file flow.h.

Enumeration Type Documentation

◆ vnet_flow_action_t

Enumerator
foreach_flow_action 

Definition at line 65 of file flow.h.

◆ vnet_flow_error_t

Enumerator
VNET_FLOW_NO_ERROR 
foreach_flow_error 

Definition at line 81 of file flow.h.

◆ vnet_flow_type_t

Enumerator
VNET_FLOW_TYPE_UNKNOWN 
VNET_FLOW_N_TYPES 

Definition at line 94 of file flow.h.

Function Documentation

◆ vnet_flow_add()

int vnet_flow_add ( vnet_main_t vnm,
vnet_flow_t flow,
u32 flow_index 
)

Definition at line 43 of file flow.c.

+ Here is the caller graph for this function:

◆ vnet_flow_del()

int vnet_flow_del ( vnet_main_t vnm,
u32  flow_index 
)

Definition at line 67 of file flow.c.

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

◆ vnet_flow_disable()

int vnet_flow_disable ( vnet_main_t vnm,
u32  flow_index,
u32  hw_if_index 
)

Definition at line 132 of file flow.c.

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

◆ vnet_flow_enable()

int vnet_flow_enable ( vnet_main_t vnm,
u32  flow_index,
u32  hw_if_index 
)

Definition at line 91 of file flow.c.

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

◆ vnet_flow_get_range()

int vnet_flow_get_range ( vnet_main_t vnm,
char *  owner,
u32  count,
u32 start 
)

Definition at line 24 of file flow.c.

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

◆ vnet_get_flow()

vnet_flow_t* vnet_get_flow ( u32  flow_index)

Definition at line 57 of file flow.c.

+ Here is the caller graph for this function:

Variable Documentation

◆ flow_main

vnet_flow_main_t flow_main

Definition at line 21 of file flow.c.

◆ foreach_flow_type

foreach_flow_type

Definition at line 113 of file flow.h.

◆ format_flow_actions

format_function_t format_flow_actions

Definition at line 183 of file flow.h.

◆ format_flow_enabled_hw

format_function_t format_flow_enabled_hw

Definition at line 184 of file flow.h.