Skip to content

mbuf ​


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

mbuf的结构 ​

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

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

成员说明
void *buf_addr数据起始地址
uint16_t data_offbuf_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