如下图所示,详细内容见源码,可以留意这几个函数
VLIB_BUFFER_SET_EXT_HDR_SIZE:vlib_buffer_pool_create函数 给vlib_buffer_t前面添加额外的空间。dpdk_process_rx_burst:将rte_mbuf转换成vlib_buffer_t。由于数据存储在相同的内存位置,无需移动,代价很小。


这种设计有可取性:在C语言中,操作指针,隐藏不应该显示的部分。
如下图所示,详细内容见源码,可以留意这几个函数
VLIB_BUFFER_SET_EXT_HDR_SIZE : vlib_buffer_pool_create 函数 给 vlib_buffer_t 前面添加额外的空间。dpdk_process_rx_burst :将 rte_mbuf 转换成 vlib_buffer_t 。由于数据存储在相同的内存位置,无需移动,代价很小。

这种设计有可取性:在C语言中,操作指针,隐藏不应该显示的部分。