FD.io VPP  v19.08.1-401-g8e4ed521a
Vector Packet Processing
flow_report_classify.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ipfix_classify_table_t
 
struct  flow_report_classify_main_t
 

Macros

#define foreach_ipfix_ip4_field
 
#define foreach_ipfix_ip6_field
 
#define foreach_ipfix_tcpudp_field
 
#define foreach_ipfix_tcp_field
 
#define foreach_ipfix_udp_field
 
#define foreach_ipfix_transport_protocol_field
 
#define foreach_ipfix_field
 

Functions

static_always_inline u8 ipfix_classify_table_index_valid (u32 index)
 
static_always_inline ipfix_classify_table_tipfix_classify_add_table (void)
 
static_always_inline void ipfix_classify_delete_table (u32 index)
 
u8ipfix_classify_template_rewrite (flow_report_main_t *frm, flow_report_t *fr, ip4_address_t *collector_address, ip4_address_t *src_address, u16 collector_port, ipfix_report_element_t *elts, u32 n_elts, u32 *stream_index)
 
vlib_frame_tipfix_classify_send_flows (flow_report_main_t *frm, flow_report_t *fr, vlib_frame_t *f, u32 *to_next, u32 node_index)
 

Variables

flow_report_classify_main_t flow_report_classify_main
 

Macro Definition Documentation

◆ foreach_ipfix_field

#define foreach_ipfix_field
Value:
if (ip_version == 4) { \
ip = (ip4_header_t *)ip_start; \
tcpudp = (tcpudp_header_t *)(ip+1); \
foreach_ipfix_ip4_field; \
} else { \
ip6 = (ip6_header_t *)ip_start; \
tcpudp = (tcpudp_header_t *)(ip6+1); \
foreach_ipfix_ip6_field; \
} \
foreach_ipfix_transport_protocol_field
vl_api_address_t ip
Definition: l2.api:489

Definition at line 57 of file flow_report_classify.h.

◆ foreach_ipfix_ip4_field

#define foreach_ipfix_ip4_field
Value:
_(ip->src_address.as_u32, ((u32[]){0xFFFFFFFF}), sourceIPv4Address, 4) \
_(ip->dst_address.as_u32, ((u32[]){0xFFFFFFFF}), destinationIPv4Address, 4) \
_(ip->protocol, ((u8[]){0xFF}), protocolIdentifier, 1)
unsigned char u8
Definition: types.h:56
unsigned int u32
Definition: types.h:88
vl_api_address_t ip
Definition: l2.api:489

Definition at line 18 of file flow_report_classify.h.

◆ foreach_ipfix_ip6_field

#define foreach_ipfix_ip6_field
Value:
_(ip6->src_address.as_u8, \
((u32[]){0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF}), \
sourceIPv6Address, 16) \
_(ip6->dst_address.as_u8, \
((u32[]){0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF}), \
destinationIPv6Address, 16) \
_(ip6->protocol, ((u8[]){0xFF}), protocolIdentifier, 1)
unsigned char u8
Definition: types.h:56
unsigned int u32
Definition: types.h:88

Definition at line 23 of file flow_report_classify.h.

◆ foreach_ipfix_tcp_field

#define foreach_ipfix_tcp_field
Value:
_(tcpudp->src_port, ((u16[]){0xFFFF}), tcpSourcePort, 2) \
_(tcpudp->dst_port, ((u16[]){0xFFFF}), tcpDestinationPort, 2)
unsigned short u16
Definition: types.h:57

Definition at line 36 of file flow_report_classify.h.

◆ foreach_ipfix_tcpudp_field

#define foreach_ipfix_tcpudp_field
Value:
_(tcpudp->src_port, ((u16[]){0xFFFF}), sourceTransportPort, 2) \
_(tcpudp->dst_port, ((u16[]){0xFFFF}), destinationTransportPort, 2)
unsigned short u16
Definition: types.h:57

Definition at line 32 of file flow_report_classify.h.

◆ foreach_ipfix_transport_protocol_field

#define foreach_ipfix_transport_protocol_field
Value:
switch (transport_protocol) { \
case 255: \
foreach_ipfix_tcpudp_field; \
break; \
case 6: \
foreach_ipfix_tcp_field; \
break; \
case 17: \
foreach_ipfix_udp_field; \
break; \
}

Definition at line 44 of file flow_report_classify.h.

◆ foreach_ipfix_udp_field

#define foreach_ipfix_udp_field
Value:
_(tcpudp->src_port, ((u16[]){0xFFFF}), udpSourcePort, 2) \
_(tcpudp->dst_port, ((u16[]){0xFFFF}), udpDestinationPort, 2)
unsigned short u16
Definition: types.h:57

Definition at line 40 of file flow_report_classify.h.

Function Documentation

◆ ipfix_classify_add_table()

static_always_inline ipfix_classify_table_t* ipfix_classify_add_table ( void  )

Definition at line 94 of file flow_report_classify.h.

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

◆ ipfix_classify_delete_table()

static_always_inline void ipfix_classify_delete_table ( u32  index)

Definition at line 107 of file flow_report_classify.h.

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

◆ ipfix_classify_send_flows()

vlib_frame_t* ipfix_classify_send_flows ( flow_report_main_t frm,
flow_report_t fr,
vlib_frame_t f,
u32 to_next,
u32  node_index 
)

Definition at line 158 of file flow_report_classify.c.

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

◆ ipfix_classify_table_index_valid()

static_always_inline u8 ipfix_classify_table_index_valid ( u32  index)

Definition at line 86 of file flow_report_classify.h.

+ Here is the caller graph for this function:

◆ ipfix_classify_template_rewrite()

u8* ipfix_classify_template_rewrite ( flow_report_main_t frm,
flow_report_t fr,
ip4_address_t collector_address,
ip4_address_t src_address,
u16  collector_port,
ipfix_report_element_t elts,
u32  n_elts,
u32 stream_index 
)

Definition at line 29 of file flow_report_classify.c.

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

Variable Documentation

◆ flow_report_classify_main

flow_report_classify_main_t flow_report_classify_main

Definition at line 26 of file flow_report_classify.c.