中文
注册

编译和安装

获取源码

  1. 创建目录。
    1
    2
    3
    mkdir -p /home/source_code
    mkdir -p /home/patch_code/ovs_patch
    mkdir -p /home/rpm_packet
    

    以上创建的目录仅为示例,可根据需求自定义目录名称。若选择自定义创建,请在后续操作中同步修改命令中的目录名称。

  2. 获取DPDK源码。
    1. 下载源码。

      下载地址:https://fast.dpdk.org/rel/dpdk-19.11.tar.xz

    2. 复制至服务器“/home/source_code”目录。
  3. 获取OVS源码。
    1. 下载源码。

      下载地址:https://www.openvswitch.org/releases/openvswitch-2.12.0.tar.gz

    2. 复制至服务器“/home/source_code”目录。
  4. 获取patch代码。
    1. 下载代码。

      下载地址:https://gitee.com/kunpengcompute/ovs/tree/ovs_xpf_v2.12.0/patch

    2. 复制至服务器“/home/patch_code/ovs_patch”目录。
  5. 获取OVS流表归一化软件包。
    1. 下载软件包。
    2. 复制至服务器“/home/rpm_packet”目录。
    3. 解压文件。
      1
      tar -xzf /home/rpm_packet/OVSOE_ALL.tar.gz -C /home/rpm_packet && rm -rf /home/rpm_packet/OVSOE_ALL.tar.gz
      

      至此,目录结构如下所示。

  6. 获取OVS流表归一化软件包补丁和数字签名文件。
    1. 下载二进制补丁文件压缩包。
    2. 复制至服务器“/home/rpm_packet”目录。

安装XPF二进制库

  1. 进入存放源码的目录。
    1
    cd /home/source_code
    
  2. 解压DPDK源码包。
    1
    tar -xf dpdk-19.11.tar.xz && rm -f dpdk-19.11.tar.xz
    
  3. 解压OVS源码包。
    1
    tar -xzf openvswitch-2.12.0.tar.gz && rm -f openvswitch-2.12.0.tar.gz
    
  4. (可选)把对应的patch合入相应的源码。
    如果下载的代码为ovx_xpf_v2.12.0分支源码,则需跳过此步骤。
    1
    patch -d openvswitch-2.12.0 -p1 < ../patch_code/ovs_patch/xpf.patch
    
  5. 强制安装OVS流表归一化软件包。
    1
    rpm -ivh --nodeps /home/rpm_packet/xpf-1.0.0-1.aarch64.rpm /home/rpm_packet/xpf-devel-1.0.0-1.aarch64.rpm
    
  6. 解压并安装OVS流表归一化软件包补丁。
    cd /home/rpm_packet
    unzip xpf-1.0.0-1.aarch64-patch.zip
    mv xpf-1.0.0-1.aarch64-patch/*.so /usr/lib64

编译安装DPDK

  1. 进入“/home/source_code/dpdk-19.11”目录。
    1
    cd /home/source_code/dpdk-19.11
    
  2. 编译安装DPDK。
    1
    2
    3
    4
    5
    make O=arm64-armv8a-linuxapp-gcc T=arm64-armv8a-linuxapp-gcc config
    sed -ri 's,(RTE_APP_TEST=).*,\1n,' arm64-armv8a-linuxapp-gcc/.config
    sed -ri 's,(RTE_BUILD_SHARED_LIB=).*,\1y,' arm64-armv8a-linuxapp-gcc/.config
    make O=arm64-armv8a-linuxapp-gcc -j 96
    make install O=arm64-armv8a-linuxapp-gcc prefix=/usr libdir=/lib64
    

    “/usr/lib64”目录下有“librtexxx_xxx.so”的动态库文件说明DPDK编译安装完成。

编译安装OVS

  1. 进入源码根目录。
    1
    cd /home/source_code/openvswitch-2.12.0
    
  2. 编译安装OVS。
    1
    2
    3
    ./boot.sh
    ./configure CFLAGS="-g -O2 -march=armv8-a+crc" --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/lib64 --enable-ssl --enable-shared --with-dpdk=yes --enable-Werror
    make -j 96 && make install
    

    boot.sh脚本的作用是用libtool生成修改后的configure文件,增加相应的宏定义,使能XPF的代码。

  3. 复制头文件。
    1
    2
    3
    cp config.h /usr/include/openvswitch
    mkdir /usr/include/openvswitch/lib
    cp lib/*.h /usr/include/openvswitch/lib/
    
  4. 二次编译安装OVS。
    OVS流表归一化软件包依赖开源的OVS,二次开发的OVS依赖XPF库,所以这里要编译两次OVS。第一次是编译开源的OVS,并复制一些必要的头文件,第二次是编译二次开发的OVS。
    make clean
    ./configure CFLAGS="-g -O2 -march=armv8-a+crc -ftree-vectorize -I/usr/include/xpf-1.0.0/xpf_include" --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/lib64 --enable-ssl --enable-shared --with-dpdk=yes --enable-Werror --enable-xpf
    make -j 96 && make install
  5. (可选)配置OVS以service服务化方式启动。
    手动启动、停止和重启OVS服务的操作较为复杂,需执行多条命令,以service服务化运行OVS可大幅度简化相关操作。
    1. 切换到OVS源码目录下的“rhel”目录,拷贝文件etc_init.d_openvswitch到“/etc/init.d”目录下,并重命名为openvswitch,同时修改文件执行权限为755。
      1
      2
      3
      cd rhel/
      cp etc_init_.d_openvswitch /etc/init.d/openvswitch
      chmod 755 /etc/init.d/openvswitch
      

    2. 使用service方式运行OVS。

      待OVS启动配置项完成后(参见运行和验证)可以通过service启动、停止、重启OVS服务。

      • 启动OVS服务。
        1
        service openvswitch start
        

      • 停止OVS服务。
        1
        service openvswitch stop
        

      • 重启OVS服务。
        1
        service openvswitch restart
        

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词