跳转至

mbuf


mbuf用来存储数据,例如:报文,事件
使用mempool管理维护mbuf

mbuf的结构

组成 描述 长度 是否必须
struct mbuf mbuf结构体头
128字节 必须
数据 实际数据部分
数据部分又分为3个部分:
headroom(默认128字节)
dataroom
tailroom
自定义 必须

mbuf
mbuf结构体里的长度定义:

成员 说明
void *buf_addr 数据起始地址
uint16_t data_off buf_addr到有效数据长度偏移,即headroom的长度
uint16_t nb_segs 有多少个数据段,即一个mbuf链上有多少个mbuf
uint32_t pkt_len 有效数据总长;如果存在链,则链上每个buf的data_len总和
uint16_t data_len 该mbuf内有效数据长度
uint16_t buf_len 该mbuf数据部分总长,包括headroom,dataroom,tailroom

数据分段情况示意图:
mbuf

参考

dpdk-mbuf-lib