sys: add more tcp socket options

This commit is contained in:
Andrey Konovalov 2017-04-07 19:22:56 +02:00
parent 822b1269b3
commit 941170a7e2
4 changed files with 64 additions and 0 deletions

View File

@ -5,6 +5,7 @@
include <asm/ioctls.h>
include <linux/tcp.h>
include <net/tcp.h>
include <uapi/linux/sockios.h>
resource sock_tcp[sock_in]
@ -43,6 +44,54 @@ setsockopt$inet_tcp_buf(fd sock_tcp, level const[IPPROTO_TCP], optname flags[tcp
getsockopt$inet6_tcp_buf(fd sock_tcp6, level const[IPPROTO_TCP], optname flags[tcp_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
setsockopt$inet6_tcp_buf(fd sock_tcp6, level const[IPPROTO_TCP], optname flags[tcp_option_types_buf], optval buffer[in], optlen len[optval])
# Specific TCP socket options
# TODO: use TCP_SAVED_SYN to extract sequence numbers
setsockopt$inet_tcp_TCP_CONGESTION(fd sock_tcp, level const[IPPROTO_TCP], optname const[TCP_CONGESTION], optval ptr[in, string[tcp_congestion_control_alg_names]], optlen len[optval])
setsockopt$inet6_tcp_TCP_CONGESTION(fd sock_tcp6, level const[IPPROTO_TCP], optname const[TCP_CONGESTION], optval ptr[in, string[tcp_congestion_control_alg_names]], optlen len[optval])
setsockopt$inet_tcp_TCP_MD5SIG(fd sock_tcp, level const[IPPROTO_TCP], optname const[TCP_MD5SIG], optval ptr[in, tcp_md5sig], optlen len[optval])
setsockopt$inet6_tcp_TCP_MD5SIG(fd sock_tcp6, level const[IPPROTO_TCP], optname const[TCP_MD5SIG], optval ptr[in, tcp_md5sig], optlen len[optval])
setsockopt$inet_tcp_TCP_REPAIR_OPTIONS(fd sock_tcp, level const[IPPROTO_TCP], optname const[TCP_REPAIR_OPTIONS], optval ptr[in, array[tcp_repair_opt]], optlen len[optval])
setsockopt$inet6_tcp_TCP_REPAIR_OPTIONS(fd sock_tcp6, level const[IPPROTO_TCP], optname const[TCP_REPAIR_OPTIONS], optval ptr[in, array[tcp_repair_opt]], optlen len[optval])
getsockopt$inet_tcp_TCP_REPAIR_WINDOW(fd sock_tcp, level const[IPPROTO_TCP], optname const[TCP_REPAIR_WINDOW], optval ptr[out, tcp_repair_window], optlen ptr[inout, len[optval, int32]])
setsockopt$inet_tcp_TCP_REPAIR_WINDOW(fd sock_tcp, level const[IPPROTO_TCP], optname const[TCP_REPAIR_WINDOW], optval ptr[in, tcp_repair_window], optlen len[optval])
getsockopt$inet6_tcp_TCP_REPAIR_WINDOW(fd sock_tcp6, level const[IPPROTO_TCP], optname const[TCP_REPAIR_WINDOW], optval ptr[out, tcp_repair_window], optlen ptr[inout, len[optval, int32]])
setsockopt$inet6_tcp_TCP_REPAIR_WINDOW(fd sock_tcp6, level const[IPPROTO_TCP], optname const[TCP_REPAIR_WINDOW], optval ptr[in, tcp_repair_window], optlen len[optval])
tcp_congestion_control_alg_names = "cubic", "reno", "bic", "cdg", "dctcp", "westwood", "highspeed", "hybla", "htcp", "vegas", "nv", "veno", "scalable", "lp", "yeah", "illinois"
tcp_repair_window {
snd_wl1 int32
snd_wnd int32
max_window int32
rcv_wnd int32
rcv_wup int32
}
sockaddr_storage_tcp {
in sockaddr_storage_in
in6 sockaddr_storage_in6
}
tcp_md5sig {
tcpm_addr sockaddr_storage_tcp
__tcpm_pad1 int16
tcpm_keylen int16
__tcpm_pad2 int32
tcpm_key array[int8, TCP_MD5SIG_MAXKEYLEN]
}
tcp_repair_opt_codes = TCPOPT_MSS, TCPOPT_WINDOW, TCPOPT_SACK_PERM, TCPOPT_TIMESTAMP
tcp_repair_opt {
opt_code flags[tcp_repair_opt_codes, int32]
opt_val int32
}
# TCP ioctls
# http://lxr.free-electrons.com/ident?i=tcp_ioctl

View File

@ -7,6 +7,10 @@ SIOCINQ = 21531
SIOCOUTQ = 21521
SIOCOUTQNSD = 35147
SOCK_STREAM = 1
TCPOPT_MSS = 2
TCPOPT_SACK_PERM = 4
TCPOPT_TIMESTAMP = 8
TCPOPT_WINDOW = 3
TCP_CC_INFO = 26
TCP_CONGESTION = 13
TCP_CORK = 3
@ -19,6 +23,7 @@ TCP_KEEPINTVL = 5
TCP_LINGER2 = 8
TCP_MAXSEG = 2
TCP_MD5SIG = 14
TCP_MD5SIG_MAXKEYLEN = 80
TCP_NODELAY = 1
TCP_NOTSENT_LOWAT = 25
TCP_QUEUE_SEQ = 21

View File

@ -7,6 +7,10 @@ SIOCINQ = 21531
SIOCOUTQ = 21521
SIOCOUTQNSD = 35147
SOCK_STREAM = 1
TCPOPT_MSS = 2
TCPOPT_SACK_PERM = 4
TCPOPT_TIMESTAMP = 8
TCPOPT_WINDOW = 3
TCP_CC_INFO = 26
TCP_CONGESTION = 13
TCP_CORK = 3
@ -19,6 +23,7 @@ TCP_KEEPINTVL = 5
TCP_LINGER2 = 8
TCP_MAXSEG = 2
TCP_MD5SIG = 14
TCP_MD5SIG_MAXKEYLEN = 80
TCP_NODELAY = 1
TCP_NOTSENT_LOWAT = 25
TCP_QUEUE_SEQ = 21

View File

@ -7,6 +7,10 @@ SIOCINQ = 1074030207
SIOCOUTQ = 1074033779
SIOCOUTQNSD = 35147
SOCK_STREAM = 1
TCPOPT_MSS = 2
TCPOPT_SACK_PERM = 4
TCPOPT_TIMESTAMP = 8
TCPOPT_WINDOW = 3
TCP_CC_INFO = 26
TCP_CONGESTION = 13
TCP_CORK = 3
@ -19,6 +23,7 @@ TCP_KEEPINTVL = 5
TCP_LINGER2 = 8
TCP_MAXSEG = 2
TCP_MD5SIG = 14
TCP_MD5SIG_MAXKEYLEN = 80
TCP_NODELAY = 1
TCP_NOTSENT_LOWAT = 25
TCP_QUEUE_SEQ = 21