1.删除dpdk插件
DPDK在多个实例情况下不能很好的工作。所以要运行多个实例,我们需要删除DPDK插件来禁用它。命令如下:
sudo rm -rf /usr/lib/vpp_plugins/dpdk_plugin.so
2.运行vpp
vpp在用户空间中运行。在生产环境中,你通常将它与DPDK一起运行,以连接到实际的nic(网络接口控制器),或与vhost一起运行,以连接到vm。在这些情况下,你通常运行vpp的单个实例。
对于我们来说运行vpp的多个实例,并将它们相互连接以形成拓扑,这将非常有用。幸运的是,vpp支持这一点。
当运行多个vpp实例时,每个实例需要指定一个“名称”或“前缀”。在下面的例子中,“name”或“prefix”是“vpp1”。注意,只有一个实例可以使用dpdk插件,因为这个插件试图获得一个文件的锁。
sudo vpp unix {cli-listen /run/vpp/cli-vpp1.sock} api-segment { prefix vpp1 }
{prefix vpp1}:告诉vpp如何以与默认值不同的方式为您的vpp实例在/dev/shm/中命名文件。
unix {cli-listen /run/vpp/cli-vpp1.sock}:告诉vpp在被vppctl寻址时使用非默认套接字文件。
如果您看不到在主机上运行的vpp进程,那么激活nodaemon选项。
sudo vpp unix {nodaemon cli-listen /run/vpp/cli-vpp1.sock} api-segment { prefix vpp1 }