SockPerf を使ってネットワークのレイテンシーを測定してみてみた

Ping は、TCP または UDP トラフィックを測定しません。アプリケーションで使用されないInternet Control Message Protocol（ICMP）が使用されます。SockPerf は、TCP または UDP Payloadの ラウンド トリップ時間 (RTT) を測定できます。
**[SockPerf](https://github.com/Mellanox/sockperf)** は、高性能システムのパフォーマンス (レイテンシとスループット) をテストするために設計された、ソケット API 経由のネットワーク・ベンチマーク・ユーティリティで通常のネットワーク システムのパフォーマンスをテストするのにも適しています
具体的には、標準のスループット テストに加えて、sockperf は次のことを実行します。

- **ナノ秒レイテンシ測定**:
各個別パケットのレイテンシを n(ナノ)秒未満の解像度で測定します。
- **2つのモード**:
ping-pongモードと負荷モードのレイテンシの両方で実行します。これは、1秒あたり数百万パケットの負荷がかかった状態でも単一パケットのレイテンシを測定することを意味します。
- **ヒストグラム分析**:
パケットのレイテンシのさまざまなパーセンタイル (例: 中央値、最小値、最大値、99% パーセンタイルなど) を含むヒストグラムを提供することで、スパイク分析を有効にします (これは平均と標準偏差に加えて提供されます)。また、sockperf は、すべてのパケットの tx/rx 時間を含む完全なログを提供し、MS-Excel や matplotlib などの外部ツールでさらに分析できます。これらすべては、ベンチマーク自体に影響を与えることなく行われます。
- **その他多くのオプション**:
ソケット API とネットワーク構成を適切にカバーするための多くのオプション設定をサポートしながら、高速パスでのオーバーヘッドを非常に低く抑えて、最もクリーンな結果を実現します。

ということで、Redhat系と Debian系 OSへ SockPerfをインストールしてみてみます。

# ■ 前提条件
SockPerf は [GitHub: Mellanox/sockperf: Network Benchmarking Utility](https://github.com/Mellanox/sockperf)から利用します。
Unix システムで sockperf をコンパイルするために必要なものは次になります。
```
・ Perl 5.8+ (used by the automake tools)
・ GNU make tools: automake 1.7+, autoconf 2.57+, m4 1.4+ and libtool 1.4+
・ A C++11 Compiler, among those tested are:
    - GCC
    - Clang
    - icc
```

# ■ Redhut系 Linuxへの SockPerf インストール
```:実行コマンド一覧
sudo yum install -y autoconf automake libtool gcc-c++
cd /opt
sudo wget https://github.com/Mellanox/sockperf/archive/refs/tags/3.8.tar.gz
sudo tar -zxf 3.8.tar.gz
cd sockperf-3.8/
sudo ./autogen.sh
sudo ./configure
sudo make -j `cat /proc/cpuinfo| grep process | wc -l`
sudo make install
```

## ● 必要モジュールのインストール
**1) SockPerf依存パッケージインストール**
```
[root@oci-inst ~]# sudo yum install -y autoconf automake libtool gcc-c++
  Last metadata expiration check: 1:25:55 ago on Thu 14 Nov 2024 12:56:38 AM GMT.
	Dependencies resolved.
	=============================================================================================================================================================================
	 Package                                     Architecture                     Version                                          Repository                               Size
	=============================================================================================================================================================================
	Installing:
	 autoconf                                    noarch                           2.69-29.el8_10.1                                 ol8_appstream                           710 k
	 automake                                    noarch                           1.16.1-8.el8                                     ol8_appstream                           713 k
	 gcc-c++                                     x86_64                           8.5.0-22.0.1.el8_10                              ol8_appstream                            12 M
	 libtool                                     x86_64                           2.4.6-25.el8                                     ol8_appstream                           709 k
	Installing dependencies:
	 libstdc++-devel                             x86_64                           8.5.0-22.0.1.el8_10                              ol8_appstream                           2.1 M
	 perl-Thread-Queue                           noarch                           3.13-1.el8                                       ol8_appstream                            24 k
	
	Transaction Summary
	=============================================================================================================================================================================
	Install  6 Packages
	
	Total download size: 16 M
	Installed size: 49 M
	Downloading Packages:
	(1/6): autoconf-2.69-29.el8_10.1.noarch.rpm                                                                                                   18 MB/s | 710 kB     00:00
	(2/6): automake-1.16.1-8.el8.noarch.rpm                                                                                                      3.8 MB/s | 713 kB     00:00
	(3/6): libtool-2.4.6-25.el8.x86_64.rpm                                                                                                        72 MB/s | 709 kB     00:00
	(4/6): perl-Thread-Queue-3.13-1.el8.noarch.rpm                                                                                               386 kB/s |  24 kB     00:00
	(5/6): libstdc++-devel-8.5.0-22.0.1.el8_10.x86_64.rpm                                                                                        6.8 MB/s | 2.1 MB     00:00
	(6/6): gcc-c++-8.5.0-22.0.1.el8_10.x86_64.rpm                                                                                                 32 MB/s |  12 MB     00:00
	-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	Total                                                                                                                                         42 MB/s |  16 MB     00:00
	Running transaction check
	Transaction check succeeded.
	Running transaction test
	Transaction test succeeded.
	Running transaction
	  Preparing        :                                                                                                                                                     1/1
	  Installing       : autoconf-2.69-29.el8_10.1.noarch                                                                                                                    1/6
	  Running scriptlet: autoconf-2.69-29.el8_10.1.noarch                                                                                                                    1/6
	  Installing       : perl-Thread-Queue-3.13-1.el8.noarch                                                                                                                 2/6
	  Installing       : automake-1.16.1-8.el8.noarch                                                                                                                        3/6
	  Installing       : libstdc++-devel-8.5.0-22.0.1.el8_10.x86_64                                                                                                          4/6
	  Installing       : gcc-c++-8.5.0-22.0.1.el8_10.x86_64                                                                                                                  5/6
	  Installing       : libtool-2.4.6-25.el8.x86_64                                                                                                                         6/6
	  Running scriptlet: libtool-2.4.6-25.el8.x86_64                                                                                                                         6/6
	  Verifying        : autoconf-2.69-29.el8_10.1.noarch                                                                                                                    1/6
	  Verifying        : automake-1.16.1-8.el8.noarch                                                                                                                        2/6
	  Verifying        : gcc-c++-8.5.0-22.0.1.el8_10.x86_64                                                                                                                  3/6
	  Verifying        : libstdc++-devel-8.5.0-22.0.1.el8_10.x86_64                                                                                                          4/6
	  Verifying        : libtool-2.4.6-25.el8.x86_64                                                                                                                         5/6
	  Verifying        : perl-Thread-Queue-3.13-1.el8.noarch                                                                                                                 6/6
	
	Installed:
	  autoconf-2.69-29.el8_10.1.noarch    automake-1.16.1-8.el8.noarch gcc-c++-8.5.0-22.0.1.el8_10.x86_64 libstdc++-devel-8.5.0-22.0.1.el8_10.x86_64 libtool-2.4.6-25.el8.x86_64
	  perl-Thread-Queue-3.13-1.el8.noarch
	
	Complete!
```

## ● SockPerf インストール
**2) SockPerfパッケージ・ダウンロード**
今回、/opt配下へインストールするために、/opt配下へパッケージファイルを配置します。
```
[root@oci-inst ~]# cd /opt
[root@oci-inst opt]# sudo wget https://github.com/Mellanox/sockperf/archive/refs/tags/3.8.tar.gz
  --2024-11-14 02:23:04--  https://github.com/Mellanox/sockperf/archive/refs/tags/3.8.tar.gz
  Resolving github.com (github.com)... 20.27.177.113
  Connecting to github.com (github.com)|20.27.177.113|:443... connected.
  HTTP request sent, awaiting response... 302 Found
  Location: https://codeload.github.com/Mellanox/sockperf/tar.gz/refs/tags/3.8 [following]
  --2024-11-14 02:23:05--  https://codeload.github.com/Mellanox/sockperf/tar.gz/refs/tags/3.8
  Resolving codeload.github.com (codeload.github.com)... 20.27.177.114
  Connecting to codeload.github.com (codeload.github.com)|20.27.177.114|:443... connected.
  HTTP request sent, awaiting response... 200 OK
  Length: unspecified [application/x-gzip]
  Saving to: ‘3.8.tar.gz’

  3.8.tar.gz                                      [  <=>                                                                                    ] 410.51K  1.60MB/s    in 0.3s

  2024-11-14 02:23:06 (1.60 MB/s) - ‘3.8.tar.gz’ saved [420367]
```

**2) SockPerf Tarパッケージ解凍**
```
[root@oci-inst opt]# sudo tar -zxf 3.8.tar.gz
[root@oci-inst opt]# ls -l
  total 416
  -rw-r--r--.  1 root root 420367 Nov 14 02:23 3.8.tar.gz
  drwxr-xr-x.  4 root root     50 Jun 14 01:46 rh
  drwxrwxr-x. 12 root root   4096 Mar 10  2022 sockperf-3.8
  drwxr-xr-x.  6 root root    169 Aug 28 09:46 unified-monitoring-agent
  drwxr-xr-x.  3 root root     17 Aug 20 14:32 unifiedmonitoringagent
  drwxr-xr-x.  3 root root     21 Sep 27 16:40 wlp-agent

[root@oci-inst opt]# cd sockperf-3.8/
[root@oci-inst sockperf-3.8]# ls -l
  total 40
  -rw-rw-r--. 1 root root   79 Mar 10  2022 authors
  -rwxrwxr-x. 1 root root  552 Mar 10  2022 autogen.sh
  drwxrwxr-x. 2 root root   98 Mar 10  2022 build
  drwxrwxr-x. 3 root root   16 Mar 10  2022 config
  -rw-rw-r--. 1 root root 5932 Mar 10  2022 configure.ac
  drwxrwxr-x. 3 root root   50 Mar 10  2022 contrib
  -rw-rw-r--. 1 root root 1554 Mar 10  2022 copying
  drwxrwxr-x. 4 root root  132 Mar 10  2022 debian
  drwxrwxr-x. 2 root root   41 Mar 10  2022 doc
  -rwxrwxr-x. 1 root root 1477 Mar 10  2022 Makefile.am
  -rw-rw-r--. 1 root root    0 Mar 10  2022 news
  -rw-rw-r--. 1 root root 3414 Mar 10  2022 README.md
  drwxrwxr-x. 2 root root 4096 Mar 10  2022 src
  drwxrwxr-x. 4 root root 4096 Mar 10  2022 tests
  drwxrwxr-x. 2 root root   75 Mar 10  2022 tools
  -rw-rw-r--. 1 root root    4 Mar 10  2022 version
  drwxrwxr-x. 3 root root   39 Mar 10  2022 win
```


**2) SockPerfパッケージ Auto Generation**
 make の下準備のための autogen.sh 実行
```
[root@oci-inst sockperf-3.8]# sudo ./autogen.sh
	++ pwd
	+ oldpwd=/opt/sockperf-3.8
	++ dirname ./autogen.sh
	+ topdir=.
	+ cd .
	+ CURRENT_VERSION_FILE=./build/current-version
	+ . ./build/versioning.sh
	+++ cat version
	+++ tr -d '\n'
	++ VERSION=3.8
	+++ git rev-parse HEAD
	+++ echo no.git
	++ GIT_REF=no.git
	+++ git describe --long --abbrev=12 --dirty
	+++ echo ''
	++ x=
	++ '[' -n '' ']'
	++ x=no.git
	++ RELEASE=no.git
	+ echo 3.8-no.git
	+ echo no.git
	+ rm -rf autom4te.cache
	+ mkdir -p config/m4 config/aux
	+ autoreconf -v --install
	autoreconf: Entering directory `.'
	autoreconf: configure.ac: not using Gettext
	autoreconf: running: aclocal -I config/m4
	autoreconf: configure.ac: tracing
	autoreconf: running: libtoolize --copy
	libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'config/aux'.
	libtoolize: copying file 'config/aux/ltmain.sh'
	libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'config/m4'.
	libtoolize: copying file 'config/m4/libtool.m4'
	libtoolize: copying file 'config/m4/ltoptions.m4'
	libtoolize: copying file 'config/m4/ltsugar.m4'
	libtoolize: copying file 'config/m4/ltversion.m4'
	libtoolize: copying file 'config/m4/lt~obsolete.m4'
	autoreconf: running: /usr/bin/autoconf
	autoreconf: running: /usr/bin/autoheader
	autoreconf: running: automake --add-missing --copy --no-force
	configure.ac:69: installing 'config/aux/ar-lib'
	configure.ac:69: installing 'config/aux/compile'
	configure.ac:9: installing 'config/aux/config.guess'
	configure.ac:9: installing 'config/aux/config.sub'
	configure.ac:60: installing 'config/aux/install-sh'
	configure.ac:60: installing 'config/aux/missing'
	Makefile.am: installing 'config/aux/depcomp'
	tests/Makefile.am:1: warning: ':='-style assignments are not portable
	autoreconf: Leaving directory `.'
	+ rm -rf autom4te.cache
	+ cd /opt/sockperf-3.8
	+ '[' x = xc ']'
	+ printf '\nNow run '\''./configure'\'' and '\''make'\''.\n\n'
	
	Now run './configure' and 'make'.
	
	+ rm -f ./build/current-version
	+ exit 0
```

