1 2 3 | mkdir -p /home/source_code mkdir -p /home/patch_code/ovs_patch mkdir -p /home/rpm_packet |
直接下载已经打过开源xpf.patch的ovs_xpf_v1.2.10分支源码。
下载地址:https://github.com/kunpengcompute/ovs/archive/ovs_xpf_v2.12.0.zip
下载地址:https://www.openvswitch.org/releases/openvswitch-2.12.0.tar.gz
下载地址:https://github.com/kunpengcompute/ovs/releases/download/v2.12.0/xpf.patch
https://www.hikunpeng.com/zh/developer/boostkit/virtualization
1 | tar -xzf /home/rpm_packet/OVSOE_ALL.tar.gz -C /home/rpm_packet && rm -rf /home/rpm_packet/OVSOE_ALL.tar.gz
|
至此,目录结构如下示:
1 | cd /home/source_code
|
1 | tar -xf dpdk-19.11.tar.xz && rm -f dpdk-19.11.tar.xz
|
1 | tar -xzf openvswitch-2.12.0.tar.gz && rm -f openvswitch-2.12.0.tar.gz
|
1 | patch -d openvswitch-2.12.0 -p1 < ../patch_code/ovs_patch/xpf.patch |
如果下载的代码为ovx_xpf_v2.12.0分支源码,则需跳过此步骤。
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 |
“/home/rpm_packet/”路径需要根据实际环境替换。
1 | cd /home/source_code/dpdk-19.11
|
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编译安装完成。
1 | cd /home/source_code/ovs-ovs_xpf_v2.12.0
|
1 | cd /home/source_code/openvswitch-2.12.0
|
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 |
1 2 3 | cp config.h /usr/include/openvswitch mkdir /usr/include/openvswitch/lib cp lib/*.h /usr/include/openvswitch/lib/ |
1 2 3 | 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 |
手动启动、停止和重启OVS服务的操作较为复杂,需执行多条命令,以service服务化运行OVS可大幅度简化相关操作。
1 2 3 | cd rhel/ cp etc_init_.d_openvswitch /etc/init.d/openvswitch chmod 755 /etc/init.d/openvswitch |
待OVS启动配置项完成后(参见运行和验证)可以通过service启动、停止、重启OVS服务。
1 | service openvswitch start |
1 | service openvswitch stop |
1 | service openvswitch restart |