网上看了别人写的feature机制介绍,感觉一头雾水,果然要想理解还是要自己通过代码
下面谈谈我对feature机制的理解,主要还是介绍我使用feature的经验
在了解feature之前,需要先明白vpp的node是如何工作的
创建一个plugins 名字为testdual
通过node.c文件可以看到,该插件注册了一个node

.n_next_nodes的值表示当前节点的下一个节点有多少个
.next_nodes表示下一个节点的候选项
接着分析数据包在node.c里面是如何转发数据包的

vpp里面通过这种赋值的方式设置数据包转发的下一个节点,这里在VPPnode节点分析里写的很清楚,建议看明白
上面这种属于vpp在初始化的时候会根据注册节点的说明给节点之间的关系建立连接,属于静态的
既然是静态的,就表示node之间的连接是固定,不够灵活,为了解决node节点的灵活穿插,引入了feature机制
当然从思想上也很好理解,数据包是在内存池里的,node使用的只是指向数据包的指针,数据包在不同node之间转发本质上也是把数据包的指针存放到不同node的frame里,无论是feature还是直接在注册node时指定下一个node本质上都是记录下当前n

本文深入探讨了VPP网络平台中的Feature机制,介绍了其工作原理、实现方式及如何灵活控制数据包转发流程。通过实例展示了如何注册Feature,调整节点间的优先级,并详细解释了Feature机制在节点间转发数据包时的作用。
最低0.47元/天 解锁文章
1830