**3) configure実行**
インストールに必要な環境変数やライブラリが正しく設定、設置されているか等がチェックとMakeFile作成

```
[root@oci-inst sockperf-3.8]# sudo ./configure
	checking build system type... x86_64-pc-linux-gnu
	checking host system type... x86_64-pc-linux-gnu
	checking target system type... x86_64-pc-linux-gnu
	checking for a BSD-compatible install... /bin/install -c
	checking whether build environment is sane... yes
	checking for a thread-safe mkdir -p... /bin/mkdir -p
	checking for gawk... gawk
	checking whether make sets $(MAKE)... yes
	checking whether make supports nested variables... yes
	checking whether to enable maintainer-specific portions of Makefiles... no
	checking for g++... g++
	checking whether the C++ compiler works... yes
	checking for C++ compiler default output file name... a.out
	checking for suffix of executables...
	checking whether we are cross compiling... no
	checking for suffix of object files... o
	checking whether we are using the GNU C++ compiler... yes
	checking whether g++ accepts -g... yes
	checking whether make supports the include directive... yes (GNU style)
	checking dependency style of g++... gcc3
	checking for gcc... gcc
	checking whether we are using the GNU C compiler... yes
	checking whether gcc accepts -g... yes
	checking for gcc option to accept ISO C89... none needed
	checking whether gcc understands -c and -o together... yes
	checking dependency style of gcc... gcc3
	checking for ar... ar
	checking the archiver (ar) interface... ar
	checking how to print strings... printf
	checking for a sed that does not truncate output... /bin/sed
	checking for grep that handles long lines and -e... /bin/grep
	checking for egrep... /bin/grep -E
	checking for fgrep... /bin/grep -F
	checking for ld used by gcc... /bin/ld
	checking if the linker (/bin/ld) is GNU ld... yes
	checking for BSD- or MS-compatible name lister (nm)... /bin/nm -B
	checking the name lister (/bin/nm -B) interface... BSD nm
	checking whether ln -s works... yes
	checking the maximum length of command line arguments... 1572864
	checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
	checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
	checking for /bin/ld option to reload object files... -r
	checking for objdump... objdump
	checking how to recognize dependent libraries... pass_all
	checking for dlltool... no
	checking how to associate runtime and link libraries... printf %s\n
	checking for archiver @FILE support... @
	checking for strip... strip
	checking for ranlib... ranlib
	checking command to parse /bin/nm -B output from gcc object... ok
	checking for sysroot... no
	checking for a working dd... /bin/dd
	checking how to truncate binary pipes... /bin/dd bs=4096 count=1
	checking for mt... no
	checking if : is a manifest tool... no
	checking how to run the C preprocessor... gcc -E
	checking for ANSI C header files... yes
	checking for sys/types.h... yes
	checking for sys/stat.h... yes
	checking for stdlib.h... yes
	checking for string.h... yes
	checking for memory.h... yes
	checking for strings.h... yes
	checking for inttypes.h... yes
	checking for stdint.h... yes
	checking for unistd.h... yes
	checking for dlfcn.h... yes
	checking for objdir... .libs
	checking if gcc supports -fno-rtti -fno-exceptions... no
	checking for gcc option to produce PIC... -fPIC -DPIC
	checking if gcc PIC flag -fPIC -DPIC works... yes
	checking if gcc static flag -static works... no
	checking if gcc supports -c -o file.o... yes
	checking if gcc supports -c -o file.o... (cached) yes
	checking whether the gcc linker (/bin/ld -m elf_x86_64) supports shared libraries... yes
	checking whether -lc should be explicitly linked in... no
	checking dynamic linker characteristics... GNU/Linux ld.so
	checking how to hardcode library paths into programs... immediate
	checking whether stripping libraries is possible... yes
	checking if libtool supports shared libraries... yes
	checking whether to build shared libraries... yes
	checking whether to build static libraries... yes
	checking how to run the C++ preprocessor... g++ -E
	checking for ld used by g++... /bin/ld -m elf_x86_64
	checking if the linker (/bin/ld -m elf_x86_64) is GNU ld... yes
	checking whether the g++ linker (/bin/ld -m elf_x86_64) supports shared libraries... yes
	checking for g++ option to produce PIC... -fPIC -DPIC
	checking if g++ PIC flag -fPIC -DPIC works... yes
	checking if g++ static flag -static works... no
	checking if g++ supports -c -o file.o... yes
	checking if g++ supports -c -o file.o... (cached) yes
	checking whether the g++ linker (/bin/ld -m elf_x86_64) supports shared libraries... yes
	checking dynamic linker characteristics... (cached) GNU/Linux ld.so
	checking how to hardcode library paths into programs... immediate
	checking whether g++ supports -Wall in CXXFLAGS... yes
	checking whether g++ supports --param inline-unit-growth=300 in CXXFLAGS... yes
	checking for vma extra api... no
	checking for tls support... no
	checking for ANSI C header files... (cached) yes
	checking arpa/inet.h usability... yes
	checking arpa/inet.h presence... yes
	checking for arpa/inet.h... yes
	checking fcntl.h usability... yes
	checking fcntl.h presence... yes
	checking for fcntl.h... yes
	checking netinet/in.h usability... yes
	checking netinet/in.h presence... yes
	checking for netinet/in.h... yes
	checking for stdint.h... (cached) yes
	checking for stdlib.h... (cached) yes
	checking for string.h... (cached) yes
	checking sys/ioctl.h usability... yes
	checking sys/ioctl.h presence... yes
	checking for sys/ioctl.h... yes
	checking sys/socket.h usability... yes
	checking sys/socket.h presence... yes
	checking for sys/socket.h... yes
	checking sys/time.h usability... yes
	checking sys/time.h presence... yes
	checking for sys/time.h... yes
	checking syslog.h usability... yes
	checking syslog.h presence... yes
	checking for syslog.h... yes
	checking termios.h usability... yes
	checking termios.h presence... yes
	checking for termios.h... yes
	checking for unistd.h... (cached) yes
	checking for ANSI C header files... (cached) yes
	checking for library containing clock_gettime... none required
	checking for library containing pthread_create... -lpthread
	checking for library containing backtrace... none required
	checking for library containing dlsym... -ldl
	checking that generated files are newer than configure... done
	configure: creating ./config.status
	config.status: creating Makefile
	config.status: creating tools/Makefile
	config.status: creating tests/Makefile
	config.status: creating tests/gtest/Makefile
	config.status: creating doc/Doxyfile
	config.status: creating build/sockperf.spec
	config.status: creating config.h
	config.status: executing depfiles commands
	config.status: executing libtool commands
	
		sockperf 3.8-no.git
	
		prefix:		/usr/local
	
		compiler:	g++
		cppflags:
		cxxflags:	 -Wall --param inline-unit-growth=300 -O3 -g
		ldflags:
	
		doc:		no
		test:		no
		tool:		no
		vma_api:	no
		debug:		no
```


**4) make実行**
```
[root@oci-inst sockperf-3.8]# sudo make -j `cat /proc/cpuinfo| grep process | wc -l`
  make  all-recursive
	make[1]: Entering directory '/opt/sockperf-3.8'
	make[2]: Entering directory '/opt/sockperf-3.8'
	depbase=`echo src/aopt.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/aopt.o -MD -MP -MF $depbase.Tpo -c -o src/aopt.o src/aopt.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	depbase=`echo src/client.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/client.o -MD -MP -MF $depbase.Tpo -c -o src/client.o src/client.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	depbase=`echo src/common.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/common.o -MD -MP -MF $depbase.Tpo -c -o src/common.o src/common.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	depbase=`echo src/defs.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/defs.o -MD -MP -MF $depbase.Tpo -c -o src/defs.o src/defs.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	depbase=`echo src/iohandlers.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/iohandlers.o -MD -MP -MF $depbase.Tpo -c -o src/iohandlers.o src/iohandlers.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	depbase=`echo src/ip_address.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/ip_address.o -MD -MP -MF $depbase.Tpo -c -o src/ip_address.o src/ip_address.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	depbase=`echo src/message.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/message.o -MD -MP -MF $depbase.Tpo -c -o src/message.o src/message.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	depbase=`echo src/os_abstract.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/os_abstract.o -MD -MP -MF $depbase.Tpo -c -o src/os_abstract.o src/os_abstract.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	depbase=`echo src/packet.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/packet.o -MD -MP -MF $depbase.Tpo -c -o src/packet.o src/packet.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	depbase=`echo src/playback.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/playback.o -MD -MP -MF $depbase.Tpo -c -o src/playback.o src/playback.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	depbase=`echo src/server.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/server.o -MD -MP -MF $depbase.Tpo -c -o src/server.o src/server.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	depbase=`echo src/sockperf.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/sockperf.o -MD -MP -MF $depbase.Tpo -c -o src/sockperf.o src/sockperf.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	depbase=`echo src/ticks.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/ticks.o -MD -MP -MF $depbase.Tpo -c -o src/ticks.o src/ticks.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	depbase=`echo src/tls.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/tls.o -MD -MP -MF $depbase.Tpo -c -o src/tls.o src/tls.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	depbase=`echo src/vma-redirect.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/vma-redirect.o -MD -MP -MF $depbase.Tpo -c -o src/vma-redirect.o src/vma-redirect.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	/bin/sh ./libtool  --tag=CXX   --mode=link g++ -Wall --param inline-unit-growth=300 -O3 -g -rdynamic  -o sockperf src/aopt.o src/client.o src/common.o src/defs.o src/iohandlers.o src/ip_address.o src/message.o src/os_abstract.o src/packet.o src/playback.o src/server.o src/sockperf.o src/ticks.o src/tls.o src/vma-redirect.o  -ldl -lpthread
	libtool: link: g++ -Wall --param inline-unit-growth=300 -O3 -g -rdynamic -o sockperf src/aopt.o src/client.o src/common.o src/defs.o src/iohandlers.o src/ip_address.o src/message.o src/os_abstract.o src/packet.o src/playback.o src/server.o src/sockperf.o src/ticks.o src/tls.o src/vma-redirect.o  -ldl -lpthread
	make[2]: Leaving directory '/opt/sockperf-3.8'
	make[1]: Leaving directory '/opt/sockperf-3.8'
```



**2) make install 実行**
```
[root@oci-inst sockperf-3.8]# sudo make install
	make[1]: Entering directory '/opt/sockperf-3.8'
	make[2]: Entering directory '/opt/sockperf-3.8'
	 /bin/mkdir -p '/usr/local/bin'
	  /bin/sh ./libtool   --mode=install /bin/install -c sockperf '/usr/local/bin'
	libtool: install: /bin/install -c sockperf /usr/local/bin/sockperf
	 /bin/mkdir -p '/usr/local/share/doc/sockperf'
	 /bin/install -c -m 644 README.md authors news version copying '/usr/local/share/doc/sockperf'
	make[2]: Leaving directory '/opt/sockperf-3.8'
	make[1]: Leaving directory '/opt/sockperf-3.8'
```


## ● SockPerf Install 確認
**・ Version 確認**
```
[root@oci-inst sockperf-3.8]# /opt/sockperf-3.8/sockperf --version
	sockperf, version 3.8-no.git
	   compiled Nov 14 2024, 03:35:22
	
	Copyright (C) 2011-2022 Mellanox Technologies Ltd.
	SockPerf is open source software, see http://github.com/mellanox/sockperf
```


**・ Help 確認**
```
[root@oci-inst sockperf-3.8]# /opt/sockperf-3.8/sockperf --help
sockperf is a tool for testing network latency and throughput.
	version 3.8-no.git
	
	Usage: sockperf <subcommand> [options] [args]
	Type: 'sockperf <subcommand> --help' for help on a specific subcommand.
	Type: 'sockperf --version' to see the program version number.
	
	Available subcommands:
	   help (h ,?)         	Display list of supported commands.
	   under-load (ul)     	Run sockperf client for latency under load test.
	   ping-pong (pp)      	Run sockperf client for latency test in ping pong mode.
	   playback (pb)       	Run sockperf client for latency test using playback of predefined traffic, based on timeline and message size.
	   throughput (tp)     	Run sockperf client for one way throughput test.
	   server (sr)         	Run sockperf as a server.
	
	For additional information visit our website http://github.com/mellanox/sockperf , see README file, or Type 'sockperf <subcommand> --help'.
