History

Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next

Alexei Starovoitov says: ==================== pull-request: bpf-next 2019-06-19 The following pull-request contains BPF updates for your *net-next* tree. The main changes are: 1) new SO_REUSEPORT_DETACH_BPF setsocktopt, from Martin. 2) BTF based map definition, from Andrii. 3) support bpf_map_lookup_elem for xskmap, from Jonathan. 4) bounded loops and scalar precision logic in the verifier, from Alexei. ====================

David S. Miller committed 7 years ago

Commit dca73a62 parents 497ad9f 94079b6101 files · +4048 −860Browse files

Showing the changes to tools/include/uapi (2 of 101 files). Show all

Unified · Split

2 files
  1. tools/include/uapi/asm-generic/socket.h +147 −0
  2. tools/include/uapi/linux/bpf.h +6 −0
tools/include/uapi/asm-generic/socket.h+147−0
@@ -0,0 +1,147 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+#ifndef __ASM_GENERIC_SOCKET_H
3+#define __ASM_GENERIC_SOCKET_H
4+
5+#include <linux/posix_types.h>
6+#include <asm/sockios.h>
7+
8+/* For setsockopt(2) */
9+#define SOL_SOCKET 1
10+
11+#define SO_DEBUG 1
12+#define SO_REUSEADDR 2
13+#define SO_TYPE 3
14+#define SO_ERROR 4
15+#define SO_DONTROUTE 5
16+#define SO_BROADCAST 6
17+#define SO_SNDBUF 7
18+#define SO_RCVBUF 8
19+#define SO_SNDBUFFORCE 32
20+#define SO_RCVBUFFORCE 33
21+#define SO_KEEPALIVE 9
22+#define SO_OOBINLINE 10
23+#define SO_NO_CHECK 11
24+#define SO_PRIORITY 12
25+#define SO_LINGER 13
26+#define SO_BSDCOMPAT 14
27+#define SO_REUSEPORT 15
28+#ifndef SO_PASSCRED /* powerpc only differs in these */
29+#define SO_PASSCRED 16
30+#define SO_PEERCRED 17
31+#define SO_RCVLOWAT 18
32+#define SO_SNDLOWAT 19
33+#define SO_RCVTIMEO_OLD 20
34+#define SO_SNDTIMEO_OLD 21
35+#endif
36+
37+/* Security levels - as per NRL IPv6 - don't actually do anything */
38+#define SO_SECURITY_AUTHENTICATION 22
39+#define SO_SECURITY_ENCRYPTION_TRANSPORT 23
40+#define SO_SECURITY_ENCRYPTION_NETWORK 24
41+
42+#define SO_BINDTODEVICE 25
43+
44+/* Socket filtering */
45+#define SO_ATTACH_FILTER 26
46+#define SO_DETACH_FILTER 27
47+#define SO_GET_FILTER SO_ATTACH_FILTER
48+
49+#define SO_PEERNAME 28
50+
51+#define SO_ACCEPTCONN 30
52+
53+#define SO_PEERSEC 31
54+#define SO_PASSSEC 34
55+
56+#define SO_MARK 36
57+
58+#define SO_PROTOCOL 38
59+#define SO_DOMAIN 39
60+
61+#define SO_RXQ_OVFL 40
62+
63+#define SO_WIFI_STATUS 41
64+#define SCM_WIFI_STATUS SO_WIFI_STATUS
65+#define SO_PEEK_OFF 42
66+
67+/* Instruct lower device to use last 4-bytes of skb data as FCS */
68+#define SO_NOFCS 43
69+
70+#define SO_LOCK_FILTER 44
71+
72+#define SO_SELECT_ERR_QUEUE 45
73+
74+#define SO_BUSY_POLL 46
75+
76+#define SO_MAX_PACING_RATE 47
77+
78+#define SO_BPF_EXTENSIONS 48
79+
80+#define SO_INCOMING_CPU 49
81+
82+#define SO_ATTACH_BPF 50
83+#define SO_DETACH_BPF SO_DETACH_FILTER
84+
85+#define SO_ATTACH_REUSEPORT_CBPF 51
86+#define SO_ATTACH_REUSEPORT_EBPF 52
87+
88+#define SO_CNX_ADVICE 53
89+
90+#define SCM_TIMESTAMPING_OPT_STATS 54
91+
92+#define SO_MEMINFO 55
93+
94+#define SO_INCOMING_NAPI_ID 56
95+
96+#define SO_COOKIE 57
97+
98+#define SCM_TIMESTAMPING_PKTINFO 58
99+
100+#define SO_PEERGROUPS 59
101+
102+#define SO_ZEROCOPY 60
103+
104+#define SO_TXTIME 61
105+#define SCM_TXTIME SO_TXTIME
106+
107+#define SO_BINDTOIFINDEX 62
108+
109+#define SO_TIMESTAMP_OLD 29
110+#define SO_TIMESTAMPNS_OLD 35
111+#define SO_TIMESTAMPING_OLD 37
112+
113+#define SO_TIMESTAMP_NEW 63
114+#define SO_TIMESTAMPNS_NEW 64
115+#define SO_TIMESTAMPING_NEW 65
116+
117+#define SO_RCVTIMEO_NEW 66
118+#define SO_SNDTIMEO_NEW 67
119+
120+#define SO_DETACH_REUSEPORT_BPF 68
121+
122+#if !defined(__KERNEL__)
123+
124+#if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__))
125+/* on 64-bit and x32, avoid the ?: operator */
126+#define SO_TIMESTAMP SO_TIMESTAMP_OLD
127+#define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD
128+#define SO_TIMESTAMPING SO_TIMESTAMPING_OLD
129+
130+#define SO_RCVTIMEO SO_RCVTIMEO_OLD
131+#define SO_SNDTIMEO SO_SNDTIMEO_OLD
132+#else
133+#define SO_TIMESTAMP (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMP_OLD : SO_TIMESTAMP_NEW)
134+#define SO_TIMESTAMPNS (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPNS_OLD : SO_TIMESTAMPNS_NEW)
135+#define SO_TIMESTAMPING (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPING_OLD : SO_TIMESTAMPING_NEW)
136+
137+#define SO_RCVTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_RCVTIMEO_OLD : SO_RCVTIMEO_NEW)
138+#define SO_SNDTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_SNDTIMEO_OLD : SO_SNDTIMEO_NEW)
139+#endif
140+
141+#define SCM_TIMESTAMP SO_TIMESTAMP
142+#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
143+#define SCM_TIMESTAMPING SO_TIMESTAMPING
144+
145+#endif
146+
147+#endif /* __ASM_GENERIC_SOCKET_H */
tools/include/uapi/linux/bpf.h+6−0
@@ -3085,6 +3085,10 @@ struct bpf_sock_tuple { · 3084 unmodified lines
30853085 };
30863086 };
30873087
3088+struct bpf_xdp_sock {
3089+ __u32 queue_id;
3090+};
3091+
30883092 #define XDP_PACKET_HEADROOM 256
30893093
30903094 /* User return codes for XDP prog type.
@@ -3245,6 +3249,7 @@ struct bpf_sock_addr { · 154 unmodified lines
32453249 __u32 msg_src_ip6[4]; /* Allows 1,2,4-byte read an 4-byte write.
32463250 * Stored in network byte order.
32473251 */
3252+ __bpf_md_ptr(struct bpf_sock *, sk);
32483253 };
32493254
32503255 /* User bpf_sock_ops struct to access socket values and specify request ops
@@ -3296,6 +3301,7 @@ struct bpf_sock_ops { · 45 unmodified lines
32963301 __u32 sk_txhash;
32973302 __u64 bytes_received;
32983303 __u64 bytes_acked;
3304+ __bpf_md_ptr(struct bpf_sock *, sk);
32993305 };
33003306
33013307 /* Definitions for bpf_sock_ops_cb_flags */