P4-DPDK部署

本文详细指导如何部署DPDK,安装P4C,以及配置P4-IPDK-DPDK,包括下载、编译、安装步骤,并介绍了如何使用P4C-DPDK生成所需文件和运行P4程序。
摘要由CSDN通过智能技术生成

📚简介


简单部署P4-IPDK-DPDK,分成三步:

  • 部署DPDK
    • 提供硬件基础
  • 部署P4C
    • 提供P4-DPDK-target所需要的四个基本文件
  • 部署P4-IPDK-DPDK
    • 利用基本文件运行DPDK-Target上的P4程序

1️⃣部署DPDK


19.11:存在兼容性问题,报错implicit-fallthrough

23.07:常规下载

  • 下载DPDK 23.07
    wget http://static.dpdk.org/rel/dpdk-23.07.tar.gz
    sudo tar -xzf dpdk-23.07.tar.gz
    
  • meson创建
    cd dpdk-23.07
    sudo meson build
    
  • ninja编译
    cd build
    sudo ninja
    sudo ninja install
    sudo ldconfig
    
  • 验证DPDK
    cd ~/dpdk-23.07/examples/helloworld/build
    sudo ./helloworld -l 0-11 -n 4
    
    正常输出如下:
    EAL: Detected CPU lcores: 12  
    EAL: Detected NUMA nodes: 1  
    EAL: Detected shared linkage of DPDK  
    EAL: Multi-process socket /var/run/dpdk/rte/mp_socket  
    EAL: Selected IOVA mode 'PA'  
    EAL: VFIO support initialized  
    TELEMETRY: No legacy callbacks, legacy socket not created  
    hello from core 1  
    hello from core 2  
    hello from core 3  
    hello from core 4  
    hello from core 5  
    hello from core 6  
    hello from core 7  
    hello from core 8  
    hello from core 9  
    hello from core 10  
    hello from core 11  
    hello from core 0
    

2️⃣安装P4C


参考p4lang/p4c: P4_16 reference compiler (github.com)

部署过程

source /etc/lsb-release
echo "deb http://download.opensuse.org/repositories/home:/p4lang/xUbuntu_${DISTRIB_RELEASE}/ /" | sudo tee /etc/apt/sources.list.d/home:p4lang.list
curl -fsSL https://download.opensuse.org/repositories/home:p4lang/xUbuntu_${DISTRIB_RELEASE}/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_p4lang.gpg > /dev/null
sudo apt-get update
sudo apt install p4lang-p4c

3️⃣部署P4-IPDK-DPDK


参考以下资料:

部署过程

  • 下载P4-IPDK-DPDK
    sudo mkdir p4-ipdk-dpdk
    cd p4-ipdk-dpdk
    sudo git clone https://github.com/p4lang/p4-dpdk-target.git
    
  • 下载依赖项
    pip3 install distro
    cd p4-dpdk-target/tools/setup
    python3 install_dep.py
    
  • 设置SDE与install目录
    cd ~/p4-ipdk-dpdk
    sudo mkdir install
    source c/tools/setup/p4sde_env_setup.sh .
    
  • 编译下载安装
    cd $SDE/p4-dpdk-target
    git submodule update --init --recursive --force
    ./autogen.sh
    ./configure --prefix=$SDE_INSTALL
    make -j
    make install
    
  • 运行测试
    # 环境变量书写
    export SDE_INSTALL=~/p4-dpdk-target/install
    export LD_LIBRARY_PATH=$SDE_INSTALL/lib:$SDE_INSTALL/lib64:$SDE_INSTALL/lib/x86_64-linux-gnu
    export PYTHONPATH=$SDE_INSTALL/lib/python3.8/:$SDE_INSTALL/lib/python3.8/lib-dynload:$SDE_INSTALL/lib/python3.8/site-packages
    export PYTHONHOME=$SDE_INSTALL/lib/python3.8
    cd $SDE_INSTALL/bin
    
    # 编辑好P4-Program-File后,再执行下述命令
    ./bf_switchd --install-dir $SDE_INSTALL --conf-file $SDE_INSTALL/share/dpdk/<P4 program name>/<P4 program name>.conf --init-mode=cold --status-port 7777
    
    # 运行bfshell相关client工具,检查是否运行成功
    

4️⃣使用P4C-DPDK生成P4-DPDK-Target需要的文件


参考p4-dpdk-target/e2e-test/tools/compile.py at main · p4lang/p4-dpdk-target (github.com)

  • 运行编译DPDK
    p4c-dpdk --arch psa gtp-psa-from-vxlan.p4 \
    --tdi gtp-psa-tdi.json \
    --context gtp-psa-context.json \
    -o gtp-psa.spec
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值