在Ubuntu 16.04上使用openDataplane和打开快速路径提高网络性能

基于Linux的网络解决方案的性能是过去最大的问题之一,这就是为什么英特尔启动数据平面开发工具包...

开放数据平面(ODP)

基于Linux的网络解决方案的性能是过去最大的问题之一,因此英特尔启动了数据平面开发套件(DPDK)项目。 ODP环境的目标是为数据平面应用程序提供一个跨平台架构。 ODP是一个开源项目,为数据平面应用提供了环境。 它易于使用,提供高性能,并且可以跨各种网络片上系统(SoC)以及ARM和Intel等指令集和架构进行移植。 OPD环境包括针对不同架构的配置文件,服务,API,以及为不同的底层硬件供应商优化的实用程序。 ODP环境的目的是将API与基础架构分开,并以其支持软件和硬件实现的方式进行设计,以深入开发现代SoC中存在的加速功能。

开放快速路径(OFP)

我们知道,需要高性能设备来指数级增长的数据流量,这需要网络中的快速数据包处理设备或机器。 OpenFastPath是高性能TCP / IP协议栈的另一个开源实现,它有助于使用传统Linux的网络应用程序。 OFP的主要功能是为使用ODP完成,执行模型和框架的不同应用程序提供的库。 OFP支持DPDK和ODP,以实现高性能的网络解决方案。

构建环境设置

根据OFP项目网站,它已经在通用的32 / 64bit x86 Linux机器上进行了测试。 在本教程中,OFP将安装在Ubuntu 16.04 VM上。

先决条件

以root用户身份执行以下步骤。 跑:

sudo -s

在服务器上成为根。

在Ubuntu上编译OFP和ODP代码需要以下软件包。

这些是访问和构建ODP和OFP的必需条件:

apt-get install git libtool automake build-essential pkg-config

安装ODP系统要求

但是,以下软件包是选项。

 apt-get install libssl-dev valgrind libcunit1 libcunit1-doc libcunit1-dev

安装可选但推荐的软件包

OFP路径可以与ODP和DPDK(intel)一起使用。 但是,在本教程中,ODP将与OFP项目一起使用。 使用git实用程序下载ODP代码,如下所示。

 git clone https://git.linaro.org/lng/odp.git

用GIT下载ODP

进入ODP源代码的根目录,并运行以下命令。

 ./bootstrap

Bootstrap ODP

在本教程中,ODP的安装目录为“/ usr / local / odp”。

mkdir /usr/local/odp

创建ODP目录

运行带有prefix选项的configure脚本,如下面的截图所示。

 ./configure --prefix=/usr/local/odp/

配置ODP

configure脚本的输出如下所示。

ODP配置输出

运行make和make安装在Ubuntu平台上编译和安装ODP。

make

制作ODP

make install

使用make install安装ODP

如下图所示,使用git命令下载OFP代码。

git clone https://github.com/OpenFastPath/ofp

用GIT下载OFP

输入OFP源代码的根目录,并运行./bootstrap命令。

cd ofp/
./bootstrap

引导OFP

OFP项目的安装目录为“/ usr / local / ofp”。 运行以下配置脚本来检查项目的依赖关系。

 ./configure --prefix=/usr/local/ofp/ --with-odp=/usr/local/odp/ --enable-cunit

检查OFP依赖

configure脚本的输出显示在以下快照中。

OFP配置脚本输出

运行“make”命令来构建OFP项目代码。 建立OFP应用程序需要一些时间。

make

使用make命令构建OFP代码

以下命令将在前缀路径中放置OFP项目二进制文件和库。

make install

安装OFP

安装后,二进制文件和库放在“ / usr / local / ofp ”路径下。 OFP项目的所有相关测试应用程序都位于“ bin ”目录下。

二进制文件的位置

执行OFP申请

要运行OFP应用程序(fpm) ,请进入OFP源代码根目录下的scripts目录。

输入脚本目录

默认情况下,fpm应用程序在eth0接口上运行。 但是,在ubuntu 16.04 LTS上,接口名称为“ enp0s3 ”。 以下屏幕截图显示了如何使用“ start_device.sh ”脚本运行fpm应用程序。

运行start_device.sh

运行“ fpm ”应用程序后,将创建一个新界面“ fp0 ”,如下所示。

fp0接口已创建

运行以下命令访问“ fpm ”应用程序的CLI。

telnet localhost 2345

使用telnet访问FPM应用程序

应用程序的CLI支持几个基本命令。 以下屏幕截图显示使用“ stat ”命令的界面统计信息。 运行fastpath应用程序后,以太网接口(enp0s3)将与Linux断开连接,“NoARP”将被设置。 新创建的虚拟接口(fp0)将由Linux操作系统用于现在的通信。

接口统计

参考文献

  1. http://www.opendataplane.org/wp-content/uploads/2014/01/ODPIntroductionandOverview-2014Jan29.pdf
  2. http://www.openfastpath.org/index.php/service/technicaloverview/