1 vpp agent处理acl的时候,采用格式

/etcd/path/acl/acl-label

下发

2 vpp处理acl的时候,采用格式

acl add srcip 1234 dstip 2341

在返回结果里会生成一个id

3 如何将label和id统一起来?

4 有两种方法,

方法一,是将vpp的处理acl的接口多增加一个label。这样做的有一个nat44-ed中的DNAT是这样处理的。

方法二,是不修改vpp的代码,在vpp-agent里面做文章。详细描述如下,

5

描述符(descriptor)里包括了获取,更新,删除等针对南向(即对VPP)的操作。

在获取dump的时候,至少要获取到id信息。

6

在执行删除的时候,分别两种情况,一种是resync(vpp-agent刚启动,在和vpp同步配置).此种情况,vpp-agent会删除配置,配置来自于5的获取(retrieve或dump),这些获取的数据来自vpp,因而只有id,没有label。此时的删除针对id进行删除即可。

7 删除的第二种情况,是正常vpp-agent向vpp发送来自etcd的kv指令。

ETCDCTL_API=3 etcdctl del /vnf-agent/vpp1/config/vpp/cnat/v2/cnat/目的地址转换测试2

例如上面所谓正常指令。这种情况label vpp-agent是先前加过的,因而可基于label和id的映射(map)删除。

这里比较关键的是6这一步。相当于区分好是谁在基于什么信息做删除。

同步时时vpp-agent基于来自vpp的配置信息,去删除vpp的配置。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