FD.io VPP  v17.04.2-2-ga8f93f8
Vector Packet Processing
flowperpkt.h File Reference

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

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

Go to the source code of this file.

Data Structures

struct  flowperpkt_main_t
 

Enumerations

enum  flowperpkt_variant_t { FLOW_VARIANT_IPV4, FLOW_VARIANT_L2, FLOW_N_VARIANTS }
 

Functions

void flowperpkt_flush_callback_ipv4 (void)
 
void flowperpkt_flush_callback_l2 (void)
 

Variables

flowperpkt_main_t flowperpkt_main
 
vlib_node_registration_t flowperpkt_ipv4_node
 IPFIX ipv4 flow-per-packet graph node. More...
 

Detailed Description

flow-per-packet plugin header file

Definition in file flowperpkt.h.

Enumeration Type Documentation

Enumerator
FLOW_VARIANT_IPV4 
FLOW_VARIANT_L2 
FLOW_N_VARIANTS 

Definition at line 68 of file flowperpkt.h.

Function Documentation

void flowperpkt_flush_callback_ipv4 ( void  )

Definition at line 313 of file node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void flowperpkt_flush_callback_l2 ( void  )

Definition at line 312 of file l2_node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

vlib_node_registration_t flowperpkt_ipv4_node
Initial value:
= {
.name = "flowperpkt-ipv4",
.vector_size = sizeof (u32),
.n_next_nodes = FLOWPERPKT_IPV4_N_NEXT,
.next_nodes = {
[FLOWPERPKT_IPV4_NEXT_DROP] = "error-drop",
[FLOWPERPKT_IPV4_NEXT_LOOKUP] = "ip4-lookup",
},
}
static char * flowperpkt_ipv4_error_strings[]
Definition: node.c:72
static uword flowperpkt_ipv4_node_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: node.c:332
#define ARRAY_LEN(x)
Definition: clib.h:59
unsigned int u32
Definition: types.h:88
static u8 * format_flowperpkt_ipv4_trace(u8 *s, va_list *args)
Definition: node.c:44

IPFIX ipv4 flow-per-packet graph node.

Node Identifier:
flowperpkt-ipv4

This is the IPFIX flow-record-per-packet node.

Parameters
vmvlib_main_t corresponding to the current thread.
nodevlib_node_runtime_t data for this node.
framevlib_frame_t whose contents should be dispatched.
Graph mechanics: buffer metadata, next index usage

Uses:

  • vnet_buffer(b)->ip.save_rewrite_length
    • tells the node the length of the rewrite which was applied in ip4/6_rewrite_inline, allows the code to find the IP header without having to parse L2 headers, or make stupid assumptions about their length.
  • vnet_buffer(b)->flags & VLIB_BUFFER_FLOW_REPORT
    • Used to suppress flow record generation for flow record packets.

Sets:

  • vnet_buffer(b)->flags & VLIB_BUFFER_FLOW_REPORT
    • To suppress flow record generation for flow record packets

Next Index:

  • Next configured output feature on the interface, usually "interface-output." Generated flow records head for ip4-lookup(constructor) VLIB_REGISTER_NODE (flowperpkt_ipv4_node)

Definition at line 547 of file node.c.

flowperpkt_main_t flowperpkt_main

Definition at line 54 of file flowperpkt.c.