diff --git a/Posix-compatibility.md b/Posix-compatibility.md
index 4e4f202..26dfa2c 100644
--- a/Posix-compatibility.md
+++ b/Posix-compatibility.md
@@ -6,11 +6,11 @@ This document provides an overview of the POSIX interface along with common non-
## General
### I/O completion polling (`poll`, `select`, `pselect`, `epoll_*` (non-standard), `kqueue` (non-standard))
-Use [`tcp::subscribe`][tcp]/[`udp::subscribe`][udp] to obtain a `pollable` handle. Then use that to wait for IO events using the [wasi-poll][poll] interface.
+Use the various `subscribe` methods to obtain a `pollable` handle. Then use that to wait for IO events using the [wasi:io/poll][poll] interface.
### Non-blocking mode (`FIONBIO`, `SOCK_NONBLOCK`, `O_NONBLOCK`)
All WASI sockets are non-blocking and can not be configured to block.
-Blocking behaviour can be recreated in userland (or in wasi-libc) by repeatedly calling [`poll::poll-oneoff`][poll] until the operation is complete.
+Blocking behaviour can be recreated in userland (or in wasi-libc) by calling [pollable::block][poll] on the relevant pollable.
### TCP urgent data (`sockatmark`, `MSG_OOB`, `SO_OOBINLINE`, `SIOCATMARK`)
Out-of-band (OOB) data is currently not included in this proposal. Application-level usage of the TCP "urgent" flag is rare in practice and discouraged in general. Including it in WASI would probably interfere with the ability to use WASI/ComponentModel `stream`s.
@@ -35,52 +35,56 @@ Not included in proposal. WASI has no concept of UNIX-style processes.
- UDP: [`create-udp-socket`][udp-create-socket]
### `connect`
-- TCP: [`tcp::start-connect`][tcp] & [`tcp::finish-connect`][tcp]
-- UDP: [`udp::start-connect`][udp] & [`udp::finish-connect`][udp]
+- TCP: [`tcp-socket::start-connect`][tcp] & [`tcp-socket::finish-connect`][tcp]
+- UDP: [`udp-socket::start-connect`][udp] & [`udp-socket::finish-connect`][udp]
### `bind`
-- TCP: [`tcp::start-bind`][tcp] & [`tcp::finish-bind`][tcp]
-- UDP: [`udp::start-bind`][udp] & [`udp::finish-bind`][udp]
+- TCP: [`tcp-socket::start-bind`][tcp] & [`tcp-socket::finish-bind`][tcp]
+- UDP: [`udp-socket::start-bind`][udp] & [`udp-socket::finish-bind`][udp]
### `listen`
-- TCP: [`tcp::start-listen`][tcp] & [`tcp::finish-listen`][tcp]. The `backlog` parameter has been split out into a distinct function [`tcp::set-listen-backlog-size`][tcp] ([See #34](https://github.com/WebAssembly/wasi-sockets/issues/34)).
+- TCP: [`tcp-socket::start-listen`][tcp] & [`tcp-socket::finish-listen`][tcp]. The `backlog` parameter has been split out into a distinct function [`tcp-socket::set-listen-backlog-size`][tcp] ([See #34][34]).
- UDP: N/A
### `accept`, `accept4` (non-standard)
-- TCP: [`tcp::accept`][tcp]
+- TCP: [`tcp-socket::accept`][tcp]
- UDP: N/A
-To collect the remote address, call [`tcp::remote-address`][tcp] on the newly accepted client socket.
+To collect the remote address, call `tcp-socket::remote-address` on the newly accepted client socket.
Some platforms provide an `accept4` variant with additional flags. None of these flags make sense in the context of this proposal. See [SOCK_NONBLOCK](#nonblock) & [SOCK_CLOEXEC](#cloexec).
### `getsockname`, `getpeername`
-- TCP: [`tcp::local-address`][tcp] & [`tcp::remote-address`][tcp]
-- UDP: [`udp::local-address`][udp] & [`udp::remote-address`][udp]
+- TCP: [`tcp-socket::local-address`][tcp] & [`tcp-socket::remote-address`][tcp]
+- UDP: [`udp-socket::local-address`][udp] & [`udp-socket::remote-address`][udp]
### `read`, `readv`, `recv`, `recvfrom`, `recvmsg`, `recvmmsg` (non-standard)
-TCP sockets can be read using [`streams::(blocking-)read`][streams]. UDP sockets can be read using [`udp::receive`][udp].
+TCP sockets can be read using the `input-stream` returned by connect or accept.
+UDP sockets can be read using the `incoming-datagram-stream` returned by `udp-socket::stream`.
-The various POSIX functions should be implementable on top of these two functions.
+The various POSIX functions should be implementable on top of these two resources.
None of the flags are directly present in WASI Sockets:
- `MSG_DONTWAIT`: This is [always the case](#nonblock).
- `MSG_OOB` on TCP sockets: [Not supported](#oob)
- `MSG_OOB` on UDP sockets: N/A
- `MSG_PEEK`: [No direct support](#peek)
-- `MSG_TRUNC on TCP sockets: N/A
+- `MSG_TRUNC` on TCP sockets: N/A
- `MSG_TRUNC` on UDP sockets: Not needed, the returned data array always has the exact perfect size.
- `MSG_WAITALL` on TCP sockets: Emulatable in userspace.
- `MSG_WAITALL` on UDP sockets: N/A
- `MSG_EOR`: N/A (not supported on TCP & UDP sockets)
- `MSG_CMSG_CLOEXEC`: N/A (only used on Unix domain sockets)
+Receiving ancillary messages: None supported as of yet. But see the various "RECV" socket options below.
+
### `write`, `writev`, `send`, `sendto`, `sendmsg`, `sendmmsg` (non-standard)
-TCP sockets can be written to using [`streams::(blocking-)write`][streams]. UDP sockets can be written to using [`udp::send`][udp].
+TCP sockets can be written to using the `output-stream` returned by connect or accept.
+UDP sockets can be written to using the `outgoing-datagram-stream` returned by `udp-socket::stream`.
-The various POSIX functions should be implementable on top of these two functions.
+The various POSIX functions should be implementable on top of these two resources.
None of the flags are directly present in WASI Sockets:
- `MSG_DONTROUTE`: Not included in proposal at the moment.
@@ -90,13 +94,14 @@ None of the flags are directly present in WASI Sockets:
- `MSG_OOB` on UDP sockets: N/A
- `MSG_EOR`: N/A (not supported on TCP & UDP sockets)
+Sending ancillary messages: None supported as of yet.
### `sendfile` (non-standard)
-- TCP: Part of the WASI Streams proposal as [`output-stream::forward`][streams]
+- TCP: Part of the [wasi:io/streams][streams] proposal as `output-stream::splice`
- UDP: N/A
### `shutdown`
-- TCP: [`tcp::shutdown`][tcp]
+- TCP: [`tcp-socket::shutdown`][tcp]
- UDP: N/A
### `sockatmark`
@@ -104,7 +109,7 @@ None of the flags are directly present in WASI Sockets:
- UDP: N/A
### `close`
-Dropping a handle performs an effective `close`.
+Dropping the socket resource effectively performs a `close`.
### `socketpair`, `connectat` (non-standard), `bindat` (non-standard)
Specifically for UNIX domain sockets. Out of scope for this proposal.
@@ -115,7 +120,7 @@ Specifically for UNIX domain sockets. Out of scope for this proposal.
### `ioctl`
- `SIOCATMARK`: [Not included](#oob).
-- `FIONREAD`: Currently not included. See [#17](https://github.com/WebAssembly/wasi-sockets/issues/17).
+- `FIONREAD`: Currently not included. See [#17][17].
### `getsockopt`, `setsockopt`
Socket options have been split out into distinct functions. See table below.
@@ -132,466 +137,465 @@ The results are not intended to be an exhaustive overview of all possible networ
Additionally, most columns have been populated semi-automatically by grepping through the respective codebases. The results have not been manually verified and therefore may not be 100% correct.
-Columns:
-- "Socket option": The native option constant.
-- "WASI":
- - ✅ = Included in proposal.
- - ⛔ = Consciously decided _not_ to include in WASI. See notes for explanation.
- - ❔ = Not included (yet), for no particular reason.
-- The rest:
- - ✅ = Option is provided by the platform / depended upon by the application.
- - ❌ = Option is not provided / not used.
-
-> Note: GitHub clips the table content. Scroll left and right to see all columns, or use the Code View.
-
-| Option | WASI | POSIX | Linux | Windows | MacOS | FreeBSD | JVM | .NET | Rust | Node.js | Go | OpenSSL | nginx | curl | msquic | exim | Notes |
-|---------------------------------|-----------|--------|--------|---------|---------|---------|-------|--------|-------|---------|-----|----------|-------|-------|--------|-------|-|
-| SO_ERROR | ⛔ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | Not necessary. WIT has (or will have) native support for asynchronous results. |
-| SO_DOMAIN | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | [`tcp::address-family`][tcp]
[`udp::address-family`][udp]
SO_PROTOCOL_INFO on Windows. |
-| SO_TYPE | ✅* | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | * indirectly through the type of the socket resource. |
-| SO_PROTOCOL | ✅* | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | * indirectly through the type of the socket resource. SO_PROTOCOL_INFO on Windows. |
-| SO_ACCEPTCONN | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_V6ONLY | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | [`tcp::(set-)ipv6-only`][tcp]
[`udp::(set-)ipv6-only`][udp] |
-| IP_HDRINCL | ⛔ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | Out of scope. Raw sockets only. |
-| IPV6_HDRINCL | ⛔ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | Out of scope. Raw sockets only. |
-| IP_TTL | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | [`tcp::(set-)unicast-hop-limit`][tcp]
[`udp::(set-)unicast-hop-limit`][udp] |
-| IPV6_UNICAST_HOPS | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | [`tcp::(set-)unicast-hop-limit`][tcp]
[`udp::(set-)unicast-hop-limit`][udp] |
-| IP_RECVTTL | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RECVHOPLIMIT | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_TOS | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | |
-| IPV6_TCLASS | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | |
-| IP_RECVTOS | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | |
-| IPV6_RECVTCLASS | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | |
-| IP_RECVPKTINFO | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | IP_PKTINFO on Linux & Windows, IP_RECVDSTADDR+IP_RECVIF on MacOS & FreeBSD. |
-| IPV6_RECVPKTINFO | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | IPV6_PKTINFO on Windows. |
-| IP_DONTFRAG | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | IP_DONTFRAGMENT on Windows, implementable using IP_MTU_DISCOVER on Linux. |
-| IPV6_DONTFRAG | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | |
-| IP_MTU_DISCOVER | ❔ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | |
-| IPV6_MTU_DISCOVER | ❔ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | |
-| SO_RCVBUF | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | [`tcp::(set-)receive-buffer-size`][tcp]
[`udp::(set-)receive-buffer-size`][udp] |
-| SO_SNDBUF | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | [`tcp::(set-)send-buffer-size`][tcp]
[`udp::(set-)send-buffer-size`][udp] |
-| SO_RCVLOWAT | ❔ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_SNDLOWAT | ❔ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | |
-| SO_RCVTIMEO | ⛔ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | WASI sockets are always non-blocking. Timeouts can be recreated in libc. |
-| SO_SNDTIMEO | ⛔ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | WASI sockets are always non-blocking. Timeouts can be recreated in libc. |
-| SO_KEEPALIVE | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | [`tcp::(set-)keep-alive`][tcp] |
-| TCP_KEEPCNT | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | |
-| TCP_KEEPIDLE | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | TCP_KEEPALIVE on MacOS |
-| TCP_KEEPINTVL | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | |
-| TCP_NODELAY | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | [`tcp::(set-)no-delay`][tcp] |
-| TCP_CORK | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | TCP_NOPUSH on MacOS & FreeBSD |
-| SO_LINGER | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | |
-| SO_OOBINLINE | ⛔ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | Not supported, see [OOB](#oob) |
-| SO_DEBUG | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_DONTROUTE | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_REUSEADDR | ❔ | ✅ | ✅ | ✅* | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | Roughly equivalent to the inverse of SO_EXCLUSIVEADDRUSE on Windows. |
-| SO_REUSEPORT | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | |
-| SO_REUSEPORT_LB | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | |
-| IP_BIND_ADDRESS_NO_PORT | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | |
-| SO_ATTACH_REUSEPORT_CBPF | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | |
-| SO_ATTACH_REUSEPORT_EBPF | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | |
-| SO_DETACH_REUSEPORT_BPF | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_REUSPORT_LB_NUMA | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_BROADCAST | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_ADD_MEMBERSHIP | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | Equivalent to MCAST_JOIN_GROUP |
-| IPV6_JOIN_GROUP | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | Equivalent to MCAST_JOIN_GROUP, alias of IPV6_ADD_MEMBERSHIP |
-| IP_ADD_SOURCE_MEMBERSHIP | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | Equivalent to MCAST_JOIN_SOURCE_GROUP |
-| IP_DROP_MEMBERSHIP | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | Equivalent to MCAST_LEAVE_GROUP |
-| IPV6_LEAVE_GROUP | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | Equivalent to MCAST_LEAVE_GROUP, alias of IPV6_DROP_MEMBERSHIP |
-| IP_DROP_SOURCE_MEMBERSHIP | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | Equivalent to MCAST_LEAVE_SOURCE_GROUP |
-| IP_MULTICAST_IF | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_MULTICAST_IF | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_MULTICAST_LOOP | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_MULTICAST_LOOP | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_MULTICAST_TTL | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_MULTICAST_HOPS | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_BLOCK_SOURCE | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | Equivalent to MCAST_BLOCK_SOURCE |
-| IP_UNBLOCK_SOURCE | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | Equivalent to MCAST_UNBLOCK_SOURCE |
-| IP_MSFILTER | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_INFO | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | |
-| TCP_FASTOPEN | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | |
-| TCP_FASTOPEN_CONNECT | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | |
-| TCP_FASTOPEN_KEY | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_FASTOPEN_NO_COOKIE | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_FASTOPEN_FORCE_ENABLE | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_FASTOPEN_FORCE_HEURISTICS | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_BINDTODEVICE | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | |
-| SO_BINDTOIFINDEX | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_BOUND_IF | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_BOUND_IF | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_IPSEC_POLICY | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_MINTTL | ❔ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_MINHOPCOUNT | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_MTU | ❔ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_MTU | ❔ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_PATHMTU | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RECVPATHMTU | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_USE_MIN_MTU | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_OPTIONS | ❔ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | |
-| IP_RECVOPTS | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_RECVORIGDSTADDR | ❔ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | IP_ORIGDSTADDR on FreeBSD |
-| IP_RECVRETOPTS | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | Alias of IP_RETOPTS |
-| IP_UNICAST_IF | ❔ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | |
-| IPV6_UNICAST_IF | ❔ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | |
-| IPV6_2292DSTOPTS | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_2292HOPLIMIT | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_2292HOPOPTS | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_2292PKTINFO | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_2292PKTOPTIONS | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_2292RTHDR | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_AUTOFLOWLABEL | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_CHECKSUM | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_DSTOPTS | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_HOPOPTS | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_IPSEC_POLICY | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_NEXTHOP | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RECVDSTOPTS | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RECVHOPOPTS | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RECVORIGDSTADDR | ❔ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | IPV6_ORIGDSTADDR on FreeBSD |
-| IPV6_RECVRTHDR | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RTHDR | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RTHDRDSTOPTS | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_TIMESTAMP | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_CONGESTION | ❔ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_MAXSEG | ❔ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_MD5SIG | ❔ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_NOTSENT_LOWAT | ❔ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| UDP_ENCAP | ❔ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_CHECKSUM | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_FREEBIND | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_MULTICAST_ALL | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_NODEFRAG | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_PASSSEC | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_PKTOPTIONS | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_RECVERR | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_RECVERR_RFC4884 | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_RECVFRAGSIZE | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_ROUTER_ALERT | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_TRANSPARENT | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | |
-| IP_XFRM_POLICY | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_ADDR_PREFERENCES | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_ADDRFORM | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_AUTHHDR | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_FLOWINFO | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_FLOWINFO_SEND | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_FLOWLABEL_MGR | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_FREEBIND | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_JOIN_ANYCAST | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_LEAVE_ANYCAST | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_MULTICAST_ALL | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RECVERR | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RECVERR_RFC4884 | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RECVFRAGSIZE | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_ROUTER_ALERT | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_ROUTER_ALERT_ISOLATE | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_TRANSPARENT | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | |
-| IPV6_XFRM_POLICY | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_ATTACH_FILTER | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_BPF_EXTENSIONS | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_BSDCOMPAT | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_BUF_LOCK | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_BUSY_POLL | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_BUSY_POLL_BUDGET | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_CNX_ADVICE | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_COOKIE | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | |
-| SO_DETACH_FILTER | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_INCOMING_CPU | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_INCOMING_NAPI_ID | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_LOCK_FILTER | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_MARK | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_MEMINFO | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NETNS_COOKIE | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NO_CHECK | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NOFCS | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_PASSCRED | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_PASSSEC | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_PEEK_OFF | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_PEERCRED | ⛔ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | Out of scope; UNIX domain sockets only. |
-| SO_PEERNAME | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_PEERSEC | ⛔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | Out of scope; UNIX domain sockets only. |
-| SO_PREFER_BUSY_POLL | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_PRIORITY | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_RCVBUFFORCE | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_RCVMARK | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_RESERVE_MEM | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_RXQ_OVFL | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_SELECT_ERR_QUEUE | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_SNDBUFFORCE | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_TIMESTAMPING | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_TIMESTAMPNS | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_TXREHASH | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_TXTIME | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_WIFI_STATUS | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_ZEROCOPY | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_CC_INFO | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_CM_INQ | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_DEFER_ACCEPT | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | |
-| TCP_INQ | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_LINGER2 | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_MD5SIG_EXT | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_QUEUE_SEQ | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_QUICKACK | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | |
-| TCP_REPAIR | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_REPAIR_OPTIONS | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_REPAIR_QUEUE | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_REPAIR_WINDOW | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_SAVE_SYN | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_SAVED_SYN | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_SYNCNT | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_THIN_DUPACK | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_THIN_LINEAR_TIMEOUTS | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_TIMESTAMP | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_TX_DELAY | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_ULP | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_USER_TIMEOUT | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_WINDOW_CLAMP | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_ZEROCOPY_RECEIVE | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| UDP_CORK | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| UDP_GRO | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | |
-| UDP_NO_CHECK6_RX | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| UDP_NO_CHECK6_TX | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| UDP_SEGMENT | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | |
-| IP_ADD_IFLIST | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_DEL_IFLIST | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_GET_IFLIST | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_IFLIST | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_ORIGINAL_ARRIVAL_IF | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_ORIGINAL_ARRIVAL_IF | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_RECEIVE_BROADCAST | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_USER_MTU | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_WFP_REDIRECT_CONTEXT | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_WFP_REDIRECT_RECORDS | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_ADD_IFLIST | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_DEL_IFLIST | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_GET_IFLIST | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_IFLIST | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_PROTECTION_LEVEL | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RECVIF | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_USER_MTU | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_BSP_STATE | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_CONDITIONAL_ACCEPT | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_CONNDATA | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_CONNDATALEN | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_CONNECT_TIME | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_CONNOPT | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_CONNOPTLEN | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_DISCDATA | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_DISCDATALEN | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_DISCOPT | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_DISCOPTLEN | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_GROUP_ID | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_GROUP_PRIORITY | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_MAX_MSG_SIZE | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_MAXDG | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_MAXPATHDG | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_OPENTYPE | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_PAUSE_ACCEPT | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_PORT_SCALABILITY | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_PROTOCOL_INFO | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_PROTOCOL_INFOA | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_PROTOCOL_INFOW | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_RANDOMIZE_PORT | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_REUSE_MULTICASTPORT | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_REUSE_UNICASTPORT | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_UPDATE_ACCEPT_CONTEXT | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_UPDATE_CONNECT_CONTEXT | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_BSDURGENT | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_EXPEDITED_1122 | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_FAIL_CONNECT_ON_ICMP_ERROR | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_ICMP_ERROR_INFO | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_MAXRT | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_TIMESTAMPS | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| UDP_CHECKSUM_COVERAGE | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| UDP_NOCHECKSUM | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| UDP_RECV_MAX_COALESCED_SIZE | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | |
-| UDP_SEND_MSG_SIZE | ❔ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | |
-| IP_FAITH | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_MULTICAST_IFINDEX | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_NAT__XXX | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_STRIPHDR | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_TRAFFIC_MGT_BACKGROUND | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_3542DSTOPTS | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_3542HOPLIMIT | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_3542HOPOPTS | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_3542NEXTHOP | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_3542PKTINFO | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_3542RTHDR | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RTHDR_LOOSE | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RTHDR_STRICT | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RTHDR_TYPE_0 | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_AWDL_UNRESTRICTED | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_CFIL_SOCK_ID | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_DELEGATED | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_DELEGATED_UUID | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_DONTTRUNC | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_EXECPATH | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_EXTENDED_BK_IDLE | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_FLOW_DIVERT_TOKEN | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_FLUSH | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_INTCOPROC_ALLOW | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_LINGER_SEC | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_MARK_CELLFALLBACK | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_MPKL_SEND_INFO | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NECP_ATTRIBUTES | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NECP_CLIENTUUID | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NECP_LISTENUUID | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NET_SERVICE_TYPE | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NETSVC_MARKING_LEVEL | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NKE | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NOADDRERR | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NOAPNFALLBK | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NOTIFYCONFLICT | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NOWAKEFROMSLEEP | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NP_EXTENSIONS | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NREAD | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NUMRCVPKT | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NWRITE | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_OPPORTUNISTIC | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_QOSMARKING_POLICY_OVERRIDE | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_RANDOMPORT | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_RECV_ANYIF | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_RESTRICTIONS | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_REUSESHAREUID | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_STATISTICS_EVENT | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_TC_NET_SERVICE_OFFSET | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_TC_NETSVC_SIG | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_TIMESTAMP_CONTINUOUS | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_TIMESTAMP_MONOTONIC | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_TRAFFIC_MGT_BACKGROUND | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_UPCALLCLOSEWAIT | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_WANT_KEV_SOCKET_CLOSED | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_WANTMORE | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_WANTOOBFLAG | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| MPTCP_ALTERNATE_PORT | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| MPTCP_EXPECTED_PROGRESS_TARGET | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| MPTCP_FORCE_ENABLE | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| MPTCP_FORCE_VERSION | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| MPTCP_SERVICE_TYPE | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| PERSIST_TIMEOUT | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_ADAPTIVE_READ_TIMEOUT | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_ADAPTIVE_WRITE_TIMEOUT | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_CONNECTION_INFO | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_CONNECTIONTIMEOUT | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_DISABLE_BLACKHOLE_DETECTION | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_ECN_MODE | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_ENABLE_ECN | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_KEEPALIVE_OFFLOAD | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_MEASURE_BW_BURST | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_MEASURE_SND_BW | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_NOTIFY_ACKNOWLEDGEMENT | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_NOTIMEWAIT | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_PEER_PID | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_RXT_CONNDROPTIME | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_RXT_FINDROP | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_RXT_MINIMUM_TIMEOUT | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_SENDMOREACKS | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| UDP_KEEPALIVE_OFFLOAD | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| UDP_NOCKSUM | ❔ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| ICMP6_FILTER | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_MULTICAST_VIF | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_PORTRANGE | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_RSVP_OFF | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_RSVP_ON | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_RSVP_VIF_OFF | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_RSVP_VIF_ON | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_2292NEXTHOP | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_BINDV6ONLY | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_FAITH | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_MSFILTER | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_PKTOPTIONS | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_PORTRANGE | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_PREFER_TEMPADDR | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RECVRTHDRDSTOPTS | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_ACCEPTFILTER | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | |
-| SO_LABEL | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NOSIGPIPE | ⛔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | Not supported, see [SIGPIPE](#sigpipe) |
-| SO_PEERLABEL | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_USELOOPBACK | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_NOOPT | ❔ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_BINDANY | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | |
-| IP_BINDMULTI | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_FLOWID | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_FLOWTYPE | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_MAX_MEMBERSHIPS | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_ONESBCAST | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_RECVFLOWID | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_RECVRSSBUCKETID | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_RSS_LISTEN_BUCKET | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_RSSBUCKETID | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IP_SENDSRCADDR | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | |
-| IP_VLAN_PCP | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_AUTH_LEVEL | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_BINDANY | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | |
-| IPV6_BINDMULTI | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_ESP_NETWORK_LEVEL | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_ESP_TRANS_LEVEL | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_FLOWID | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_FLOWTYPE | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_IPCOMP_LEVEL | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RECVFLOWID | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RECVRSSBUCKETID | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RSS_LISTEN_BUCKET | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_RSSBUCKETID | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| IPV6_VLAN_PCP | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_BINTIME | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_LISTENINCQLEN | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_LISTENQLEN | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | |
-| SO_LISTENQLIMIT | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_MAX_PACING_RATE | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NO_DDP | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_NO_OFFLOAD | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_RERROR | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_SETFIB | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | |
-| SO_TS_BINTIME | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_TS_CLOCK | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_TS_CLOCK_MAX | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_TS_DEFAULT | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_TS_MONOTONIC | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_TS_REALTIME | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_TS_REALTIME_MICRO | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| SO_USER_COOKIE | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_CCALGOOPT | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_DEFER_OPTIONS | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_DELACK | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_FAST_RSM_HACK | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_FIN_IS_RST | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_FUNCTION_ALIAS | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_FUNCTION_BLK | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_HDWR_RATE_CAP | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_HDWR_UP_ONLY | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_IDLE_REDUCE | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_IWND_NB | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_IWND_NSEG | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_KEEPINIT | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_LOG | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_LOG_LIMIT | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_LOG_TAG | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_LOGBUF | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_LOGDUMP | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_LOGDUMPID | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_LOGID | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_LOGID_CNT | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_LRD | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_MAXPEAKRATE | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_MAXUNACKTIME | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_PCAP_IN | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_PCAP_OUT | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_PERF_INFO | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_PROC_ACCOUNTING | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_REMOTE_UDP_ENCAPS_PORT | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_RXTLS_ENABLE | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_RXTLS_MODE | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_STATS | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_TXTLS_ENABLE | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_TXTLS_MODE | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_USE_CMP_ACKS | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-| TCP_USER_LOG | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
-
-
-
-
-
-
+Legend:
+- ✅ = Included in proposal.
+- ⛔ = Consciously decided _not_ to include in WASI. See notes for explanation.
+- ❔ = Not included (yet), for no particular reason.
+
+
+| | Option | Notes | Used/implemented by |
+|----| ---------------------------------|-----------------------------------------|---------------------|
+| ✅ | SO_DOMAIN
SO_PROTOCOL_INFO on Windows | [`tcp-socket::address-family`][tcp]
[`udp-socket::address-family`][udp] | linux, windows, freebsd, .net |
+| ✅ | SO_ACCEPTCONN | [`tcp-socket::is-listening`][tcp] | posix, linux, windows, macos, freebsd, .net |
+| ✅ | IPV6_V6ONLY | [`tcp-socket::(set-)ipv6-only`][tcp]
[`udp-socket::(set-)ipv6-only`][udp] | posix, linux, windows, macos, freebsd, jvm, .net, libuv, go, openssl, curl, msquic, exim |
+| ✅ | IP_TTL | [`tcp-socket::(set-)hop-limit`][tcp]
[`udp-socket::(set-)unicast-hop-limit`][udp] | linux, windows, macos, freebsd, jvm, .net, rust, libuv |
+| ✅ | IPV6_UNICAST_HOPS | [`tcp-socket::(set-)hop-limit`][tcp]
[`udp-socket::(set-)unicast-hop-limit`][udp] | posix, linux, windows, macos, freebsd, jvm, .net, libuv |
+| ✅ | SO_RCVBUF | [`tcp-socket::(set-)receive-buffer-size`][tcp]
[`udp-socket::(set-)receive-buffer-size`][udp] | posix, linux, windows, macos, freebsd, jvm, .net, libuv, go, nginx, msquic |
+| ✅ | SO_SNDBUF | [`tcp-socket::(set-)send-buffer-size`][tcp]
[`udp-socket::(set-)send-buffer-size`][udp] | posix, linux, windows, macos, freebsd, jvm, .net, libuv, go, nginx, curl |
+| ✅ | SO_KEEPALIVE | [`tcp-socket::(set-)keep-alive-enabled`][tcp] | posix, linux, windows, macos, freebsd, jvm, .net, libuv, go, openssl, nginx, curl, exim |
+| ✅ | TCP_KEEPIDLE
TCP_KEEPALIVE on MacOS | [`tcp-socket::(set-)keep-alive-idle-time`][tcp] | linux, windows, macos, freebsd, jvm, .net, libuv, go, nginx, curl |
+| ✅ | TCP_KEEPINTVL | [`tcp-socket::(set-)keep-alive-interval`][tcp] | linux, windows, macos, freebsd, jvm, .net, libuv, go, nginx, curl |
+| ✅ | TCP_KEEPCNT | [`tcp-socket::(set-)keep-alive-count`][tcp] | linux, windows, macos, freebsd, jvm, .net, libuv, nginx |
+| ✅ | SO_REUSEADDR for TCP | Enabled by default. See [`tcp-socket::bind`][tcp] | posix, linux, windows, macos, freebsd, jvm, .net, libuv, go, openssl, nginx, curl, exim |
+| ⛔ | SO_ERROR | Not necessary. WIT has (or will have) native support for asynchronous results. | posix, linux, windows, macos, freebsd, jvm, .net, rust, libuv, go, openssl, nginx, curl, msquic |
+| ⛔ | SO_TYPE | Can be inferred from the socket resource type. | posix, linux, windows, macos, freebsd, jvm, .net, go, openssl, nginx, curl, exim |
+| ⛔ | SO_PROTOCOL
SO_PROTOCOL_INFO on Windows | Can be inferred from the socket resource type. | linux, windows, freebsd, .net, exim |
+| ⛔ | IP_HDRINCL | Out of scope. Raw sockets only. | linux, windows, macos, freebsd, .net |
+| ⛔ | IPV6_HDRINCL | Out of scope. Raw sockets only. | linux, windows, .net |
+| ⛔ | SO_RCVTIMEO | WASI sockets are always non-blocking. Timeouts can be recreated in libc. | posix, linux, windows, macos, freebsd, jvm, .net, rust, openssl, curl |
+| ⛔ | SO_SNDTIMEO | WASI sockets are always non-blocking. Timeouts can be recreated in libc. | posix, windows, macos, freebsd, .net, rust, openssl |
+| ⛔ | SO_OOBINLINE | Not supported, see [OOB](#oob) | posix, linux, windows, macos, freebsd, jvm, .net |
+| ⛔ | SO_PEERCRED | Out of scope; UNIX domain sockets only. | linux, jvm, .net |
+| ⛔ | SO_PEERSEC | Out of scope; UNIX domain sockets only. | linux |
+| ⛔ | SO_NOSIGPIPE | Not supported, see [SIGPIPE](#sigpipe) | macos, freebsd, libuv, curl |
+| ❔ | IP_RECVPKTINFO
IP_PKTINFO on Linux & Windows
IP_RECVDSTADDR+IP_RECVIF on MacOS & FreeBSD | [#77][77] | linux, windows, macos, freebsd, .net, openssl, nginx, msquic |
+| ❔ | IPV6_RECVPKTINFO
IPV6_PKTINFO on Windows | [#77][77] | linux, windows, macos, freebsd, .net, openssl, nginx, msquic |
+| ❔ | IP_RECVTOS | [#78][78] | linux, windows, macos, freebsd, msquic |
+| ❔ | IPV6_RECVTCLASS | [#78][78] | linux, windows, macos, freebsd, msquic |
+| ❔ | IP_TOS | [#78][78] | linux, windows, macos, freebsd, jvm, .net, exim |
+| ❔ | IPV6_TCLASS | [#78][78] | linux, macos, freebsd, jvm, .net, exim |
+| ❔ | TCP_ECN_MODE | [#78][78] | macos |
+| ❔ | TCP_ENABLE_ECN | [#78][78] | macos |
+| ❔ | SO_LINGER | [#80][80] | posix, linux, windows, macos, freebsd, jvm, .net, rust, libuv, go, openssl, nginx |
+| ❔ | IP_DONTFRAG
IP_DONTFRAGMENT on Windows | [#79][79] | linux, windows, macos, freebsd, jvm, .net, openssl, nginx, msquic |
+| ❔ | IPV6_DONTFRAG | [#79][79] | linux, windows, macos, freebsd, jvm, .net, openssl, nginx, msquic |
+| ❔ | IP_MTU_DISCOVER | [#79][79] | linux, windows, openssl, nginx, curl, msquic |
+| ❔ | IPV6_MTU_DISCOVER | [#79][79] | linux, windows, openssl, nginx, curl, msquic |
+| ❔ | TCP_NODELAY | [#75][75] | posix, linux, windows, macos, freebsd, jvm, .net, rust, libuv, go, openssl, nginx, curl, exim |
+| ❔ | TCP_CORK
TCP_NOPUSH on MacOS & FreeBSD | [#75][75] | linux, macos, freebsd, nginx, exim |
+| ❔ | SO_REUSEADDR for UDP | [#74][74] | posix, linux, windows, macos, freebsd, jvm, .net, libuv, go, openssl, nginx, curl, exim |
+| ❔ | SO_EXCLUSIVEADDRUSE | [#74][74] | windows |
+| ❔ | SO_RANDOMIZE_PORT | [#74][74] | windows |
+| ❔ | SO_RANDOMPORT | [#74][74] | macos |
+| ❔ | IP_BIND_ADDRESS_NO_PORT | [#74][74] | linux, nginx, curl |
+| ❔ | SO_PORT_SCALABILITY | [#74][74] | windows |
+| ❔ | SO_REUSE_UNICASTPORT | [#74][74] | windows, .net |
+| ❔ | SO_REUSEPORT | [#74][74] | linux, macos, freebsd, .net, libuv, go, nginx, msquic |
+| ❔ | SO_REUSEPORT_LB | [#74][74] | freebsd, nginx |
+| ❔ | SO_ATTACH_REUSEPORT_CBPF | [#74][74] | linux, msquic |
+| ❔ | SO_ATTACH_REUSEPORT_EBPF | [#74][74] | linux, nginx |
+| ❔ | SO_DETACH_REUSEPORT_BPF | [#74][74] | linux |
+| ❔ | TCP_REUSPORT_LB_NUMA | [#74][74] | freebsd |
+| ❔ | SO_INCOMING_CPU | [#74][74] | linux |
+| ❔ | SO_INCOMING_NAPI_ID | [#74][74] | linux, jvm |
+| ❔ | SO_BINDTODEVICE | [#74][74] | linux, libuv, go, curl |
+| ❔ | SO_BINDTOIFINDEX | [#74][74] | linux |
+| ❔ | IP_UNICAST_IF | [#74][74] | linux, windows, msquic |
+| ❔ | IPV6_UNICAST_IF | [#74][74] | linux, windows, msquic |
+| ❔ | IP_BOUND_IF | [#74][74] | macos |
+| ❔ | IPV6_BOUND_IF | [#74][74] | macos |
+| ❔ | IP_FREEBIND | [#74][74] | linux |
+| ❔ | IPV6_FREEBIND | [#74][74] | linux |
+| ❔ | IP_TRANSPARENT | [#74][74] | linux, nginx |
+| ❔ | IPV6_TRANSPARENT | [#74][74] | linux, nginx |
+| ❔ | IP_BINDANY | [#74][74] | freebsd, nginx |
+| ❔ | IPV6_BINDANY | [#74][74] | freebsd, nginx |
+| ❔ | SO_REUSE_MULTICASTPORT | [#74][74], [#73][73] | windows |
+| ❔ | SO_BROADCAST | [#73][73] | posix, linux, windows, macos, freebsd, jvm, .net, rust, libuv, go |
+| ❔ | MCAST_JOIN_GROUP
Supersedes: IP_ADD_MEMBERSHIP
Supersedes: IPV6_JOIN_GROUP
Supersedes: IPV6_ADD_MEMBERSHIP | [#73][73] | posix, linux, windows, macos, freebsd, jvm, .net, rust, libuv, go |
+| ❔ | MCAST_LEAVE_GROUP
Supersedes: IP_DROP_MEMBERSHIP
Supersedes: IPV6_LEAVE_GROUP
Supersedes: IPV6_DROP_MEMBERSHIP | [#73][73] | posix, linux, windows, macos, freebsd, jvm, .net, rust, libuv |
+| ❔ | MCAST_JOIN_SOURCE_GROUP
Supersedes: IP_ADD_SOURCE_MEMBERSHIP | [#73][73] | linux, windows, macos, freebsd, jvm, .net, libuv |
+| ❔ | MCAST_LEAVE_SOURCE_GROUP
Supersedes: IP_DROP_SOURCE_MEMBERSHIP | [#73][73] | linux, windows, macos, freebsd, jvm, .net, libuv |
+| ❔ | MCAST_BLOCK_SOURCE
Supersedes: IP_BLOCK_SOURCE | [#73][73] | linux, windows, macos, freebsd, jvm, .net |
+| ❔ | MCAST_UNBLOCK_SOURCE
Supersedes: IP_UNBLOCK_SOURCE | [#73][73] | linux, windows, macos, freebsd, jvm, .net |
+| ❔ | IP_MSFILTER | [#73][73] | linux, windows, macos, freebsd |
+| ❔ | IPV6_MSFILTER | [#73][73] | macos, freebsd |
+| ❔ | IP_MULTICAST_IF | [#73][73] | linux, windows, macos, freebsd, jvm, .net, libuv, go |
+| ❔ | IPV6_MULTICAST_IF | [#73][73] | posix, linux, windows, macos, freebsd, jvm, .net, libuv, go |
+| ❔ | IP_MULTICAST_LOOP | [#73][73] | linux, windows, macos, freebsd, jvm, .net, rust, libuv, go |
+| ❔ | IPV6_MULTICAST_LOOP | [#73][73] | posix, linux, windows, macos, freebsd, jvm, .net, rust, libuv, go |
+| ❔ | IP_MULTICAST_TTL | [#73][73] | linux, windows, macos, freebsd, jvm, .net, rust, libuv |
+| ❔ | IPV6_MULTICAST_HOPS | [#73][73] | posix, linux, windows, macos, freebsd, jvm, .net, libuv |
+| ❔ | IP_MULTICAST_ALL | [#73][73] | linux |
+| ❔ | IPV6_MULTICAST_ALL | [#73][73] | linux |
+| ❔ | IP_MULTICAST_IFINDEX | [#73][73] | macos |
+| ❔ | TCP_FASTOPEN | [#81][81] | linux, windows, macos, freebsd, openssl, nginx, exim |
+| ❔ | TCP_FASTOPEN_CONNECT | [#81][81] | linux, openssl, curl, exim |
+| ❔ | TCP_FASTOPEN_KEY | [#81][81] | linux |
+| ❔ | TCP_FASTOPEN_NO_COOKIE | [#81][81] | linux |
+| ❔ | TCP_FASTOPEN_FORCE_ENABLE | [#81][81] | macos |
+| ❔ | TCP_FASTOPEN_FORCE_HEURISTICS | [#81][81] | macos |
+| ❔ | SO_SNDLOWAT | Not usefully implemented on Linux & Windows. | posix, linux, macos, freebsd, .net, nginx |
+| ❔ | SO_RCVLOWAT | | posix, linux, macos, freebsd, .net |
+| ❔ | IP_RECVTTL | | linux, windows, macos, freebsd |
+| ❔ | IPV6_RECVHOPLIMIT | | linux, macos, freebsd |
+| ❔ | SO_DEBUG | | posix, linux, windows, macos, freebsd, .net |
+| ❔ | SO_DONTROUTE | | posix, linux, windows, macos, freebsd, .net |
+| ❔ | TCP_INFO
via ioctl on Windows | | linux, windows, macos, freebsd, nginx, exim |
+| ❔ | IP_IPSEC_POLICY | | linux, macos, freebsd |
+| ❔ | IP_MINTTL | | linux, freebsd |
+| ❔ | IPV6_MINHOPCOUNT | | linux |
+| ❔ | IP_MTU | | linux, windows, openssl |
+| ❔ | IPV6_MTU | | linux, windows, openssl |
+| ❔ | IPV6_PATHMTU | | linux, macos, freebsd |
+| ❔ | IPV6_RECVPATHMTU | | linux, macos, freebsd |
+| ❔ | IPV6_USE_MIN_MTU | | linux, macos, freebsd |
+| ❔ | IP_OPTIONS | | linux, windows, macos, freebsd, .net, exim |
+| ❔ | IP_RECVOPTS | | linux, macos, freebsd |
+| ❔ | IP_RECVORIGDSTADDR
IP_ORIGDSTADDR on FreeBSD | | linux, freebsd |
+| ❔ | IP_RECVRETOPTS
Alias: IP_RETOPTS | | linux, macos, freebsd |
+| ❔ | IPV6_2292DSTOPTS | | linux, macos, freebsd |
+| ❔ | IPV6_2292HOPLIMIT | | linux, macos, freebsd |
+| ❔ | IPV6_2292HOPOPTS | | linux, macos, freebsd |
+| ❔ | IPV6_2292PKTINFO | | linux, macos, freebsd |
+| ❔ | IPV6_2292PKTOPTIONS | | linux, macos, freebsd |
+| ❔ | IPV6_2292RTHDR | | linux, macos, freebsd |
+| ❔ | IPV6_AUTOFLOWLABEL | | linux, macos, freebsd |
+| ❔ | IPV6_CHECKSUM | | linux, macos, freebsd |
+| ❔ | IPV6_DSTOPTS | | linux, macos, freebsd |
+| ❔ | IPV6_HOPOPTS | | linux, macos, freebsd |
+| ❔ | IPV6_IPSEC_POLICY | | linux, macos, freebsd |
+| ❔ | IPV6_NEXTHOP | | linux, macos, freebsd |
+| ❔ | IPV6_RECVDSTOPTS | | linux, macos, freebsd |
+| ❔ | IPV6_RECVHOPOPTS | | linux, macos, freebsd |
+| ❔ | IPV6_RECVORIGDSTADDR
IPV6_ORIGDSTADDR on FreeBSD | | linux, freebsd |
+| ❔ | IPV6_RECVRTHDR | | linux, macos, freebsd |
+| ❔ | IPV6_RTHDR | | linux, macos, freebsd |
+| ❔ | IPV6_RTHDRDSTOPTS | | linux, macos, freebsd |
+| ❔ | SO_TIMESTAMP | | linux, macos, freebsd |
+| ❔ | TCP_CONGESTION | | linux, freebsd |
+| ❔ | TCP_MAXSEG | | linux, macos, freebsd |
+| ❔ | TCP_MD5SIG | | linux, freebsd |
+| ❔ | TCP_NOTSENT_LOWAT | | linux, macos |
+| ❔ | UDP_ENCAP | | linux, freebsd |
+| ❔ | IP_CHECKSUM | | linux |
+| ❔ | IP_NODEFRAG | | linux |
+| ❔ | IP_PASSSEC | | linux |
+| ❔ | IP_PKTOPTIONS | | linux |
+| ❔ | IP_RECVERR | | linux, libuv |
+| ❔ | IP_RECVERR_RFC4884 | | linux |
+| ❔ | IP_RECVFRAGSIZE | | linux |
+| ❔ | IP_ROUTER_ALERT | | linux |
+| ❔ | IP_XFRM_POLICY | | linux |
+| ❔ | IPV6_ADDR_PREFERENCES | | linux |
+| ❔ | IPV6_ADDRFORM | | linux |
+| ❔ | IPV6_AUTHHDR | | linux |
+| ❔ | IPV6_FLOWINFO | | linux |
+| ❔ | IPV6_FLOWINFO_SEND | | linux |
+| ❔ | IPV6_FLOWLABEL_MGR | | linux |
+| ❔ | IPV6_JOIN_ANYCAST | | linux |
+| ❔ | IPV6_LEAVE_ANYCAST | | linux |
+| ❔ | IPV6_RECVERR | | linux, libuv |
+| ❔ | IPV6_RECVERR_RFC4884 | | linux |
+| ❔ | IPV6_RECVFRAGSIZE | | linux |
+| ❔ | IPV6_ROUTER_ALERT | | linux |
+| ❔ | IPV6_ROUTER_ALERT_ISOLATE | | linux |
+| ❔ | IPV6_XFRM_POLICY | | linux |
+| ❔ | SO_ATTACH_FILTER | | linux |
+| ❔ | SO_BPF_EXTENSIONS | | linux |
+| ❔ | SO_BSDCOMPAT | | linux |
+| ❔ | SO_BUF_LOCK | | linux |
+| ❔ | SO_BUSY_POLL | | linux |
+| ❔ | SO_BUSY_POLL_BUDGET | | linux |
+| ❔ | SO_CNX_ADVICE | | linux |
+| ❔ | SO_COOKIE | | linux, nginx |
+| ❔ | SO_DETACH_FILTER | | linux |
+| ❔ | SO_LOCK_FILTER | | linux |
+| ❔ | SO_MARK | | linux |
+| ❔ | SO_MEMINFO | | linux |
+| ❔ | SO_NETNS_COOKIE | | linux |
+| ❔ | SO_NO_CHECK | | linux |
+| ❔ | SO_NOFCS | | linux |
+| ❔ | SO_PASSCRED | | linux |
+| ❔ | SO_PASSSEC | | linux |
+| ❔ | SO_PEEK_OFF | | linux |
+| ❔ | SO_PEERNAME | | linux |
+| ❔ | SO_PREFER_BUSY_POLL | | linux |
+| ❔ | SO_PRIORITY | | linux |
+| ❔ | SO_RCVBUFFORCE | | linux |
+| ❔ | SO_RCVMARK | | linux |
+| ❔ | SO_RESERVE_MEM | | linux |
+| ❔ | SO_RXQ_OVFL | | linux |
+| ❔ | SO_SELECT_ERR_QUEUE | | linux |
+| ❔ | SO_SNDBUFFORCE | | linux |
+| ❔ | SO_TIMESTAMPING | | linux |
+| ❔ | SO_TIMESTAMPNS | | linux |
+| ❔ | SO_TXREHASH | | linux |
+| ❔ | SO_TXTIME | | linux |
+| ❔ | SO_WIFI_STATUS | | linux |
+| ❔ | SO_ZEROCOPY | | linux |
+| ❔ | TCP_CC_INFO | | linux |
+| ❔ | TCP_CM_INQ | | linux |
+| ❔ | TCP_DEFER_ACCEPT | | linux, nginx |
+| ❔ | TCP_INQ | | linux |
+| ❔ | TCP_LINGER2 | | linux |
+| ❔ | TCP_MD5SIG_EXT | | linux |
+| ❔ | TCP_QUEUE_SEQ | | linux |
+| ❔ | TCP_QUICKACK | | linux, jvm, exim |
+| ❔ | TCP_REPAIR | | linux |
+| ❔ | TCP_REPAIR_OPTIONS | | linux |
+| ❔ | TCP_REPAIR_QUEUE | | linux |
+| ❔ | TCP_REPAIR_WINDOW | | linux |
+| ❔ | TCP_SAVE_SYN | | linux |
+| ❔ | TCP_SAVED_SYN | | linux |
+| ❔ | TCP_SYNCNT | | linux |
+| ❔ | TCP_THIN_DUPACK | | linux |
+| ❔ | TCP_THIN_LINEAR_TIMEOUTS | | linux |
+| ❔ | TCP_TIMESTAMP | | linux |
+| ❔ | TCP_TX_DELAY | | linux |
+| ❔ | TCP_ULP | | linux |
+| ❔ | TCP_USER_TIMEOUT | | linux |
+| ❔ | TCP_WINDOW_CLAMP | | linux |
+| ❔ | TCP_ZEROCOPY_RECEIVE | | linux |
+| ❔ | UDP_CORK | | linux |
+| ❔ | UDP_GRO | | linux, msquic |
+| ❔ | UDP_NO_CHECK6_RX | | linux |
+| ❔ | UDP_NO_CHECK6_TX | | linux |
+| ❔ | UDP_SEGMENT | | linux, nginx |
+| ❔ | IP_ADD_IFLIST | | windows |
+| ❔ | IP_DEL_IFLIST | | windows |
+| ❔ | IP_GET_IFLIST | | windows |
+| ❔ | IP_IFLIST | | windows |
+| ❔ | IP_ORIGINAL_ARRIVAL_IF | | windows |
+| ❔ | IP_ORIGINAL_ARRIVAL_IF | | windows |
+| ❔ | IP_RECEIVE_BROADCAST | | windows |
+| ❔ | IP_USER_MTU | | windows |
+| ❔ | IP_WFP_REDIRECT_CONTEXT | | windows |
+| ❔ | IP_WFP_REDIRECT_RECORDS | | windows |
+| ❔ | IPV6_ADD_IFLIST | | windows |
+| ❔ | IPV6_DEL_IFLIST | | windows |
+| ❔ | IPV6_GET_IFLIST | | windows |
+| ❔ | IPV6_IFLIST | | windows |
+| ❔ | IPV6_PROTECTION_LEVEL | | windows |
+| ❔ | IPV6_RECVIF | | windows |
+| ❔ | IPV6_USER_MTU | | windows |
+| ❔ | SO_BSP_STATE | | windows |
+| ❔ | SO_CONDITIONAL_ACCEPT | | windows |
+| ❔ | SO_CONNDATA | | windows |
+| ❔ | SO_CONNDATALEN | | windows |
+| ❔ | SO_CONNECT_TIME | | windows |
+| ❔ | SO_CONNOPT | | windows |
+| ❔ | SO_CONNOPTLEN | | windows |
+| ❔ | SO_DISCDATA | | windows |
+| ❔ | SO_DISCDATALEN | | windows |
+| ❔ | SO_DISCOPT | | windows |
+| ❔ | SO_DISCOPTLEN | | windows |
+| ❔ | SO_GROUP_ID | | windows |
+| ❔ | SO_GROUP_PRIORITY | | windows |
+| ❔ | SO_MAX_MSG_SIZE | | windows |
+| ❔ | SO_MAXDG | | windows |
+| ❔ | SO_MAXPATHDG | | windows |
+| ❔ | SO_OPENTYPE | | windows |
+| ❔ | SO_PAUSE_ACCEPT | | windows |
+| ❔ | SO_PROTOCOL_INFO | | windows |
+| ❔ | SO_PROTOCOL_INFOA | | windows |
+| ❔ | SO_PROTOCOL_INFOW | | windows |
+| ❔ | SO_UPDATE_ACCEPT_CONTEXT | | windows |
+| ❔ | SO_UPDATE_CONNECT_CONTEXT | | windows |
+| ❔ | TCP_BSDURGENT | | windows |
+| ❔ | TCP_EXPEDITED_1122 | | windows |
+| ❔ | TCP_FAIL_CONNECT_ON_ICMP_ERROR | | windows |
+| ❔ | TCP_ICMP_ERROR_INFO | | windows |
+| ❔ | TCP_MAXRT | | windows |
+| ❔ | TCP_TIMESTAMPS | | windows |
+| ❔ | UDP_CHECKSUM_COVERAGE | | windows |
+| ❔ | UDP_NOCHECKSUM | | windows |
+| ❔ | UDP_RECV_MAX_COALESCED_SIZE | | windows, msquic |
+| ❔ | UDP_SEND_MSG_SIZE | | windows, msquic |
+| ❔ | IP_FAITH | | macos |
+| ❔ | IP_NAT__XXX | | macos |
+| ❔ | IP_STRIPHDR | | macos |
+| ❔ | IP_TRAFFIC_MGT_BACKGROUND | | macos |
+| ❔ | IPV6_3542DSTOPTS | | macos |
+| ❔ | IPV6_3542HOPLIMIT | | macos |
+| ❔ | IPV6_3542HOPOPTS | | macos |
+| ❔ | IPV6_3542NEXTHOP | | macos |
+| ❔ | IPV6_3542PKTINFO | | macos |
+| ❔ | IPV6_3542RTHDR | | macos |
+| ❔ | IPV6_RTHDR_LOOSE | | macos |
+| ❔ | IPV6_RTHDR_STRICT | | macos |
+| ❔ | IPV6_RTHDR_TYPE_0 | | macos |
+| ❔ | SO_AWDL_UNRESTRICTED | | macos |
+| ❔ | SO_CFIL_SOCK_ID | | macos |
+| ❔ | SO_DELEGATED | | macos |
+| ❔ | SO_DELEGATED_UUID | | macos |
+| ❔ | SO_DONTTRUNC | | macos |
+| ❔ | SO_EXECPATH | | macos |
+| ❔ | SO_EXTENDED_BK_IDLE | | macos |
+| ❔ | SO_FLOW_DIVERT_TOKEN | | macos |
+| ❔ | SO_FLUSH | | macos |
+| ❔ | SO_INTCOPROC_ALLOW | | macos |
+| ❔ | SO_LINGER_SEC | | macos |
+| ❔ | SO_MARK_CELLFALLBACK | | macos |
+| ❔ | SO_MPKL_SEND_INFO | | macos |
+| ❔ | SO_NECP_ATTRIBUTES | | macos |
+| ❔ | SO_NECP_CLIENTUUID | | macos |
+| ❔ | SO_NECP_LISTENUUID | | macos |
+| ❔ | SO_NET_SERVICE_TYPE | | macos |
+| ❔ | SO_NETSVC_MARKING_LEVEL | | macos |
+| ❔ | SO_NKE | | macos |
+| ❔ | SO_NOADDRERR | | macos |
+| ❔ | SO_NOAPNFALLBK | | macos |
+| ❔ | SO_NOTIFYCONFLICT | | macos |
+| ❔ | SO_NOWAKEFROMSLEEP | | macos |
+| ❔ | SO_NP_EXTENSIONS | | macos |
+| ❔ | SO_NREAD | | macos |
+| ❔ | SO_NUMRCVPKT | | macos |
+| ❔ | SO_NWRITE | | macos |
+| ❔ | SO_OPPORTUNISTIC | | macos |
+| ❔ | SO_QOSMARKING_POLICY_OVERRIDE | | macos |
+| ❔ | SO_RECV_ANYIF | | macos |
+| ❔ | SO_RESTRICTIONS | | macos |
+| ❔ | SO_REUSESHAREUID | | macos |
+| ❔ | SO_STATISTICS_EVENT | | macos |
+| ❔ | SO_TC_NET_SERVICE_OFFSET | | macos |
+| ❔ | SO_TC_NETSVC_SIG | | macos |
+| ❔ | SO_TIMESTAMP_CONTINUOUS | | macos |
+| ❔ | SO_TIMESTAMP_MONOTONIC | | macos |
+| ❔ | SO_TRAFFIC_MGT_BACKGROUND | | macos |
+| ❔ | SO_UPCALLCLOSEWAIT | | macos |
+| ❔ | SO_WANT_KEV_SOCKET_CLOSED | | macos |
+| ❔ | SO_WANTMORE | | macos |
+| ❔ | SO_WANTOOBFLAG | | macos |
+| ❔ | MPTCP_ALTERNATE_PORT | | macos |
+| ❔ | MPTCP_EXPECTED_PROGRESS_TARGET | | macos |
+| ❔ | MPTCP_FORCE_ENABLE | | macos |
+| ❔ | MPTCP_FORCE_VERSION | | macos |
+| ❔ | MPTCP_SERVICE_TYPE | | macos |
+| ❔ | PERSIST_TIMEOUT | | macos |
+| ❔ | TCP_ADAPTIVE_READ_TIMEOUT | | macos |
+| ❔ | TCP_ADAPTIVE_WRITE_TIMEOUT | | macos |
+| ❔ | TCP_CONNECTION_INFO | | macos |
+| ❔ | TCP_CONNECTIONTIMEOUT | | macos |
+| ❔ | TCP_DISABLE_BLACKHOLE_DETECTION | | macos |
+| ❔ | TCP_KEEPALIVE_OFFLOAD | | macos |
+| ❔ | TCP_MEASURE_BW_BURST | | macos |
+| ❔ | TCP_MEASURE_SND_BW | | macos |
+| ❔ | TCP_NOTIFY_ACKNOWLEDGEMENT | | macos |
+| ❔ | TCP_NOTIMEWAIT | | macos |
+| ❔ | TCP_PEER_PID | | macos |
+| ❔ | TCP_RXT_CONNDROPTIME | | macos |
+| ❔ | TCP_RXT_FINDROP | | macos |
+| ❔ | TCP_RXT_MINIMUM_TIMEOUT | | macos |
+| ❔ | TCP_SENDMOREACKS | | macos |
+| ❔ | UDP_KEEPALIVE_OFFLOAD | | macos |
+| ❔ | UDP_NOCKSUM | | macos |
+| ❔ | ICMP6_FILTER | | macos, freebsd |
+| ❔ | IP_MULTICAST_VIF | | macos, freebsd |
+| ❔ | IP_PORTRANGE | | macos, freebsd, go |
+| ❔ | IP_RSVP_OFF | | macos, freebsd |
+| ❔ | IP_RSVP_ON | | macos, freebsd |
+| ❔ | IP_RSVP_VIF_OFF | | macos, freebsd |
+| ❔ | IP_RSVP_VIF_ON | | macos, freebsd |
+| ❔ | IPV6_2292NEXTHOP | | macos, freebsd |
+| ❔ | IPV6_BINDV6ONLY | | macos, freebsd |
+| ❔ | IPV6_FAITH | | macos, freebsd |
+| ❔ | IPV6_PKTOPTIONS | | macos, freebsd |
+| ❔ | IPV6_PORTRANGE | | macos, freebsd, go |
+| ❔ | IPV6_PREFER_TEMPADDR | | macos, freebsd |
+| ❔ | IPV6_RECVRTHDRDSTOPTS | | macos, freebsd |
+| ❔ | SO_ACCEPTFILTER | | macos, freebsd, nginx |
+| ❔ | SO_LABEL | | macos, freebsd |
+| ❔ | SO_PEERLABEL | | macos, freebsd |
+| ❔ | SO_USELOOPBACK | | macos, freebsd |
+| ❔ | TCP_NOOPT | | macos, freebsd |
+| ❔ | IP_BINDMULTI | | freebsd |
+| ❔ | IP_FLOWID | | freebsd |
+| ❔ | IP_FLOWTYPE | | freebsd |
+| ❔ | IP_MAX_MEMBERSHIPS | | freebsd |
+| ❔ | IP_ONESBCAST | | freebsd |
+| ❔ | IP_RECVFLOWID | | freebsd |
+| ❔ | IP_RECVRSSBUCKETID | | freebsd |
+| ❔ | IP_RSS_LISTEN_BUCKET | | freebsd |
+| ❔ | IP_RSSBUCKETID | | freebsd |
+| ❔ | IP_SENDSRCADDR | | freebsd, nginx |
+| ❔ | IP_VLAN_PCP | | freebsd |
+| ❔ | IPV6_AUTH_LEVEL | | freebsd |
+| ❔ | IPV6_BINDMULTI | | freebsd |
+| ❔ | IPV6_ESP_NETWORK_LEVEL | | freebsd |
+| ❔ | IPV6_ESP_TRANS_LEVEL | | freebsd |
+| ❔ | IPV6_FLOWID | | freebsd |
+| ❔ | IPV6_FLOWTYPE | | freebsd |
+| ❔ | IPV6_IPCOMP_LEVEL | | freebsd |
+| ❔ | IPV6_RECVFLOWID | | freebsd |
+| ❔ | IPV6_RECVRSSBUCKETID | | freebsd |
+| ❔ | IPV6_RSS_LISTEN_BUCKET | | freebsd |
+| ❔ | IPV6_RSSBUCKETID | | freebsd |
+| ❔ | IPV6_VLAN_PCP | | freebsd |
+| ❔ | SO_BINTIME | | freebsd |
+| ❔ | SO_LISTENINCQLEN | | freebsd |
+| ❔ | SO_LISTENQLEN | | freebsd, exim |
+| ❔ | SO_LISTENQLIMIT | | freebsd |
+| ❔ | SO_MAX_PACING_RATE | | freebsd |
+| ❔ | SO_NO_DDP | | freebsd |
+| ❔ | SO_NO_OFFLOAD | | freebsd |
+| ❔ | SO_RERROR | | freebsd |
+| ❔ | SO_SETFIB | | freebsd, nginx |
+| ❔ | SO_TS_BINTIME | | freebsd |
+| ❔ | SO_TS_CLOCK | | freebsd |
+| ❔ | SO_TS_CLOCK_MAX | | freebsd |
+| ❔ | SO_TS_DEFAULT | | freebsd |
+| ❔ | SO_TS_MONOTONIC | | freebsd |
+| ❔ | SO_TS_REALTIME | | freebsd |
+| ❔ | SO_TS_REALTIME_MICRO | | freebsd |
+| ❔ | SO_USER_COOKIE | | freebsd |
+| ❔ | TCP_CCALGOOPT | | freebsd |
+| ❔ | TCP_DEFER_OPTIONS | | freebsd |
+| ❔ | TCP_DELACK | | freebsd |
+| ❔ | TCP_FAST_RSM_HACK | | freebsd |
+| ❔ | TCP_FIN_IS_RST | | freebsd |
+| ❔ | TCP_FUNCTION_ALIAS | | freebsd |
+| ❔ | TCP_FUNCTION_BLK | | freebsd |
+| ❔ | TCP_HDWR_RATE_CAP | | freebsd |
+| ❔ | TCP_HDWR_UP_ONLY | | freebsd |
+| ❔ | TCP_IDLE_REDUCE | | freebsd |
+| ❔ | TCP_IWND_NB | | freebsd |
+| ❔ | TCP_IWND_NSEG | | freebsd |
+| ❔ | TCP_KEEPINIT | | freebsd |
+| ❔ | TCP_LOG | | freebsd |
+| ❔ | TCP_LOG_LIMIT | | freebsd |
+| ❔ | TCP_LOG_TAG | | freebsd |
+| ❔ | TCP_LOGBUF | | freebsd |
+| ❔ | TCP_LOGDUMP | | freebsd |
+| ❔ | TCP_LOGDUMPID | | freebsd |
+| ❔ | TCP_LOGID | | freebsd |
+| ❔ | TCP_LOGID_CNT | | freebsd |
+| ❔ | TCP_LRD | | freebsd |
+| ❔ | TCP_MAXPEAKRATE | | freebsd |
+| ❔ | TCP_MAXUNACKTIME | | freebsd |
+| ❔ | TCP_PCAP_IN | | freebsd |
+| ❔ | TCP_PCAP_OUT | | freebsd |
+| ❔ | TCP_PERF_INFO | | freebsd |
+| ❔ | TCP_PROC_ACCOUNTING | | freebsd |
+| ❔ | TCP_REMOTE_UDP_ENCAPS_PORT | | freebsd |
+| ❔ | TCP_RXTLS_ENABLE | | freebsd |
+| ❔ | TCP_RXTLS_MODE | | freebsd |
+| ❔ | TCP_STATS | | freebsd |
+| ❔ | TCP_TXTLS_ENABLE | | freebsd |
+| ❔ | TCP_TXTLS_MODE | | freebsd |
+| ❔ | TCP_USE_CMP_ACKS | | freebsd |
+| ❔ | TCP_USER_LOG | | freebsd |
+
+[17]: https://github.com/WebAssembly/wasi-sockets/issues/17
+[34]: https://github.com/WebAssembly/wasi-sockets/issues/34
+[73]: https://github.com/WebAssembly/wasi-sockets/issues/73
+[74]: https://github.com/WebAssembly/wasi-sockets/issues/74
+[75]: https://github.com/WebAssembly/wasi-sockets/issues/75
+[77]: https://github.com/WebAssembly/wasi-sockets/issues/77
+[78]: https://github.com/WebAssembly/wasi-sockets/issues/78
+[79]: https://github.com/WebAssembly/wasi-sockets/issues/79
+[80]: https://github.com/WebAssembly/wasi-sockets/issues/80
+[81]: https://github.com/WebAssembly/wasi-sockets/issues/81
[ip-name-lookup]: https://github.com/WebAssembly/wasi-sockets/blob/main/wit/ip-name-lookup.wit
[tcp-create-socket]: https://github.com/WebAssembly/wasi-sockets/blob/main/wit/tcp-create-socket.wit
[tcp]: https://github.com/WebAssembly/wasi-sockets/blob/main/wit/tcp.wit