diff --git a/mx-rdma-tools/image/Dockerfile.template b/mx-rdma-tools/image/Dockerfile.template index 9a8f432..912a57c 100644 --- a/mx-rdma-tools/image/Dockerfile.template +++ b/mx-rdma-tools/image/Dockerfile.template @@ -22,6 +22,12 @@ ARG DEBIAN_FRONTEND=noninteractive COPY /install-perftest.sh /install-perftest.sh RUN chmod +x /install-perftest.sh && /install-perftest.sh +# build tcpdump +ENV ENV_VERSION_LIBCAP=<> +ENV ENV_VERSION_TCPDUMP=<> +COPY /install-tcpdump.sh /install-tcpdump.sh +RUN chmod +x /install-tcpdump.sh && /install-tcpdump.sh + # install hpcx and nccltest ENV ENV_DOWNLOAD_HPCX_URL=<> ENV ENV_VERSION_NCCLTEST=<> diff --git a/mx-rdma-tools/image/entry.sh b/mx-rdma-tools/image/entry.sh index 1557683..5772ad6 100644 --- a/mx-rdma-tools/image/entry.sh +++ b/mx-rdma-tools/image/entry.sh @@ -20,6 +20,8 @@ ENV_LOCAL_NODE_IP ENV_BASEIMAGE_CUDA_VERISON ENV_BASEIMAGE_OS_VERISON ENV_VERSION_PERFTEST +ENV_VERSION_LIBCAP +ENV_VERSION_TCPDUMP ENV_VERSION_NCCLTEST ENV_VERSION_HPCX LD_LIBRARY_PATH diff --git a/mx-rdma-tools/image/generateDockerfile.sh b/mx-rdma-tools/image/generateDockerfile.sh index 55c7757..3a1658e 100755 --- a/mx-rdma-tools/image/generateDockerfile.sh +++ b/mx-rdma-tools/image/generateDockerfile.sh @@ -10,6 +10,10 @@ export ENV_LD_LIBRARY_PATH="/usr/local/cuda-12.5/compat:/usr/lib/x86_64-linux-gn # https://github.com/linux-rdma/perftest export ENV_VERSION_PERFTEST=${ENV_VERSION_PERFTEST:-"24.04.0-0.41"} +# https://www.tcpdump.org/release +export ENV_VERSION_LIBCAP=${ENV_VERSION_LIBCAP:-"libpcap-1.10.5"} +export ENV_VERSION_TCPDUMP=${ENV_VERSION_TCPDUMP:-"tcpdump-4.99.5"} + # https://github.com/NVIDIA/nccl-tests/tags export ENV_VERSION_NCCLTEST=${ENV_VERSION_NCCLTEST:-"v2.13.10"} diff --git a/mx-rdma-tools/image/install-tcpdump.sh b/mx-rdma-tools/image/install-tcpdump.sh new file mode 100644 index 0000000..c15bbfd --- /dev/null +++ b/mx-rdma-tools/image/install-tcpdump.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +# Copyright 2024 Authors of spidernet-io +# SPDX-License-Identifier: Apache-2.0 + +set -x +set -o xtrace +set -o errexit +set -o pipefail +set -o nounset + +echo "build libpcap ${ENV_VERSION_LIBCAP}" +echo "build tcpdump ${ENV_VERSION_TCPDUMP}" + +cd /tmp +rm -rf * || true + +apt-get update +apt-get install -y --no-install-recommends bison make gcc flex xz-utils + +wget https://www.tcpdump.org/release/${ENV_VERSION_LIBCAP}.tar.xz +wget https://www.tcpdump.org/release/${ENV_VERSION_TCPDUMP}.tar.xz + +tar -xvf ${ENV_VERSION_LIBCAP}.tar.xz +cd /tmp/${ENV_VERSION_LIBCAP} +./configure +make && make install + +tar -xvf ${ENV_VERSION_TCPDUMP}.tar.xz +cd /tmp/${ENV_VERSION_TCPDUMP} +./configure +make && make install diff --git a/mx-rdma-tools/image/install-tools.sh b/mx-rdma-tools/image/install-tools.sh index 5d330a1..1391eeb 100644 --- a/mx-rdma-tools/image/install-tools.sh +++ b/mx-rdma-tools/image/install-tools.sh @@ -62,7 +62,6 @@ packages=( hwloc libgomp1 kmod - tcpdump ethtool iptables #-------------- diff --git a/rdma-tools/image/Dockerfile.template b/rdma-tools/image/Dockerfile.template index 0199166..4394bb9 100644 --- a/rdma-tools/image/Dockerfile.template +++ b/rdma-tools/image/Dockerfile.template @@ -22,6 +22,12 @@ ARG DEBIAN_FRONTEND=noninteractive COPY /install-perftest.sh /install-perftest.sh RUN chmod +x /install-perftest.sh && /install-perftest.sh +# build tcpdump +ENV ENV_VERSION_LIBCAP=<> +ENV ENV_VERSION_TCPDUMP=<> +COPY /install-tcpdump.sh /install-tcpdump.sh +RUN chmod +x /install-tcpdump.sh && /install-tcpdump.sh + # install hpcx and nccltest ENV ENV_DOWNLOAD_HPCX_URL=<> ENV ENV_VERSION_NCCLTEST=<> diff --git a/rdma-tools/image/entry.sh b/rdma-tools/image/entry.sh index 2e49179..1b00bdd 100644 --- a/rdma-tools/image/entry.sh +++ b/rdma-tools/image/entry.sh @@ -32,6 +32,8 @@ ENV_LOCAL_NODE_IP ENV_BASEIMAGE_CUDA_VERISON ENV_BASEIMAGE_OS_VERISON ENV_VERSION_PERFTEST +ENV_VERSION_LIBCAP +ENV_VERSION_TCPDUMP ENV_VERSION_NCCLTEST ENV_VERSION_HPCX LD_LIBRARY_PATH diff --git a/rdma-tools/image/generateDockerfile.sh b/rdma-tools/image/generateDockerfile.sh index 6537760..4885130 100755 --- a/rdma-tools/image/generateDockerfile.sh +++ b/rdma-tools/image/generateDockerfile.sh @@ -17,6 +17,10 @@ export ENV_VERSION_PERFTEST=${ENV_VERSION_PERFTEST:-"24.04.0-0.41"} # https://github.com/NVIDIA/nccl-tests/tags export ENV_VERSION_NCCLTEST=${ENV_VERSION_NCCLTEST:-"v2.13.10"} +# https://www.tcpdump.org/release +export ENV_VERSION_LIBCAP=${ENV_VERSION_LIBCAP:-"libpcap-1.10.5"} +export ENV_VERSION_TCPDUMP=${ENV_VERSION_TCPDUMP:-"tcpdump-4.99.5"} + # https://developer.nvidia.com/networking/hpc-x export ENV_VERSION_HPCX=${ENV_VERSION_HPCX:-"v2.19"} export ENV_DOWNLOAD_HPCX_URL="https://content.mellanox.com/hpc/hpc-x/${ENV_VERSION_HPCX}/hpcx-${ENV_VERSION_HPCX}-gcc-mlnx_ofed-${ENV_BASEIMAGE_OS_VERISON}-cuda12-x86_64.tbz" diff --git a/rdma-tools/image/install-tcpdump.sh b/rdma-tools/image/install-tcpdump.sh new file mode 100644 index 0000000..c15bbfd --- /dev/null +++ b/rdma-tools/image/install-tcpdump.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +# Copyright 2024 Authors of spidernet-io +# SPDX-License-Identifier: Apache-2.0 + +set -x +set -o xtrace +set -o errexit +set -o pipefail +set -o nounset + +echo "build libpcap ${ENV_VERSION_LIBCAP}" +echo "build tcpdump ${ENV_VERSION_TCPDUMP}" + +cd /tmp +rm -rf * || true + +apt-get update +apt-get install -y --no-install-recommends bison make gcc flex xz-utils + +wget https://www.tcpdump.org/release/${ENV_VERSION_LIBCAP}.tar.xz +wget https://www.tcpdump.org/release/${ENV_VERSION_TCPDUMP}.tar.xz + +tar -xvf ${ENV_VERSION_LIBCAP}.tar.xz +cd /tmp/${ENV_VERSION_LIBCAP} +./configure +make && make install + +tar -xvf ${ENV_VERSION_TCPDUMP}.tar.xz +cd /tmp/${ENV_VERSION_TCPDUMP} +./configure +make && make install diff --git a/rdma-tools/image/install-tools.sh b/rdma-tools/image/install-tools.sh index 9f9975c..a722e4f 100644 --- a/rdma-tools/image/install-tools.sh +++ b/rdma-tools/image/install-tools.sh @@ -113,7 +113,6 @@ packages=( hwloc libgomp1 kmod - tcpdump ethtool iptables #--------------