FD.io VPP  v17.07.01-10-g3be13f0
Vector Packet Processing
flowprobe.h File Reference

flow-per-packet plugin header file More...

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

Go to the source code of this file.

Data Structures

struct  flowprobe_protocol_context_t
 
struct  flowprobe_entry_t
 
struct  flowprobe_main_t
 

Macros

#define FLOWPROBE_TIMER_ACTIVE   (15)
 
#define FLOWPROBE_TIMER_PASSIVE   120
 
#define FLOWPROBE_LOG2_HASHSIZE   (18)
 
#define FLOW_MAXIMUM_EXPORT_ENTRIES   (1024)
 
#define FLOWPROBE_KEY_IN_U32   22
 

Enumerations

enum  flowprobe_record_t {
  FLOW_RECORD_L2 = 1 << 0, FLOW_RECORD_L3 = 1 << 1, FLOW_RECORD_L4 = 1 << 2, FLOW_RECORD_L2_IP4 = 1 << 3,
  FLOW_RECORD_L2_IP6 = 1 << 4, FLOW_N_RECORDS = 1 << 5
}
 
enum  flowprobe_variant_t {
  FLOW_VARIANT_IP4, FLOW_VARIANT_IP6, FLOW_VARIANT_L2, FLOW_VARIANT_L2_IP4,
  FLOW_VARIANT_L2_IP6, FLOW_N_VARIANTS
}
 

Functions

 STATIC_ASSERT (sizeof(flowprobe_variant_t)==1,"flowprobe_variant_t is expected to be 1 byte, ""revisit padding in flowprobe_key_t")
 
typedef CLIB_PACKED (union{struct{u32 rx_sw_if_index;u32 tx_sw_if_index;u8 src_mac[6];u8 dst_mac[6];u16 ethertype;ip46_address_t src_address;ip46_address_t dst_address;u8 protocol;u16 src_port;u16 dst_port;flowprobe_variant_t which;};u32 as_u32[FLOWPROBE_KEY_IN_U32];}) flowprobe_key_t
 
 STATIC_ASSERT (sizeof(flowprobe_key_t)==FLOWPROBE_KEY_IN_U32 *sizeof(u32),"flowprobe_key_t padding is wrong")
 
void flowprobe_flush_callback_ip4 (void)
 
void flowprobe_flush_callback_ip6 (void)
 
void flowprobe_flush_callback_l2 (void)
 
u8format_flowprobe_entry (u8 *s, va_list *args)
 

Variables

flowprobe_main_t flowprobe_main
 

Detailed Description

flow-per-packet plugin header file

Definition in file flowprobe.h.

Macro Definition Documentation

#define FLOW_MAXIMUM_EXPORT_ENTRIES   (1024)

Definition at line 61 of file flowprobe.h.

#define FLOWPROBE_KEY_IN_U32   22

Definition at line 75 of file flowprobe.h.

#define FLOWPROBE_LOG2_HASHSIZE   (18)

Definition at line 33 of file flowprobe.h.

#define FLOWPROBE_TIMER_ACTIVE   (15)

Definition at line 31 of file flowprobe.h.

#define FLOWPROBE_TIMER_PASSIVE   120

Definition at line 32 of file flowprobe.h.

Enumeration Type Documentation

Enumerator
FLOW_RECORD_L2 
FLOW_RECORD_L3 
FLOW_RECORD_L4 
FLOW_RECORD_L2_IP4 
FLOW_RECORD_L2_IP6 
FLOW_N_RECORDS 

Definition at line 35 of file flowprobe.h.

Enumerator
FLOW_VARIANT_IP4 
FLOW_VARIANT_IP6 
FLOW_VARIANT_L2 
FLOW_VARIANT_L2_IP4 
FLOW_VARIANT_L2_IP6 
FLOW_N_VARIANTS 

Definition at line 46 of file flowprobe.h.

Function Documentation

typedef CLIB_PACKED ( union{struct{u32 rx_sw_if_index;u32 tx_sw_if_index;u8 src_mac[6];u8 dst_mac[6];u16 ethertype;ip46_address_t src_address;ip46_address_t dst_address;u8 protocol;u16 src_port;u16 dst_port;flowprobe_variant_t which;};u32 as_u32[FLOWPROBE_KEY_IN_U32];}  )
void flowprobe_flush_callback_ip4 ( void  )

Definition at line 838 of file node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void flowprobe_flush_callback_ip6 ( void  )

Definition at line 844 of file node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void flowprobe_flush_callback_l2 ( void  )

Definition at line 850 of file node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_flowprobe_entry ( u8 s,
va_list *  args 
)

Definition at line 749 of file flowprobe.c.

+ Here is the call graph for this function:

STATIC_ASSERT ( sizeof(flowprobe_variant_t = =1,
"flowprobe_variant_t is expected to be 1  byte,
""revisit padding in flowprobe_key_t"   
)
STATIC_ASSERT ( sizeof(flowprobe_key_t)  = =FLOWPROBE_KEY_IN_U32 *sizeof(u32),
"flowprobe_key_t padding is wrong"   
)

Variable Documentation

flowprobe_main_t flowprobe_main

Definition at line 54 of file flowprobe.c.