blob: 49c3d47959637a8653067bc903fbcb8b0bb16e1e [file] [log] [blame]
Greg Kroah-Hartmane2be04c2017-11-01 15:09:13 +01001/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
David Howells61730c52012-10-09 09:47:14 +01002/*
3 * This file is subject to the terms and conditions of the GNU General Public
4 * License. See the file "COPYING" in the main directory of this archive
5 * for more details.
6 *
7 * Copyright (C) 1997, 1999, 2000, 2001 Ralf Baechle
8 * Copyright (C) 2000, 2001 Silicon Graphics, Inc.
9 */
10#ifndef _UAPI_ASM_SOCKET_H
11#define _UAPI_ASM_SOCKET_H
12
13#include <asm/sockios.h>
14
15/*
16 * For setsockopt(2)
17 *
18 * This defines are ABI conformant as far as Linux supports these ...
19 */
20#define SOL_SOCKET 0xffff
21
22#define SO_DEBUG 0x0001 /* Record debugging information. */
23#define SO_REUSEADDR 0x0004 /* Allow reuse of local addresses. */
24#define SO_KEEPALIVE 0x0008 /* Keep connections alive and send
25 SIGPIPE when they die. */
26#define SO_DONTROUTE 0x0010 /* Don't do local routing. */
27#define SO_BROADCAST 0x0020 /* Allow transmission of
Ralf Baechle70342282013-01-22 12:59:30 +010028 broadcast messages. */
David Howells61730c52012-10-09 09:47:14 +010029#define SO_LINGER 0x0080 /* Block on close of a reliable
30 socket to transmit pending data. */
31#define SO_OOBINLINE 0x0100 /* Receive out-of-band data in-band. */
Tom Herbert055dc212013-01-22 09:49:50 +000032#define SO_REUSEPORT 0x0200 /* Allow local address and port reuse. */
David Howells61730c52012-10-09 09:47:14 +010033
34#define SO_TYPE 0x1008 /* Compatible name for SO_STYLE. */
Ralf Baechle70342282013-01-22 12:59:30 +010035#define SO_STYLE SO_TYPE /* Synonym */
David Howells61730c52012-10-09 09:47:14 +010036#define SO_ERROR 0x1007 /* get error status and clear */
37#define SO_SNDBUF 0x1001 /* Send buffer size. */
38#define SO_RCVBUF 0x1002 /* Receive buffer. */
39#define SO_SNDLOWAT 0x1003 /* send low-water mark */
40#define SO_RCVLOWAT 0x1004 /* receive low-water mark */
41#define SO_SNDTIMEO 0x1005 /* send timeout */
Ralf Baechle70342282013-01-22 12:59:30 +010042#define SO_RCVTIMEO 0x1006 /* receive timeout */
David Howells61730c52012-10-09 09:47:14 +010043#define SO_ACCEPTCONN 0x1009
44#define SO_PROTOCOL 0x1028 /* protocol type */
45#define SO_DOMAIN 0x1029 /* domain/socket family */
46
47/* linux-specific, might as well be the same as on i386 */
48#define SO_NO_CHECK 11
49#define SO_PRIORITY 12
50#define SO_BSDCOMPAT 14
51
52#define SO_PASSCRED 17
53#define SO_PEERCRED 18
54
55/* Security levels - as per NRL IPv6 - don't actually do anything */
56#define SO_SECURITY_AUTHENTICATION 22
57#define SO_SECURITY_ENCRYPTION_TRANSPORT 23
58#define SO_SECURITY_ENCRYPTION_NETWORK 24
59
60#define SO_BINDTODEVICE 25
61
62/* Socket filtering */
Ralf Baechle70342282013-01-22 12:59:30 +010063#define SO_ATTACH_FILTER 26
64#define SO_DETACH_FILTER 27
Pavel Emelyanova8fc9272012-11-01 02:01:48 +000065#define SO_GET_FILTER SO_ATTACH_FILTER
David Howells61730c52012-10-09 09:47:14 +010066
Ralf Baechle70342282013-01-22 12:59:30 +010067#define SO_PEERNAME 28
David Howells61730c52012-10-09 09:47:14 +010068#define SO_TIMESTAMP 29
69#define SCM_TIMESTAMP SO_TIMESTAMP
70
71#define SO_PEERSEC 30
72#define SO_SNDBUFFORCE 31
73#define SO_RCVBUFFORCE 33
74#define SO_PASSSEC 34
75#define SO_TIMESTAMPNS 35
76#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
77
78#define SO_MARK 36
79
80#define SO_TIMESTAMPING 37
81#define SCM_TIMESTAMPING SO_TIMESTAMPING
82
Ralf Baechle70342282013-01-22 12:59:30 +010083#define SO_RXQ_OVFL 40
David Howells61730c52012-10-09 09:47:14 +010084
85#define SO_WIFI_STATUS 41
86#define SCM_WIFI_STATUS SO_WIFI_STATUS
87#define SO_PEEK_OFF 42
88
89/* Instruct lower device to use last 4-bytes of skb data as FCS */
90#define SO_NOFCS 43
91
Vincent Bernatd59577b2013-01-16 22:55:49 +010092#define SO_LOCK_FILTER 44
David Howells61730c52012-10-09 09:47:14 +010093
Keller, Jacob E7d4c04f2013-03-28 11:19:25 +000094#define SO_SELECT_ERR_QUEUE 45
95
Eliezer Tamir64b0dc52013-07-10 17:13:36 +030096#define SO_BUSY_POLL 46
Eliezer Tamirdafcc432013-06-14 16:33:57 +030097
Eric Dumazet62748f32013-09-24 08:20:52 -070098#define SO_MAX_PACING_RATE 47
99
Michal Sekletarea02f942014-01-17 17:09:45 +0100100#define SO_BPF_EXTENSIONS 48
101
Eric Dumazet2c8c56e2014-11-11 05:54:28 -0800102#define SO_INCOMING_CPU 49
103
Alexei Starovoitov89aa0752014-12-01 15:06:35 -0800104#define SO_ATTACH_BPF 50
105#define SO_DETACH_BPF SO_DETACH_FILTER
106
Craig Gallek538950a2016-01-04 17:41:47 -0500107#define SO_ATTACH_REUSEPORT_CBPF 51
108#define SO_ATTACH_REUSEPORT_EBPF 52
109
Tom Herberta87cb3e2016-02-24 10:02:52 -0800110#define SO_CNX_ADVICE 53
111
Francis Yan1c885802016-11-27 23:07:18 -0800112#define SCM_TIMESTAMPING_OPT_STATS 54
113
Josh Hunta2d133b2017-03-20 15:22:03 -0400114#define SO_MEMINFO 55
115
Sridhar Samudrala6d433902017-03-24 10:08:36 -0700116#define SO_INCOMING_NAPI_ID 56
Josh Hunta2d133b2017-03-20 15:22:03 -0400117
Chenbo Feng5daab9d2017-04-05 19:00:55 -0700118#define SO_COOKIE 57
119
David S. Miller1c4f6762017-05-21 23:13:37 -0400120#define SCM_TIMESTAMPING_PKTINFO 58
121
David Herrmann28b5ba2a2017-06-21 10:47:15 +0200122#define SO_PEERGROUPS 59
123
Willem de Bruijn76851d12017-08-03 16:29:40 -0400124#define SO_ZEROCOPY 60
125
David Howells61730c52012-10-09 09:47:14 +0100126#endif /* _UAPI_ASM_SOCKET_H */