IP_LOCAL_PORT_RANGE(2const)

NAME
IP_LOCAL_PORT_RANGE - default local port range

LIBRARY
Standard C library (libc, -lc)

SYNOPSIS
#include <netinet/in.h>  /* Definition of IP* constants */
#include <sys/socket.h>

int setsockopt(int sockfd, IPPROTO_IP, IP_LOCAL_PORT_RANGE,
               const uint32_t *val, sizeof(uint32_t));
int getsockopt(int sockfd, IPPROTO_IP, IP_LOCAL_PORT_RANGE,
               uint32_t *val, sizeof(uint32_t));

DESCRIPTION
Set or get the per-socket default local port range.

This option can be used to clamp down the global local port range, defined by the /proc/sys/net/ipv4/ip_local_port_range interface, for a given socket.

The option takes an uint32_t value with the high 16 bits set to the upper range bound, and the low 16 bits set to the lower range bound. Range bounds are inclusive. The 16-bit values should be in host byte order.

The lower bound has to be less than the upper bound when both bounds are not zero. Otherwise, setting the option fails with EINVAL.

If either bound is outside of the global local port range, or is zero, then that bound has no effect.

To reset the setting, pass zero as both the upper and the lower bound.

ERRORS
See IPPROTO_IP(2const). See setsockopt(2). See ip(7).

HISTORY
Linux 6.3.

SEE ALSO
IPPROTO_IP(2const), setsockopt(2), proc_sys_net_ipv4(5), ip(7)