目录

References

Prerequisite

Installation, Compilation and Configuration


VPP is an open-source Vector Packet Processing (VPP) platform by Cisco. The package supplies a powerful DPDK-based dataplane with a variety of Layer 3 (L3) and Layer 2 (L2) functionalities.

VPP can be integrated with OpenStack and third-party SDN controllers. Red Hat adopted VPP alongside OVS-DPDK as a hypervisor dataplane.

This post shows how to build a VPP development environment over DPDK for ConnectX-4 and ConnectX-5 adapters. The environment can be used to support networking functionalities and performance testing.

The post audience targets Developer/DevOps or a Technical Engineers, who would like to test and evaluate Mellanox ConnectX-4/5's integration with VPP.

  • References
  • Prerequisite
  • Installation, Compilation and Configuration

References

  • Performance tuning for VPP -  https://wiki.fd.io/view/VPP/How_To_Optimize_Performance_(System_Tuning)
  • Routing and Switching tutorial - https://wiki.fd.io/view/VPP/Tutorial_Routing_and_Switching
  • VPP CLI guide - https://wiki.fd.io/view/VPP/Command-line_Interface_(CLI)_Guide

Prerequisite

1. Install Ubuntu 16.04 operating system.

2. Install MLNX_OFED rel. 4.1-1.0.2.0  and use the ofed_info command to verify that the version is 4.1-1.0.2.0:

ofed_info -s

3. Set up an account to use the Linux Foundation resources.

To set up the account, refer to The Linux Foundation website:

https://identity.linuxfoundation.org.

4. Set up a Gerrit account and apply an ssh public key.

Follow the instructions on the FD.IO wiki web page: https://wiki.fd.io/view/DEV/Setting_up_Gerrit#Log_into_Gerrit

5. Install the following packages:

apt-get -y install git-review git dh-systemd bison libssl-dev libcr-dev libnuma-dev libganglia1-dev libapr1-dev libconfuse-dev debhelper dkms curl nasm 

6. Install Oracle Java 8.

install Oracle Java 8:
apt-get install software-properties-common -y
add-apt-repository ppa:webupd8team/java -y
apt-get update
apt-get install oracle-java8-installer oracle-java8-set-default -yJAVA_HOME=/usr/lib/jvm/java-8-oracle

Installation, Compilation and Configuration

1. Download the VPP main master branch.

git clone ssh://<USERNAME>@gerrit.fd.io:29418/vpp.git
git checkout origin/stable/1710

Use your Linux Foundation user name account you created, instead of <USERNAME> as in the from the example above.

2. Enable the mlx5 PMD driver compilation.

cd /vpp
sed -i '/vpp_uses_dpdk_mlx5_pmd/s/^# //g' build-data/platforms/vpp.mk 

3. Compile

cd /vpp
make dpdk-install-dev DPDK_MLX5_PMD=y
make install-dep
make build-release
make pkg-deb vpp_uses_dpdk_mlx5_pmd=yes
dpkg -i build-root/vpp-lib*
dpkg -i build-root/vpp_17*
dpkg -i build-root/vpp-plugins*

4. Edit the /etc/vpp/startup.conf start file so that it contains the following:

Important: Uncomment no-mulit-seg parameter. It disables jumbo packets handling and improves performances significantly.

unix {nodaemonlog /tmp/vpp.logcli-listen localhost:5002full-coredump
}dpdk {dev 0000:07:00.0dev 0000:07:00.1no-multi-segdev default {num-rx-queues 2}
}

eplace the PCI slot numbers of ConnectX-4/5 interfaces marked in red from the example above with the correct IDs. To verify the correct id use:

lspci -nn | grep -i mel07:00.0 Ethernet controller [0200]: Mellanox Technologies MT27620 Family [15b3:1013]07:00.1 Ethernet controller [0200]: Mellanox Technologies MT27620 Family [15b3:1013]

5. Start VPP.

service vpp start

6. Enter the VPP Command Line Interface.


telnet localhost 5002

7. Configure L3 interfaces as shown in the example below:

VPP CLI

    _______    _        _   _____  ___
__/ __/ _ \  (_)__    | | / / _ \/ _ \
_/ _// // / / / _ \   | |/ / ___/ ___/
/_/ /____(_)_/\___/   |___/_/  /_/vpp#  set int ip address HundredGigabitEthernet7/0/0 1.1.1.1/24
vpp#  set interface state HundredGigabitEthernet7/0/0 up
vpp#  set int ip address HundredGigabitEthernet7/0/1 2.2.2.2/24
vpp#  set interface state HundredGigabitEthernet7/0/1 upvpp# show intName               Idx       State          Counter          Count
HundredGigabitEthernet7/0/0      1         up
HundredGigabitEthernet7/0/1      2         upvpp# show int addressHundredGigabitEthernet7/0/0 (up):  1.1.1.1/24
HundredGigabitEthernet7/0/1 (up):  2.2.2.2/24local0 (dn):

