| lwIP
    2.1.2
    Lightweight IP stack | 
#include <pbuf.h>
| Data Fields | |
| struct pbuf * | next | 
| void * | payload | 
| u16_t | tot_len | 
| u16_t | len | 
| u8_t | type_internal | 
| u8_t | flags | 
| u8_t | ref | 
| u8_t | if_idx | 
Main packet buffer struct
| u8_t pbuf::flags | 
misc flags
| u8_t pbuf::if_idx | 
For incoming packets, this contains the input netif's index
| u16_t pbuf::len | 
length of this buffer
| struct pbuf* pbuf::next | 
next pbuf in singly linked pbuf chain
| void* pbuf::payload | 
pointer to the actual data in the buffer
| u8_t pbuf::ref | 
the reference count always equals the number of pointers that refer to this pbuf. This can be pointers from an application, the stack itself, or pbuf->next pointers from a chain.
| u16_t pbuf::tot_len | 
total length of this buffer and all next buffers in chain belonging to the same packet.
For non-queue packet chains this is the invariant: p->tot_len == p->len + (p->next? p->next->tot_len: 0)
| u8_t pbuf::type_internal | 
a bit field indicating pbuf type and allocation sources (see PBUF_TYPE_FLAG_*, PBUF_ALLOC_FLAG_* and PBUF_TYPE_ALLOC_SRC_MASK)