Module nix::sys::socket::sockopt

source ·
Available on crate feature socket only.
Expand description

Socket options as used by setsockopt and getsockopt.

Structs§

  • Returns a value indicating whether or not this socket has been marked to accept connections with listen(2).
  • Bind this socket to a particular device like “eth0”.
  • Set or get the broadcast flag.
  • Set or get the don’t route flag.
  • Join a multicast group
  • If enabled, the kernel will not reserve an ephemeral port when binding socket with a port number of 0. The port will later be automatically chosen at connect time, in a way that allows sharing a source port as long as the 4-tuple is unique.
  • Leave a multicast group.
  • If enabled, this boolean option allows binding to an IP address that is nonlocal or does not (yet) exist.
  • Fetch the current system-estimated Path MTU.
  • Set or read a boolean integer argument that determines whether sent multicast packets should be looped back to the local sockets.
  • Set or read the time-to-live value of outgoing multicast packets for this socket.
  • Set or receive the Type-Of-Service (TOS) field that is sent with every IP packet originating from this socket
  • Setting this boolean option enables transparent proxying on this socket.
  • The recvmsg(2) call will return the destination IP address for a UDP datagram.
  • Pass an IP_PKTINFO ancillary message that contains a pktinfo structure that supplies some information about the incoming packet.
  • Enable extended reliable error message passing.
  • Set or retrieve the current time-to-live field that is used in every packet sent from this socket.
  • Join an IPv6 multicast group.
  • Set “don’t fragment packet” flag on the IPv6 packet.
  • Leave an IPv6 multicast group.
  • Set or read the hop limit value of outgoing IPv6 multicast packets for this socket.
  • The recvmsg(2) call will return the destination IP address for a UDP datagram.
  • Control receiving of asynchronous error options.
  • Set delivery of the IPV6_PKTINFO control message on incoming datagrams.
  • Traffic class associated with outgoing packets
  • Set the unicast hop limit for the socket.
  • The socket is restricted to sending and receiving IPv6 packets only.
  • Enable sending of keep-alive messages on connection-oriented sockets.
  • When enabled, a close(2) or shutdown(2) will not return until all queued messages for the socket have been successfully sent or the linger timeout has been reached.
  • Set the mark for each packet sent through this socket (similar to the netfilter MARK target but socket-based).
  • If this option is enabled, out-of-band data is directly placed into the receive data stream.
  • Enable or disable the receiving of the SCM_CREDENTIALS control message.
  • Return the credentials of the foreign process connected to this socket.
  • Set the protocol-defined priority for all packets to be sent on this socket
  • Sets or gets the maximum socket receive buffer in bytes.
  • Using this socket option, a privileged (CAP_NET_ADMIN) process can perform the same task as SO_RCVBUF, but the rmem_max limit can be overridden.
  • Specify the receiving timeout until reporting an error.
  • Enable or disable the receiving of the SO_TIMESTAMP control message.
  • Enable or disable the receiving of the SO_TIMESTAMPNS control message.
  • Enables local address reuse
  • Permits multiple AF_INET or AF_INET6 sockets to be bound to an identical socket address.
  • Indicates that an unsigned 32-bit value ancillary message (cmsg) should be attached to received skbs indicating the number of packets dropped by the socket since its creation.
  • Specify the sending timeout until reporting an error.
  • Sets or gets the maximum socket send buffer in bytes.
  • Using this socket option, a privileged (CAP_NET_ADMIN) process can perform the same task as SO_SNDBUF, but the wmem_max limit can be overridden.
  • Gets the socket type as an integer.
  • Get and clear the pending socket error.
  • This option allows the caller to set the TCP congestion control algorithm to be used, on a per-socket basis.
  • Enables TCP Fast Open (RFC 7413) on a connecting socket. If a fast open cookie is not available (first attempt to connect), connect syscall will behave as usual, except for internally trying to solicit a cookie from remote peer. When cookie is available, the next connect syscall will immediately succeed without actually establishing TCP connection. The connection establishment will be defered till the next write or sendmsg syscalls on the socket, allowing TCP prtocol to establish connection and send data in the same packets. Note: calling read right after connect without write on the socket will cause the blocking socket to be blocked forever.
  • The maximum number of keepalive probes TCP should send before dropping the connection.
  • The time (in seconds) the connection needs to remain idle before TCP starts sending keepalive probes
  • The time (in seconds) between individual keepalive probes.
  • The maximum segment size for outgoing TCP packets.
  • Under most circumstances, TCP sends data when it is presented; when outstanding data has not yet been acknowledged, it gathers small amounts of output to be sent in a single packet once an acknowledgement is received. For a small number of clients, such as window systems that send a stream of mouse events which receive no replies, this packetization may cause significant delays. The boolean option TCP_NODELAY defeats this algorithm.
  • Set the Kernel TLS read parameters on the TCP socket.
  • Set the Kernel TLS write parameters on the TCP socket.
  • Set the Upper Layer Protocol (ULP) on the TCP socket.
  • Specifies the maximum amount of time in milliseconds that transmitted data may remain unacknowledged before TCP will forcibly close the corresponding connection
  • Specifies exact type of timestamping information collected by the kernel Further reading
  • Configures the behavior of time-based transmission of packets, for use with the TxTime control message.

Enums§