How-to: Build VPP FD.IO development environment with Mellanox DPDK PMD.相关推荐

  1. How-to: Build VPP FD.IO with Mellanox DPDK PMD on top CentOS 7.7 with inbox drivers.

    目录 References Prerequisites Installation, Compilation and Configuration This short document will gui ...

  2. FD.io VPP 20.05 官方文档 总目录:用户文档+开发文档+命令行

    https://docs.fd.io/vpp/20.05/index.html Vector Packet Processing FD.io VPP ▼Vector Packet Processing ...

  3. FD.io/VPP — Overview

    目录 文章目录 目录 FD.io VPP FD.io 官网:https://fd.io FD.io(Fast data – Input/Output)是 Linux 基金会下属的一个开源项目,成立于 ...

  4. FD.io VPP的C语言接口如何使用:FD.io VPP: How To Use The C API

    目录 引言 - Introduction C语言API概述 - C API Overview 运行环境 - The Runtime Environment API回顾 - Message API Re ...

  5. FD.io VPP:用户文档:VPP RPM包的构建与离线安装

    VPP RPM包的构建与离线安装 RToax 2020年9月 要开始使用VPP进行开发,您需要获取所需的VPP源代码,然后构建软件包. 1. 设置代理 如果你的服务器本地可以连接互联网,则跳过设置代理 ...

  6. FD.io VPP对 DPDK的详细配置:绑定网卡,启动VPP

    目录 Prerequisites Using DPDK interfaces Configuring Vagrant and start the VM Checking the host-only n ...

  7. FD.io/VPP — VPP 的安装部署

    目录 文章目录 目录 源码编译安装 Troubleshooting 问题 1:Errors were encountered while processing 问题 2:NASM is not ins ...

  8. FD.io VPP环境下运行用户应用程序教程

    FD.io VPP环境下运行用户应用程序教程 RToax 2020年9月 相关文章:<FD.io VPP利用iperf3进行UDP灌包测试-英特尔X520万兆网卡> 1. VPP简介 VP ...

  9. FD.io VPP:CentOS7下构建自己的VPP RPM包

    FD.io VPP:用户文档 构建VPP RToax 2020年9月 要开始使用VPP进行开发,您需要获取所需的VPP源代码,然后构建软件包. 1. 设置代理 如果你的服务器本地可以连接互联网,则跳过 ...

最新文章

  1. java lambda循环_在Java 8 Lambda中创建自己的循环结构
  2. go语言php编译,Golang模板编译引擎FET
  3. 【手把手带你入门深度学习之150行代码的汉字识别系统】学习笔记 ·003 用训练模型进行预测
  4. 使用nlite制作集成驱动windows安装光盘及实践心得
  5. IDEA2019.3 双击启动无反应解决方法
  6. 基于C#在Mongodb的Skip-Limit和Where-Limit的分页对比 并且含mongodb帮助类的源码
  7. 闲来无聊,随便看下asp.net Mvc 的收获
  8. Scratch编程(九)扩展模块:翻译模块
  9. 2.4g低功耗SI24R1校园答题器
  10. eclipse安装GWT插件
  11. device or resource busy问题处理
  12. 洛必达法则的使用条件
  13. 读取云服务器文件列表,读取云服务器文件列表
  14. 思科的服务器困局:投资增长,还是退出?
  15. 阿拉伯数字转换为中文大写数字
  16. 计算机图形学:3D坐标系及左右手坐标的转换
  17. SWUSTOJ #616 排序查找
  18. 哈理工OJ 1630 网线 【建图+Prime算法】
  19. Win8系统下VS2012添加MSComm控件
  20. java 操作pdf_java操作PDF(PDFBOX和Itext框架)

热门文章

  1. h5 客服系统源码_Bos:做在线客服系统项目(附源码)
  2. leetcode题解206-反转链表
  3. Java源码阅读PriorityQueue
  4. 3.索引与string进行映射实现高效查找
  5. 项目中的textarea遇到的小问题
  6. Oracle的dbms_jobs 自动计划
  7. vscode终端无法识别node
  8. tp5连接mysql数据库_TP5的链接数据库
  9. vue方法传值到data_Vue组件创建和传值的方法
  10. armbian安装图形桌面_archlinux / parabola 图形用户界面安装教程