vpp安装与使用

VPP平台是一个可扩展的框架,可提供开箱即用的生产质量交换机/路由器功能,对数据进行一些处理。

下载与安装

从git上拉取,这里选择1801的版本

git clone -b stable/1801 https://github.com/FDio/vpp.git

下载完成后,进行编译

./extras/vagrant/build.sh && make 

编译完成后,会在build-root目录下,生成一些deb文件
执行以下命令进行安装

dpkg –i vpp-lib_18.01.2-1~g9b554f3_amd64.deb
dpkg –i vpp_18.01.2-1~g9b554f3_amd64.deb
dpkg –i vpp-dev_18.01.2-1~g9b554f3_amd64.deb
dpkg –i vpp-plugins_18.01.2-1~g9b554f3_amd64.deb

执行完成以后,查看/etc/vpp/startup.conf,如果生成了这个配置文件,并且在/usr/lib/vpp_plugins/下生成了一些.so文件,说明安装成功。

配置

需要先查看自己网卡相关pci地址

lspci |grep Eth
02:04.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
03:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
0b:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
13:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)

其中,VMXNET3是之前做的多队列网卡,可以使用。
修改配置文件/etc/vpp/startup.conf

cpu {
        main-core 0
}

unix {
        # 如果需要使用 vppctl,需要 cli-listen /run/vpp/cli.sock
        interactive cli-listen 127.0.0.1:5002
        log /tmp/vpp.log
        full-coredump
}

dpdk {
        uio-driver igb_uio
        dev 0000:03:00.0
        dev 0000:0b:00.0
        dev 0000:13:00.0
}

准备dpdk环境

#这里vpp的测试运行依赖于uio 和igb_uio模块,igb_uio模块依赖于dpdk
export RTE_SDK=/home/hlp/dpdk/dpdk-stable-19.08.2
export RTE_TARGET=x86_64-native-linux-gcc
./usertools/dpdk-setup.sh   #选择43 
#配置内存 
modprobe uio
#modprobe igb_uio
echo 4 >/sys/devices/system/node/node0/hugepages/hugepages-1048576kB/nr_hugepages 
echo 1024 >/sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages 

# 三个多队列网卡供dpdk vpp用,先将 eth0/eth1/eth2 关闭
ifconfig eth0 down
ifconfig eth1 down
ifconfig eth2 down

启动vpp进行测试

vpp -c /etc/vpp/startup.conf

如果启动成功,会出现以下画面
在这里插入图片描述
停止vpp

service vpp stop

增加插件

通过添加一个插件,来熟悉vpp的命令与操作
添加插件之前,需要先运行进入vpp,配置好网卡的设置。

# 可以通过vppctl进入,操作vpp配置
vppctl
# 查看网络接口
vpp# show int
              Name               Idx       State          Counter          Count     
GigabitEthernet13/0/0             3        down      
GigabitEthernet3/0/0              1        down      
GigabitEthernetb/0/0              2        down      
local0                            0        down 

#配置网卡和ip
vpp# set interface state GigabitEthernet13/0/0 up
vpp# set interface ip address GigabitEthernet13/0/0 192.168.0.119/24
# 再查看一次,有变化
vpp# show int
              Name               Idx       State          Counter          Count     
GigabitEthernet13/0/0             3         up       rx packets                     6
                                                     rx bytes                     469
                                                     drops                          6
                                                     ip4                            4
                                                     ip6                            1
GigabitEthernet3/0/0              1        down      
GigabitEthernetb/0/0              2        down      
local0                            0        down 
#配置vlan
vpp# create bridge-domain 10
bridge-domain 10
vpp# set interface l2 bridge GigabitEthernet3/0/0 10
vpp# create sub-interfaces GigabitEthernet3/0/0 10 dot1q 10 
GigabitEthernet3/0/0.10
# 设置ip
ip addr add 192.168.3.128/24 dev vpp1host
ip addr show vpp1host

接下来是加入插件

# 拷贝插件代码,到./src/plugins目录下
```shell
ls pktdump
pktdump.c  pktdump.h  pktdump_node.c

第一步,在./src目录下,新增一个.am文件,是多线程的makefile,添加相应的头文件和源文件进行编译,可以拷贝已有.am文件进行修改。

vi pktdump.am

第二步,修改./src/configure.ac,增加编译选项

# 增加一句
PLUGIN_ENABLED(pktdump)

第三步,修改./src/plugins/Makefile.am,增加相应插件

if ENABLE_PKTDUMP_PLUGIN
include pktdump.am
endif

最后重新编译再运行

make wipe
make build 
make run

注意要打开插件的“开关”

vpp# pktdump

这样即可运行。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值