-
Notifications
You must be signed in to change notification settings - Fork 82
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Changes improving IPv6 and adding SRv6 encap/decap and some processing capabilities to showcase the HIRT paper to be presented at ICNP'24. It also adds the library elements fo network-layer FEC used in the aforementioned paper. However the FEC elements themselves use RLC code that is under patent, so if you want them please ask Louis. For the same reasons, I had to squash all commits as once, sorry about the huge change. Improvements: - updated gitlab CI with much more tests - SRV6 encap and decap elements - Fix compatibility problem with aarch64 - Fix compatibility issues with MacOS @louisna was mostly involved in the code, and then me. Co-authored-by: default avatarLouis Navarre <[email protected]> i
- Loading branch information
Showing
111 changed files
with
3,255 additions
and
1,216 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,87 +1,105 @@ | ||
#This file is quite deprecated, but we keep it there in case someone has an internal GitLab CI pipeline and wants to reuse this | ||
|
||
default: | ||
image: ubuntu:22.04 | ||
image: ubuntu:22.04 | ||
tags: | ||
- docker | ||
|
||
stages: | ||
- normal | ||
- user | ||
- io | ||
|
||
variables: | ||
NETMAP_VERSION: "11.1" | ||
CONFIG: "--enable-all-elements --disable-verbose-batch --enable-simtime" | ||
|
||
.common: | ||
stage: user | ||
parallel: | ||
matrix: | ||
- HOST: ["x86_64","aarch64"] | ||
|
||
normal: | ||
extends: .common | ||
stage: normal | ||
script: | ||
- ./configure $CONFIG_HOST CXXFLAGS="-std=gnu++11" $CONFIG --disable-verbose-batch && make | ||
|
||
batch: | ||
extends: .common | ||
script: | ||
- ./configure CXXFLAGS="-std=gnu++11" --enable-batch $CONFIG --disable-verbose-batch && make && make check | ||
- ./configure $CONFIG_HOST CXXFLAGS="-std=gnu++11" --enable-batch $CONFIG --disable-verbose-batch && make && make check | ||
autobatch: | ||
extends: .common | ||
script: | ||
- ./configure CXXFLAGS="-std=gnu++11" --enable-batch $CONFIG --disable-verbose-batch --enable-auto-batch=port && make && make check | ||
- ./configure $CONFIG_HOST CXXFLAGS="-std=gnu++11" --enable-batch $CONFIG --disable-verbose-batch --enable-auto-batch=port && make && make check | ||
ip6: | ||
extends: .common | ||
script: | ||
- ./configure CXXFLAGS="-std=gnu++11" --enable-ip6 --enable-json $CONFIG --disable-batch && make && make check | ||
- ./configure $CONFIG_HOST CXXFLAGS="-std=gnu++11" --enable-ip6 --enable-json $CONFIG --disable-batch && make && make check | ||
mt: | ||
extends: .common | ||
script: | ||
- ./configure CXXFLAGS="-std=gnu++11" --enable-user-multithread $CONFIG --disable-batch && make && make check | ||
|
||
- ./configure $CONFIG_HOST CXXFLAGS="-std=gnu++11" --enable-user-multithread $CONFIG --disable-batch && make && make check | ||
noclone: | ||
extends: .common | ||
script: | ||
- ./configure $CONFIG_HOST CXXFLAGS="-std=gnu++11" --enable-user-multithread $CONFIG --disable-clone && make && make check | ||
fbatch: | ||
extends: .common | ||
script: | ||
- ./configure CXXFLAGS="-std=gnu++11" --enable-user-multithread $CONFIG --disable-clone && make && make check | ||
- ./configure $CONFIG_HOST CXXFLAGS="-std=gnu++11" --enable-user-multithread --enable-flow --enable-batch $CONFIG --disable-verbose-batch && make | ||
|
||
dpdk: | ||
parallel: | ||
matrix: | ||
- DPDK_VERSION: ["20.11", "23.03"] | ||
DPDK_CONFIG: ["--enable-dpdk-packet --enable-batch", "--enable-batch", "--disable-batch", "--enable-dpdk-pool"] | ||
before_script: | ||
- echo "Running global pre-install..." | ||
- !reference [before_script] | ||
- echo "Running local pre-install..." | ||
- mkdir /dpdk | ||
- pushd /dpdk | ||
- export RTE_SDK=`pwd`/dpdk-$DPDK_VERSION; | ||
export RTE_TARGET=x86_64-native-linuxapp-gcc; | ||
export PKG_CONFIG_PATH=${RTE_SDK}/install/lib/x86_64-linux-gnu/pkgconfig/; | ||
export LD_LIBRARY_PATH=${RTE_SDK}/install/lib/x86_64-linux-gnu/:${RTE_SDK}/install/lib/:$LD_LIBRARY_PATH; | ||
if [ ! -e "$RTE_SDK/$RTE_TARGET/include/rte_version.h" ]; then | ||
wget http://dpdk.org/browse/dpdk/snapshot/dpdk-$DPDK_VERSION.tar.gz && | ||
tar -zxf dpdk-$DPDK_VERSION.tar.gz && | ||
cd dpdk-$DPDK_VERSION ; | ||
pip3 install meson ninja && | ||
meson -Dprefix=$(pwd)/install/ -Dmachine=default build && | ||
cd build && ( ninja && ninja install ) ; cd .. ; cd .. ; | ||
fi; | ||
ldconfig | ||
- popd | ||
script: | ||
stage: io | ||
parallel: | ||
matrix: | ||
- DPDK_VERSION: ["20.11", "23.03"] | ||
DPDK_CONFIG: ["--enable-dpdk-packet --enable-batch", "--enable-batch", "--disable-batch", "--enable-dpdk-pool"] | ||
before_script: | ||
- echo "Running global pre-install..." | ||
- !reference [before_script] | ||
- echo "Running local pre-install..." | ||
- mkdir /dpdk | ||
- pushd /dpdk | ||
- export RTE_SDK=`pwd`/dpdk-$DPDK_VERSION; | ||
export RTE_TARGET=x86_64-native-linuxapp-gcc; | ||
export PKG_CONFIG_PATH=${RTE_SDK}/install/lib/x86_64-linux-gnu/pkgconfig/; | ||
export LD_LIBRARY_PATH=${RTE_SDK}/install/lib/x86_64-linux-gnu/:${RTE_SDK}/install/lib/:$LD_LIBRARY_PATH; | ||
if [ ! -e "$RTE_SDK/$RTE_TARGET/include/rte_version.h" ]; then | ||
wget http://dpdk.org/browse/dpdk/snapshot/dpdk-$DPDK_VERSION.tar.gz && | ||
tar -zxf dpdk-$DPDK_VERSION.tar.gz && | ||
cd dpdk-$DPDK_VERSION ; | ||
pip3 install meson ninja && | ||
meson -Dprefix=$(pwd)/install/ -Dmachine=default build && | ||
cd build && ( ninja && ninja install ) ; cd .. ; cd .. ; | ||
fi; | ||
ldconfig | ||
- popd | ||
script: | ||
- ls $PKG_CONFIG_PATH | ||
- echo $LD_LIBRARY_PATH | ||
- ./configure CXXFLAGS="-std=gnu++11" --enable-user-multithread --without-netmap --enable-dpdk ${DPDK_CONFIG} $CONFIG RTE_SDK=$RTE_SDK RTE_TARGET=$RTE_TARGET && make | ||
- if [[ "$DPDK_CONFIG" != *"--enable-dpdk-pool"* ]] ; then make check ; fi | ||
- ./configure $CONFIG_HOST CXXFLAGS="-std=gnu++11" --enable-user-multithread --without-netmap --enable-dpdk ${DPDK_CONFIG} $CONFIG RTE_SDK=$RTE_SDK RTE_TARGET=$RTE_TARGET && make | ||
- if [[ "$DPDK_CONFIG" != *"--enable-dpdk-pool"* ]] && [[ "$DPDK_CONFIG" != *"--enable-dpdk-packet"* ]] ; then make check ; fi | ||
|
||
netmap_single: | ||
script: | ||
- ./configure CXXFLAGS="-std=gnu++11" $CONFIG_NETMAP $CONFIG --disable-verbose-batch && make | ||
netmap: | ||
stage: io | ||
parallel: | ||
matrix: | ||
- NETMAP_VERSION: ["11.1"] | ||
CONFIG_NETMAP_MODE: ["--enable-netmap-pool --enable-zerocopy","--disable-netmap-pool --enable-zerocopy","--disable-netmap-pool --disable-zerocopy","--enable-flow --enable-batch --enable-netmap-pool --enable-zerocopy"] | ||
script: | ||
- ./configure CXXFLAGS="-std=gnu++11" --enable-user-multithread $CONFIG_NETMAP --enable-netmap-pool --enable-zerocopy $CONFIG --disable-verbose-batch && make | ||
netmap_nopool: | ||
script: | ||
- ./configure CXXFLAGS="-std=gnu++11" --enable-user-multithread $CONFIG_NETMAP --disable-netmap-pool --enable-zerocopy $CONFIG --disable-verbose-batch && make && make check | ||
netmap_nopool_nozc: | ||
script: | ||
- ./configure CXXFLAGS="-std=gnu++11" --enable-user-multithread $CONFIG_NETMAP --disable-netmap-pool --disable-zerocopy $CONFIG --disable-verbose-batch && make && make check | ||
fbatch: | ||
script: | ||
- ./configure CXXFLAGS="-std=gnu++11" --enable-user-multithread --enable-flow --enable-batch $CONFIG --disable-verbose-batch && make | ||
fnetmap: | ||
script: | ||
- ./configure CXXFLAGS="-std=gnu++11" --enable-user-multithread $CONFIG_NETMAP --enable-flow --enable-batch --enable-netmap-pool --enable-zerocopy $CONFIG --disable-verbose-batch && make | ||
- if [ ! -e "netmap-$NETMAP_VERSION/sys/net/netmap.h" ] ; then wget https://github.com/luigirizzo/netmap/archive/v$NETMAP_VERSION.tar.gz && tar -xvf v$NETMAP_VERSION.tar.gz && ( cd netmap-$NETMAP_VERSION && cd LINUX && ./configure --no-drivers ; cd .. && cd .. ) ; fi | ||
- ls -al | ||
- if [ `sudo -n whoami` = "root" ] && command -v insmod ; then sudo insmod netmap-$NETMAP_VERSION/LINUX/netmap.ko && sudo chmod 666 /dev/netmap ; fi | ||
- export CONFIG_NETMAP="--with-netmap=`pwd`/netmap-$NETMAP_VERSION/sys/" | ||
- ./configure CXXFLAGS="-std=gnu++11" $CONFIG_NETMAP_MODE $CONFIG_NETMAP $CONFIG --disable-verbose-batch && make | ||
|
||
cache: | ||
paths: | ||
- /dpdk | ||
- netmap-$NETMAP_VERSION | ||
|
||
before_script: | ||
- sh deps.sh | ||
- DEBIAN_FRONTEND=noninteractive sh deps.sh | ||
- gcc -v | ||
- if [ ! -e "netmap-$NETMAP_VERSION/sys/net/netmap.h" ] ; then wget https://github.com/luigirizzo/netmap/archive/v$NETMAP_VERSION.tar.gz && tar -xvf v$NETMAP_VERSION.tar.gz && ( cd netmap-$NETMAP_VERSION && cd LINUX && ./configure --no-drivers ; cd .. && cd .. ) ; fi | ||
- ls -al | ||
- if [ `sudo -n whoami` = "root" ] ; then sudo insmod netmap-$NETMAP_VERSION/LINUX/netmap.ko && sudo chmod 666 /dev/netmap ; fi | ||
- export CONFIG_NETMAP="--with-netmap=`pwd`/netmap-$NETMAP_VERSION/sys/" | ||
- if [ "$HOST" = "x86_64" ] ; then export CONFIG_HOST="--build x86_64-native-linuxapp-gcc" ; fi | ||
- if [ "$HOST" = "aarch64" ] ; then apt-get -yqq install gcc-aarch64-linux-gnu && export CONFIG_HOST="--build aarch64-linux-gnu" ; fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.