亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

虛機中編譯運行vpp

2024-04-08 07:15:27
100
0

VPP 是一個開源的軟件項目,由 Cisco 發起,用于高性能網絡數據包處理。它提供了一個模塊化的、可擴展的網絡數據平面框架,支持各種網絡功能虛擬化(NFV)和軟件定義網絡(SDN)應用。VPP 使用向量化和并行處理技術,能夠在普通的通用處理器上實現高吞吐量和低延遲的數據包處理。

1. 編譯

分支切換成stable/2302,否則由于libc的原因,無法在centos7上編譯。

git checkout stable/2302

打上相關patch

1.1. llvm編譯過程

extra庫中的xdp需要使用到llvm編譯器,其編譯過程如下:

llvm編譯過程 
yum install -y epel-release
yum groupinstall -y "Development tools"
yum install -y elfutils-libelf-devel cmake3 git bison flex ncurses-devel
yum install -y devtoolset-8
  
git clone ccc://github.com/llvm/llvm-project.git
  
source /opt/rh/devtoolset-8/enable
  
  
cd llvm-project
mkdir build
cd build
  
cmake3 -DLLVM_ENABLE_PROJECTS=clang -G "Unix Makefiles" ../llvm -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release
make -j
make install


1.2.  MLX驅動

如果需要mlx驅動的話,需要編譯mlx相關的驅動

 

1.3.  Vpp編譯

export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:$PKG_CONFIG_PATH

make install-dep

make install-ext-deps DPDK_MLX5_PMD=y DPDK_MLX4_PMD=n DPDK_MLX_IBV_LINK=dlopen

make build  vpp_uses_dpdk_mlx5_pmd=yes DPDK_MLX_IBV_LINK=dlopen

#RPM包

make pkg-rpm  vpp_uses_dpdk_mlx5_pmd=yes DPDK_MLX_IBV_LINK=dlopen -j4

make install-ext-deps會去下載以下外部依賴源碼包。

如(meson、xdp-tools、rdma-core、quickly、dpdk)

 

1.4.  問題列表

問題1: 會有個getrandom的依賴問題,與libc相關

    解決: spec中加 . /opt/rh/devtoolset-9/enable

問題2:類型不對, error: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1

     解決: 將i32替換成u32

問題3:recvmmsg重復定義

+#ifndef _GNU_SOURCE

問題4: rpm打包時會遇到dwarf5與rpmbuild的dwarf4不匹配問題,是因為vpp編譯使用的是clang工具,clang工具默認是使用dwarf5,而gcc默認的是dwarf4.

spec中加

+export CFLAGS="-g -gdwarf-4"
+export CXXFLAGS="-g -gdwarf-4"
+export LDFLAGS="-Wl,--build-id"

 

2. 安裝

rpm -ivh vpp-selinux-policy.rpm

rpm -ivh vpp-lib-xxx.rpm 

rpm -ivh vpp-xx.rpm

rpm -ivh vpp-plugins-xxx.rpm

 

3. 配置啟動

相應的插件對應的相應的配置。

vppctl命令:FD.io VPP: Interface

vim /etc/vpp/startup.conf

 


#!/bin/bash


#bind nic
modprobe uio_pci_generic
dpdk-devbind.py -b uio_pci_generic 0000:03:00.0


#set memory
#/etc/sysctl.d/80-vpp.conf


#modify startup.conf


#run
vpp -c $PWD/startup_vm.conf

0條評論
0 / 1000
李****佳
9文章數
0粉絲數
李****佳
9 文章 | 0 粉絲
李****佳
9文章數
0粉絲數
李****佳
9 文章 | 0 粉絲
原創

虛機中編譯運行vpp

2024-04-08 07:15:27
100
0

VPP 是一個開源的軟件項目,由 Cisco 發起,用于高性能網絡數據包處理。它提供了一個模塊化的、可擴展的網絡數據平面框架,支持各種網絡功能虛擬化(NFV)和軟件定義網絡(SDN)應用。VPP 使用向量化和并行處理技術,能夠在普通的通用處理器上實現高吞吐量和低延遲的數據包處理。

1. 編譯

分支切換成stable/2302,否則由于libc的原因,無法在centos7上編譯。

git checkout stable/2302

打上相關patch

1.1. llvm編譯過程

extra庫中的xdp需要使用到llvm編譯器,其編譯過程如下:

llvm編譯過程 
yum install -y epel-release
yum groupinstall -y "Development tools"
yum install -y elfutils-libelf-devel cmake3 git bison flex ncurses-devel
yum install -y devtoolset-8
  
git clone ccc://github.com/llvm/llvm-project.git
  
source /opt/rh/devtoolset-8/enable
  
  
cd llvm-project
mkdir build
cd build
  
cmake3 -DLLVM_ENABLE_PROJECTS=clang -G "Unix Makefiles" ../llvm -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release
make -j
make install


1.2.  MLX驅動

如果需要mlx驅動的話,需要編譯mlx相關的驅動

 

1.3.  Vpp編譯

export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:$PKG_CONFIG_PATH

make install-dep

make install-ext-deps DPDK_MLX5_PMD=y DPDK_MLX4_PMD=n DPDK_MLX_IBV_LINK=dlopen

make build  vpp_uses_dpdk_mlx5_pmd=yes DPDK_MLX_IBV_LINK=dlopen

#RPM包

make pkg-rpm  vpp_uses_dpdk_mlx5_pmd=yes DPDK_MLX_IBV_LINK=dlopen -j4

make install-ext-deps會去下載以下外部依賴源碼包。

如(meson、xdp-tools、rdma-core、quickly、dpdk)

 

1.4.  問題列表

問題1: 會有個getrandom的依賴問題,與libc相關

    解決: spec中加 . /opt/rh/devtoolset-9/enable

問題2:類型不對, error: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1

     解決: 將i32替換成u32

問題3:recvmmsg重復定義

+#ifndef _GNU_SOURCE

問題4: rpm打包時會遇到dwarf5與rpmbuild的dwarf4不匹配問題,是因為vpp編譯使用的是clang工具,clang工具默認是使用dwarf5,而gcc默認的是dwarf4.

spec中加

+export CFLAGS="-g -gdwarf-4"
+export CXXFLAGS="-g -gdwarf-4"
+export LDFLAGS="-Wl,--build-id"

 

2. 安裝

rpm -ivh vpp-selinux-policy.rpm

rpm -ivh vpp-lib-xxx.rpm 

rpm -ivh vpp-xx.rpm

rpm -ivh vpp-plugins-xxx.rpm

 

3. 配置啟動

相應的插件對應的相應的配置。

vppctl命令:FD.io VPP: Interface

vim /etc/vpp/startup.conf

 


#!/bin/bash


#bind nic
modprobe uio_pci_generic
dpdk-devbind.py -b uio_pci_generic 0000:03:00.0


#set memory
#/etc/sysctl.d/80-vpp.conf


#modify startup.conf


#run
vpp -c $PWD/startup_vm.conf

文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0