```



## ● Sockperf TCP Test

```:Server(受信)構文
#sudo sockperf sr --tcp -i <ip of="" local="" host=""> -p <unused server="" port="">
```

```:Client(送信)構文
#sockperf ping-pong -i <ip of="" destination="" host=""> --tcp -t 300 -p <destination server="" port=""> --full-rtt
```


**・Server(受信)側実行**

```
[opc@oci-inst ~]$ /opt/sockperf-3.8/sockperf sr --tcp -p 15000
  sockperf: == version #3.8-no.git ==
  sockperf: [SERVER] listen on:
  [ 0] IP = 10.10.0.2       PORT = 15000 # TCP
  sockperf: Warmup stage (sending a few dummy messages)...
  sockperf: [tid 511862] using recvfrom() to block on socket(s)
```


**・ Client(送信)側実行**
-tオプションを使用して 60秒間の 平均往復遅延時間を取得
```
[ec2-user@ip-10-1-1-20 sockperf-3.8]$ /opt/sockperf-3.8/sockperf ping-pong -i 10.10.0.2 --tcp -t 60 -p 15000 --full-rtt
  sockperf: == version #3.8-no.git ==
  sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)

  [ 0] IP = 10.10.0.2       PORT = 15000 # TCP
  sockperf: Warmup stage (sending a few dummy messages)...
  sockperf: Starting test...
  sockperf: Test end (interrupted by timer)
  sockperf: Test ended
  sockperf: [Total Run] RunTime=60.000 sec; Warm up time=400 msec; SentMessages=86545; ReceivedMessages=86544
  sockperf: ========= Printing statistics for Server No: 0
  sockperf: [Valid Duration] RunTime=59.550 sec; SentMessages=85896; ReceivedMessages=85896
  sockperf: ====> avg-rtt=693.140 (std-dev=31.704, mean-ad=24.100, median-ad=36.897, siqr=20.074, cv=0.046, std-error=0.108, 99.0% ci=[692.861, 693.419])
  sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
  sockperf: Summary: Round trip is 693.140 usec
  sockperf: Total 85896 observations; each percentile contains 858.96 observations
  sockperf: ---> <MAX> observation = 3085.958
  sockperf: ---> percentile 99.999 = 1800.785
  sockperf: ---> percentile 99.990 = 1195.096
  sockperf: ---> percentile 99.900 =  872.485
  sockperf: ---> percentile 99.000 =  762.947
  sockperf: ---> percentile 90.000 =  723.228
  sockperf: ---> percentile 75.000 =  718.299
  sockperf: ---> percentile 50.000 =  684.842
  sockperf: ---> percentile 25.000 =  678.150
  sockperf: ---> <MIN> observation =  616.387
```
--> Summary: Round trip is 693.140 usec から
693.140 μ秒 = 0.693140 m秒 であることを確認できます。







# ■ Debian系 Linuxへの SockPerf インストール

```:必要モジュールのインストール
sudo apt update
sudo apt-get install build-essential -y
sudo apt-get install git -y -q
sudo apt-get install -y autotools-dev
sudo apt-get install -y automake
sudo apt-get install -y autoconf
```
```:SockPerf インストール
git clone https://github.com/mellanox/sockperf
cd sockperf/
./autogen.sh
./configure --prefix=
make
sudo make install
```




## ● 必要モジュールのインストール
**1) apt update**
パッケージ一覧を更新
```
ubuntu@ip-10-1-1-30:~/sockperf$ sudo apt update
  Hit:1 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble InRelease
  Get:2 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
  Get:3 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]
  Get:4 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble/universe amd64 Packages [15.0 MB]
  Get:5 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
  Get:6 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble/universe Translation-en [5982 kB]
  Get:7 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble/universe amd64 Components [3871 kB]
  Get:8 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble/universe amd64 c-n-f Metadata [301 kB]
  Get:9 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble/multiverse amd64 Packages [269 kB]
  Get:10 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble/multiverse Translation-en [118 kB]
  Get:11 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble/multiverse amd64 Components [35.0 kB]
  Get:12 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble/multiverse amd64 c-n-f Metadata [8328 B]
  Get:13 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [633 kB]
  Get:14 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-updates/main Translation-en [152 kB]
  Get:15 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [120 kB]
  Get:16 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-updates/main amd64 c-n-f Metadata [10.4 kB]
  Get:17 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [716 kB]
  Get:18 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-updates/universe Translation-en [212 kB]
  Get:19 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [310 kB]
  Get:20 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-updates/universe amd64 c-n-f Metadata [19.9 kB]
  Get:21 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Packages [434 kB]
  Get:22 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-updates/restricted Translation-en [83.4 kB]
  Get:23 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Components [212 B]
  Get:24 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 c-n-f Metadata [424 B]
  Get:25 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Packages [15.0 kB]
  Get:26 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-updates/multiverse Translation-en [3820 B]
  Get:27 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B]
  Get:28 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 c-n-f Metadata [552 B]
  Get:29 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [208 B]
  Get:30 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-backports/main amd64 c-n-f Metadata [112 B]
  Get:31 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Packages [10.6 kB]
  Get:32 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-backports/universe Translation-en [10.8 kB]
  Get:33 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [21.1 kB]
  Get:34 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-backports/universe amd64 c-n-f Metadata [1104 B]
  Get:35 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-backports/restricted amd64 Components [212 B]
  Get:36 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-backports/restricted amd64 c-n-f Metadata [116 B]
  Get:37 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Components [212 B]
  Get:38 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 c-n-f Metadata [116 B]
  Get:39 http://security.ubuntu.com/ubuntu noble-security/main amd64 Packages [464 kB]
  Get:40 http://security.ubuntu.com/ubuntu noble-security/main Translation-en [98.0 kB]
  Get:41 http://security.ubuntu.com/ubuntu noble-security/main amd64 Components [7200 B]
  Get:42 http://security.ubuntu.com/ubuntu noble-security/main amd64 c-n-f Metadata [5892 B]
  Get:43 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Packages [561 kB]
  Get:44 http://security.ubuntu.com/ubuntu noble-security/universe Translation-en [149 kB]
  Get:45 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Components [51.9 kB]
  Get:46 http://security.ubuntu.com/ubuntu noble-security/universe amd64 c-n-f Metadata [13.5 kB]
  Get:47 http://security.ubuntu.com/ubuntu noble-security/restricted amd64 Packages [434 kB]
  Get:48 http://security.ubuntu.com/ubuntu noble-security/restricted Translation-en [83.4 kB]
  Get:49 http://security.ubuntu.com/ubuntu noble-security/restricted amd64 Components [208 B]
  Get:50 http://security.ubuntu.com/ubuntu noble-security/restricted amd64 c-n-f Metadata [424 B]
  Get:51 http://security.ubuntu.com/ubuntu noble-security/multiverse amd64 Packages [12.2 kB]
  Get:52 http://security.ubuntu.com/ubuntu noble-security/multiverse Translation-en [2940 B]
  Get:53 http://security.ubuntu.com/ubuntu noble-security/multiverse amd64 Components [208 B]
  Get:54 http://security.ubuntu.com/ubuntu noble-security/multiverse amd64 c-n-f Metadata [356 B]
  Fetched 30.6 MB in 5s (6202 kB/s)
  Reading package lists... Done
  Building dependency tree... Done
  Reading state information... Done
  30 packages can be upgraded. Run 'apt list --upgradable' to see them.
