On Nov 27, 2018, at 4:08 AM, Dave Barach (dbarach) <dbar...@cisco.com> wrote:
> Opaque[10] is the primary metadata. That's only 40 bytes. Do you mean that > /* Offset within data[] that we are currently processing. > If negative current header points into predata area. */ > i16 current_data; /**< signed offset in data[], pre_data[] > that we are currently processing. > If negative current header points into predata area. > */ > u16 current_length; /**< Nbytes between current data and > the end of this buffer. > */ > u32 flags; /**< buffer flags */ > u32 flow_id; /**< Generic flow identifier */ > > > u32 next_buffer; /**< Next buffer for this linked-list of buffers. > Only valid if VLIB_BUFFER_NEXT_PRESENT flag is set. > */ > > u32 current_config_index; /**< Used by feature subgraph arcs to > visit enabled feature nodes > */ > u16 error; /**< Error code for buffers to be enqueued > to error handler. > */ > u8 n_add_refs; /**< Number of additional references to this buffer. */ > > u8 buffer_pool_index; /**< index of buffer pool this buffer belongs. */ > > u32 opaque[10]; /**< Opaque data used by sub-graphs for their own purposes. > See above */ is the primary metadata? > Opaque2[12] is the secondary metadata. That's only 48 bytes; do you mean that > u32 trace_index; /**< Specifies index into trace buffer > if VLIB_PACKET_IS_TRACED flag is set. > */ > u32 recycle_count; /**< Used by L2 path recycle code */ > > u32 total_length_not_including_first_buffer; > /**< Only valid for first buffer in chain. Current length plus > total length given here give total number of bytes in buffer chain. > */ > u8 free_list_index; /** < only used if > > VLIB_BUFFER_NON_DEFAULT_FREELIST > flag is set */ > u8 align_pad[3]; /**< available */ > u32 opaque2[12]; /**< More opaque data, see ../vnet/vnet/buffer.h */ > > /***** end of second cache line */ > u8 pre_data[VLIB_BUFFER_PRE_DATA_SIZE]; /**< Space for inserting data > before buffer start. > Packet rewrite string will be > rewritten backwards and may > extend > back before buffer->data[0]. > Must come directly before packet > data. > */ > is the secondary metadata? > BTW, I've decided to pull all of these opaque structure definitions out of > the WS dissector, and do most all of the formatting on the vpp side. Should > reduce maintenance to near-zero, eliminate endian swapping issues, and > generally make life less miserable for everyone involved. So does "doing most [or] all of the formatting on the vpp side" change what's in the header? Or does it just mean that most of the fields of the header should be marked as "opaque data"? _______________________________________________ tcpdump-workers mailing list tcpdump-workers@lists.tcpdump.org https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers