オープンデータプレーン(ODP)
Linuxベースのネットワークソリューションのパフォーマンスは、過去の最大の問題の1つでした。そのため、Intelはデータプレーン開発キット(DPDK)プロジェクトを開始しました。 ODP環境の目標は、データプレーンアプリケーションにクロスプラットフォームフレームワークを提供することです。 ODPは、データプレーンアプリケーションの環境を提供するオープンソースプロジェクトです。使いやすく、高性能を提供し、さまざまなネットワークシステムオンチップ(SoC)、命令セット、およびARMやIntelなどのアーキテクチャ間で移植可能です。 OPD環境は、さまざまな基盤となるハードウェアベンダー向けに最適化された、さまざまなアーキテクチャおよびユーティリティの構成ファイル、サービス、APIで構成されています。 ODP環境の目的は、APIを基盤となるアーキテクチャから分離することであり、ソフトウェアとハードウェアの両方の実装をサポートするように設計されており、最新のSoCに存在するアクセラレーション機能を深く活用します。
オープンファストパス(OFP)
ご存知のように、ネットワーク内の高速パケット処理デバイスまたはマシンを必要とする指数関数的に増加するデータトラフィックには、高性能デバイスが必要です。 OpenFastPathは、高性能TCP / IPスタックのもう1つのオープンソース実装であり、従来のLinuxスタックを使用するネットワークアプリケーションに役立ちます。 OFPの主な機能は、完了、実行モデル、およびフレームワークにODPを使用しているさまざまなアプリケーション用のライブラリとして提供されます。 OFPは、ネットワークソリューションの高性能を実現するためにDPDKとODPの両方をサポートしています。
OFPプロジェクトのWebサイトによると、一般的な32/64ビットx86Linuxマシンでテストされています。このチュートリアルでは、OFPはUbuntu16.04VMにインストールされます。
次の手順は、rootユーザーとして実行されます。実行:
sudo -s
サーバーのルートになります。
UbuntuでOFPおよびODPコードをコンパイルするには、次のパッケージが必要です。
これらは、ODPおよびOFPにアクセスして構築するために必須です:
apt-get install git libtool automake build-essential pkg-config
ただし、次のパッケージはオプションです。
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
ODPソースコードのルートディレクトリに移動し、次のコマンドを実行します。
./bootstrap
このチュートリアルでは、ODPのインストールディレクトリは「/ usr / local/odp」です。
mkdir /usr/local/odp
次のスクリーンショットに示すように、プレフィックスオプションを使用してconfigureスクリプトを実行します。
./configure --prefix=/usr/local/odp/
configureスクリプトの出力を以下に示します。
UbuntuプラットフォームでのODPのコンパイルとインストールのためにmakeとmakeinstallを実行します。
make
make install
以下に示すように、gitコマンドを使用してOFPコードをダウンロードします。
git clone https://github.com/OpenFastPath/ofp
OFPソースコードのルートディレクトリに入り、。/bootstrapコマンドを実行します。
cd ofp/
./bootstrap
OFPプロジェクトのインストールディレクトリは「/usr/ local/ofp」です。次のconfigureスクリプトを実行して、プロジェクトの依存関係を確認します。
./configure --prefix=/usr/local/ofp/ --with-odp=/usr/local/odp/ --enable-cunit
構成スクリプトの出力を次のスナップショットに示します。
「make」コマンドを実行して、OFPプロジェクトコードをビルドします。 OFPアプリケーションの構築には時間がかかります。
make
次のコマンドは、OFPプロジェクトのバイナリとライブラリをプレフィックスパス内に配置します。
make install
インストール後、バイナリとライブラリは「 / usr / local / ofp」の下に配置されます 「パス。OFPプロジェクトに関連するすべてのテストアプリケーションは、「ビン」の下にあります。 "ディレクトリ。
OFPアプリケーションの実行
OFPアプリケーション(fpm)を実行するには,
OFPソースコードのルートディレクトリの下にあるscriptsディレクトリに移動します。
デフォルトでは、fpmアプリケーションはeth0インターフェースで実行されます。ただし、ubuntu 16.04 LTSでは、インターフェース名は「 enp0s3」です。 "。次のスクリーンショットは、" start_device.shを使用してfpmアプリケーションを実行する方法を示しています。 「スクリプト。
「fpm」を実行した後 "アプリケーション、新しいインターフェース" fp0 "は以下のように作成されます。
次のコマンドを実行して、「 fpm」のCLIにアクセスします。 「アプリケーション。
telnet localhost 2345
アプリケーションのCLIは、いくつかの基本的なコマンドをサポートしています。次のスクリーンショットは、「統計」を使用したインターフェース統計を示しています。 「コマンド。fastpathアプリケーションを実行すると、イーサネットインターフェース(enp0s3)がLinuxから切断され、「NoARP」が設定されます。新しく作成された仮想インターフェース(fp0)は、LinuxOSで通信に使用されます。
- http://www.opendataplane.org/wp-content/uploads/2014/01/ODPIntroductionandOverview-2014Jan29.pdf
- http://www.openfastpath.org/index.php/service/technicaloverview/