From 0982b00b6d5f8a5f4bf0e96883df60c55c278585 Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Fri, 7 Apr 2017 17:46:51 +0200 Subject: sys: add more ip ioctls --- sys/socket_inet.txt | 16 ++++++++++++++-- sys/socket_inet_amd64.const | 11 +++++++++++ sys/socket_inet_arm64.const | 11 +++++++++++ sys/socket_inet_ppc64le.const | 11 +++++++++++ 4 files changed, 47 insertions(+), 2 deletions(-) (limited to 'sys') diff --git a/sys/socket_inet.txt b/sys/socket_inet.txt index a9e1834f5..332bb7e30 100644 --- a/sys/socket_inet.txt +++ b/sys/socket_inet.txt @@ -185,7 +185,7 @@ xfrm_in_addr [ # IP ioctls -# http://lxr.free-electrons.com/source/include/uapi/linux/sockios.h +# http://lxr.free-electrons.com/ident?i=inet_ioctl ioctl$sock_inet_SIOCADDRT(fd sock_in, cmd const[SIOCADDRT], arg ptr[in, rtentry_in]) ioctl$sock_inet_SIOCDELRT(fd sock_in, cmd const[SIOCDELRT], arg ptr[in, rtentry_in]) @@ -195,7 +195,9 @@ ioctl$sock_inet_SIOCDARP(fd sock_in, cmd const[SIOCDARP], arg ptr[in, arpreq_in] ioctl$sock_inet_SIOCGARP(fd sock_in, cmd const[SIOCGARP], arg ptr[inout, arpreq_in]) ioctl$sock_inet_SIOCSARP(fd sock_in, cmd const[SIOCSARP], arg ptr[in, arpreq_in]) -# TODO: more here +inet_ifreq_ioctls = SIOCGIFADDR, SIOCSIFADDR, SIOCGIFBRDADDR, SIOCSIFBRDADDR, SIOCGIFNETMASK, SIOCSIFNETMASK, SIOCGIFDSTADDR, SIOCSIFDSTADDR, SIOCSIFPFLAGS, SIOCGIFPFLAGS, SIOCSIFFLAGS + +ioctl$sock_inet_ifreq(fd sock, cmd flags[inet_ifreq_ioctls], arg ptr[inout, ifreq_in]) rt_flags = RTF_UP, RTF_GATEWAY, RTF_HOST, RTF_REINSTATE, RTF_DYNAMIC, RTF_MODIFIED, RTF_MTU, RTF_WINDOW, RTF_IRTT, RTF_REJECT @@ -232,3 +234,13 @@ arpreq_in { arp_netmask sockaddr_in arp_dev devname } + +ifreq_in { + ifr_ifrn devname + ifr_ifru ifr_ifru_in +} + +ifr_ifru_in [ + ifru_addrs sockaddr_in + ifru_flags flags[ifru_flags, int16] +] diff --git a/sys/socket_inet_amd64.const b/sys/socket_inet_amd64.const index 116e43ae3..7ad4f46a6 100644 --- a/sys/socket_inet_amd64.const +++ b/sys/socket_inet_amd64.const @@ -75,8 +75,19 @@ SIOCADDRT = 35083 SIOCDARP = 35155 SIOCDELRT = 35084 SIOCGARP = 35156 +SIOCGIFADDR = 35093 +SIOCGIFBRDADDR = 35097 +SIOCGIFDSTADDR = 35095 +SIOCGIFNETMASK = 35099 +SIOCGIFPFLAGS = 35125 SIOCRTMSG = 35085 SIOCSARP = 35157 +SIOCSIFADDR = 35094 +SIOCSIFBRDADDR = 35098 +SIOCSIFDSTADDR = 35096 +SIOCSIFFLAGS = 35092 +SIOCSIFNETMASK = 35100 +SIOCSIFPFLAGS = 35124 __NR_accept = 43 __NR_accept4 = 288 __NR_bind = 49 diff --git a/sys/socket_inet_arm64.const b/sys/socket_inet_arm64.const index aaba7ef8d..c3589f412 100644 --- a/sys/socket_inet_arm64.const +++ b/sys/socket_inet_arm64.const @@ -75,8 +75,19 @@ SIOCADDRT = 35083 SIOCDARP = 35155 SIOCDELRT = 35084 SIOCGARP = 35156 +SIOCGIFADDR = 35093 +SIOCGIFBRDADDR = 35097 +SIOCGIFDSTADDR = 35095 +SIOCGIFNETMASK = 35099 +SIOCGIFPFLAGS = 35125 SIOCRTMSG = 35085 SIOCSARP = 35157 +SIOCSIFADDR = 35094 +SIOCSIFBRDADDR = 35098 +SIOCSIFDSTADDR = 35096 +SIOCSIFFLAGS = 35092 +SIOCSIFNETMASK = 35100 +SIOCSIFPFLAGS = 35124 __NR_accept = 202 __NR_accept4 = 242 __NR_bind = 200 diff --git a/sys/socket_inet_ppc64le.const b/sys/socket_inet_ppc64le.const index 238b647d8..e81c0d3d3 100644 --- a/sys/socket_inet_ppc64le.const +++ b/sys/socket_inet_ppc64le.const @@ -75,8 +75,19 @@ SIOCADDRT = 35083 SIOCDARP = 35155 SIOCDELRT = 35084 SIOCGARP = 35156 +SIOCGIFADDR = 35093 +SIOCGIFBRDADDR = 35097 +SIOCGIFDSTADDR = 35095 +SIOCGIFNETMASK = 35099 +SIOCGIFPFLAGS = 35125 SIOCRTMSG = 35085 SIOCSARP = 35157 +SIOCSIFADDR = 35094 +SIOCSIFBRDADDR = 35098 +SIOCSIFDSTADDR = 35096 +SIOCSIFFLAGS = 35092 +SIOCSIFNETMASK = 35100 +SIOCSIFPFLAGS = 35124 __NR_accept = 330 __NR_accept4 = 344 __NR_bind = 327 -- cgit mrf-deployment From 274ac94f7cfcea0264d4bdc94fbcd6369d960835 Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Fri, 7 Apr 2017 17:56:19 +0200 Subject: sys: use ipv4_addr & ipv6_addr instead of in_addr & in6_addr --- sys/socket_inet.txt | 39 +++++++++++++++------------------------ sys/socket_inet6.txt | 23 +++++------------------ sys/vnet.txt | 5 +++++ 3 files changed, 25 insertions(+), 42 deletions(-) (limited to 'sys') diff --git a/sys/socket_inet.txt b/sys/socket_inet.txt index 332bb7e30..7ebc92cb3 100644 --- a/sys/socket_inet.txt +++ b/sys/socket_inet.txt @@ -16,19 +16,10 @@ sock_in_pair { f1 sock_in } -in_addr [ -# 0.0.0.0 - empty const[0x00000000, int32be] -# 127.0.0.1 - loopback const[0x7f000001, int32be] -# 255.255.255.255 - broadcast const[0xffffffff, int32be] -] - sockaddr_in { family const[AF_INET, int16] port proc[int16be, 20000, 4] - addr in_addr + addr ipv4_addr pad array[const[0, int8], 8] } @@ -79,34 +70,34 @@ ip_msfilter_mode = MCAST_INCLUDE, MCAST_EXCLUDE ip_mtu_discover = IP_PMTUDISC_DONT, IP_PMTUDISC_WANT, IP_PMTUDISC_DO, IP_PMTUDISC_PROBE, IP_PMTUDISC_INTERFACE, IP_PMTUDISC_OMIT ip_mreq { - multi in_addr - addr in_addr + multi ipv4_addr + addr ipv4_addr } ip_mreqn { - multi in_addr - addr in_addr + multi ipv4_addr + addr ipv4_addr ifindex int32 } ip_mreq_source { - multi in_addr - iface in_addr - source in_addr + multi ipv4_addr + iface ipv4_addr + source ipv4_addr } ip_msfilter { - multi in_addr - iface in_addr + multi ipv4_addr + iface ipv4_addr fmode flags[ip_msfilter_mode, int32] numsrc len[slist, int32] - slist array[in_addr] + slist array[ipv4_addr] } in_pktinfo { ifindex int32 - dst in_addr - addr in_addr + dst ipv4_addr + addr ipv4_addr } xfrm_filer { @@ -179,8 +170,8 @@ xfrm_id { } xfrm_in_addr [ - in in_addr - in6 in6_addr + in ipv4_addr + in6 ipv6_addr ] # IP ioctls diff --git a/sys/socket_inet6.txt b/sys/socket_inet6.txt index c0bd80e2c..f7a40ab87 100644 --- a/sys/socket_inet6.txt +++ b/sys/socket_inet6.txt @@ -16,26 +16,11 @@ sock_in6_pair { } -in6_addr_empty { - a0 const[0, int64be] - a1 const[0, int64be] -} - -in6_addr_loopback { - a0 const[0, int64be] - a1 const[1, int64be] -} - -in6_addr [ - empty in6_addr_empty - loopback in6_addr_loopback -] - sockaddr_in6 { family const[AF_INET6, int16] port proc[int16be, 20000, 4] flow int32 - addr in6_addr + addr ipv6_addr scope int32 } @@ -74,8 +59,10 @@ sockopt_opt_ipv6_int = IPV6_ADDRFORM, IPV6_MTU, IPV6_MULTICAST_HOPS, IPV6_MULTIC sockopt_opt_ipv6_mreq = IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP, IPV6_JOIN_ANYCAST, IPV6_LEAVE_ANYCAST ipv6_mreq { - multi in6_addr + multi ipv6_addr ifindex int32 } -# TODO: ipv6 ioctls +# IPv6 ioctls + +# TODO: http://lxr.free-electrons.com/ident?i=inet6_ioctl diff --git a/sys/vnet.txt b/sys/vnet.txt index 56c9b88fd..cf439c36e 100644 --- a/sys/vnet.txt +++ b/sys/vnet.txt @@ -436,6 +436,10 @@ include ipv6_types = IPPROTO_IP, IPPROTO_ICMP, IPPROTO_IGMP, IPPROTO_IPIP, IPPROTO_TCP, IPPROTO_EGP, IPPROTO_PUP, IPPROTO_UDP, IPPROTO_IDP, IPPROTO_TP, IPPROTO_DCCP, IPPROTO_IPV6, IPPROTO_RSVP, IPPROTO_GRE, IPPROTO_ESP, IPPROTO_AH, IPPROTO_MTP, IPPROTO_BEETPH, IPPROTO_ENCAP, IPPROTO_PIM, IPPROTO_COMP, IPPROTO_SCTP, IPPROTO_UDPLITE, IPPROTO_MPLS, IPPROTO_RAW, IPPROTO_HOPOPTS, IPPROTO_ROUTING, IPPROTO_FRAGMENT, IPPROTO_ICMPV6, IPPROTO_NONE, IPPROTO_DSTOPTS, IPPROTO_MH, NEXTHDR_HOP, NEXTHDR_TCP, NEXTHDR_UDP, NEXTHDR_IPV6, NEXTHDR_ROUTING, NEXTHDR_FRAGMENT, NEXTHDR_GRE, NEXTHDR_ESP, NEXTHDR_AUTH, NEXTHDR_ICMP, NEXTHDR_NONE, NEXTHDR_DEST, NEXTHDR_SCTP, NEXTHDR_MOBILITY +ipv6_addr_empty { + a0 array[const[0x00, int8], 16] +} + # This corresponds to LOCAL_IPV6 ("fd00::%02hxaa" % pid) in executor/common.h ipv6_addr_local { a0 const[0xfd, int8] @@ -458,6 +462,7 @@ ipv6_addr_loopback { } [packed] ipv6_addr [ + empty ipv6_addr_empty local ipv6_addr_local remote ipv6_addr_remote loopback ipv6_addr_loopback -- cgit mrf-deployment From c9e79240e6f4fef474a9b62aeae10663aa7701ff Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Fri, 7 Apr 2017 18:13:45 +0200 Subject: sys: add more ipv6 ioctls --- sys/socket_inet6.txt | 32 ++++++++++++++++++++++++++++++++ sys/socket_inet6_amd64.const | 31 +++++++++++++++++++++++++++++++ sys/socket_inet6_arm64.const | 31 +++++++++++++++++++++++++++++++ sys/socket_inet6_ppc64le.const | 31 +++++++++++++++++++++++++++++++ 4 files changed, 125 insertions(+) (limited to 'sys') diff --git a/sys/socket_inet6.txt b/sys/socket_inet6.txt index f7a40ab87..14be9aece 100644 --- a/sys/socket_inet6.txt +++ b/sys/socket_inet6.txt @@ -4,6 +4,8 @@ include include include +include +include include # IPv6 sockets @@ -66,3 +68,33 @@ ipv6_mreq { # IPv6 ioctls # TODO: http://lxr.free-electrons.com/ident?i=inet6_ioctl + +ioctl$sock_inet6_SIOCADDRT(fd sock_in6, cmd const[SIOCADDRT], arg ptr[in, in6_rtmsg]) +ioctl$sock_inet6_SIOCDELRT(fd sock_in6, cmd const[SIOCDELRT], arg ptr[in, in6_rtmsg]) + +ioctl$sock_inet6_SIOCSIFADDR(fd sock_in6, cmd const[SIOCSIFADDR], arg ptr[in, in6_ifreq]) +ioctl$sock_inet6_SIOCDIFADDR(fd sock_in6, cmd const[SIOCDIFADDR], arg ptr[in, in6_ifreq]) +ioctl$sock_inet6_SIOCSIFDSTADDR(fd sock_in6, cmd const[SIOCSIFDSTADDR], arg ptr[in, in6_ifreq]) + +rtmsg_metrics = IP6_RT_PRIO_USER, IP6_RT_PRIO_ADDRCONF + +rtmsg_flags = RTF_UP, RTF_GATEWAY, RTF_HOST, RTF_REINSTATE, RTF_DYNAMIC, RTF_MODIFIED, RTF_MTU, RTF_WINDOW, RTF_IRTT, RTF_REJECT, RTF_DEFAULT, RTF_ALLONLINK, RTF_ADDRCONF, RTF_PREFIX_RT, RTF_ANYCAST, RTF_NONEXTHOP, RTF_EXPIRES, RTF_ROUTEINFO, RTF_CACHE, RTF_FLOW, RTF_POLICY, RTF_PCPU, RTF_LOCAL + +in6_rtmsg { + rtmsg_dst ipv6_addr + rtmsg_src ipv6_addr + rtmsg_gateway ipv6_addr + rtmsg_type int32 + rtmsg_dst_len int16 + rtmsg_src_len int16 + rtmsg_metric flags[rtmsg_metrics, int32] + rtmsg_info int64 + rtmsg_flags flags[rtmsg_flags, int32] + rtmsg_ifindex int32 +} + +in6_ifreq { + ifr6_addr ipv6_addr + ifr6_prefixlen int32 + ifr6_ifindex int32 +} diff --git a/sys/socket_inet6_amd64.const b/sys/socket_inet6_amd64.const index 73d453519..88c853a06 100644 --- a/sys/socket_inet6_amd64.const +++ b/sys/socket_inet6_amd64.const @@ -3,6 +3,8 @@ AF_INET6 = 10 IP6T_SO_GET_REVISION_MATCH = 68 IP6T_SO_GET_REVISION_TARGET = 69 IP6T_SO_ORIGINAL_DST = 80 +IP6_RT_PRIO_ADDRCONF = 256 +IP6_RT_PRIO_USER = 1024 IPPROTO_IPV6 = 41 IPV6_2292DSTOPTS = 4 IPV6_2292HOPLIMIT = 8 @@ -62,6 +64,34 @@ MCAST_LEAVE_GROUP = 45 MCAST_LEAVE_SOURCE_GROUP = 47 MCAST_MSFILTER = 48 MCAST_UNBLOCK_SOURCE = 44 +RTF_ADDRCONF = 262144 +RTF_ALLONLINK = 131072 +RTF_ANYCAST = 1048576 +RTF_CACHE = 16777216 +RTF_DEFAULT = 65536 +RTF_DYNAMIC = 16 +RTF_EXPIRES = 4194304 +RTF_FLOW = 33554432 +RTF_GATEWAY = 2 +RTF_HOST = 4 +RTF_IRTT = 256 +RTF_LOCAL = 2147483648 +RTF_MODIFIED = 32 +RTF_MTU = 64 +RTF_NONEXTHOP = 2097152 +RTF_PCPU = 1073741824 +RTF_POLICY = 67108864 +RTF_PREFIX_RT = 524288 +RTF_REINSTATE = 8 +RTF_REJECT = 512 +RTF_ROUTEINFO = 8388608 +RTF_UP = 1 +RTF_WINDOW = 128 +SIOCADDRT = 35083 +SIOCDELRT = 35084 +SIOCDIFADDR = 35126 +SIOCSIFADDR = 35094 +SIOCSIFDSTADDR = 35096 __NR_accept = 43 __NR_accept4 = 288 __NR_bind = 49 @@ -69,6 +99,7 @@ __NR_connect = 42 __NR_getpeername = 52 __NR_getsockname = 51 __NR_getsockopt = 55 +__NR_ioctl = 16 __NR_recvfrom = 45 __NR_sendto = 44 __NR_setsockopt = 54 diff --git a/sys/socket_inet6_arm64.const b/sys/socket_inet6_arm64.const index 41e764410..ae90cafee 100644 --- a/sys/socket_inet6_arm64.const +++ b/sys/socket_inet6_arm64.const @@ -3,6 +3,8 @@ AF_INET6 = 10 IP6T_SO_GET_REVISION_MATCH = 68 IP6T_SO_GET_REVISION_TARGET = 69 IP6T_SO_ORIGINAL_DST = 80 +IP6_RT_PRIO_ADDRCONF = 256 +IP6_RT_PRIO_USER = 1024 IPPROTO_IPV6 = 41 IPV6_2292DSTOPTS = 4 IPV6_2292HOPLIMIT = 8 @@ -62,6 +64,34 @@ MCAST_LEAVE_GROUP = 45 MCAST_LEAVE_SOURCE_GROUP = 47 MCAST_MSFILTER = 48 MCAST_UNBLOCK_SOURCE = 44 +RTF_ADDRCONF = 262144 +RTF_ALLONLINK = 131072 +RTF_ANYCAST = 1048576 +RTF_CACHE = 16777216 +RTF_DEFAULT = 65536 +RTF_DYNAMIC = 16 +RTF_EXPIRES = 4194304 +RTF_FLOW = 33554432 +RTF_GATEWAY = 2 +RTF_HOST = 4 +RTF_IRTT = 256 +RTF_LOCAL = 2147483648 +RTF_MODIFIED = 32 +RTF_MTU = 64 +RTF_NONEXTHOP = 2097152 +RTF_PCPU = 1073741824 +RTF_POLICY = 67108864 +RTF_PREFIX_RT = 524288 +RTF_REINSTATE = 8 +RTF_REJECT = 512 +RTF_ROUTEINFO = 8388608 +RTF_UP = 1 +RTF_WINDOW = 128 +SIOCADDRT = 35083 +SIOCDELRT = 35084 +SIOCDIFADDR = 35126 +SIOCSIFADDR = 35094 +SIOCSIFDSTADDR = 35096 __NR_accept = 202 __NR_accept4 = 242 __NR_bind = 200 @@ -69,6 +99,7 @@ __NR_connect = 203 __NR_getpeername = 205 __NR_getsockname = 204 __NR_getsockopt = 209 +__NR_ioctl = 29 __NR_recvfrom = 207 __NR_sendto = 206 __NR_setsockopt = 208 diff --git a/sys/socket_inet6_ppc64le.const b/sys/socket_inet6_ppc64le.const index 5c4bd7348..df3a66d05 100644 --- a/sys/socket_inet6_ppc64le.const +++ b/sys/socket_inet6_ppc64le.const @@ -3,6 +3,8 @@ AF_INET6 = 10 IP6T_SO_GET_REVISION_MATCH = 68 IP6T_SO_GET_REVISION_TARGET = 69 IP6T_SO_ORIGINAL_DST = 80 +IP6_RT_PRIO_ADDRCONF = 256 +IP6_RT_PRIO_USER = 1024 IPPROTO_IPV6 = 41 IPV6_2292DSTOPTS = 4 IPV6_2292HOPLIMIT = 8 @@ -62,6 +64,34 @@ MCAST_LEAVE_GROUP = 45 MCAST_LEAVE_SOURCE_GROUP = 47 MCAST_MSFILTER = 48 MCAST_UNBLOCK_SOURCE = 44 +RTF_ADDRCONF = 262144 +RTF_ALLONLINK = 131072 +RTF_ANYCAST = 1048576 +RTF_CACHE = 16777216 +RTF_DEFAULT = 65536 +RTF_DYNAMIC = 16 +RTF_EXPIRES = 4194304 +RTF_FLOW = 33554432 +RTF_GATEWAY = 2 +RTF_HOST = 4 +RTF_IRTT = 256 +RTF_LOCAL = 2147483648 +RTF_MODIFIED = 32 +RTF_MTU = 64 +RTF_NONEXTHOP = 2097152 +RTF_PCPU = 1073741824 +RTF_POLICY = 67108864 +RTF_PREFIX_RT = 524288 +RTF_REINSTATE = 8 +RTF_REJECT = 512 +RTF_ROUTEINFO = 8388608 +RTF_UP = 1 +RTF_WINDOW = 128 +SIOCADDRT = 35083 +SIOCDELRT = 35084 +SIOCDIFADDR = 35126 +SIOCSIFADDR = 35094 +SIOCSIFDSTADDR = 35096 __NR_accept = 330 __NR_accept4 = 344 __NR_bind = 327 @@ -69,6 +99,7 @@ __NR_connect = 328 __NR_getpeername = 332 __NR_getsockname = 331 __NR_getsockopt = 340 +__NR_ioctl = 54 __NR_recvfrom = 337 __NR_sendto = 335 __NR_setsockopt = 339 -- cgit mrf-deployment From 83aa41d8a5a9a7c2bb267ca95d3d087697fde27f Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Fri, 7 Apr 2017 18:35:08 +0200 Subject: sys: add more tcp ioctls --- sys/socket_inet_tcp.txt | 18 ++++++++++++++++++ sys/socket_inet_tcp_amd64.const | 5 +++++ sys/socket_inet_tcp_arm64.const | 5 +++++ sys/socket_inet_tcp_ppc64le.const | 5 +++++ 4 files changed, 33 insertions(+) (limited to 'sys') diff --git a/sys/socket_inet_tcp.txt b/sys/socket_inet_tcp.txt index 5dfe0c31c..4626511ad 100644 --- a/sys/socket_inet_tcp.txt +++ b/sys/socket_inet_tcp.txt @@ -3,7 +3,9 @@ # AF_INET and AF_INET6: TCP support +include include +include resource sock_tcp[sock_in] @@ -40,3 +42,19 @@ getsockopt$inet_tcp_buf(fd sock_tcp, level const[IPPROTO_TCP], optname flags[tcp setsockopt$inet_tcp_buf(fd sock_tcp, level const[IPPROTO_TCP], optname flags[tcp_option_types_buf], optval buffer[in], optlen len[optval]) 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]) + +# TCP ioctls + +# http://lxr.free-electrons.com/ident?i=tcp_ioctl + +ioctl$sock_inet_tcp_SIOCINQ(fd sock_tcp, cmd const[SIOCINQ], arg ptr[out, int32]) +ioctl$sock_inet6_tcp_SIOCINQ(fd sock_tcp6, cmd const[SIOCINQ], arg ptr[out, int32]) + +ioctl$sock_inet_tcp_SIOCATMARK(fd sock_tcp, cmd const[SIOCATMARK], arg ptr[out, int32]) +ioctl$sock_inet6_tcp_SIOCATMARK(fd sock_tcp6, cmd const[SIOCATMARK], arg ptr[out, int32]) + +ioctl$sock_inet_tcp_SIOCOUTQ(fd sock_tcp, cmd const[SIOCOUTQ], arg ptr[out, int32]) +ioctl$sock_inet6_tcp_SIOCOUTQ(fd sock_tcp6, cmd const[SIOCOUTQ], arg ptr[out, int32]) + +ioctl$sock_inet_tcp_SIOCOUTQNSD(fd sock_tcp, cmd const[SIOCOUTQNSD], arg ptr[out, int32]) +ioctl$sock_inet6_tcp_SIOCOUTQNSD(fd sock_tcp6, cmd const[SIOCOUTQNSD], arg ptr[out, int32]) diff --git a/sys/socket_inet_tcp_amd64.const b/sys/socket_inet_tcp_amd64.const index c91e484b6..8049cc498 100644 --- a/sys/socket_inet_tcp_amd64.const +++ b/sys/socket_inet_tcp_amd64.const @@ -2,6 +2,10 @@ AF_INET = 2 AF_INET6 = 10 IPPROTO_TCP = 6 +SIOCATMARK = 35077 +SIOCINQ = 21531 +SIOCOUTQ = 21521 +SIOCOUTQNSD = 35147 SOCK_STREAM = 1 TCP_CC_INFO = 26 TCP_CONGESTION = 13 @@ -32,6 +36,7 @@ TCP_TIMESTAMP = 24 TCP_USER_TIMEOUT = 18 TCP_WINDOW_CLAMP = 10 __NR_getsockopt = 55 +__NR_ioctl = 16 __NR_setsockopt = 54 __NR_socket = 41 __NR_socketpair = 53 diff --git a/sys/socket_inet_tcp_arm64.const b/sys/socket_inet_tcp_arm64.const index 90b7b1a89..d15a5eae7 100644 --- a/sys/socket_inet_tcp_arm64.const +++ b/sys/socket_inet_tcp_arm64.const @@ -2,6 +2,10 @@ AF_INET = 2 AF_INET6 = 10 IPPROTO_TCP = 6 +SIOCATMARK = 35077 +SIOCINQ = 21531 +SIOCOUTQ = 21521 +SIOCOUTQNSD = 35147 SOCK_STREAM = 1 TCP_CC_INFO = 26 TCP_CONGESTION = 13 @@ -32,6 +36,7 @@ TCP_TIMESTAMP = 24 TCP_USER_TIMEOUT = 18 TCP_WINDOW_CLAMP = 10 __NR_getsockopt = 209 +__NR_ioctl = 29 __NR_setsockopt = 208 __NR_socket = 198 __NR_socketpair = 199 diff --git a/sys/socket_inet_tcp_ppc64le.const b/sys/socket_inet_tcp_ppc64le.const index e4187f236..2a1a6be64 100644 --- a/sys/socket_inet_tcp_ppc64le.const +++ b/sys/socket_inet_tcp_ppc64le.const @@ -2,6 +2,10 @@ AF_INET = 2 AF_INET6 = 10 IPPROTO_TCP = 6 +SIOCATMARK = 35077 +SIOCINQ = 1074030207 +SIOCOUTQ = 1074033779 +SIOCOUTQNSD = 35147 SOCK_STREAM = 1 TCP_CC_INFO = 26 TCP_CONGESTION = 13 @@ -32,6 +36,7 @@ TCP_TIMESTAMP = 24 TCP_USER_TIMEOUT = 18 TCP_WINDOW_CLAMP = 10 __NR_getsockopt = 340 +__NR_ioctl = 54 __NR_setsockopt = 339 __NR_socket = 326 __NR_socketpair = 333 -- cgit mrf-deployment From 822b1269b30114d4bec447845fc71afca97c5b63 Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Fri, 7 Apr 2017 18:38:18 +0200 Subject: sys: add more udp ioctls --- sys/socket_inet_udp.txt | 10 ++++++++++ sys/socket_inet_udp_amd64.const | 3 +++ sys/socket_inet_udp_arm64.const | 3 +++ sys/socket_inet_udp_ppc64le.const | 3 +++ 4 files changed, 19 insertions(+) (limited to 'sys') diff --git a/sys/socket_inet_udp.txt b/sys/socket_inet_udp.txt index dddb4bb20..52073b21e 100644 --- a/sys/socket_inet_udp.txt +++ b/sys/socket_inet_udp.txt @@ -3,7 +3,9 @@ # AF_INET and AF_INET6: UDP support +include include +include resource sock_udp[sock_in] @@ -42,3 +44,11 @@ setsockopt$inet_udp_encap(fd sock_udp, level const[IPPROTO_UDP], optname const[U setsockopt$inet6_udp_encap(fd sock_udp6, level const[IPPROTO_UDP], optname const[UDP_ENCAP], optval ptr[in, flags[udp_encap_option_values, int32]], optlen len[optval]) # TODO: UDPLITE_SEND_CSCOV, UDPLITE_RECV_CSCOV + +# UDP ioctls + +ioctl$sock_inet_udp_SIOCINQ(fd sock_udp, cmd const[SIOCINQ], arg ptr[out, int32]) +ioctl$sock_inet6_udp_SIOCINQ(fd sock_udp6, cmd const[SIOCINQ], arg ptr[out, int32]) + +ioctl$sock_inet_udp_SIOCOUTQ(fd sock_udp, cmd const[SIOCOUTQ], arg ptr[out, int32]) +ioctl$sock_inet6_udp_SIOCOUTQ(fd sock_udp6, cmd const[SIOCOUTQ], arg ptr[out, int32]) diff --git a/sys/socket_inet_udp_amd64.const b/sys/socket_inet_udp_amd64.const index 4fcd3dfa7..04a4d2b49 100644 --- a/sys/socket_inet_udp_amd64.const +++ b/sys/socket_inet_udp_amd64.const @@ -2,6 +2,8 @@ AF_INET = 2 AF_INET6 = 10 IPPROTO_UDP = 17 +SIOCINQ = 21531 +SIOCOUTQ = 21521 SOCK_DGRAM = 2 UDP_CORK = 1 UDP_ENCAP = 100 @@ -13,6 +15,7 @@ UDP_ENCAP_L2TPINUDP = 3 UDP_NO_CHECK6_RX = 102 UDP_NO_CHECK6_TX = 101 __NR_getsockopt = 55 +__NR_ioctl = 16 __NR_setsockopt = 54 __NR_socket = 41 __NR_socketpair = 53 diff --git a/sys/socket_inet_udp_arm64.const b/sys/socket_inet_udp_arm64.const index 111726315..ba6764344 100644 --- a/sys/socket_inet_udp_arm64.const +++ b/sys/socket_inet_udp_arm64.const @@ -2,6 +2,8 @@ AF_INET = 2 AF_INET6 = 10 IPPROTO_UDP = 17 +SIOCINQ = 21531 +SIOCOUTQ = 21521 SOCK_DGRAM = 2 UDP_CORK = 1 UDP_ENCAP = 100 @@ -13,6 +15,7 @@ UDP_ENCAP_L2TPINUDP = 3 UDP_NO_CHECK6_RX = 102 UDP_NO_CHECK6_TX = 101 __NR_getsockopt = 209 +__NR_ioctl = 29 __NR_setsockopt = 208 __NR_socket = 198 __NR_socketpair = 199 diff --git a/sys/socket_inet_udp_ppc64le.const b/sys/socket_inet_udp_ppc64le.const index d30a309f5..95e285816 100644 --- a/sys/socket_inet_udp_ppc64le.const +++ b/sys/socket_inet_udp_ppc64le.const @@ -2,6 +2,8 @@ AF_INET = 2 AF_INET6 = 10 IPPROTO_UDP = 17 +SIOCINQ = 1074030207 +SIOCOUTQ = 1074033779 SOCK_DGRAM = 2 UDP_CORK = 1 UDP_ENCAP = 100 @@ -13,6 +15,7 @@ UDP_ENCAP_L2TPINUDP = 3 UDP_NO_CHECK6_RX = 102 UDP_NO_CHECK6_TX = 101 __NR_getsockopt = 340 +__NR_ioctl = 54 __NR_setsockopt = 339 __NR_socket = 326 __NR_socketpair = 333 -- cgit mrf-deployment From 941170a7e2ba713853d9b63b259a00bd634518fc Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Fri, 7 Apr 2017 19:22:56 +0200 Subject: sys: add more tcp socket options --- sys/socket_inet_tcp.txt | 49 +++++++++++++++++++++++++++++++++++++++ sys/socket_inet_tcp_amd64.const | 5 ++++ sys/socket_inet_tcp_arm64.const | 5 ++++ sys/socket_inet_tcp_ppc64le.const | 5 ++++ 4 files changed, 64 insertions(+) (limited to 'sys') diff --git a/sys/socket_inet_tcp.txt b/sys/socket_inet_tcp.txt index 4626511ad..124151fd8 100644 --- a/sys/socket_inet_tcp.txt +++ b/sys/socket_inet_tcp.txt @@ -5,6 +5,7 @@ include include +include include 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 diff --git a/sys/socket_inet_tcp_amd64.const b/sys/socket_inet_tcp_amd64.const index 8049cc498..f9e773af7 100644 --- a/sys/socket_inet_tcp_amd64.const +++ b/sys/socket_inet_tcp_amd64.const @@ -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 diff --git a/sys/socket_inet_tcp_arm64.const b/sys/socket_inet_tcp_arm64.const index d15a5eae7..55aaf3703 100644 --- a/sys/socket_inet_tcp_arm64.const +++ b/sys/socket_inet_tcp_arm64.const @@ -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 diff --git a/sys/socket_inet_tcp_ppc64le.const b/sys/socket_inet_tcp_ppc64le.const index 2a1a6be64..30cadff8b 100644 --- a/sys/socket_inet_tcp_ppc64le.const +++ b/sys/socket_inet_tcp_ppc64le.const @@ -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 -- cgit mrf-deployment