52 uword n_left = n_buffers;
57 while (__sync_lock_test_and_set (pif->lockp, 1))
76 if (pif->pcap_file_name != 0)
79 if (pif->pcap_file_name != 0)
static void vlib_buffer_free(vlib_main_t *vm, u32 *buffers, u32 n_buffers)
Free buffers Frees the entire buffer chain for each buffer.
u8 runtime_data[0]
Function dependent node-runtime data.
i16 current_data
signed offset in data[], pre_data[] that we are currently processing.
u8 pre_data[VLIB_BUFFER_PRE_DATA_SIZE]
Space for inserting data before buffer start.
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
static void pcap_add_buffer(pcap_main_t *pm, vlib_main_t *vm, u32 buffer_index, u32 n_bytes_in_trace)
Add buffer (vlib_buffer_t) to the trace.
#define VLIB_BUFFER_IS_TRACED
#define clib_memcpy(a, b, c)
clib_error_t * pcap_write(pcap_main_t *pm)
Write PCAP file.
static void * vlib_frame_args(vlib_frame_t *f)
Get pointer to frame scalar data.
static void * vlib_add_trace(vlib_main_t *vm, vlib_node_runtime_t *r, vlib_buffer_t *b, u32 n_data_bytes)
uword pg_output(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
#define ETHERNET_MAX_PACKET_BYTES
u32 flags
buffer flags: VLIB_BUFFER_FREE_LIST_INDEX_MASK: bits used to store free list index, VLIB_BUFFER_IS_TRACED: trace this buffer.
static vlib_buffer_t * vlib_get_buffer(vlib_main_t *vm, u32 buffer_index)
Translate buffer index into buffer pointer.
pg_interface_t * interfaces