GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
TCPSSO(8) FreeBSD System Manager's Manual TCPSSO(8)

tcpssoset a socket option on a TCP endpoint

tcpsso -i id [level] optname optval

tcpsso -a [level] optname optval

tcpsso -C cc-algo [-S stack] [-s state] [level] optname optval

tcpsso [-C cc-algo] -S stack [-s state] [level] optname optval

tcpsso [-C cc-algo] [-S stack] -s state [level] optname optval

The tcpsso command applies a level level socket option with name optname and value optval on a TCP endpoint from the command line.

TCP endpoints in the SYN_RCVD state can only be handled by tcpsso if their prior state was SYN_SENT.

[level] can be specified as a non-negative number or a symbolic name like SOL_SOCKET, IPPROTO_IP, IPPROTO_IPV6, or IPPROTO_TCP. If not specified, tcpsso deduces the level from optname, if provided as a symbolic name. If that is not the case, IPPROTO_TCP is used.

optname can be specified as a non-negative number or a symbolic name like SO_DEBUG, IP_TOS, IPV6_TCLASS, TCP_LOG, TCP_CONGESTION, or TCP_FUNCTION_BLK.

optval can be an integer value, which will be converted to a binary value and passed as an int value. If it cannot be parsed as an integer value, it will be processed as a string. If the optname is TCP_FUNCTION_BLK then optval is converted to a struct tcp_function_set.

If -i id is specified then tcpsso will apply the socket option to the TCP endpoint with the inp_gencnt provided as id. The inp_gencnt for existing TCP endpoints can be determined by using sockstat(1).

If -a is specified then tcpsso will apply the socket option to all TCP endpoints subject to the above state restrictions.

If -C cc-algo is specified then tcpsso will apply the socket option to all TCP endpoints using the TCP congestion control algorithm cc-algo and subject to the above state restrictions.

If -S stack is specified then tcpsso will apply the socket option to all TCP endpoints using the TCP stack stack and subject to the above state restrictions.

If -s state is specified then tcpsso will apply the socket option to all TCP endpoints being in the state state. state is one of CLOSED, LISTEN, SYN_SENT, SYN_RCVD, ESTABLISHED, CLOSE_WAIT, FIN_WAIT_1, CLOSING, LAST_ACK, FIN_WAIT_2, or TIME_WAIT. Using SYN_RCVD only applies to TCP endpoints in the state SYN_RCVD if their prior state was SYN_SENT.

If multiple of -C cc-algo, -S stack, and -s state are specified, tcpsso will apply the socket option to all TCP endpoints using the congestion control algorithm cc-algo, being in the state state, and using the TCP stack stack, if specified.

If none of the -a, -C, -S, or -s options are specified then the option -i must be specified.

The tcpsso utility exits 0 on success, and >0 if an error occurs.

To diagnose a problem with a particular TCP connection to sshd(8), first determine its inp_gencnt using sockstat(1):

# sockstat -4 -c -i -p 22 -P tcp -q
root     sshd       827   4  tcp4 \
	192.168.1.1:22        192.168.1.2:53736     435

Then, use the following command to enable Black Box Logging on it:

# tcpsso -i 435 TCP_LOG 4

To switch all TCP endpoints from using the freebsd stack to the RACK stack use:

# tcpsso -S freebsd TCP_FUNCTION_BLK rack

Switch all TCP endpoints in the LISTEN state to the RACK stack by using:

# tcpsso -s LISTEN TCP_FUNCTION_BLK rack

The following command will set the congestion control module of all TCP endpoints currently using cubic as its congestion control algorithm to the congestion control algorithm newreno:

# tcpsso -C cubic TCP_CONGESTION newreno

sockstat(1), setsockopt(2), tcp(4), tcp_functions(9)

The tcpsso command first appeared in FreeBSD 14.

Michael Tuexen <tuexen@FreeBSD.org>

August 3, 2024 FreeBSD 14.3-RELEASE

Search for    or go to Top of page |  Section 8 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.