Go to the source code of this file.
|
static u8 * | format_flowperpkt_ipv4_trace (u8 *s, va_list *args) |
|
static void | add_to_flow_record_ipv4 (vlib_main_t *vm, vlib_node_runtime_t *node, flowperpkt_main_t *fm, u32 rx_sw_if_index, u32 tx_sw_if_index, u32 src_address, u32 dst_address, u8 tos, u64 timestamp, u16 length, int do_flush) |
| add an entry to the flow record under construction More...
|
|
void | flowperpkt_flush_callback_ipv4 (void) |
|
static uword | flowperpkt_ipv4_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
|
#define foreach_flowperpkt_ipv4_error |
Enumerator |
---|
FLOWPERPKT_N_ERROR |
|
Definition at line 64 of file node.c.
Enumerator |
---|
FLOWPERPKT_IPV4_NEXT_DROP |
|
FLOWPERPKT_IPV4_NEXT_LOOKUP |
|
FLOWPERPKT_IPV4_N_NEXT |
|
Definition at line 78 of file node.c.
static void add_to_flow_record_ipv4 |
( |
vlib_main_t * |
vm, |
|
|
vlib_node_runtime_t * |
node, |
|
|
flowperpkt_main_t * |
fm, |
|
|
u32 |
rx_sw_if_index, |
|
|
u32 |
tx_sw_if_index, |
|
|
u32 |
src_address, |
|
|
u32 |
dst_address, |
|
|
u8 |
tos, |
|
|
u64 |
timestamp, |
|
|
u16 |
length, |
|
|
int |
do_flush |
|
) |
| |
|
inlinestatic |
add an entry to the flow record under construction
- Parameters
-
vm | vlib_main_t * current worker thread main structure pointer |
fm | flowperpkt_main_t * flow-per-packet main structure pointer |
sw_if_index | u32 interface handle |
tos | u8 ToS bits from the packet |
timestamp | u64 timestamp, nanoseconds since 1/1/70 |
length | u16 ip length of the packet |
do_flush | int 1 = flush all cached records, 0 = construct a record |
Definition at line 97 of file node.c.
void flowperpkt_flush_callback_ipv4 |
( |
void |
| ) |
|
static u8* format_flowperpkt_ipv4_trace |
( |
u8 * |
s, |
|
|
va_list * |
args |
|
) |
| |
|
static |
char* flowperpkt_ipv4_error_strings[] |
|
static |
Initial value:= {
#define _(sym,string)
}
#define foreach_flowperpkt_ipv4_error
Definition at line 72 of file node.c.
Initial value:= {
.name = "flowperpkt-ipv4",
.vector_size =
sizeof (
u32),
.next_nodes = {
},
}
static char * flowperpkt_ipv4_error_strings[]
static uword flowperpkt_ipv4_node_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
static u8 * format_flowperpkt_ipv4_trace(u8 *s, va_list *args)
IPFIX ipv4 flow-per-packet graph node.
- Node Identifier:
flowperpkt-ipv4
This is the IPFIX flow-record-per-packet node.
- Parameters
-
- 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 59 of file node.c.