VPP配置网卡多队列no bufs问题

在VPP配置文件/etc/vpp/startup.conf中启用网卡的多队列功能,指定接收和发送队列的数量。

dpdk {

   dev default {

      num-rx-queues 4

      num-tx-queues 4

   }

在测试中发现如下情况,网卡的rx no bufs错误计数非常高。

vpp # show hardware-interfaces

GigabitEthernet2/0/0                               1     up   GigabitEthernet2/0/0

  Link speed: 10 Gbps

  RX Queues:

    queue thread         mode

    0     vpp_wk_0 (1)   polling

    1     vpp_wk_1 (2)   polling

    2     vpp_wk_2 (3)   polling

    3     vpp_wk_3 (4)   polling

  Intel 82599

    carrier up full duplex mtu 1500

    flags: admin-up pmd maybe-multiseg tx-offload intel-phdr-cksum rx-ip4-cksum int-supported

    Devargs:

    rx: queues 4 (max 128), desc 1024 (min 32 max 4096 align 8)

    tx: queues 4 (max 64), desc 1024 (min 32 max 4096 align 8)

    tx frames ok                                        1228

    tx bytes ok                                        73998

    rx frames ok                                        2639

    rx bytes ok                                       158486

    rx missed                                     1106737634

    rx no bufs                                  379872039168

网上查询可以通过增加socket-mem或者num-mbufs的数量来解决此问题,但是VPP目前都不再支持这两个参数。查询startup.conf文件,发现可通过设置buffers-per-numa解决。其默认值为16384,修改为128000之后,问题解决。

    ## Increase number of buffers allocated, needed only in scenarios with

    ## large number of interfaces and worker threads. Value is per numa node.

    ## Default is 16384 (8192 if running unpriviledged)

buffers {

        buffers-per-numa 128000

        default data-size 2048

VPP启动之后可见,buffers的总数量为128016,可用的还有97560,使用了29845,默认值16384明显不够使用。

vpp# show buffers

Pool Name            Index NUMA  Size  Data Size  Total  Avail  Cached   Used

default-numa-0         0     0   2752     2048   128016  97560    611    29845

VPP文件src/vlib/buffer.c定义了默认的buffers数量。

#define VLIB_BUFFER_DEFAULT_BUFFERS_PER_NUMA 16384

#define VLIB_BUFFER_DEFAULT_BUFFERS_PER_NUMA_UNPRIV 8192

VPP(Vector Packet Processing)是一种高性能数据平面框架,支持多种协议,包括 IKEv2(Internet Key Exchange version 2)协议。在VPP配置IKEv2,需要进行以下步骤: 1. 安装VPP 首先,需要安装VPP和相关的插件。可以从官方网站上下载最新版本的VPP,并按照官方文档进行安装。 2. 配置IKEv2插件 在VPP中,可以使用IKEv2插件来实现IKEv2协议的支持。需要启用IKEv2插件,可以使用以下命令: ``` set plugins plugin_path /usr/lib64/vpp_plugins/ set plugins plugin default-plugin-enable set plugins plugin ikev2-plugin-enable ``` 3. 配置IKEv2连接 在VPP中,可以使用IKEv2插件来创建IKEv2连接。可以使用以下命令创建IKEv2连接: ``` ikev2 profile name IKEV2-PROFILE ikev2 profile auth shared-secret KEY ikev2 profile local-auth method pre-shared-key ikev2 profile remote-auth method pre-shared-key ikev2 profile local-id name FQDN ikev2 profile remote-id name FQDN ikev2 profile tunnel-ip local IP_ADDRESS ikev2 profile tunnel-ip remote IP_ADDRESS ikev2 profile ike-crypto-profile IKE-CRYPTO-PROFILE ikev2 profile esp-crypto-profile ESP-CRYPTO-PROFILE ``` 4. 配置IKEv2策略 在VPP中,可以使用IKEv2插件来配置IKEv2策略。可以使用以下命令配置IKEv2策略: ``` ikev2 policy name IKEV2-POLICY ikev2 policy proposal 1 encryption aes-256-gcm ikev2 policy proposal 1 integrity sha-256 ikev2 policy proposal 1 dh-group 19 ikev2 policy proposal 1 lifetime seconds 3600 ``` 5. 配置IKEv2安全协议 在VPP中,可以使用IKEv2插件来配置IKEv2安全协议。可以使用以下命令配置IKEv2安全协议: ``` ikev2 crypto name IKE-CRYPTO ikev2 crypto proposal 1 encryption aes-256-gcm ikev2 crypto proposal 1 integrity sha-256 ikev2 crypto proposal 1 dh-group 19 ikev2 crypto proposal 1 lifetime seconds 3600 ``` 6. 配置ESP安全协议 在VPP中,可以使用IKEv2插件来配置ESP安全协议。可以使用以下命令配置ESP安全协议: ``` ikev2 crypto name ESP-CRYPTO ikev2 crypto proposal 1 encryption aes-256-gcm ikev2 crypto proposal 1 integrity sha-256 ikev2 crypto proposal 1 lifetime seconds 3600 ``` 7. 配置IKEv2转发 在VPP中,可以使用IKEv2插件来配置IKEv2转发。可以使用以下命令配置IKEv2转发: ``` ikev2 route name IKEV2-ROUTE ikev2 route local-networks 10.0.0.0/24 ikev2 route remote-networks 10.1.0.0/24 ikev2 route profile IKEV2-PROFILE ``` 以上就是在VPP配置IKEv2的步骤。需要根据实际情况进行调整和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值