vpp的feature

发布时间:2020-05-24 00:52:50 作者:骑个龙冻墙
来源:网络 阅读:2012


初始化

初始化有两步,先使用宏初始化内存然后再使用函数添加

1.1 先初始化arc

arc就是一串有序的feature的集合

VNET_FEATURE_ARC_INIT (device_input, static) =
{
  .arc_name  = "device-input",
  .start_nodes = VNET_FEATURES ("device-input"),
  .arc_index_ptr = &feature_main.device_input_feature_arc_index,
};

1.2 再初始化这个arc下的feature,通过.runs_before来控制feature的先后关系,当然也有runs_after

VNET_FEATURE_INIT (worker_handoff, static) = {
  .arc_name = "device-input",
  .node_name = "worker-handoff",
  .runs_before = VNET_FEATURES ("ethernet-input"),
};

VNET_FEATURE_INIT (span_input, static) = {
  .arc_name = "device-input",
  .node_name = "span-input",
  .runs_before = VNET_FEATURES ("ethernet-input"),
};

VNET_FEATURE_INIT (ethernet_input, static) = {
  .arc_name = "device-input",
  .node_name = "ethernet-input",
  .runs_before = 0, /* not before any other features */};

把这些node都挂在对应的构造函数上,在初始化的时候就会调用。然后初始化相应的配置,也就是vnet_feature_arc_init 这个函数,会根据之前的配置,将各feature的先后关系排列好。此时只是排列好顺序,并未插入feature_arc中,也就是不会被调用到。

调用vnet_feature_enable_disable即可,此时才是将要用到的feature真正的插入feature_arc中。

具体的实现是 vnet_config_add_feature() vnet_config_del_feature() 这两个个函数跟之前版本的feature没有什么区别了。

使用

按照老版本的思想,feature至少分为两种,接口的feature和其他的feature


推荐阅读:
  1. Manage Attachment feature
  2. Cisco useful feature and commands

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

vpp pp ea

上一篇:h5调用摄像头

下一篇:网络流量分析利器-可视化网络-netflow【3】-netflow版本5和版本9区别

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》