---
name: "IP_OPTIONS"
section: "2const"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/IP_OPTIONS"
---

# IP\_OPTIONS(2const)

options to be sent with every packet

## NAME

IP\_OPTIONS - options to be sent with every packet

## 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\_OPTIONS,**                **const void** *buf***\[***size***\], size\_t** *size***);** **int getsockopt(int** *sockfd***, IPPROTO\_IP, IP\_OPTIONS,**                **void** *buf***\[***size***\], size\_t** *size***);**

## DESCRIPTION

Set or get the IP options to be sent with every packet from this socket.

The arguments are a pointer to a memory buffer containing the options and the buffer length.

The [**setsockopt**(2)](/setsockopt/2.md) call sets the IP options associated with a socket. The maximum option size for IPv4 is 40 bytes. See RFC 791 for the allowed options.

When the initial connection request packet for a **SOCK\_STREAM** socket contains IP options, the IP options will be set automatically to the options from the initial packet with routing headers reversed.

Incoming packets are not allowed to change options after the connection is established.

The processing of all incoming source routing options is disabled by default and can be enabled by using the *accept\_source\_route* */proc* interface. Other options like timestamps are still handled.

For datagram sockets, IP options can be set only by the local user.

Calling [**getsockopt**(2)](/getsockopt/2.md) with **IP\_OPTIONS** puts the current IP options used for sending into the supplied buffer.

## ERRORS

See [**IPPROTO\_IP**(2const)](/IPPROTO_IP/2const.md). See [**setsockopt**(2)](/setsockopt/2.md). See [**ip**(7)](/ip/7.md).

## HISTORY

Linux 2.0.

## SEE ALSO

[**IPPROTO\_IP**(2const)](/IPPROTO_IP/2const.md), [**setsockopt**(2)](/setsockopt/2.md), [**ip**(7)](/ip/7.md)
