blob: 882823bec153a69e91522757058d5edaeb4bc64a [file] [log] [blame]
David Howells61730c52012-10-09 09:47:14 +01001/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 1997, 1999, 2000, 2001 Ralf Baechle
7 * Copyright (C) 2000, 2001 Silicon Graphics, Inc.
8 */
9#ifndef _UAPI_ASM_SOCKET_H
10#define _UAPI_ASM_SOCKET_H
11
12#include <asm/sockios.h>
13
14/*
15 * For setsockopt(2)
16 *
17 * This defines are ABI conformant as far as Linux supports these ...
18 */
19#define SOL_SOCKET 0xffff
20
21#define SO_DEBUG 0x0001 /* Record debugging information. */
22#define SO_REUSEADDR 0x0004 /* Allow reuse of local addresses. */
23#define SO_KEEPALIVE 0x0008 /* Keep connections alive and send
24 SIGPIPE when they die. */
25#define SO_DONTROUTE 0x0010 /* Don't do local routing. */
26#define SO_BROADCAST 0x0020 /* Allow transmission of
Ralf Baechle70342282013-01-22 12:59:30 +010027 broadcast messages. */
David Howells61730c52012-10-09 09:47:14 +010028#define SO_LINGER 0x0080 /* Block on close of a reliable
29 socket to transmit pending data. */
30#define SO_OOBINLINE 0x0100 /* Receive out-of-band data in-band. */
Tom Herbert055dc212013-01-22 09:49:50 +000031#define SO_REUSEPORT 0x0200 /* Allow local address and port reuse. */
David Howells61730c52012-10-09 09:47:14 +010032
33#define SO_TYPE 0x1008 /* Compatible name for SO_STYLE. */
Ralf Baechle70342282013-01-22 12:59:30 +010034#define SO_STYLE SO_TYPE /* Synonym */
David Howells61730c52012-10-09 09:47:14 +010035#define SO_ERROR 0x1007 /* get error status and clear */
36#define SO_SNDBUF 0x1001 /* Send buffer size. */
37#define SO_RCVBUF 0x1002 /* Receive buffer. */
38#define SO_SNDLOWAT 0x1003 /* send low-water mark */
39#define SO_RCVLOWAT 0x1004 /* receive low-water mark */
40#define SO_SNDTIMEO 0x1005 /* send timeout */
Ralf Baechle70342282013-01-22 12:59:30 +010041#define SO_RCVTIMEO 0x1006 /* receive timeout */
David Howells61730c52012-10-09 09:47:14 +010042#define SO_ACCEPTCONN 0x1009
43#define SO_PROTOCOL 0x1028 /* protocol type */
44#define SO_DOMAIN 0x1029 /* domain/socket family */
45
46/* linux-specific, might as well be the same as on i386 */
47#define SO_NO_CHECK 11
48#define SO_PRIORITY 12
49#define SO_BSDCOMPAT 14
50
51#define SO_PASSCRED 17
52#define SO_PEERCRED 18
53
54/* Security levels - as per NRL IPv6 - don't actually do anything */
55#define SO_SECURITY_AUTHENTICATION 22
56#define SO_SECURITY_ENCRYPTION_TRANSPORT 23
57#define SO_SECURITY_ENCRYPTION_NETWORK 24
58
59#define SO_BINDTODEVICE 25
60
61/* Socket filtering */
Ralf Baechle70342282013-01-22 12:59:30 +010062#define SO_ATTACH_FILTER 26
63#define SO_DETACH_FILTER 27
Pavel Emelyanova8fc9272012-11-01 02:01:48 +000064#define SO_GET_FILTER SO_ATTACH_FILTER
David Howells61730c52012-10-09 09:47:14 +010065
Ralf Baechle70342282013-01-22 12:59:30 +010066#define SO_PEERNAME 28
David Howells61730c52012-10-09 09:47:14 +010067#define SO_TIMESTAMP 29
68#define SCM_TIMESTAMP SO_TIMESTAMP
69
70#define SO_PEERSEC 30
71#define SO_SNDBUFFORCE 31
72#define SO_RCVBUFFORCE 33
73#define SO_PASSSEC 34
74#define SO_TIMESTAMPNS 35
75#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
76
77#define SO_MARK 36
78
79#define SO_TIMESTAMPING 37
80#define SCM_TIMESTAMPING SO_TIMESTAMPING
81
Ralf Baechle70342282013-01-22 12:59:30 +010082#define SO_RXQ_OVFL 40
David Howells61730c52012-10-09 09:47:14 +010083
84#define SO_WIFI_STATUS 41
85#define SCM_WIFI_STATUS SO_WIFI_STATUS
86#define SO_PEEK_OFF 42
87
88/* Instruct lower device to use last 4-bytes of skb data as FCS */
89#define SO_NOFCS 43
90
Vincent Bernatd59577b2013-01-16 22:55:49 +010091#define SO_LOCK_FILTER 44
David Howells61730c52012-10-09 09:47:14 +010092
Keller, Jacob E7d4c04f2013-03-28 11:19:25 +000093#define SO_SELECT_ERR_QUEUE 45
94
Eliezer Tamir64b0dc52013-07-10 17:13:36 +030095#define SO_BUSY_POLL 46
Eliezer Tamirdafcc432013-06-14 16:33:57 +030096
Eric Dumazet62748f32013-09-24 08:20:52 -070097#define SO_MAX_PACING_RATE 47
98
Michal Sekletarea02f942014-01-17 17:09:45 +010099#define SO_BPF_EXTENSIONS 48
100
Eric Dumazet2c8c56e2014-11-11 05:54:28 -0800101#define SO_INCOMING_CPU 49
102
Alexei Starovoitov89aa0752014-12-01 15:06:35 -0800103#define SO_ATTACH_BPF 50
104#define SO_DETACH_BPF SO_DETACH_FILTER
105
Craig Gallek538950a2016-01-04 17:41:47 -0500106#define SO_ATTACH_REUSEPORT_CBPF 51
107#define SO_ATTACH_REUSEPORT_EBPF 52
108
Tom Herberta87cb3e2016-02-24 10:02:52 -0800109#define SO_CNX_ADVICE 53
110
Francis Yan1c885802016-11-27 23:07:18 -0800111#define SCM_TIMESTAMPING_OPT_STATS 54
112
Josh Hunta2d133b2017-03-20 15:22:03 -0400113#define SO_MEMINFO 55
114
Sridhar Samudrala6d433902017-03-24 10:08:36 -0700115#define SO_INCOMING_NAPI_ID 56
Josh Hunta2d133b2017-03-20 15:22:03 -0400116
Chenbo Feng5daab9d2017-04-05 19:00:55 -0700117#define SO_COOKIE 57
118
David S. Miller1c4f6762017-05-21 23:13:37 -0400119#define SCM_TIMESTAMPING_PKTINFO 58
120
David Herrmann28b5ba2a2017-06-21 10:47:15 +0200121#define SO_PEERGROUPS 59
122
David Howells61730c52012-10-09 09:47:14 +0100123#endif /* _UAPI_ASM_SOCKET_H */