vppbuffer接口
#头条创作挑战赛#vpp buffer接口buffer/** VLIB buffer representation. */ typedef union { // 使用union方便在结构体和byte(内存)之间转换 struct { CLIB_CACHE_LINE_ALIGN_MARK (cacheline0); // 用来做cacheline对齐 /** signed offset in data[], pre_data[] that we are currently * processing. If negative current header points into predata area. */ i16 current_data; /** Nbytes between current data and the end of this buffer. */ u16 current_length; /** buffer flags:
VLIB_BUFFER_FREE_LIST_INDEX_MASK: bits used to store free list index,
VLIB_BUFFER_IS_TRACED: trace this buffer.
VLIB_BUFFER_NEXT_PRESENT: this is a multi-chunk buffer.
VLIB_BUFFER_TOTAL_LENGTH_VALID: as it says
VLIB_BUFFER_EXT_HDR_VALID: buffer contains valid external buffer manager header, set to avoid adding it to a flow report
VLIB_BUFFER_FLAG_USER(n): user-defined bit N */ u32 flags; /** Generic flow identifier */ u32 flow_id; /** Reference count for this buffer. */ volatile u8 ref_count; /** index of buffer pool this buffer belongs. */ u8 buffer_pool_index; /** Error code for buffers to be enqueued to error handler. */ vlib_error_t error; /** Next buffer for this linked-list of buffers. Only valid if * VLIB_BUFFER_NEXT_PRESENT flag is set. */ u32 next_buffer; /** The following fields can be in a union because once a packet enters * the punt path, it is no longer on a feature arc */ union { /** Used by feature subgraph arcs to visit enabled feature nodes */ u32 current_config_index; /* the reason the packet once punted */ u32 punt_reason; }; /** Opaque data used by sub-graphs for their own purposes. */ u32 opaque[10]; /** part of buffer metadata which is initialized on alloc ends here. */ STRUCT_MARK (template_end); /** start of 2nd half (2nd cacheline on systems where cacheline size is 64) */ CLIB_ALIGN_MARK (second_half, 64); /** Specifies trace buffer handle if VLIB_PACKET_IS_TRACED flag is * set. */ u32 trace_handle; /** Only valid for first buffer in chain. Current length plus total length * given here give total number of bytes in buffer chain. */ u32 total_length_not_including_first_buffer; /**< More opaque data, see ../vnet/vnet/buffer.h */ u32 opaque2[14]; #if VLIB_BUFFER_TRACE_TRAJECTORY > 0 /** trace trajectory data - we use a specific cacheline for that in the * buffer when it is compiled-in */ #define VLIB_BUFFER_TRACE_TRAJECTORY_MAX 31 #define VLIB_BUFFER_TRACE_TRAJECTORY_SZ 64 #define VLIB_BUFFER_TRACE_TRAJECTORY_INIT(b) (b)->trajectory_nb = 0 CLIB_ALIGN_MARK (trajectory, 64); u16 trajectory_nb; u16 trajectory_trace[VLIB_BUFFER_TRACE_TRAJECTORY_MAX]; #else /* VLIB_BUFFER_TRACE_TRAJECTORY */ #define VLIB_BUFFER_TRACE_TRAJECTORY_SZ 0 #define VLIB_BUFFER_TRACE_TRAJECTORY_INIT(b) #endif /* VLIB_BUFFER_TRACE_TRAJECTORY */ /** start of buffer headroom */ CLIB_ALIGN_MARK (headroom, 64); /** 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. */ u8 pre_data[VLIB_BUFFER_PRE_DATA_SIZE]; /** Packet data */ u8 data[]; // 变长数组,用来保存数据部分 }; #ifdef CLIB_HAVE_VEC128 u8x16 as_u8x16[4]; #endif #ifdef CLIB_HAVE_VEC256 u8x32 as_u8x32[2]; #endif #ifdef CLIB_HAVE_VEC512 u8x64 as_u8x64[1]; #endif } vlib_buffer_t;常用接口增// 将数据data添加到buffer里,没有空余的buffer会申请新的内存,同时会将buffer的索引赋值给buffer_index,方便后续用于访问
int vlib_buffer_add_data ( vlib_main_t * vm , vlib_buffer_free_list_index_t free_list_index , u32 * buffer_index , void * data , u32 n_data_bytes ); 删always_inline void
vlib_buffer_free ( vlib_main_t * vm ,
/* pointer to first buffer */
u32 * buffers ,
/* number of buffers to free */
u32 n_buffers ); 改// 通过移动buffer的current_data指针来取数据或者添加数据,并同时修改buffer的current_length值
// 一般l为正数表示往前读取数据,当然也可以进行修改
// 一般l为负数表示往后添加数据
always_inline void vlib_buffer_advance ( vlib_buffer_t * b , word l ); 查 // vm是vpp运行时主结构体,buffer_index是buffer的索引,一般在添加buffer时可以获取到,或者遍历buffer时获取
always_inline vlib_buffer_t * vlib_get_buffer ( vlib_main_t * vm , u32 buffer_index );
// 获取当前数据所在的指针位置,一般用于对buffer进行指针偏移后使用
always_inline void * vlib_buffer_get_current ( vlib_buffer_t * b );
CBA浙江双雄进三甲,广东三强分列六七八,北京山东兄弟也扎堆北京时间1月2日晚,伴随着浙江稠州金租11386大胜山东高速,北京首钢112118不敌山西汾酒股份,20212022赛季CBA常规赛第17轮第2个比赛日战罢。当天,6场比赛过后,积
音乐演出网红NPC初雪上海欢乐谷让游客嗨玩新年首日听酷炫畅嗨的音乐演出,欣赏冬日魔都的第一场雪,与网红NPC互动合影,游历限定氛围打卡点2022年首日,上海欢乐谷内炫彩缤纷,许多市民来此感受节日氛围,开启园方为游客准备的元旦好礼。
游客眼中的朝鲜,和你想象中的朝鲜,有什么不一样?所谓耳听为虚,眼见为实,要对某个地方有正确的认知还是得身临其境,就比如大部分对我们邻国朝鲜的想象就和游客们实地探访看到的有不少区别。神秘的地方想必你也想择机前往一游吧,在去之前,也
有审美的照片才叫摄影,忘记游客照吧,手把手教你什么旅拍最出彩每一天,云游新疆一百天都会去新疆的不同地区,和我们的粉丝们一起发掘这片土地不一样的可爱之处。其实,这些景点并不遥远,400的飞机票(深圳飞乌鲁木齐460),六七天的时间,喀纳斯禾木
老教授在家带娃,天天带孙子读山海经,孩子的变化让人惊叹孩子五六岁的年纪,正是好玩的时候,几乎没有几个孩子愿意安静下来捧书来看,然而最近我们总能看到一对爷孙一起来书店打卡看书,孩子不过五六岁的年纪,还以为估计只能看得懂一些绘本什么的,没
新生儿爆款名字2022现代社会是一个洋气时尚的时候,给孩子起名也可以嵌入这些元素,这样可以给孩子起到一个爆款的好名字。而2022年是虎年,那么各位家长要如何给孩子取到一个爆款的名字呢?为此,给大家整理了
这几种泡甲醛的菜,家长就是扔了,也别给孩子吃导读随着时代的进步和社会的发展,越来越多的父母在育儿方面更加精细化,其中关于孩子的饮食健康,便是家长们的关注点之一。提及饮食健康,食品安全便是永恒话题,由此越来越多的家长们,在为孩
沿着史铁生的脚印在地坛遛弯第一次去地坛公园,与史铁生的魂灵邂逅,结结实实地撞了个满怀,我居然浑然不觉。那是几年前的大年初五,地坛庙会期间。年节上的庙会,历来是北京的传统节庆的保留节目,尤以地坛厂甸等文化庙会
肝发硬,头先知?头部若出现这几种情况,或要引起重视肝脏是人体中最大的代谢器官,主要功能是代谢排毒,同时还能储存血液,调节血液,帮助机体各组织各细胞维持正常平衡,分泌胆汁和蛋白质参与肠胃消化和吸收,肝脏对健康影响不容忽视。随着国民饮
耳鸣嗡嗡响,太烦人!2味药材煮水喝,滋补肝肾,消除耳鸣对于80的耳鸣患者而言,可能耳鸣并不影响生活工作休息,所以可以不必在意,但是如果耳鸣不断加重,影响到睡眠工作生活,那么,再去采取药物治疗,就错过了最佳的治疗时期!如果经过检查没有明
皮裙子搭配什么上衣好看皮质单品,许多女孩不敢轻易尝试。它有很强的气场,穿上后,整个人都很酷帅。那么,冬天皮裙子搭配什么上衣好看呢?接下来就来学习一组时尚达人的皮裙穿搭示范吧。look1黑色大衣内搭白色高
不懂就问!现实生活中普通人有这种气质的吗?讲真的!一个人的气质真的很重要呐!特别是肩颈的部分,颈部看起来修长干净那体态肯定差不了,女明星还在拼命保养,那咱普通人也不能摆烂啊!!像我就是脖子上的颈纹一根一根的太显老了!整个人
每次洗头发为什么掉头发?冬日生活打卡季每次洗头发为什么都掉一把头发?头发为什么掉了,其实头发就像是树上的叶子一样。五脏这个树根越好,上面的枝叶就越茂盛,你就越来越显得精神焕发。为什么我的头发掉了,为什么头
中超0送深足五连败北京时间12月19日,中超第29轮补赛,山东泰山对阵深圳队。上半场泰山对深足进行围攻,在遭遇了短时间的抵抗后,短时间打进三球,费莱尼双响,莫伊塞斯推射破门,半场结束泰山3球领先。下
钛媒体独家Arm确认对华禁售先进芯片设计产品,阿里等中企将受影响2021年12月,阿里推出由阿里平头哥研发基于ARM架构的服务器CPU芯片倚天710,并于2022云栖大会上宣布倚天710已大范围应用(来源阿里)中国芯片设计公司想要基于ARM架构
回家吧崽子们,平安夜在等着你,圣诞节在等着你回家吧崽子们,你们在外做流浪猫也好,你们在全球为非作歹也罢,整整齐齐已经三年了,该回你们的老家去了。就像人家中国的春节一样,到了万家团圆的时候。中国人的俚语里有事不过三之说,但愿你
所谓知心朋友,不是让别人知道你的心,而是你要知道别人的心每日感悟第26天所有的朋友都是由陌生人变来的挑战3天在头条写日记我的万能生活经验如何用一句话来形容你的孤独陌生人点两次头就成为了点头之交,再吃顿饭就成为了朋友,朋友再多聚几次,就可
挥别2022奔赴2023网图辞别日子过得真快啊,不知不觉又是一年。孩提时,数着传统节日度时光,节日里可以走人户,可以缝新衣服,可以吃到嘎嘎。少年时,数着寒暑假期度光阴,放假了可以不做作业,可以不背课文,可
余承东的眼泪和华为的战机芯片天堑还在,华为何时回到5G手机牌桌?荣耀vivo追兵已至,余承东最贵4G手机还能挺多久文智物在与央视史小诺的访谈中,华为消费者业务负责人余承东罕见地感性发言Mate50是华为的
当我把运营商的光猫改了桥接为了保证家里的网络稳定,我准备把光猫改成桥接模式,让路由器当主力军那么光猫只需要负责光电转换,路由器拨号上网,把上网的事儿都交给性能比较好的路由器来解决。一我家的拓扑结构由于现在住
口味重,敌不过好处多!但这几类人吃了反伤身大蒜洋葱香葱等,是很多菜品中的配角,因其独特的味道,喜欢的人,不管烹调什么都喜欢加一点,但也有不少人对它们敬而远之不过,小编想告诉大家,这些葱类蔬菜可不仅仅是菜肴中的调味品,甚至有
2023年元旦用酒,在超市遇到这4款别犹豫,抓紧下手,低价又纯粮我们这个地方冬天夏天都是差不多的温度。只不过是稍微冷和稍微热些的差别,也其实一年四季没有分的那么明显,冬天来的还是挺悄无声息的,这是让人比较遗憾的一点,我看了许多视频上面北方的天气