```

**2) build-essentialパッケージ・インストール**
```
ubuntu@oci-ubuntu:~$ sudo apt-get install build-essential -y
  Reading package lists... Done
	Building dependency tree... Done
	Reading state information... Done
	The following additional packages will be installed:
	  binutils binutils-common binutils-x86-64-linux-gnu bzip2 cpp cpp-13 cpp-13-x86-64-linux-gnu cpp-x86-64-linux-gnu dpkg-dev fakeroot fontconfig-config
	  fonts-dejavu-core fonts-dejavu-mono g++ g++-13 g++-13-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-13 gcc-13-base gcc-13-x86-64-linux-gnu gcc-14-base
	  gcc-x86-64-linux-gnu libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libaom3 libasan8 libatomic1 libbinutils libc-dev-bin
	  libc-devtools libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libde265-0 libdeflate0 libdpkg-perl libfakeroot libfile-fcntllock-perl libfontconfig1
	  libgcc-13-dev libgcc-s1 libgd3 libgomp1 libgprofng0 libheif-plugin-aomdec libheif-plugin-aomenc libheif-plugin-libde265 libheif1 libhwasan0 libisl23 libitm1
	  libjbig0 libjpeg-turbo8 libjpeg8 liblerc4 liblsan0 libmpc3 libquadmath0 libsframe1 libsharpyuv0 libstdc++-13-dev libstdc++6 libtiff6 libtsan2 libubsan1
	  libwebp7 libxpm4 linux-libc-dev linux-tools-common lto-disabled-list make manpages-dev rpcsvc-proto
	Suggested packages:
	  binutils-doc gprofng-gui bzip2-doc cpp-doc gcc-13-locales cpp-13-doc debian-keyring g++-multilib g++-13-multilib gcc-13-doc gcc-multilib autoconf automake
	  libtool flex bison gdb gcc-doc gcc-13-multilib gdb-x86-64-linux-gnu glibc-doc bzr libgd-tools libheif-plugin-x265 libheif-plugin-ffmpegdec
	  libheif-plugin-jpegdec libheif-plugin-jpegenc libheif-plugin-j2kdec libheif-plugin-j2kenc libheif-plugin-rav1e libheif-plugin-svtenc libstdc++-13-doc
	  make-doc
	The following NEW packages will be installed:
	  binutils binutils-common binutils-x86-64-linux-gnu build-essential bzip2 cpp cpp-13 cpp-13-x86-64-linux-gnu cpp-x86-64-linux-gnu dpkg-dev fakeroot
	  fontconfig-config fonts-dejavu-core fonts-dejavu-mono g++ g++-13 g++-13-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-13 gcc-13-base gcc-13-x86-64-linux-gnu
	  gcc-x86-64-linux-gnu libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libaom3 libasan8 libatomic1 libbinutils libc-dev-bin
	  libc-devtools libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libde265-0 libdeflate0 libdpkg-perl libfakeroot libfile-fcntllock-perl libfontconfig1
	  libgcc-13-dev libgd3 libgomp1 libgprofng0 libheif-plugin-aomdec libheif-plugin-aomenc libheif-plugin-libde265 libheif1 libhwasan0 libisl23 libitm1 libjbig0
	  libjpeg-turbo8 libjpeg8 liblerc4 liblsan0 libmpc3 libquadmath0 libsframe1 libsharpyuv0 libstdc++-13-dev libtiff6 libtsan2 libubsan1 libwebp7 libxpm4
	  linux-libc-dev lto-disabled-list make manpages-dev rpcsvc-proto
	The following packages will be upgraded:
	  gcc-14-base libgcc-s1 libstdc++6 linux-tools-common
	4 upgraded, 74 newly installed, 0 to remove and 17 not upgraded.
	Need to get 81.1 MB of archives.
	After this operation, 287 MB of additional disk space will be used.
	Get:1 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 gcc-14-base amd64 14.2.0-4ubuntu2~24.04 [50.8 kB]
	Get:2 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libstdc++6 amd64 14.2.0-4ubuntu2~24.04 [791 kB]
	Get:3 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libgcc-s1 amd64 14.2.0-4ubuntu2~24.04 [78.6 kB]
	Get:4 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 binutils-common amd64 2.42-4ubuntu2.3 [239 kB]
	Get:5 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libsframe1 amd64 2.42-4ubuntu2.3 [14.9 kB]
	Get:6 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libbinutils amd64 2.42-4ubuntu2.3 [575 kB]
	Get:7 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libctf-nobfd0 amd64 2.42-4ubuntu2.3 [97.1 kB]
	Get:8 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libctf0 amd64 2.42-4ubuntu2.3 [94.5 kB]
	Get:9 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libgprofng0 amd64 2.42-4ubuntu2.3 [849 kB]
	Get:10 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.42-4ubuntu2.3 [2463 kB]
	Get:11 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 binutils amd64 2.42-4ubuntu2.3 [18.1 kB]
	Get:12 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libc-dev-bin amd64 2.39-0ubuntu8.3 [60.8 kB]
	Get:13 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 linux-libc-dev amd64 6.8.0-48.48 [1716 kB]
	Get:14 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libcrypt-dev amd64 1:4.4.36-4build1 [112 kB]
	Get:15 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 rpcsvc-proto amd64 1.4.2-0ubuntu7 [67.4 kB]
	Get:16 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libc6-dev amd64 2.39-0ubuntu8.3 [2164 kB]
	Get:17 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 gcc-13-base amd64 13.2.0-23ubuntu4 [49.0 kB]
	Get:18 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libisl23 amd64 0.26-3build1 [680 kB]
	Get:19 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libmpc3 amd64 1.3.1-1build1 [54.5 kB]
	Get:20 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 cpp-13-x86-64-linux-gnu amd64 13.2.0-23ubuntu4 [11.2 MB]
	Get:21 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 cpp-13 amd64 13.2.0-23ubuntu4 [1032 B]
	Get:22 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 cpp-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [5326 B]
	Get:23 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 cpp amd64 4:13.2.0-7ubuntu1 [22.4 kB]
	Get:24 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libcc1-0 amd64 14.2.0-4ubuntu2~24.04 [48.0 kB]
	Get:25 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libgomp1 amd64 14.2.0-4ubuntu2~24.04 [148 kB]
	Get:26 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libitm1 amd64 14.2.0-4ubuntu2~24.04 [29.7 kB]
	Get:27 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libatomic1 amd64 14.2.0-4ubuntu2~24.04 [10.5 kB]
	Get:28 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libasan8 amd64 14.2.0-4ubuntu2~24.04 [3031 kB]
	Get:29 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 liblsan0 amd64 14.2.0-4ubuntu2~24.04 [1322 kB]
	Get:30 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libtsan2 amd64 14.2.0-4ubuntu2~24.04 [2772 kB]
	Get:31 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libubsan1 amd64 14.2.0-4ubuntu2~24.04 [1184 kB]
	Get:32 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libhwasan0 amd64 14.2.0-4ubuntu2~24.04 [1641 kB]
	Get:33 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libquadmath0 amd64 14.2.0-4ubuntu2~24.04 [153 kB]
	Get:34 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libgcc-13-dev amd64 13.2.0-23ubuntu4 [2688 kB]
	Get:35 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 gcc-13-x86-64-linux-gnu amd64 13.2.0-23ubuntu4 [21.9 MB]
	Get:36 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 gcc-13 amd64 13.2.0-23ubuntu4 [482 kB]
	Get:37 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 gcc-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [1212 B]
	Get:38 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 gcc amd64 4:13.2.0-7ubuntu1 [5018 B]
	Get:39 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libstdc++-13-dev amd64 13.2.0-23ubuntu4 [2399 kB]
	Get:40 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 g++-13-x86-64-linux-gnu amd64 13.2.0-23ubuntu4 [12.5 MB]
	Get:41 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 g++-13 amd64 13.2.0-23ubuntu4 [14.5 kB]
	Get:42 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 g++-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [964 B]
	Get:43 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 g++ amd64 4:13.2.0-7ubuntu1 [1100 B]
	Get:44 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 make amd64 4.3-4.1build2 [180 kB]
	Get:45 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libdpkg-perl all 1.22.6ubuntu6.1 [269 kB]
	Get:46 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 bzip2 amd64 1.0.8-5.1build0.1 [34.5 kB]
	Get:47 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 lto-disabled-list all 47 [12.4 kB]
	Get:48 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 dpkg-dev all 1.22.6ubuntu6.1 [1074 kB]
	Get:49 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 build-essential amd64 12.10ubuntu1 [4928 B]
	Get:50 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libfakeroot amd64 1.33-1 [32.4 kB]
	Get:51 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 fakeroot amd64 1.33-1 [67.2 kB]
	Get:52 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 fonts-dejavu-mono all 2.37-8 [502 kB]
	Get:53 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 fonts-dejavu-core all 2.37-8 [835 kB]
	Get:54 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 fontconfig-config amd64 2.15.0-1.1ubuntu2 [37.3 kB]
	Get:55 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libalgorithm-diff-perl all 1.201-1 [41.8 kB]
	Get:56 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libalgorithm-diff-xs-perl amd64 0.04-8build3 [11.2 kB]
	Get:57 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libalgorithm-merge-perl all 0.08-5 [11.4 kB]
	Get:58 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libaom3 amd64 3.8.2-2ubuntu0.1 [1941 kB]
	Get:59 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libfontconfig1 amd64 2.15.0-1.1ubuntu2 [139 kB]
	Get:60 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libsharpyuv0 amd64 1.3.2-0.4build3 [15.8 kB]
	Get:61 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libheif-plugin-aomdec amd64 1.17.6-1ubuntu4.1 [10.4 kB]
	Get:62 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libde265-0 amd64 1.0.15-1build3 [166 kB]
	Get:63 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libheif-plugin-libde265 amd64 1.17.6-1ubuntu4.1 [8176 B]
	Get:64 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libheif1 amd64 1.17.6-1ubuntu4.1 [275 kB]
	Get:65 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libjpeg-turbo8 amd64 2.1.5-2ubuntu2 [150 kB]
	Get:66 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libjpeg8 amd64 8c-2ubuntu11 [2148 B]
	Get:67 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libdeflate0 amd64 1.19-1build1.1 [43.9 kB]
	Get:68 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libjbig0 amd64 2.1-6.1ubuntu2 [29.7 kB]
	Get:69 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 liblerc4 amd64 4.0.0+ds-4ubuntu2 [179 kB]
	Get:70 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libwebp7 amd64 1.3.2-0.4build3 [230 kB]
	Get:71 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libtiff6 amd64 4.5.1+git230720-4ubuntu2.2 [199 kB]
	Get:72 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libxpm4 amd64 1:3.5.17-1build2 [36.5 kB]
	Get:73 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libgd3 amd64 2.3.3-9ubuntu5 [128 kB]
	Get:74 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libc-devtools amd64 2.39-0ubuntu8.3 [69.7 kB]
	Get:75 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libfile-fcntllock-perl amd64 0.22-4ubuntu5 [30.7 kB]
	Get:76 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libheif-plugin-aomenc amd64 1.17.6-1ubuntu4.1 [14.7 kB]
	Get:77 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 linux-tools-common all 6.8.0-48.48 [558 kB]
	Get:78 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 manpages-dev all 6.7-2 [2013 kB]
	Fetched 81.1 MB in 10s (8266 kB/s)
	Extracting templates from packages: 100%
	(Reading database ... 74230 files and directories currently installed.)
	Preparing to unpack .../gcc-14-base_14.2.0-4ubuntu2~24.04_amd64.deb ...
	Unpacking gcc-14-base:amd64 (14.2.0-4ubuntu2~24.04) over (14-20240412-0ubuntu1) ...
	Setting up gcc-14-base:amd64 (14.2.0-4ubuntu2~24.04) ...
	(Reading database ... 74230 files and directories currently installed.)
	Preparing to unpack .../libstdc++6_14.2.0-4ubuntu2~24.04_amd64.deb ...
	Unpacking libstdc++6:amd64 (14.2.0-4ubuntu2~24.04) over (14-20240412-0ubuntu1) ...
	Setting up libstdc++6:amd64 (14.2.0-4ubuntu2~24.04) ...
	(Reading database ... 74230 files and directories currently installed.)
	Preparing to unpack .../libgcc-s1_14.2.0-4ubuntu2~24.04_amd64.deb ...
	Unpacking libgcc-s1:amd64 (14.2.0-4ubuntu2~24.04) over (14-20240412-0ubuntu1) ...
	Setting up libgcc-s1:amd64 (14.2.0-4ubuntu2~24.04) ...
	Selecting previously unselected package binutils-common:amd64.
	(Reading database ... 74230 files and directories currently installed.)
	Preparing to unpack .../00-binutils-common_2.42-4ubuntu2.3_amd64.deb ...
	Unpacking binutils-common:amd64 (2.42-4ubuntu2.3) ...
	Selecting previously unselected package libsframe1:amd64.
	Preparing to unpack .../01-libsframe1_2.42-4ubuntu2.3_amd64.deb ...
	Unpacking libsframe1:amd64 (2.42-4ubuntu2.3) ...
	Selecting previously unselected package libbinutils:amd64.
	Preparing to unpack .../02-libbinutils_2.42-4ubuntu2.3_amd64.deb ...
	Unpacking libbinutils:amd64 (2.42-4ubuntu2.3) ...
	Selecting previously unselected package libctf-nobfd0:amd64.
	Preparing to unpack .../03-libctf-nobfd0_2.42-4ubuntu2.3_amd64.deb ...
	Unpacking libctf-nobfd0:amd64 (2.42-4ubuntu2.3) ...
	Selecting previously unselected package libctf0:amd64.
	Preparing to unpack .../04-libctf0_2.42-4ubuntu2.3_amd64.deb ...
	Unpacking libctf0:amd64 (2.42-4ubuntu2.3) ...
	Selecting previously unselected package libgprofng0:amd64.
	Preparing to unpack .../05-libgprofng0_2.42-4ubuntu2.3_amd64.deb ...
	Unpacking libgprofng0:amd64 (2.42-4ubuntu2.3) ...
	Selecting previously unselected package binutils-x86-64-linux-gnu.
	Preparing to unpack .../06-binutils-x86-64-linux-gnu_2.42-4ubuntu2.3_amd64.deb ...
	Unpacking binutils-x86-64-linux-gnu (2.42-4ubuntu2.3) ...
	Selecting previously unselected package binutils.
	Preparing to unpack .../07-binutils_2.42-4ubuntu2.3_amd64.deb ...
	Unpacking binutils (2.42-4ubuntu2.3) ...
	Selecting previously unselected package libc-dev-bin.
	Preparing to unpack .../08-libc-dev-bin_2.39-0ubuntu8.3_amd64.deb ...
	Unpacking libc-dev-bin (2.39-0ubuntu8.3) ...
	Selecting previously unselected package linux-libc-dev:amd64.
	Preparing to unpack .../09-linux-libc-dev_6.8.0-48.48_amd64.deb ...
	Unpacking linux-libc-dev:amd64 (6.8.0-48.48) ...
	Selecting previously unselected package libcrypt-dev:amd64.
	Preparing to unpack .../10-libcrypt-dev_1%3a4.4.36-4build1_amd64.deb ...
	Unpacking libcrypt-dev:amd64 (1:4.4.36-4build1) ...
	Selecting previously unselected package rpcsvc-proto.
	Preparing to unpack .../11-rpcsvc-proto_1.4.2-0ubuntu7_amd64.deb ...
	Unpacking rpcsvc-proto (1.4.2-0ubuntu7) ...
	Selecting previously unselected package libc6-dev:amd64.
	Preparing to unpack .../12-libc6-dev_2.39-0ubuntu8.3_amd64.deb ...
	Unpacking libc6-dev:amd64 (2.39-0ubuntu8.3) ...
	Selecting previously unselected package gcc-13-base:amd64.
	Preparing to unpack .../13-gcc-13-base_13.2.0-23ubuntu4_amd64.deb ...
	Unpacking gcc-13-base:amd64 (13.2.0-23ubuntu4) ...
	Selecting previously unselected package libisl23:amd64.
	Preparing to unpack .../14-libisl23_0.26-3build1_amd64.deb ...
	Unpacking libisl23:amd64 (0.26-3build1) ...
	Selecting previously unselected package libmpc3:amd64.
	Preparing to unpack .../15-libmpc3_1.3.1-1build1_amd64.deb ...
	Unpacking libmpc3:amd64 (1.3.1-1build1) ...
	Selecting previously unselected package cpp-13-x86-64-linux-gnu.
	Preparing to unpack .../16-cpp-13-x86-64-linux-gnu_13.2.0-23ubuntu4_amd64.deb ...
	Unpacking cpp-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
	Selecting previously unselected package cpp-13.
	Preparing to unpack .../17-cpp-13_13.2.0-23ubuntu4_amd64.deb ...
	Unpacking cpp-13 (13.2.0-23ubuntu4) ...
	Selecting previously unselected package cpp-x86-64-linux-gnu.
	Preparing to unpack .../18-cpp-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...
	Unpacking cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
	Selecting previously unselected package cpp.
	Preparing to unpack .../19-cpp_4%3a13.2.0-7ubuntu1_amd64.deb ...
	Unpacking cpp (4:13.2.0-7ubuntu1) ...
	Selecting previously unselected package libcc1-0:amd64.
	Preparing to unpack .../20-libcc1-0_14.2.0-4ubuntu2~24.04_amd64.deb ...
	Unpacking libcc1-0:amd64 (14.2.0-4ubuntu2~24.04) ...
	Selecting previously unselected package libgomp1:amd64.
	Preparing to unpack .../21-libgomp1_14.2.0-4ubuntu2~24.04_amd64.deb ...
	Unpacking libgomp1:amd64 (14.2.0-4ubuntu2~24.04) ...
	Selecting previously unselected package libitm1:amd64.
	Preparing to unpack .../22-libitm1_14.2.0-4ubuntu2~24.04_amd64.deb ...
	Unpacking libitm1:amd64 (14.2.0-4ubuntu2~24.04) ...
	Selecting previously unselected package libatomic1:amd64.
	Preparing to unpack .../23-libatomic1_14.2.0-4ubuntu2~24.04_amd64.deb ...
	Unpacking libatomic1:amd64 (14.2.0-4ubuntu2~24.04) ...
	Selecting previously unselected package libasan8:amd64.
	Preparing to unpack .../24-libasan8_14.2.0-4ubuntu2~24.04_amd64.deb ...
	Unpacking libasan8:amd64 (14.2.0-4ubuntu2~24.04) ...
	Selecting previously unselected package liblsan0:amd64.
	Preparing to unpack .../25-liblsan0_14.2.0-4ubuntu2~24.04_amd64.deb ...
	Unpacking liblsan0:amd64 (14.2.0-4ubuntu2~24.04) ...
	Selecting previously unselected package libtsan2:amd64.
	Preparing to unpack .../26-libtsan2_14.2.0-4ubuntu2~24.04_amd64.deb ...
	Unpacking libtsan2:amd64 (14.2.0-4ubuntu2~24.04) ...
	Selecting previously unselected package libubsan1:amd64.
	Preparing to unpack .../27-libubsan1_14.2.0-4ubuntu2~24.04_amd64.deb ...
	Unpacking libubsan1:amd64 (14.2.0-4ubuntu2~24.04) ...
	Selecting previously unselected package libhwasan0:amd64.
	Preparing to unpack .../28-libhwasan0_14.2.0-4ubuntu2~24.04_amd64.deb ...
	Unpacking libhwasan0:amd64 (14.2.0-4ubuntu2~24.04) ...
	Selecting previously unselected package libquadmath0:amd64.
	Preparing to unpack .../29-libquadmath0_14.2.0-4ubuntu2~24.04_amd64.deb ...
	Unpacking libquadmath0:amd64 (14.2.0-4ubuntu2~24.04) ...
	Selecting previously unselected package libgcc-13-dev:amd64.
	Preparing to unpack .../30-libgcc-13-dev_13.2.0-23ubuntu4_amd64.deb ...
	Unpacking libgcc-13-dev:amd64 (13.2.0-23ubuntu4) ...
	Selecting previously unselected package gcc-13-x86-64-linux-gnu.
	Preparing to unpack .../31-gcc-13-x86-64-linux-gnu_13.2.0-23ubuntu4_amd64.deb ...
	Unpacking gcc-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
	Selecting previously unselected package gcc-13.
	Preparing to unpack .../32-gcc-13_13.2.0-23ubuntu4_amd64.deb ...
	Unpacking gcc-13 (13.2.0-23ubuntu4) ...
	Selecting previously unselected package gcc-x86-64-linux-gnu.
	Preparing to unpack .../33-gcc-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...
	Unpacking gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
	Selecting previously unselected package gcc.
	Preparing to unpack .../34-gcc_4%3a13.2.0-7ubuntu1_amd64.deb ...
	Unpacking gcc (4:13.2.0-7ubuntu1) ...
	Selecting previously unselected package libstdc++-13-dev:amd64.
	Preparing to unpack .../35-libstdc++-13-dev_13.2.0-23ubuntu4_amd64.deb ...
	Unpacking libstdc++-13-dev:amd64 (13.2.0-23ubuntu4) ...
	Selecting previously unselected package g++-13-x86-64-linux-gnu.
	Preparing to unpack .../36-g++-13-x86-64-linux-gnu_13.2.0-23ubuntu4_amd64.deb ...
	Unpacking g++-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
	Selecting previously unselected package g++-13.
	Preparing to unpack .../37-g++-13_13.2.0-23ubuntu4_amd64.deb ...
	Unpacking g++-13 (13.2.0-23ubuntu4) ...
	Selecting previously unselected package g++-x86-64-linux-gnu.
	Preparing to unpack .../38-g++-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...
	Unpacking g++-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
	Selecting previously unselected package g++.
	Preparing to unpack .../39-g++_4%3a13.2.0-7ubuntu1_amd64.deb ...
	Unpacking g++ (4:13.2.0-7ubuntu1) ...
	Selecting previously unselected package make.
	Preparing to unpack .../40-make_4.3-4.1build2_amd64.deb ...
	Unpacking make (4.3-4.1build2) ...
	Selecting previously unselected package libdpkg-perl.
	Preparing to unpack .../41-libdpkg-perl_1.22.6ubuntu6.1_all.deb ...
	Unpacking libdpkg-perl (1.22.6ubuntu6.1) ...
	Selecting previously unselected package bzip2.
	Preparing to unpack .../42-bzip2_1.0.8-5.1build0.1_amd64.deb ...
	Unpacking bzip2 (1.0.8-5.1build0.1) ...
	Selecting previously unselected package lto-disabled-list.
	Preparing to unpack .../43-lto-disabled-list_47_all.deb ...
	Unpacking lto-disabled-list (47) ...
	Selecting previously unselected package dpkg-dev.
	Preparing to unpack .../44-dpkg-dev_1.22.6ubuntu6.1_all.deb ...
	Unpacking dpkg-dev (1.22.6ubuntu6.1) ...
	Selecting previously unselected package build-essential.
	Preparing to unpack .../45-build-essential_12.10ubuntu1_amd64.deb ...
	Unpacking build-essential (12.10ubuntu1) ...
	Selecting previously unselected package libfakeroot:amd64.
	Preparing to unpack .../46-libfakeroot_1.33-1_amd64.deb ...
	Unpacking libfakeroot:amd64 (1.33-1) ...
	Selecting previously unselected package fakeroot.
	Preparing to unpack .../47-fakeroot_1.33-1_amd64.deb ...
	Unpacking fakeroot (1.33-1) ...
	Selecting previously unselected package fonts-dejavu-mono.
	Preparing to unpack .../48-fonts-dejavu-mono_2.37-8_all.deb ...
	Unpacking fonts-dejavu-mono (2.37-8) ...
	Selecting previously unselected package fonts-dejavu-core.
	Preparing to unpack .../49-fonts-dejavu-core_2.37-8_all.deb ...
	Unpacking fonts-dejavu-core (2.37-8) ...
	Selecting previously unselected package fontconfig-config.
	Preparing to unpack .../50-fontconfig-config_2.15.0-1.1ubuntu2_amd64.deb ...
	Unpacking fontconfig-config (2.15.0-1.1ubuntu2) ...
	Selecting previously unselected package libalgorithm-diff-perl.
	Preparing to unpack .../51-libalgorithm-diff-perl_1.201-1_all.deb ...
	Unpacking libalgorithm-diff-perl (1.201-1) ...
	Selecting previously unselected package libalgorithm-diff-xs-perl:amd64.
	Preparing to unpack .../52-libalgorithm-diff-xs-perl_0.04-8build3_amd64.deb ...
	Unpacking libalgorithm-diff-xs-perl:amd64 (0.04-8build3) ...
	Selecting previously unselected package libalgorithm-merge-perl.
	Preparing to unpack .../53-libalgorithm-merge-perl_0.08-5_all.deb ...
	Unpacking libalgorithm-merge-perl (0.08-5) ...
	Selecting previously unselected package libaom3:amd64.
	Preparing to unpack .../54-libaom3_3.8.2-2ubuntu0.1_amd64.deb ...
	Unpacking libaom3:amd64 (3.8.2-2ubuntu0.1) ...
	Selecting previously unselected package libfontconfig1:amd64.
	Preparing to unpack .../55-libfontconfig1_2.15.0-1.1ubuntu2_amd64.deb ...
	Unpacking libfontconfig1:amd64 (2.15.0-1.1ubuntu2) ...
	Selecting previously unselected package libsharpyuv0:amd64.
	Preparing to unpack .../56-libsharpyuv0_1.3.2-0.4build3_amd64.deb ...
	Unpacking libsharpyuv0:amd64 (1.3.2-0.4build3) ...
	Selecting previously unselected package libheif-plugin-aomdec:amd64.
	Preparing to unpack .../57-libheif-plugin-aomdec_1.17.6-1ubuntu4.1_amd64.deb ...
	Unpacking libheif-plugin-aomdec:amd64 (1.17.6-1ubuntu4.1) ...
	Selecting previously unselected package libde265-0:amd64.
	Preparing to unpack .../58-libde265-0_1.0.15-1build3_amd64.deb ...
	Unpacking libde265-0:amd64 (1.0.15-1build3) ...
	Selecting previously unselected package libheif-plugin-libde265:amd64.
	Preparing to unpack .../59-libheif-plugin-libde265_1.17.6-1ubuntu4.1_amd64.deb ...
	Unpacking libheif-plugin-libde265:amd64 (1.17.6-1ubuntu4.1) ...
	Selecting previously unselected package libheif1:amd64.
	Preparing to unpack .../60-libheif1_1.17.6-1ubuntu4.1_amd64.deb ...
	Unpacking libheif1:amd64 (1.17.6-1ubuntu4.1) ...
	Selecting previously unselected package libjpeg-turbo8:amd64.
	Preparing to unpack .../61-libjpeg-turbo8_2.1.5-2ubuntu2_amd64.deb ...
	Unpacking libjpeg-turbo8:amd64 (2.1.5-2ubuntu2) ...
	Selecting previously unselected package libjpeg8:amd64.
	Preparing to unpack .../62-libjpeg8_8c-2ubuntu11_amd64.deb ...
	Unpacking libjpeg8:amd64 (8c-2ubuntu11) ...
	Selecting previously unselected package libdeflate0:amd64.
	Preparing to unpack .../63-libdeflate0_1.19-1build1.1_amd64.deb ...
	Unpacking libdeflate0:amd64 (1.19-1build1.1) ...
	Selecting previously unselected package libjbig0:amd64.
	Preparing to unpack .../64-libjbig0_2.1-6.1ubuntu2_amd64.deb ...
	Unpacking libjbig0:amd64 (2.1-6.1ubuntu2) ...
	Selecting previously unselected package liblerc4:amd64.
	Preparing to unpack .../65-liblerc4_4.0.0+ds-4ubuntu2_amd64.deb ...
	Unpacking liblerc4:amd64 (4.0.0+ds-4ubuntu2) ...
	Selecting previously unselected package libwebp7:amd64.
	Preparing to unpack .../66-libwebp7_1.3.2-0.4build3_amd64.deb ...
	Unpacking libwebp7:amd64 (1.3.2-0.4build3) ...
	Selecting previously unselected package libtiff6:amd64.
	Preparing to unpack .../67-libtiff6_4.5.1+git230720-4ubuntu2.2_amd64.deb ...
	Unpacking libtiff6:amd64 (4.5.1+git230720-4ubuntu2.2) ...
	Selecting previously unselected package libxpm4:amd64.
	Preparing to unpack .../68-libxpm4_1%3a3.5.17-1build2_amd64.deb ...
	Unpacking libxpm4:amd64 (1:3.5.17-1build2) ...
	Selecting previously unselected package libgd3:amd64.
	Preparing to unpack .../69-libgd3_2.3.3-9ubuntu5_amd64.deb ...
	Unpacking libgd3:amd64 (2.3.3-9ubuntu5) ...
	Selecting previously unselected package libc-devtools.
	Preparing to unpack .../70-libc-devtools_2.39-0ubuntu8.3_amd64.deb ...
	Unpacking libc-devtools (2.39-0ubuntu8.3) ...
	Selecting previously unselected package libfile-fcntllock-perl.
	Preparing to unpack .../71-libfile-fcntllock-perl_0.22-4ubuntu5_amd64.deb ...
	Unpacking libfile-fcntllock-perl (0.22-4ubuntu5) ...
	Selecting previously unselected package libheif-plugin-aomenc:amd64.
	Preparing to unpack .../72-libheif-plugin-aomenc_1.17.6-1ubuntu4.1_amd64.deb ...
	Unpacking libheif-plugin-aomenc:amd64 (1.17.6-1ubuntu4.1) ...
	Preparing to unpack .../73-linux-tools-common_6.8.0-48.48_all.deb ...
	Unpacking linux-tools-common (6.8.0-48.48) over (6.8.0-45.45) ...
	Selecting previously unselected package manpages-dev.
	Preparing to unpack .../74-manpages-dev_6.7-2_all.deb ...
	Unpacking manpages-dev (6.7-2) ...
	Setting up libsharpyuv0:amd64 (1.3.2-0.4build3) ...
	Setting up libaom3:amd64 (3.8.2-2ubuntu0.1) ...
	Setting up manpages-dev (6.7-2) ...
	Setting up lto-disabled-list (47) ...
	Setting up liblerc4:amd64 (4.0.0+ds-4ubuntu2) ...
	Setting up libxpm4:amd64 (1:3.5.17-1build2) ...
	Setting up libfile-fcntllock-perl (0.22-4ubuntu5) ...
	Setting up libalgorithm-diff-perl (1.201-1) ...
	Setting up binutils-common:amd64 (2.42-4ubuntu2.3) ...
	Setting up libdeflate0:amd64 (1.19-1build1.1) ...
	Setting up linux-libc-dev:amd64 (6.8.0-48.48) ...
	Setting up libctf-nobfd0:amd64 (2.42-4ubuntu2.3) ...
	Setting up libgomp1:amd64 (14.2.0-4ubuntu2~24.04) ...
	Setting up bzip2 (1.0.8-5.1build0.1) ...
	Setting up libjbig0:amd64 (2.1-6.1ubuntu2) ...
	Setting up libsframe1:amd64 (2.42-4ubuntu2.3) ...
	Setting up libfakeroot:amd64 (1.33-1) ...
	Setting up fakeroot (1.33-1) ...
	update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode
	Setting up rpcsvc-proto (1.4.2-0ubuntu7) ...
	Setting up gcc-13-base:amd64 (13.2.0-23ubuntu4) ...
	Setting up make (4.3-4.1build2) ...
	Setting up libquadmath0:amd64 (14.2.0-4ubuntu2~24.04) ...
	Setting up fonts-dejavu-mono (2.37-8) ...
	Setting up libmpc3:amd64 (1.3.1-1build1) ...
	Setting up libatomic1:amd64 (14.2.0-4ubuntu2~24.04) ...
	Setting up fonts-dejavu-core (2.37-8) ...
	Setting up libjpeg-turbo8:amd64 (2.1.5-2ubuntu2) ...
	Setting up libdpkg-perl (1.22.6ubuntu6.1) ...
	Setting up libwebp7:amd64 (1.3.2-0.4build3) ...
	Setting up libubsan1:amd64 (14.2.0-4ubuntu2~24.04) ...
	Setting up libhwasan0:amd64 (14.2.0-4ubuntu2~24.04) ...
	Setting up libcrypt-dev:amd64 (1:4.4.36-4build1) ...
	Setting up libasan8:amd64 (14.2.0-4ubuntu2~24.04) ...
	Setting up libtsan2:amd64 (14.2.0-4ubuntu2~24.04) ...
	Setting up libbinutils:amd64 (2.42-4ubuntu2.3) ...
	Setting up libisl23:amd64 (0.26-3build1) ...
	Setting up libde265-0:amd64 (1.0.15-1build3) ...
	Setting up libc-dev-bin (2.39-0ubuntu8.3) ...
	Setting up linux-tools-common (6.8.0-48.48) ...
	Setting up libalgorithm-diff-xs-perl:amd64 (0.04-8build3) ...
	Setting up libcc1-0:amd64 (14.2.0-4ubuntu2~24.04) ...
	Setting up liblsan0:amd64 (14.2.0-4ubuntu2~24.04) ...
	Setting up libitm1:amd64 (14.2.0-4ubuntu2~24.04) ...
	Setting up libalgorithm-merge-perl (0.08-5) ...
	Setting up libctf0:amd64 (2.42-4ubuntu2.3) ...
	Setting up libjpeg8:amd64 (8c-2ubuntu11) ...
	Setting up cpp-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
	Setting up fontconfig-config (2.15.0-1.1ubuntu2) ...
	Setting up libgprofng0:amd64 (2.42-4ubuntu2.3) ...
	Setting up libgcc-13-dev:amd64 (13.2.0-23ubuntu4) ...
	Setting up libtiff6:amd64 (4.5.1+git230720-4ubuntu2.2) ...
	Setting up libc6-dev:amd64 (2.39-0ubuntu8.3) ...
	Setting up libstdc++-13-dev:amd64 (13.2.0-23ubuntu4) ...
	Setting up binutils-x86-64-linux-gnu (2.42-4ubuntu2.3) ...
	Setting up cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
	Setting up cpp-13 (13.2.0-23ubuntu4) ...
	Setting up gcc-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
	Setting up binutils (2.42-4ubuntu2.3) ...
	Setting up dpkg-dev (1.22.6ubuntu6.1) ...
	Setting up gcc-13 (13.2.0-23ubuntu4) ...
	Setting up cpp (4:13.2.0-7ubuntu1) ...
	Setting up g++-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
	Setting up gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
	Setting up gcc (4:13.2.0-7ubuntu1) ...
	Setting up g++-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
	Setting up g++-13 (13.2.0-23ubuntu4) ...
	Setting up g++ (4:13.2.0-7ubuntu1) ...
	update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
	Setting up build-essential (12.10ubuntu1) ...
	Setting up libheif-plugin-aomdec:amd64 (1.17.6-1ubuntu4.1) ...
	Setting up libheif1:amd64 (1.17.6-1ubuntu4.1) ...
	Setting up libheif-plugin-libde265:amd64 (1.17.6-1ubuntu4.1) ...
	Setting up libheif-plugin-aomenc:amd64 (1.17.6-1ubuntu4.1) ...
	Processing triggers for libc-bin (2.39-0ubuntu8.3) ...
	Processing triggers for man-db (2.12.0-4build2) ...
	Processing triggers for sgml-base (1.31) ...
	Setting up libfontconfig1:amd64 (2.15.0-1.1ubuntu2) ...
	Setting up libgd3:amd64 (2.3.3-9ubuntu5) ...
	Setting up libc-devtools (2.39-0ubuntu8.3) ...
	Processing triggers for libc-bin (2.39-0ubuntu8.3) ...
	Scanning processes...
	Scanning candidates...
	Scanning linux images...
	
	Running kernel seems to be up-to-date.
	
	Restarting services...
	 systemctl restart multipathd.service
	
	Service restarts being deferred:
	 systemctl restart unattended-upgrades.service
	
	No containers need to be restarted.
	
	No user sessions are running outdated binaries.
	
	No VM guests are running outdated hypervisor (qemu) binaries on this host.
