SPLICEBENCH(1)

NAME
splicebench - socket splicing network benchmarking tool

SYNOPSIS
splicebench [-46cu] [-b bufsize] [-i idle] [-N repeat] [-n multi] [-t timeout] [listen [bindout]] connect

DESCRIPTION
The splicebench utility implements a relay for OpenBSD socket splicing. It accepts a TCP connection from a client, connects to a server and splices traffic unidirectionally.

The options are as follows:

-4  Force splicebench to use IPv4 listen address only.

-6  Force splicebench to use IPv6 listen addresses only.

-b bufsize
    Set size of send and receive socket buffer.

-c  Copy mode can be selected to compare performance to splice.

-i idle
    After a period of not receiving any UDP packets, splice will stop. Default is 1 second, 0 will ignore idle periods.

-N repeat
    Create multiple listen sockets on consecutive IP addresses. Each incoming request will be spliced to a different consecutive connect address.

-n multi
    Accept multiple TCP connections at listen socket. Run until all splicings have finished.

-t timeout
    Waiting for connection and splicing are stopped after timeout. When splicing, all data has to be transfered within this timeout plus a few seconds. The same timeout is used for initial accept and restarted after first accept. Disable timeout with 0 and run forever. Default is 10 seconds.

-u  Use UDP sockets instead of TCP.

Parameters listen, bindout and connect are used to to specify IP addresses and port numbers. If the port it omitted for listen or connect, default tcpbench 12345 or iperf3 5201 port number is used. Port 0 for listen or bindout lets the kernel choose one. The unspecified address can be used to set the port or address family only. Remember that IPv6 addresses have to be enclosed in brackets.

EXAMPLES
Running tcpbench on four machines over splicebench
    tcpbench -s # on 192.168.2.41
    tcpbench -s # on 192.168.2.40
    splicebench -I -N2 10.0.1.20 192.168.2.40
    tcpbench 10.0.1.21
    tcpbench 10.0.1.20

Running iperf3 over splicebench with 5 parallel connections
    iperf3 -X 192.168.2.4 -s
    splicebench -I -n5 10.0.1.2 192.168.2.4
    iperf3 -P5 -c 10.0.1.2

DIAGNOSTICS

splice: payload 573635832, begin 1706272738.460010, end 1706272752.032744, duration 13.572734, bit/s 3.38111e+08, start 1706272738.022382, stop 1706272752.032814

Summary of splicebench splice or copy action. Status is printed as single line just before exit.

payload
    Bytes in the TCP stream or UDP payload of all packets.

begin
    Time stamp just before the splicing starts.

end Time stamp after the splicing stopped. If -i idle is set, end is the time of the final packet before idle timed out.

start
    Time stamp after listen socket is bound.

stop
    Time stamp before sockets are closed.

SEE ALSO
setsockopt(2), sosplice(9)

AUTHORS
The splicebench program was written by Alexander Bluhm <bluhm@genua.de>.