From 982bd18bb032ec27a25ae71e9ea356102f4c6c06 Mon Sep 17 00:00:00 2001 From: lou-lan Date: Mon, 24 Feb 2025 18:36:25 +0800 Subject: [PATCH] Add tcpdump to mx-rdma-tools and rdma-tools Docker images - Add `install-tcpdump.sh` to build and install tcpdump and libpcap from source. Signed-off-by: lou-lan --- mx-rdma-tools/image/Dockerfile.template | 4 +++ mx-rdma-tools/image/entry.sh | 2 ++ mx-rdma-tools/image/generateDockerfile.sh | 4 +++ mx-rdma-tools/image/install-tcpdump.sh | 32 +++++++++++++++++++++++ mx-rdma-tools/image/install-tools.sh | 1 - rdma-tools/image/Dockerfile.template | 4 +++ rdma-tools/image/entry.sh | 2 ++ rdma-tools/image/generateDockerfile.sh | 4 +++ rdma-tools/image/install-tcpdump.sh | 32 +++++++++++++++++++++++ rdma-tools/image/install-tools.sh | 1 - 10 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 mx-rdma-tools/image/install-tcpdump.sh create mode 100644 rdma-tools/image/install-tcpdump.sh diff --git a/mx-rdma-tools/image/Dockerfile.template b/mx-rdma-tools/image/Dockerfile.template index 9a8f432..fddf138 100644 --- a/mx-rdma-tools/image/Dockerfile.template +++ b/mx-rdma-tools/image/Dockerfile.template @@ -15,6 +15,10 @@ ENV ENV_VERSION_CUDA_SAMPLE=<> ENV ENV_GDRCOPY_COMMIT=<> ENV ENV_VERSION_NVBANDWIDTH=<> +# build tcpdump +ENV ENV_VERSION_LIBCAP=<> +ENV ENV_VERSION_TCPDUMP=<> + # build perftest # Mellanox OFED (latest): required by perftest #fix warning: debconf: delaying package configuration, since apt-utils is not installed 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..c1fe423 100644 --- a/rdma-tools/image/Dockerfile.template +++ b/rdma-tools/image/Dockerfile.template @@ -15,6 +15,10 @@ ENV ENV_VERSION_CUDA_SAMPLE=<> ENV ENV_GDRCOPY_COMMIT=<> ENV ENV_VERSION_NVBANDWIDTH=<> +# build tcpdump +ENV ENV_VERSION_LIBCAP=<> +ENV ENV_VERSION_TCPDUMP=<> + # build perftest # Mellanox OFED (latest): required by perftest #fix warning: debconf: delaying package configuration, since apt-utils is not installed 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 #--------------