```


**2) gitパッケージ・インストール**
```
ubuntu@oci-ubuntu:~$ sudo apt-get install git -y -q
  Reading package lists...
	Building dependency tree...
	Reading state information...
	git is already the newest version (1:2.43.0-1ubuntu7.1).
	git set to manually installed.
	0 upgraded, 0 newly installed, 0 to remove and 17 not upgraded.
```

**3) autotools-devパッケージ・インストール**
```
ubuntu@oci-ubuntu:~$ sudo apt-get install -y autotools-dev
	Reading package lists... Done
	Building dependency tree... Done
	Reading state information... Done
	The following NEW packages will be installed:
	  autotools-dev
	0 upgraded, 1 newly installed, 0 to remove and 17 not upgraded.
	Need to get 44.9 kB of archives.
	After this operation, 137 kB of additional disk space will be used.
	Get:1 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 autotools-dev all 20220109.1 [44.9 kB]
	Fetched 44.9 kB in 1s (68.6 kB/s)
	Selecting previously unselected package autotools-dev.
	(Reading database ... 80559 files and directories currently installed.)
	Preparing to unpack .../autotools-dev_20220109.1_all.deb ...
	Unpacking autotools-dev (20220109.1) ...
	Setting up autotools-dev (20220109.1) ...
	Processing triggers for man-db (2.12.0-4build2) ...
	Scanning processes...
	Scanning candidates...
	Scanning linux images...
	
	Running kernel seems to be up-to-date.
	
	Restarting services...
	
	Service restarts being deferred:
	 systemctl restart unattended-upgrades.service
	
	No containers need to be restarted.
	
	No user sessions are running outdated binaries.
	
	No VM guests are running outdated hypervisor (qemu) binaries on this host.
```

**3) automake パッケージ・インストール**
```
ubuntu@oci-ubuntu:~$ sudo apt-get install -y automake
	Reading package lists... Done
	Building dependency tree... Done
	Reading state information... Done
	The following additional packages will be installed:
	  autoconf m4
	Suggested packages:
	  autoconf-archive gnu-standards autoconf-doc libtool gettext m4-doc
	The following NEW packages will be installed:
	  autoconf automake m4
	0 upgraded, 3 newly installed, 0 to remove and 17 not upgraded.
	Need to get 1141 kB of archives.
	After this operation, 4325 kB of additional disk space will be used.
	Get:1 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 m4 amd64 1.4.19-4build1 [244 kB]
	Get:2 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 autoconf all 2.71-3 [339 kB]
	Get:3 http://ap-tokyo-1-ad-1.clouds.archive.ubuntu.com/ubuntu noble/main amd64 automake all 1:1.16.5-1.3ubuntu1 [558 kB]
	Fetched 1141 kB in 2s (471 kB/s)
	Selecting previously unselected package m4.
	(Reading database ... 80575 files and directories currently installed.)
	Preparing to unpack .../m4_1.4.19-4build1_amd64.deb ...
	Unpacking m4 (1.4.19-4build1) ...
	Selecting previously unselected package autoconf.
	Preparing to unpack .../autoconf_2.71-3_all.deb ...
	Unpacking autoconf (2.71-3) ...
	Selecting previously unselected package automake.
	Preparing to unpack .../automake_1%3a1.16.5-1.3ubuntu1_all.deb ...
	Unpacking automake (1:1.16.5-1.3ubuntu1) ...
	Setting up m4 (1.4.19-4build1) ...
	Setting up autoconf (2.71-3) ...
	Setting up automake (1:1.16.5-1.3ubuntu1) ...
	update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode
	Processing triggers for install-info (7.1-3build2) ...
	Processing triggers for man-db (2.12.0-4build2) ...
	Scanning processes...
	Scanning candidates...
	Scanning linux images...
	
	Running kernel seems to be up-to-date.
	
	Restarting services...
	
	Service restarts being deferred:
	 systemctl restart unattended-upgrades.service
	
	No containers need to be restarted.
	
	No user sessions are running outdated binaries.
	
	No VM guests are running outdated hypervisor (qemu) binaries on this host.
```

**4) autoconf パッケージ・インストール**
```
ubuntu@oci-ubuntu:~$ sudo apt-get install -y autoconf
  Reading package lists... Done
  Building dependency tree... Done
  Reading state information... Done
  autoconf is already the newest version (2.71-3).
  autoconf set to manually installed.
  0 upgraded, 0 newly installed, 0 to remove and 17 not upgraded.
```


## ● SockPerf インストール



**1) sockperfパッケージ・インストール**
```
ubuntu@oci-ubuntu:~$ git clone https://github.com/mellanox/sockperf
  Cloning into 'sockperf'...
  remote: Enumerating objects: 2845, done.
  remote: Counting objects: 100% (1136/1136), done.
  remote: Compressing objects: 100% (304/304), done.
  remote: Total 2845 (delta 898), reused 994 (delta 824), pack-reused 1709 (from 1)
  Receiving objects: 100% (2845/2845), 1.57 MiB | 4.32 MiB/s, done.
  Resolving deltas: 100% (2010/2010), done.
```

**2) autogen.sh実行**
```
ubuntu@oci-ubuntu:~$ cd sockperf/
ubuntu@oci-ubuntu:~/sockperf$ ./autogen.sh
	+ pwd
	+ oldpwd=/home/ubuntu/sockperf
	+ dirname ./autogen.sh
	+ topdir=.
	+ cd .
	+ CURRENT_VERSION_FILE=./build/current-version
	+ . ./build/versioning.sh
	+ cat sockperf-version
	+ tr -d \n
	+ VERSION=3.10
	+ git rev-parse HEAD
	+ GIT_REF=91b10ca095ea2efe6aaab830e34c2afe2c3e4cbf
	+ git describe --long --abbrev=12 --dirty
	+ x=3.10-29-g91b10ca095ea
	+ [ -n 3.10-29-g91b10ca095ea ]
	+ echo 3.10-29-g91b10ca095ea
	+ sed -e s/-g/.git/ -e s/-dirty/.dirty/
	+ sed s/.*-//
	+ x=29.git91b10ca095ea
	+ RELEASE=29.git91b10ca095ea
	+ echo 3.10-29.git91b10ca095ea
	+ echo 91b10ca095ea2efe6aaab830e34c2afe2c3e4cbf
	+ rm -rf autom4te.cache
	+ mkdir -p config/m4 config/aux
	+ autoreconf -v --install
	autoreconf: export WARNINGS=
	autoreconf: Entering directory '.'
	autoreconf: configure.ac: not using Gettext
	autoreconf: running: aclocal -I config/m4
	autoreconf: configure.ac: tracing
	autoreconf: configure.ac: not using Libtool
	autoreconf: configure.ac: not using Intltool
	autoreconf: configure.ac: not using Gtkdoc
	autoreconf: running: /usr/bin/autoconf
	autoreconf: running: /usr/bin/autoheader
	autoreconf: running: automake --add-missing --copy --no-force
	configure.ac:73: installing 'config/aux/ar-lib'
	configure.ac:73: installing 'config/aux/compile'
	configure.ac:13: installing 'config/aux/config.guess'
	configure.ac:13: installing 'config/aux/config.sub'
	configure.ac:64: installing 'config/aux/install-sh'
	configure.ac:64: installing 'config/aux/missing'
	Makefile.am: installing 'config/aux/depcomp'
	tests/Makefile.am:1: warning: ':='-style assignments are not portable
	tests/gtest/Makefile.am:44: error: Libtool library used but 'LIBTOOL' is undefined
	tests/gtest/Makefile.am:44:   The usual way to define 'LIBTOOL' is to add 'LT_INIT'
	tests/gtest/Makefile.am:44:   to 'configure.ac' and run 'aclocal' and 'autoconf' again.
	tests/gtest/Makefile.am:44:   If 'LT_INIT' is in 'configure.ac', make sure
	tests/gtest/Makefile.am:44:   its definition is in aclocal's search path.
	autoreconf: error: automake failed with exit status: 1
	+ exit 1
	ubuntu@oci-ubuntu:~/sockperf$
	ubuntu@oci-ubuntu:~/sockperf$
	ubuntu@oci-ubuntu:~/sockperf$ ./configure --prefix=
	checking build system type... x86_64-pc-linux-gnu
	checking host system type... x86_64-pc-linux-gnu
	checking target system type... x86_64-pc-linux-gnu
	checking for a BSD-compatible install... /usr/bin/install -c
	checking whether build environment is sane... yes
	checking for a race-free mkdir -p... /usr/bin/mkdir -p
	checking for gawk... gawk
	checking whether make sets $(MAKE)... yes
	checking whether make supports nested variables... yes
	checking whether to enable maintainer-specific portions of Makefiles... no
	checking for g++... g++
	checking whether the C++ compiler works... yes
	checking for C++ compiler default output file name... a.out
	checking for suffix of executables...
	checking whether we are cross compiling... no
	checking for suffix of object files... o
	checking whether the compiler supports GNU C++... yes
	checking whether g++ accepts -g... yes
	checking for g++ option to enable C++11 features... none needed
	checking whether make supports the include directive... yes (GNU style)
	checking dependency style of g++... gcc3
	checking for gcc... gcc
	checking whether the compiler supports GNU C... yes
	checking whether gcc accepts -g... yes
	checking for gcc option to enable C11 features... none needed
	checking whether gcc understands -c and -o together... yes
	checking dependency style of gcc... gcc3
	checking for ar... ar
	checking the archiver (ar) interface... ar
	./configure: line 5633: LT_INIT: command not found
	checking whether g++ supports C++11 features by default... yes
	checking whether g++ supports -Wall in CXXFLAGS... yes
	checking whether g++ supports --param inline-unit-growth=300 in CXXFLAGS... yes
	checking for stdio.h... yes
	checking for stdlib.h... yes
	checking for string.h... yes
	checking for inttypes.h... yes
	checking for stdint.h... yes
	checking for strings.h... yes
	checking for sys/stat.h... yes
	checking for sys/types.h... yes
	checking for unistd.h... yes
	checking for vma extra api... no
	checking for xlio extra api... no
	checking for tls support... no
	checking for arpa/inet.h... yes
	checking for fcntl.h... yes
	checking for netinet/in.h... yes
	checking for stdint.h... (cached) yes
	checking for stdlib.h... (cached) yes
	checking for string.h... (cached) yes
	checking for sys/ioctl.h... yes
	checking for sys/socket.h... yes
	checking for sys/time.h... yes
	checking for syslog.h... yes
	checking for termios.h... yes
	checking for unistd.h... (cached) yes
	checking for library containing clock_gettime... none required
	checking for library containing pthread_create... none required
	checking for library containing backtrace... none required
	checking for library containing dlsym... none required
	checking that generated files are newer than configure... done
	configure: creating ./config.status
	config.status: creating Makefile
	config.status: error: cannot find input file: `tools/Makefile.in'
	ubuntu@oci-ubuntu:~/sockperf$
	ubuntu@oci-ubuntu:~/sockperf$
	ubuntu@oci-ubuntu:~/sockperf$ make
	cd . && /bin/bash ./config.status config.h
	config.status: creating config.h
	make  all-recursive
	make[1]: Entering directory '/home/ubuntu/sockperf'
	make[2]: Entering directory '/home/ubuntu/sockperf'
	depbase=`echo src/aopt.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/aopt.o -MD -MP -MF $depbase.Tpo -c -o src/aopt.o src/aopt.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	In file included from src/defs.h:109,
	                 from src/aopt.cpp:37:
	src/ip_address.h:120:50: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  120 | template <> struct hash<IPAddress> : public std::unary_function<IPAddress, int> {
	      |                                                  ^~~~~~~~~~~~~~
	In file included from /usr/include/c++/13/bits/hashtable.h:37,
	                 from /usr/include/c++/13/bits/unordered_map.h:33,
	                 from /usr/include/c++/13/unordered_map:41,
	                 from src/defs.h:74:
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/ip_address.h:137:42: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  137 | struct equal_to<IPAddress> : public std::binary_function<IPAddress, IPAddress,
	      |                                          ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	src/defs.h:604:64: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  604 | template <> struct hash<struct sockaddr_store_t> : public std::unary_function<struct sockaddr_store_t, int> {
	      |                                                                ^~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/defs.h:626:21: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  626 |         public std::binary_function<struct sockaddr_store_t,
	      |                     ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	depbase=`echo src/client.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/client.o -MD -MP -MF $depbase.Tpo -c -o src/client.o src/client.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	In file included from src/defs.h:109,
	                 from src/client.cpp:30:
	src/ip_address.h:120:50: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  120 | template <> struct hash<IPAddress> : public std::unary_function<IPAddress, int> {
	      |                                                  ^~~~~~~~~~~~~~
	In file included from /usr/include/c++/13/bits/hashtable.h:37,
	                 from /usr/include/c++/13/bits/unordered_map.h:33,
	                 from /usr/include/c++/13/unordered_map:41,
	                 from src/defs.h:74:
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/ip_address.h:137:42: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  137 | struct equal_to<IPAddress> : public std::binary_function<IPAddress, IPAddress,
	      |                                          ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	src/defs.h:604:64: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  604 | template <> struct hash<struct sockaddr_store_t> : public std::unary_function<struct sockaddr_store_t, int> {
	      |                                                                ^~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/defs.h:626:21: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  626 |         public std::binary_function<struct sockaddr_store_t,
	      |                     ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	depbase=`echo src/common.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/common.o -MD -MP -MF $depbase.Tpo -c -o src/common.o src/common.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	In file included from src/defs.h:109,
	                 from src/common.h:35,
	                 from src/common.cpp:30:
	src/ip_address.h:120:50: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  120 | template <> struct hash<IPAddress> : public std::unary_function<IPAddress, int> {
	      |                                                  ^~~~~~~~~~~~~~
	In file included from /usr/include/c++/13/string:49,
	                 from src/common.h:33:
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/ip_address.h:137:42: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  137 | struct equal_to<IPAddress> : public std::binary_function<IPAddress, IPAddress,
	      |                                          ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	src/defs.h:604:64: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  604 | template <> struct hash<struct sockaddr_store_t> : public std::unary_function<struct sockaddr_store_t, int> {
	      |                                                                ^~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/defs.h:626:21: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  626 |         public std::binary_function<struct sockaddr_store_t,
	      |                     ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	depbase=`echo src/defs.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/defs.o -MD -MP -MF $depbase.Tpo -c -o src/defs.o src/defs.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	In file included from src/defs.h:109,
	                 from src/defs.cpp:30:
	src/ip_address.h:120:50: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  120 | template <> struct hash<IPAddress> : public std::unary_function<IPAddress, int> {
	      |                                                  ^~~~~~~~~~~~~~
	In file included from /usr/include/c++/13/bits/hashtable.h:37,
	                 from /usr/include/c++/13/bits/unordered_map.h:33,
	                 from /usr/include/c++/13/unordered_map:41,
	                 from src/defs.h:74:
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/ip_address.h:137:42: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  137 | struct equal_to<IPAddress> : public std::binary_function<IPAddress, IPAddress,
	      |                                          ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	src/defs.h:604:64: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  604 | template <> struct hash<struct sockaddr_store_t> : public std::unary_function<struct sockaddr_store_t, int> {
	      |                                                                ^~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/defs.h:626:21: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  626 |         public std::binary_function<struct sockaddr_store_t,
	      |                     ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	depbase=`echo src/iohandlers.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/iohandlers.o -MD -MP -MF $depbase.Tpo -c -o src/iohandlers.o src/iohandlers.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	In file included from src/defs.h:109,
	                 from src/iohandlers.h:33,
	                 from src/iohandlers.cpp:30:
	src/ip_address.h:120:50: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  120 | template <> struct hash<IPAddress> : public std::unary_function<IPAddress, int> {
	      |                                                  ^~~~~~~~~~~~~~
	In file included from /usr/include/c++/13/bits/hashtable.h:37,
	                 from /usr/include/c++/13/bits/unordered_map.h:33,
	                 from /usr/include/c++/13/unordered_map:41,
	                 from src/defs.h:74:
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/ip_address.h:137:42: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  137 | struct equal_to<IPAddress> : public std::binary_function<IPAddress, IPAddress,
	      |                                          ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	src/defs.h:604:64: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  604 | template <> struct hash<struct sockaddr_store_t> : public std::unary_function<struct sockaddr_store_t, int> {
	      |                                                                ^~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/defs.h:626:21: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  626 |         public std::binary_function<struct sockaddr_store_t,
	      |                     ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	depbase=`echo src/ip_address.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/ip_address.o -MD -MP -MF $depbase.Tpo -c -o src/ip_address.o src/ip_address.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	In file included from src/ip_address.cpp:30:
	src/ip_address.h:120:50: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  120 | template <> struct hash<IPAddress> : public std::unary_function<IPAddress, int> {
	      |                                                  ^~~~~~~~~~~~~~
	In file included from /usr/include/c++/13/functional:49,
	                 from src/ip_address.h:50:
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/ip_address.h:137:42: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  137 | struct equal_to<IPAddress> : public std::binary_function<IPAddress, IPAddress,
	      |                                          ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	In file included from src/common.h:35,
	                 from src/ip_address.cpp:31:
	src/defs.h:604:64: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  604 | template <> struct hash<struct sockaddr_store_t> : public std::unary_function<struct sockaddr_store_t, int> {
	      |                                                                ^~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/defs.h:626:21: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  626 |         public std::binary_function<struct sockaddr_store_t,
	      |                     ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	depbase=`echo src/message.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/message.o -MD -MP -MF $depbase.Tpo -c -o src/message.o src/message.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	In file included from src/defs.h:109,
	                 from src/common.h:35,
	                 from src/message.cpp:37:
	src/ip_address.h:120:50: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  120 | template <> struct hash<IPAddress> : public std::unary_function<IPAddress, int> {
	      |                                                  ^~~~~~~~~~~~~~
	In file included from /usr/include/c++/13/string:49,
	                 from /usr/include/c++/13/stdexcept:39,
	                 from src/message.h:34,
	                 from src/message.cpp:30:
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/ip_address.h:137:42: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  137 | struct equal_to<IPAddress> : public std::binary_function<IPAddress, IPAddress,
	      |                                          ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	src/defs.h:604:64: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  604 | template <> struct hash<struct sockaddr_store_t> : public std::unary_function<struct sockaddr_store_t, int> {
	      |                                                                ^~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/defs.h:626:21: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  626 |         public std::binary_function<struct sockaddr_store_t,
	      |                     ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	depbase=`echo src/os_abstract.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/os_abstract.o -MD -MP -MF $depbase.Tpo -c -o src/os_abstract.o src/os_abstract.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	depbase=`echo src/packet.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/packet.o -MD -MP -MF $depbase.Tpo -c -o src/packet.o src/packet.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	In file included from src/defs.h:109,
	                 from src/packet.cpp:31:
	src/ip_address.h:120:50: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  120 | template <> struct hash<IPAddress> : public std::unary_function<IPAddress, int> {
	      |                                                  ^~~~~~~~~~~~~~
	In file included from /usr/include/c++/13/string:49,
	                 from /usr/include/c++/13/stdexcept:39,
	                 from src/packet.cpp:30:
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/ip_address.h:137:42: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  137 | struct equal_to<IPAddress> : public std::binary_function<IPAddress, IPAddress,
	      |                                          ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	src/defs.h:604:64: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  604 | template <> struct hash<struct sockaddr_store_t> : public std::unary_function<struct sockaddr_store_t, int> {
	      |                                                                ^~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/defs.h:626:21: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  626 |         public std::binary_function<struct sockaddr_store_t,
	      |                     ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	depbase=`echo src/playback.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/playback.o -MD -MP -MF $depbase.Tpo -c -o src/playback.o src/playback.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	In file included from src/defs.h:109,
	                 from src/playback.cpp:34:
	src/ip_address.h:120:50: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  120 | template <> struct hash<IPAddress> : public std::unary_function<IPAddress, int> {
	      |                                                  ^~~~~~~~~~~~~~
	In file included from /usr/include/c++/13/string:49,
	                 from src/playback.cpp:30:
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/ip_address.h:137:42: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  137 | struct equal_to<IPAddress> : public std::binary_function<IPAddress, IPAddress,
	      |                                          ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	src/defs.h:604:64: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  604 | template <> struct hash<struct sockaddr_store_t> : public std::unary_function<struct sockaddr_store_t, int> {
	      |                                                                ^~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/defs.h:626:21: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  626 |         public std::binary_function<struct sockaddr_store_t,
	      |                     ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	depbase=`echo src/server.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/server.o -MD -MP -MF $depbase.Tpo -c -o src/server.o src/server.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	In file included from src/defs.h:109,
	                 from src/server.h:33,
	                 from src/server.cpp:30:
	src/ip_address.h:120:50: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  120 | template <> struct hash<IPAddress> : public std::unary_function<IPAddress, int> {
	      |                                                  ^~~~~~~~~~~~~~
	In file included from /usr/include/c++/13/bits/hashtable.h:37,
	                 from /usr/include/c++/13/bits/unordered_map.h:33,
	                 from /usr/include/c++/13/unordered_map:41,
	                 from src/defs.h:74:
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/ip_address.h:137:42: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  137 | struct equal_to<IPAddress> : public std::binary_function<IPAddress, IPAddress,
	      |                                          ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	src/defs.h:604:64: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  604 | template <> struct hash<struct sockaddr_store_t> : public std::unary_function<struct sockaddr_store_t, int> {
	      |                                                                ^~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/defs.h:626:21: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  626 |         public std::binary_function<struct sockaddr_store_t,
	      |                     ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	depbase=`echo src/sockperf.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/sockperf.o -MD -MP -MF $depbase.Tpo -c -o src/sockperf.o src/sockperf.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	In file included from src/defs.h:109,
	                 from src/common.h:35,
	                 from src/sockperf.cpp:95:
	src/ip_address.h:120:50: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  120 | template <> struct hash<IPAddress> : public std::unary_function<IPAddress, int> {
	      |                                                  ^~~~~~~~~~~~~~
	In file included from /usr/include/c++/13/string:49,
	                 from /usr/include/c++/13/bitset:52,
	                 from /usr/include/c++/13/regex:40,
	                 from src/sockperf.cpp:91:
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/ip_address.h:137:42: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  137 | struct equal_to<IPAddress> : public std::binary_function<IPAddress, IPAddress,
	      |                                          ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	src/defs.h:604:64: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  604 | template <> struct hash<struct sockaddr_store_t> : public std::unary_function<struct sockaddr_store_t, int> {
	      |                                                                ^~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/defs.h:626:21: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  626 |         public std::binary_function<struct sockaddr_store_t,
	      |                     ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	In file included from src/sockperf.cpp:99:
	src/port_descriptor.h:57:51: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	   57 | struct hash<struct port_descriptor> : public std::unary_function<struct port_descriptor, int> {
	      |                                                   ^~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/port_descriptor.h:64:55: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	   64 | struct equal_to<struct port_descriptor> : public std::binary_function<struct port_descriptor,
	      |                                                       ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	depbase=`echo src/ticks.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/ticks.o -MD -MP -MF $depbase.Tpo -c -o src/ticks.o src/ticks.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	depbase=`echo src/tls.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/tls.o -MD -MP -MF $depbase.Tpo -c -o src/tls.o src/tls.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	In file included from src/defs.h:109,
	                 from src/common.h:35,
	                 from src/tls.cpp:34:
	src/ip_address.h:120:50: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  120 | template <> struct hash<IPAddress> : public std::unary_function<IPAddress, int> {
	      |                                                  ^~~~~~~~~~~~~~
	In file included from /usr/include/c++/13/string:49,
	                 from src/tls.cpp:32:
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/ip_address.h:137:42: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  137 | struct equal_to<IPAddress> : public std::binary_function<IPAddress, IPAddress,
	      |                                          ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	src/defs.h:604:64: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
	  604 | template <> struct hash<struct sockaddr_store_t> : public std::unary_function<struct sockaddr_store_t, int> {
	      |                                                                ^~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:117:12: note: declared here
	  117 |     struct unary_function
	      |            ^~~~~~~~~~~~~~
	src/defs.h:626:21: warning: ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’ is deprecated [-Wdeprecated-declarations]
	  626 |         public std::binary_function<struct sockaddr_store_t,
	      |                     ^~~~~~~~~~~~~~~
	/usr/include/c++/13/bits/stl_function.h:131:12: note: declared here
	  131 |     struct binary_function
	      |            ^~~~~~~~~~~~~~~
	depbase=`echo src/vma-xlio-redirect.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
	g++ -DHAVE_CONFIG_H -I.  -imacros ./config.h  -Wall --param inline-unit-growth=300 -O3 -g -MT src/vma-xlio-redirect.o -MD -MP -MF $depbase.Tpo -c -o src/vma-xlio-redirect.o src/vma-xlio-redirect.cpp &&\
	mv -f $depbase.Tpo $depbase.Po
	g++ -Wall --param inline-unit-growth=300 -O3 -g -rdynamic  -o sockperf src/aopt.o src/client.o src/common.o src/defs.o src/iohandlers.o src/ip_address.o src/message.o src/os_abstract.o src/packet.o src/playback.o src/server.o src/sockperf.o src/ticks.o src/tls.o src/vma-xlio-redirect.o
	make[2]: Leaving directory '/home/ubuntu/sockperf'
	make[1]: Leaving directory '/home/ubuntu/sockperf'
	ubuntu@oci-ubuntu:~/sockperf$
	ubuntu@oci-ubuntu:~/sockperf$
	ubuntu@oci-ubuntu:~/sockperf$
	ubuntu@oci-ubuntu:~/sockperf$ sudo make install
	make[1]: Entering directory '/home/ubuntu/sockperf'
	make[2]: Entering directory '/home/ubuntu/sockperf'
	 /usr/bin/mkdir -p '/bin'
	  /usr/bin/install -c sockperf '/bin'
	 /usr/bin/mkdir -p '/share/doc/sockperf'
	 /usr/bin/install -c -m 644 README.md authors news sockperf-version copying '/share/doc/sockperf'
	make[2]: Leaving directory '/home/ubuntu/sockperf'
	make[1]: Leaving directory '/home/ubuntu/sockperf'
```


## ● 3.インストール確認
**・ Version**
```
ubuntu@oci-ubuntu:~/sockperf$ sockperf --version
  sockperf, version 3.10-29.git91b10ca095ea
	   compiled Nov 14 2024, 03:53:36
	
	Copyright (C) 2011-2024 Mellanox Technologies Ltd.
	SockPerf is open source software, see http://github.com/mellanox/sockperf
	```
	
	**・ Help**
	```
	ubuntu@oci-ubuntu:~/sockperf$ sockperf --help
	sockperf is a tool for testing network latency and throughput.
	version 3.10-29.git91b10ca095ea
	
	Usage: sockperf <subcommand> [options] [args]
	Type: 'sockperf <subcommand> --help' for help on a specific subcommand.
	Type: 'sockperf --version' to see the program version number.
	
	Available subcommands:
	   help (h ,?)         	Display list of supported commands.
	   under-load (ul)     	Run sockperf client for latency under load test.
	   ping-pong (pp)      	Run sockperf client for latency test in ping pong mode.
	   playback (pb)       	Run sockperf client for latency test using playback of predefined traffic, based on timeline and message size.
	   throughput (tp)     	Run sockperf client for one way throughput test.
	   server (sr)         	Run sockperf as a server.
	
	For additional information visit our website http://github.com/mellanox/sockperf , see README file, or Type 'sockperf <subcommand> --help'.
```

## ● Sockperf TCP Test
```:Server(受信)構文
#sockperf sr --tcp -i <ip of="" local="" host=""> -p <unused server="" port="">
```
```:Client(送信)構文
#sockperf ping-pong -i <ip of="" destination="" host=""> --tcp -t 300 -p <destination server="" port=""> --full-rtt
```


**・Server(受信)側実行**
```
ubuntu@ip-10-1-1-30:~/sockperf$ sudo ./sockperf sr --tcp -p 15000
  sockperf: == version #3.10-29.git91b10ca095ea ==
  sockperf: [SERVER] listen on:
  [ 0] IP = 10.1.1.30       PORT = 15000 # TCP
  sockperf: Warmup stage (sending a few dummy messages)...
  sockperf: [tid 5197] using recvfrom() to block on socket(s)
```
**・ Client(送信)側実行**
-tオプションを使用して 60秒間の 平均往復遅延時間を取得
```
ubuntu@oci-ubuntu:~/sockperf$ sockperf ping-pong -i 10.1.1.30 --tcp -t 60 -p 15000 --full-rtt
  sockperf: == version #3.10-29.git91b10ca095ea ==
  sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)

  [ 0] IP = 10.1.1.30       PORT = 15000 # TCP
  sockperf: Warmup stage (sending a few dummy messages)...
  sockperf: Starting test...
  sockperf: Test end (interrupted by timer)
  sockperf: Test ended
  sockperf: [Total Run] RunTime=60.000 sec; Warm up time=400 msec; SentMessages=82791; ReceivedMessages=82790
  sockperf: ========= Printing statistics for Server No: 0
  sockperf: [Valid Duration] RunTime=59.550 sec; SentMessages=82179; ReceivedMessages=82179
  sockperf: ====> avg-rtt=724.458 (std-dev=24.056, mean-ad=17.475, median-ad=17.477, siqr=12.045, cv=0.033, std-error=0.084, 99.0% ci=[724.242, 724.674])
  sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
  sockperf: Summary: Round trip is 724.458 usec
  sockperf: Total 82179 observations; each percentile contains 821.79 observations
  sockperf: ---> <MAX> observation = 1010.452
  sockperf: ---> percentile 99.999 =  928.940
  sockperf: ---> percentile 99.990 =  899.665
  sockperf: ---> percentile 99.900 =  841.846
  sockperf: ---> percentile 99.000 =  798.392
  sockperf: ---> percentile 90.000 =  759.073
  sockperf: ---> percentile 75.000 =  734.482
  sockperf: ---> percentile 50.000 =  720.694
  sockperf: ---> percentile 25.000 =  710.391
  sockperf: ---> <MIN> observation =  635.902
```

--> Summary: Round trip is 724.458 usec から
724.458 μ秒 = 0.724458 m秒 であることを確認できます。

# ■ おまけ
## ● SockPerf 用 Firewall設定
**・ Firewall 15000ポート解放**
Sockperfで使用するデフォルト・ポート 15000 TCP/UDPを解放します。
```:ufw
sudo ufw allow 15000/tcp
sudo ufw allow 15000/udp
sudo ufw status numbered | grep 15000
```
```:iptables
sudo iptables -I INPUT 5 -p tcp --dport 15000 -j ACCEPT
sudo iptables -I INPUT 5 -p udp --dport 15000 -j ACCEPT
sudo iptables -L | grep 15000
    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:15000
    ACCEPT     tcp  --  anywhere             anywhere             udp dpt:15000
```

```:Firewalld
sudo firewall-cmd --permanent --add-port=15000/tcp
sudo firewall-cmd --permanent --add-port=15000/udp
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports | grep 15000
    15000/tcp 15000/udp
```




# ■ 参考
・ [Mellanox/sockperf: Network Benchmarking Utility](https://github.com/Mellanox/sockperf)
・ [Test network latency](https://www.alibabacloud.com/help/ja/ecs/use-cases/best-practices-for-testing-network-performance)
・ [Azure VM 間のネットワーク待機時間をテストする](https://learn.microsoft.com/ja-jp/azure/virtual-network/virtual-network-test-latency?tabs=windows)
・ [SockPerf のインストール](https://troushoo.blog.fc2.com/blog-entry-487.html)
・ [OCI-Azure Interconnectを使用したネットワーク・レイテンシとベスト・プラクティス](https://blogs.oracle.com/oracle4engineer/post/ja-network-latency-oci-azure-best-practices)