diff options
Diffstat (limited to 'include/uapi')
26 files changed, 387 insertions, 43 deletions
diff --git a/include/uapi/asm-generic/socket.h b/include/uapi/asm-generic/socket.h index 38f14d0264c3..ea0796bdcf88 100644 --- a/include/uapi/asm-generic/socket.h +++ b/include/uapi/asm-generic/socket.h | |||
@@ -80,4 +80,6 @@ | |||
80 | 80 | ||
81 | #define SO_MAX_PACING_RATE 47 | 81 | #define SO_MAX_PACING_RATE 47 |
82 | 82 | ||
83 | #define SO_BPF_EXTENSIONS 48 | ||
84 | |||
83 | #endif /* __ASM_GENERIC_SOCKET_H */ | 85 | #endif /* __ASM_GENERIC_SOCKET_H */ |
diff --git a/include/uapi/linux/if_addr.h b/include/uapi/linux/if_addr.h index 23357ab81a77..dea10a87dfd1 100644 --- a/include/uapi/linux/if_addr.h +++ b/include/uapi/linux/if_addr.h | |||
@@ -18,6 +18,9 @@ struct ifaddrmsg { | |||
18 | * It makes no difference for normally configured broadcast interfaces, | 18 | * It makes no difference for normally configured broadcast interfaces, |
19 | * but for point-to-point IFA_ADDRESS is DESTINATION address, | 19 | * but for point-to-point IFA_ADDRESS is DESTINATION address, |
20 | * local address is supplied in IFA_LOCAL attribute. | 20 | * local address is supplied in IFA_LOCAL attribute. |
21 | * | ||
22 | * IFA_FLAGS is a u32 attribute that extends the u8 field ifa_flags. | ||
23 | * If present, the value from struct ifaddrmsg will be ignored. | ||
21 | */ | 24 | */ |
22 | enum { | 25 | enum { |
23 | IFA_UNSPEC, | 26 | IFA_UNSPEC, |
@@ -28,6 +31,7 @@ enum { | |||
28 | IFA_ANYCAST, | 31 | IFA_ANYCAST, |
29 | IFA_CACHEINFO, | 32 | IFA_CACHEINFO, |
30 | IFA_MULTICAST, | 33 | IFA_MULTICAST, |
34 | IFA_FLAGS, | ||
31 | __IFA_MAX, | 35 | __IFA_MAX, |
32 | }; | 36 | }; |
33 | 37 | ||
@@ -44,6 +48,8 @@ enum { | |||
44 | #define IFA_F_DEPRECATED 0x20 | 48 | #define IFA_F_DEPRECATED 0x20 |
45 | #define IFA_F_TENTATIVE 0x40 | 49 | #define IFA_F_TENTATIVE 0x40 |
46 | #define IFA_F_PERMANENT 0x80 | 50 | #define IFA_F_PERMANENT 0x80 |
51 | #define IFA_F_MANAGETEMPADDR 0x100 | ||
52 | #define IFA_F_NOPREFIXROUTE 0x200 | ||
47 | 53 | ||
48 | struct ifa_cacheinfo { | 54 | struct ifa_cacheinfo { |
49 | __u32 ifa_prefered; | 55 | __u32 ifa_prefered; |
diff --git a/include/uapi/linux/if_arp.h b/include/uapi/linux/if_arp.h index d7fea3496f32..4d024d75d64b 100644 --- a/include/uapi/linux/if_arp.h +++ b/include/uapi/linux/if_arp.h | |||
@@ -94,6 +94,7 @@ | |||
94 | #define ARPHRD_CAIF 822 /* CAIF media type */ | 94 | #define ARPHRD_CAIF 822 /* CAIF media type */ |
95 | #define ARPHRD_IP6GRE 823 /* GRE over IPv6 */ | 95 | #define ARPHRD_IP6GRE 823 /* GRE over IPv6 */ |
96 | #define ARPHRD_NETLINK 824 /* Netlink header */ | 96 | #define ARPHRD_NETLINK 824 /* Netlink header */ |
97 | #define ARPHRD_6LOWPAN 825 /* IPv6 over LoWPAN */ | ||
97 | 98 | ||
98 | #define ARPHRD_VOID 0xFFFF /* Void type, nothing is known */ | 99 | #define ARPHRD_VOID 0xFFFF /* Void type, nothing is known */ |
99 | #define ARPHRD_NONE 0xFFFE /* zero header length */ | 100 | #define ARPHRD_NONE 0xFFFE /* zero header length */ |
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h index 6db460121f84..16410b6e7819 100644 --- a/include/uapi/linux/if_link.h +++ b/include/uapi/linux/if_link.h | |||
@@ -240,6 +240,8 @@ enum { | |||
240 | IFLA_INFO_KIND, | 240 | IFLA_INFO_KIND, |
241 | IFLA_INFO_DATA, | 241 | IFLA_INFO_DATA, |
242 | IFLA_INFO_XSTATS, | 242 | IFLA_INFO_XSTATS, |
243 | IFLA_INFO_SLAVE_KIND, | ||
244 | IFLA_INFO_SLAVE_DATA, | ||
243 | __IFLA_INFO_MAX, | 245 | __IFLA_INFO_MAX, |
244 | }; | 246 | }; |
245 | 247 | ||
@@ -331,11 +333,57 @@ enum { | |||
331 | IFLA_BOND_UNSPEC, | 333 | IFLA_BOND_UNSPEC, |
332 | IFLA_BOND_MODE, | 334 | IFLA_BOND_MODE, |
333 | IFLA_BOND_ACTIVE_SLAVE, | 335 | IFLA_BOND_ACTIVE_SLAVE, |
336 | IFLA_BOND_MIIMON, | ||
337 | IFLA_BOND_UPDELAY, | ||
338 | IFLA_BOND_DOWNDELAY, | ||
339 | IFLA_BOND_USE_CARRIER, | ||
340 | IFLA_BOND_ARP_INTERVAL, | ||
341 | IFLA_BOND_ARP_IP_TARGET, | ||
342 | IFLA_BOND_ARP_VALIDATE, | ||
343 | IFLA_BOND_ARP_ALL_TARGETS, | ||
344 | IFLA_BOND_PRIMARY, | ||
345 | IFLA_BOND_PRIMARY_RESELECT, | ||
346 | IFLA_BOND_FAIL_OVER_MAC, | ||
347 | IFLA_BOND_XMIT_HASH_POLICY, | ||
348 | IFLA_BOND_RESEND_IGMP, | ||
349 | IFLA_BOND_NUM_PEER_NOTIF, | ||
350 | IFLA_BOND_ALL_SLAVES_ACTIVE, | ||
351 | IFLA_BOND_MIN_LINKS, | ||
352 | IFLA_BOND_LP_INTERVAL, | ||
353 | IFLA_BOND_PACKETS_PER_SLAVE, | ||
354 | IFLA_BOND_AD_LACP_RATE, | ||
355 | IFLA_BOND_AD_SELECT, | ||
356 | IFLA_BOND_AD_INFO, | ||
334 | __IFLA_BOND_MAX, | 357 | __IFLA_BOND_MAX, |
335 | }; | 358 | }; |
336 | 359 | ||
337 | #define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1) | 360 | #define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1) |
338 | 361 | ||
362 | enum { | ||
363 | IFLA_BOND_AD_INFO_UNSPEC, | ||
364 | IFLA_BOND_AD_INFO_AGGREGATOR, | ||
365 | IFLA_BOND_AD_INFO_NUM_PORTS, | ||
366 | IFLA_BOND_AD_INFO_ACTOR_KEY, | ||
367 | IFLA_BOND_AD_INFO_PARTNER_KEY, | ||
368 | IFLA_BOND_AD_INFO_PARTNER_MAC, | ||
369 | __IFLA_BOND_AD_INFO_MAX, | ||
370 | }; | ||
371 | |||
372 | #define IFLA_BOND_AD_INFO_MAX (__IFLA_BOND_AD_INFO_MAX - 1) | ||
373 | |||
374 | enum { | ||
375 | IFLA_BOND_SLAVE_UNSPEC, | ||
376 | IFLA_BOND_SLAVE_STATE, | ||
377 | IFLA_BOND_SLAVE_MII_STATUS, | ||
378 | IFLA_BOND_SLAVE_LINK_FAILURE_COUNT, | ||
379 | IFLA_BOND_SLAVE_PERM_HWADDR, | ||
380 | IFLA_BOND_SLAVE_QUEUE_ID, | ||
381 | IFLA_BOND_SLAVE_AD_AGGREGATOR_ID, | ||
382 | __IFLA_BOND_SLAVE_MAX, | ||
383 | }; | ||
384 | |||
385 | #define IFLA_BOND_SLAVE_MAX (__IFLA_BOND_SLAVE_MAX - 1) | ||
386 | |||
339 | /* SR-IOV virtual function management section */ | 387 | /* SR-IOV virtual function management section */ |
340 | 388 | ||
341 | enum { | 389 | enum { |
diff --git a/include/uapi/linux/if_packet.h b/include/uapi/linux/if_packet.h index dbf06667394b..bac27fa05f5b 100644 --- a/include/uapi/linux/if_packet.h +++ b/include/uapi/linux/if_packet.h | |||
@@ -26,8 +26,10 @@ struct sockaddr_ll { | |||
26 | #define PACKET_MULTICAST 2 /* To group */ | 26 | #define PACKET_MULTICAST 2 /* To group */ |
27 | #define PACKET_OTHERHOST 3 /* To someone else */ | 27 | #define PACKET_OTHERHOST 3 /* To someone else */ |
28 | #define PACKET_OUTGOING 4 /* Outgoing of any type */ | 28 | #define PACKET_OUTGOING 4 /* Outgoing of any type */ |
29 | /* These ones are invisible by user level */ | ||
30 | #define PACKET_LOOPBACK 5 /* MC/BRD frame looped back */ | 29 | #define PACKET_LOOPBACK 5 /* MC/BRD frame looped back */ |
30 | #define PACKET_USER 6 /* To user space */ | ||
31 | #define PACKET_KERNEL 7 /* To kernel space */ | ||
32 | /* Unused, PACKET_FASTROUTE and PACKET_LOOPBACK are invisible to user space */ | ||
31 | #define PACKET_FASTROUTE 6 /* Fastrouted frame */ | 33 | #define PACKET_FASTROUTE 6 /* Fastrouted frame */ |
32 | 34 | ||
33 | /* Packet socket options */ | 35 | /* Packet socket options */ |
@@ -51,12 +53,14 @@ struct sockaddr_ll { | |||
51 | #define PACKET_TIMESTAMP 17 | 53 | #define PACKET_TIMESTAMP 17 |
52 | #define PACKET_FANOUT 18 | 54 | #define PACKET_FANOUT 18 |
53 | #define PACKET_TX_HAS_OFF 19 | 55 | #define PACKET_TX_HAS_OFF 19 |
56 | #define PACKET_QDISC_BYPASS 20 | ||
54 | 57 | ||
55 | #define PACKET_FANOUT_HASH 0 | 58 | #define PACKET_FANOUT_HASH 0 |
56 | #define PACKET_FANOUT_LB 1 | 59 | #define PACKET_FANOUT_LB 1 |
57 | #define PACKET_FANOUT_CPU 2 | 60 | #define PACKET_FANOUT_CPU 2 |
58 | #define PACKET_FANOUT_ROLLOVER 3 | 61 | #define PACKET_FANOUT_ROLLOVER 3 |
59 | #define PACKET_FANOUT_RND 4 | 62 | #define PACKET_FANOUT_RND 4 |
63 | #define PACKET_FANOUT_QM 5 | ||
60 | #define PACKET_FANOUT_FLAG_ROLLOVER 0x1000 | 64 | #define PACKET_FANOUT_FLAG_ROLLOVER 0x1000 |
61 | #define PACKET_FANOUT_FLAG_DEFRAG 0x8000 | 65 | #define PACKET_FANOUT_FLAG_DEFRAG 0x8000 |
62 | 66 | ||
@@ -83,17 +87,18 @@ struct tpacket_auxdata { | |||
83 | __u16 tp_mac; | 87 | __u16 tp_mac; |
84 | __u16 tp_net; | 88 | __u16 tp_net; |
85 | __u16 tp_vlan_tci; | 89 | __u16 tp_vlan_tci; |
86 | __u16 tp_padding; | 90 | __u16 tp_vlan_tpid; |
87 | }; | 91 | }; |
88 | 92 | ||
89 | /* Rx ring - header status */ | 93 | /* Rx ring - header status */ |
90 | #define TP_STATUS_KERNEL 0 | 94 | #define TP_STATUS_KERNEL 0 |
91 | #define TP_STATUS_USER (1 << 0) | 95 | #define TP_STATUS_USER (1 << 0) |
92 | #define TP_STATUS_COPY (1 << 1) | 96 | #define TP_STATUS_COPY (1 << 1) |
93 | #define TP_STATUS_LOSING (1 << 2) | 97 | #define TP_STATUS_LOSING (1 << 2) |
94 | #define TP_STATUS_CSUMNOTREADY (1 << 3) | 98 | #define TP_STATUS_CSUMNOTREADY (1 << 3) |
95 | #define TP_STATUS_VLAN_VALID (1 << 4) /* auxdata has valid tp_vlan_tci */ | 99 | #define TP_STATUS_VLAN_VALID (1 << 4) /* auxdata has valid tp_vlan_tci */ |
96 | #define TP_STATUS_BLK_TMO (1 << 5) | 100 | #define TP_STATUS_BLK_TMO (1 << 5) |
101 | #define TP_STATUS_VLAN_TPID_VALID (1 << 6) /* auxdata has valid tp_vlan_tpid */ | ||
97 | 102 | ||
98 | /* Tx ring - header status */ | 103 | /* Tx ring - header status */ |
99 | #define TP_STATUS_AVAILABLE 0 | 104 | #define TP_STATUS_AVAILABLE 0 |
@@ -132,12 +137,15 @@ struct tpacket2_hdr { | |||
132 | __u32 tp_sec; | 137 | __u32 tp_sec; |
133 | __u32 tp_nsec; | 138 | __u32 tp_nsec; |
134 | __u16 tp_vlan_tci; | 139 | __u16 tp_vlan_tci; |
135 | __u16 tp_padding; | 140 | __u16 tp_vlan_tpid; |
141 | __u8 tp_padding[4]; | ||
136 | }; | 142 | }; |
137 | 143 | ||
138 | struct tpacket_hdr_variant1 { | 144 | struct tpacket_hdr_variant1 { |
139 | __u32 tp_rxhash; | 145 | __u32 tp_rxhash; |
140 | __u32 tp_vlan_tci; | 146 | __u32 tp_vlan_tci; |
147 | __u16 tp_vlan_tpid; | ||
148 | __u16 tp_padding; | ||
141 | }; | 149 | }; |
142 | 150 | ||
143 | struct tpacket3_hdr { | 151 | struct tpacket3_hdr { |
@@ -153,6 +161,7 @@ struct tpacket3_hdr { | |||
153 | union { | 161 | union { |
154 | struct tpacket_hdr_variant1 hv1; | 162 | struct tpacket_hdr_variant1 hv1; |
155 | }; | 163 | }; |
164 | __u8 tp_padding[8]; | ||
156 | }; | 165 | }; |
157 | 166 | ||
158 | struct tpacket_bd_ts { | 167 | struct tpacket_bd_ts { |
diff --git a/include/uapi/linux/in6.h b/include/uapi/linux/in6.h index 440d5c479145..633b93cac1ed 100644 --- a/include/uapi/linux/in6.h +++ b/include/uapi/linux/in6.h | |||
@@ -85,6 +85,8 @@ struct in6_flowlabel_req { | |||
85 | 85 | ||
86 | #define IPV6_FL_F_CREATE 1 | 86 | #define IPV6_FL_F_CREATE 1 |
87 | #define IPV6_FL_F_EXCL 2 | 87 | #define IPV6_FL_F_EXCL 2 |
88 | #define IPV6_FL_F_REFLECT 4 | ||
89 | #define IPV6_FL_F_REMOTE 8 | ||
88 | 90 | ||
89 | #define IPV6_FL_S_NONE 0 | 91 | #define IPV6_FL_S_NONE 0 |
90 | #define IPV6_FL_S_EXCL 1 | 92 | #define IPV6_FL_S_EXCL 1 |
@@ -188,6 +190,10 @@ enum { | |||
188 | #define IPV6_PMTUDISC_WANT 1 | 190 | #define IPV6_PMTUDISC_WANT 1 |
189 | #define IPV6_PMTUDISC_DO 2 | 191 | #define IPV6_PMTUDISC_DO 2 |
190 | #define IPV6_PMTUDISC_PROBE 3 | 192 | #define IPV6_PMTUDISC_PROBE 3 |
193 | /* same as IPV6_PMTUDISC_PROBE, provided for symetry with IPv4 | ||
194 | * also see comments on IP_PMTUDISC_INTERFACE | ||
195 | */ | ||
196 | #define IPV6_PMTUDISC_INTERFACE 4 | ||
191 | 197 | ||
192 | /* Flowlabel */ | 198 | /* Flowlabel */ |
193 | #define IPV6_FLOWLABEL_MGR 32 | 199 | #define IPV6_FLOWLABEL_MGR 32 |
diff --git a/include/uapi/linux/net_tstamp.h b/include/uapi/linux/net_tstamp.h index ae5df122e42f..f53879c0f590 100644 --- a/include/uapi/linux/net_tstamp.h +++ b/include/uapi/linux/net_tstamp.h | |||
@@ -26,17 +26,17 @@ enum { | |||
26 | }; | 26 | }; |
27 | 27 | ||
28 | /** | 28 | /** |
29 | * struct hwtstamp_config - %SIOCSHWTSTAMP parameter | 29 | * struct hwtstamp_config - %SIOCGHWTSTAMP and %SIOCSHWTSTAMP parameter |
30 | * | 30 | * |
31 | * @flags: no flags defined right now, must be zero | 31 | * @flags: no flags defined right now, must be zero for %SIOCSHWTSTAMP |
32 | * @tx_type: one of HWTSTAMP_TX_* | 32 | * @tx_type: one of HWTSTAMP_TX_* |
33 | * @rx_type: one of one of HWTSTAMP_FILTER_* | 33 | * @rx_filter: one of HWTSTAMP_FILTER_* |
34 | * | 34 | * |
35 | * %SIOCSHWTSTAMP expects a &struct ifreq with a ifr_data pointer to | 35 | * %SIOCGHWTSTAMP and %SIOCSHWTSTAMP expect a &struct ifreq with a |
36 | * this structure. dev_ifsioc() in the kernel takes care of the | 36 | * ifr_data pointer to this structure. For %SIOCSHWTSTAMP, if the |
37 | * translation between 32 bit userspace and 64 bit kernel. The | 37 | * driver or hardware does not support the requested @rx_filter value, |
38 | * structure is intentionally chosen so that it has the same layout on | 38 | * the driver may use a more general filter mode. In this case |
39 | * 32 and 64 bit systems, don't break this! | 39 | * @rx_filter will indicate the actual mode on return. |
40 | */ | 40 | */ |
41 | struct hwtstamp_config { | 41 | struct hwtstamp_config { |
42 | int flags; | 42 | int flags; |
diff --git a/include/uapi/linux/netconf.h b/include/uapi/linux/netconf.h index 64804a798b0c..669a1f0b1d97 100644 --- a/include/uapi/linux/netconf.h +++ b/include/uapi/linux/netconf.h | |||
@@ -14,6 +14,7 @@ enum { | |||
14 | NETCONFA_FORWARDING, | 14 | NETCONFA_FORWARDING, |
15 | NETCONFA_RP_FILTER, | 15 | NETCONFA_RP_FILTER, |
16 | NETCONFA_MC_FORWARDING, | 16 | NETCONFA_MC_FORWARDING, |
17 | NETCONFA_PROXY_NEIGH, | ||
17 | __NETCONFA_MAX | 18 | __NETCONFA_MAX |
18 | }; | 19 | }; |
19 | #define NETCONFA_MAX (__NETCONFA_MAX - 1) | 20 | #define NETCONFA_MAX (__NETCONFA_MAX - 1) |
diff --git a/include/uapi/linux/netfilter.h b/include/uapi/linux/netfilter.h index f7dc0ebeeba5..ef1b1f88ca18 100644 --- a/include/uapi/linux/netfilter.h +++ b/include/uapi/linux/netfilter.h | |||
@@ -53,6 +53,7 @@ enum nf_inet_hooks { | |||
53 | 53 | ||
54 | enum { | 54 | enum { |
55 | NFPROTO_UNSPEC = 0, | 55 | NFPROTO_UNSPEC = 0, |
56 | NFPROTO_INET = 1, | ||
56 | NFPROTO_IPV4 = 2, | 57 | NFPROTO_IPV4 = 2, |
57 | NFPROTO_ARP = 3, | 58 | NFPROTO_ARP = 3, |
58 | NFPROTO_BRIDGE = 7, | 59 | NFPROTO_BRIDGE = 7, |
diff --git a/include/uapi/linux/netfilter/Kbuild b/include/uapi/linux/netfilter/Kbuild index 17c3af2c4bb9..1d973d2ba417 100644 --- a/include/uapi/linux/netfilter/Kbuild +++ b/include/uapi/linux/netfilter/Kbuild | |||
@@ -39,6 +39,7 @@ header-y += xt_TEE.h | |||
39 | header-y += xt_TPROXY.h | 39 | header-y += xt_TPROXY.h |
40 | header-y += xt_addrtype.h | 40 | header-y += xt_addrtype.h |
41 | header-y += xt_bpf.h | 41 | header-y += xt_bpf.h |
42 | header-y += xt_cgroup.h | ||
42 | header-y += xt_cluster.h | 43 | header-y += xt_cluster.h |
43 | header-y += xt_comment.h | 44 | header-y += xt_comment.h |
44 | header-y += xt_connbytes.h | 45 | header-y += xt_connbytes.h |
@@ -54,8 +55,10 @@ header-y += xt_ecn.h | |||
54 | header-y += xt_esp.h | 55 | header-y += xt_esp.h |
55 | header-y += xt_hashlimit.h | 56 | header-y += xt_hashlimit.h |
56 | header-y += xt_helper.h | 57 | header-y += xt_helper.h |
58 | header-y += xt_ipcomp.h | ||
57 | header-y += xt_iprange.h | 59 | header-y += xt_iprange.h |
58 | header-y += xt_ipvs.h | 60 | header-y += xt_ipvs.h |
61 | header-y += xt_l2tp.h | ||
59 | header-y += xt_length.h | 62 | header-y += xt_length.h |
60 | header-y += xt_limit.h | 63 | header-y += xt_limit.h |
61 | header-y += xt_mac.h | 64 | header-y += xt_mac.h |
diff --git a/include/uapi/linux/netfilter/nf_nat.h b/include/uapi/linux/netfilter/nf_nat.h index bf0cc373ffb6..1ad3659102b6 100644 --- a/include/uapi/linux/netfilter/nf_nat.h +++ b/include/uapi/linux/netfilter/nf_nat.h | |||
@@ -4,10 +4,14 @@ | |||
4 | #include <linux/netfilter.h> | 4 | #include <linux/netfilter.h> |
5 | #include <linux/netfilter/nf_conntrack_tuple_common.h> | 5 | #include <linux/netfilter/nf_conntrack_tuple_common.h> |
6 | 6 | ||
7 | #define NF_NAT_RANGE_MAP_IPS 1 | 7 | #define NF_NAT_RANGE_MAP_IPS (1 << 0) |
8 | #define NF_NAT_RANGE_PROTO_SPECIFIED 2 | 8 | #define NF_NAT_RANGE_PROTO_SPECIFIED (1 << 1) |
9 | #define NF_NAT_RANGE_PROTO_RANDOM 4 | 9 | #define NF_NAT_RANGE_PROTO_RANDOM (1 << 2) |
10 | #define NF_NAT_RANGE_PERSISTENT 8 | 10 | #define NF_NAT_RANGE_PERSISTENT (1 << 3) |
11 | #define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4) | ||
12 | |||
13 | #define NF_NAT_RANGE_PROTO_RANDOM_ALL \ | ||
14 | (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY) | ||
11 | 15 | ||
12 | struct nf_nat_ipv4_range { | 16 | struct nf_nat_ipv4_range { |
13 | unsigned int flags; | 17 | unsigned int flags; |
diff --git a/include/uapi/linux/netfilter/nf_tables.h b/include/uapi/linux/netfilter/nf_tables.h index fbfd229a8e99..83c985a6170b 100644 --- a/include/uapi/linux/netfilter/nf_tables.h +++ b/include/uapi/linux/netfilter/nf_tables.h | |||
@@ -110,11 +110,13 @@ enum nft_table_flags { | |||
110 | * | 110 | * |
111 | * @NFTA_TABLE_NAME: name of the table (NLA_STRING) | 111 | * @NFTA_TABLE_NAME: name of the table (NLA_STRING) |
112 | * @NFTA_TABLE_FLAGS: bitmask of enum nft_table_flags (NLA_U32) | 112 | * @NFTA_TABLE_FLAGS: bitmask of enum nft_table_flags (NLA_U32) |
113 | * @NFTA_TABLE_USE: number of chains in this table (NLA_U32) | ||
113 | */ | 114 | */ |
114 | enum nft_table_attributes { | 115 | enum nft_table_attributes { |
115 | NFTA_TABLE_UNSPEC, | 116 | NFTA_TABLE_UNSPEC, |
116 | NFTA_TABLE_NAME, | 117 | NFTA_TABLE_NAME, |
117 | NFTA_TABLE_FLAGS, | 118 | NFTA_TABLE_FLAGS, |
119 | NFTA_TABLE_USE, | ||
118 | __NFTA_TABLE_MAX | 120 | __NFTA_TABLE_MAX |
119 | }; | 121 | }; |
120 | #define NFTA_TABLE_MAX (__NFTA_TABLE_MAX - 1) | 122 | #define NFTA_TABLE_MAX (__NFTA_TABLE_MAX - 1) |
@@ -529,6 +531,8 @@ enum nft_exthdr_attributes { | |||
529 | * @NFT_META_NFTRACE: packet nftrace bit | 531 | * @NFT_META_NFTRACE: packet nftrace bit |
530 | * @NFT_META_RTCLASSID: realm value of packet's route (skb->dst->tclassid) | 532 | * @NFT_META_RTCLASSID: realm value of packet's route (skb->dst->tclassid) |
531 | * @NFT_META_SECMARK: packet secmark (skb->secmark) | 533 | * @NFT_META_SECMARK: packet secmark (skb->secmark) |
534 | * @NFT_META_NFPROTO: netfilter protocol | ||
535 | * @NFT_META_L4PROTO: layer 4 protocol number | ||
532 | */ | 536 | */ |
533 | enum nft_meta_keys { | 537 | enum nft_meta_keys { |
534 | NFT_META_LEN, | 538 | NFT_META_LEN, |
@@ -546,6 +550,8 @@ enum nft_meta_keys { | |||
546 | NFT_META_NFTRACE, | 550 | NFT_META_NFTRACE, |
547 | NFT_META_RTCLASSID, | 551 | NFT_META_RTCLASSID, |
548 | NFT_META_SECMARK, | 552 | NFT_META_SECMARK, |
553 | NFT_META_NFPROTO, | ||
554 | NFT_META_L4PROTO, | ||
549 | }; | 555 | }; |
550 | 556 | ||
551 | /** | 557 | /** |
@@ -553,11 +559,13 @@ enum nft_meta_keys { | |||
553 | * | 559 | * |
554 | * @NFTA_META_DREG: destination register (NLA_U32) | 560 | * @NFTA_META_DREG: destination register (NLA_U32) |
555 | * @NFTA_META_KEY: meta data item to load (NLA_U32: nft_meta_keys) | 561 | * @NFTA_META_KEY: meta data item to load (NLA_U32: nft_meta_keys) |
562 | * @NFTA_META_SREG: source register (NLA_U32) | ||
556 | */ | 563 | */ |
557 | enum nft_meta_attributes { | 564 | enum nft_meta_attributes { |
558 | NFTA_META_UNSPEC, | 565 | NFTA_META_UNSPEC, |
559 | NFTA_META_DREG, | 566 | NFTA_META_DREG, |
560 | NFTA_META_KEY, | 567 | NFTA_META_KEY, |
568 | NFTA_META_SREG, | ||
561 | __NFTA_META_MAX | 569 | __NFTA_META_MAX |
562 | }; | 570 | }; |
563 | #define NFTA_META_MAX (__NFTA_META_MAX - 1) | 571 | #define NFTA_META_MAX (__NFTA_META_MAX - 1) |
@@ -601,12 +609,14 @@ enum nft_ct_keys { | |||
601 | * @NFTA_CT_DREG: destination register (NLA_U32) | 609 | * @NFTA_CT_DREG: destination register (NLA_U32) |
602 | * @NFTA_CT_KEY: conntrack data item to load (NLA_U32: nft_ct_keys) | 610 | * @NFTA_CT_KEY: conntrack data item to load (NLA_U32: nft_ct_keys) |
603 | * @NFTA_CT_DIRECTION: direction in case of directional keys (NLA_U8) | 611 | * @NFTA_CT_DIRECTION: direction in case of directional keys (NLA_U8) |
612 | * @NFTA_CT_SREG: source register (NLA_U32) | ||
604 | */ | 613 | */ |
605 | enum nft_ct_attributes { | 614 | enum nft_ct_attributes { |
606 | NFTA_CT_UNSPEC, | 615 | NFTA_CT_UNSPEC, |
607 | NFTA_CT_DREG, | 616 | NFTA_CT_DREG, |
608 | NFTA_CT_KEY, | 617 | NFTA_CT_KEY, |
609 | NFTA_CT_DIRECTION, | 618 | NFTA_CT_DIRECTION, |
619 | NFTA_CT_SREG, | ||
610 | __NFTA_CT_MAX | 620 | __NFTA_CT_MAX |
611 | }; | 621 | }; |
612 | #define NFTA_CT_MAX (__NFTA_CT_MAX - 1) | 622 | #define NFTA_CT_MAX (__NFTA_CT_MAX - 1) |
@@ -658,6 +668,26 @@ enum nft_log_attributes { | |||
658 | #define NFTA_LOG_MAX (__NFTA_LOG_MAX - 1) | 668 | #define NFTA_LOG_MAX (__NFTA_LOG_MAX - 1) |
659 | 669 | ||
660 | /** | 670 | /** |
671 | * enum nft_queue_attributes - nf_tables queue expression netlink attributes | ||
672 | * | ||
673 | * @NFTA_QUEUE_NUM: netlink queue to send messages to (NLA_U16) | ||
674 | * @NFTA_QUEUE_TOTAL: number of queues to load balance packets on (NLA_U16) | ||
675 | * @NFTA_QUEUE_FLAGS: various flags (NLA_U16) | ||
676 | */ | ||
677 | enum nft_queue_attributes { | ||
678 | NFTA_QUEUE_UNSPEC, | ||
679 | NFTA_QUEUE_NUM, | ||
680 | NFTA_QUEUE_TOTAL, | ||
681 | NFTA_QUEUE_FLAGS, | ||
682 | __NFTA_QUEUE_MAX | ||
683 | }; | ||
684 | #define NFTA_QUEUE_MAX (__NFTA_QUEUE_MAX - 1) | ||
685 | |||
686 | #define NFT_QUEUE_FLAG_BYPASS 0x01 /* for compatibility with v2 */ | ||
687 | #define NFT_QUEUE_FLAG_CPU_FANOUT 0x02 /* use current CPU (no hashing) */ | ||
688 | #define NFT_QUEUE_FLAG_MASK 0x03 | ||
689 | |||
690 | /** | ||
661 | * enum nft_reject_types - nf_tables reject expression reject types | 691 | * enum nft_reject_types - nf_tables reject expression reject types |
662 | * | 692 | * |
663 | * @NFT_REJECT_ICMP_UNREACH: reject using ICMP unreachable | 693 | * @NFT_REJECT_ICMP_UNREACH: reject using ICMP unreachable |
diff --git a/include/uapi/linux/netfilter/nfnetlink_queue.h b/include/uapi/linux/netfilter/nfnetlink_queue.h index 0132bad79de7..8dd819e2b5fe 100644 --- a/include/uapi/linux/netfilter/nfnetlink_queue.h +++ b/include/uapi/linux/netfilter/nfnetlink_queue.h | |||
@@ -47,6 +47,8 @@ enum nfqnl_attr_type { | |||
47 | NFQA_CAP_LEN, /* __u32 length of captured packet */ | 47 | NFQA_CAP_LEN, /* __u32 length of captured packet */ |
48 | NFQA_SKB_INFO, /* __u32 skb meta information */ | 48 | NFQA_SKB_INFO, /* __u32 skb meta information */ |
49 | NFQA_EXP, /* nf_conntrack_netlink.h */ | 49 | NFQA_EXP, /* nf_conntrack_netlink.h */ |
50 | NFQA_UID, /* __u32 sk uid */ | ||
51 | NFQA_GID, /* __u32 sk gid */ | ||
50 | 52 | ||
51 | __NFQA_MAX | 53 | __NFQA_MAX |
52 | }; | 54 | }; |
@@ -99,7 +101,8 @@ enum nfqnl_attr_config { | |||
99 | #define NFQA_CFG_F_FAIL_OPEN (1 << 0) | 101 | #define NFQA_CFG_F_FAIL_OPEN (1 << 0) |
100 | #define NFQA_CFG_F_CONNTRACK (1 << 1) | 102 | #define NFQA_CFG_F_CONNTRACK (1 << 1) |
101 | #define NFQA_CFG_F_GSO (1 << 2) | 103 | #define NFQA_CFG_F_GSO (1 << 2) |
102 | #define NFQA_CFG_F_MAX (1 << 3) | 104 | #define NFQA_CFG_F_UID_GID (1 << 3) |
105 | #define NFQA_CFG_F_MAX (1 << 4) | ||
103 | 106 | ||
104 | /* flags for NFQA_SKB_INFO */ | 107 | /* flags for NFQA_SKB_INFO */ |
105 | /* packet appears to have wrong checksums, but they are ok */ | 108 | /* packet appears to have wrong checksums, but they are ok */ |
diff --git a/include/uapi/linux/netfilter/xt_cgroup.h b/include/uapi/linux/netfilter/xt_cgroup.h new file mode 100644 index 000000000000..43acb7e175f6 --- /dev/null +++ b/include/uapi/linux/netfilter/xt_cgroup.h | |||
@@ -0,0 +1,11 @@ | |||
1 | #ifndef _UAPI_XT_CGROUP_H | ||
2 | #define _UAPI_XT_CGROUP_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | struct xt_cgroup_info { | ||
7 | __u32 id; | ||
8 | __u32 invert; | ||
9 | }; | ||
10 | |||
11 | #endif /* _UAPI_XT_CGROUP_H */ | ||
diff --git a/include/uapi/linux/netfilter/xt_ipcomp.h b/include/uapi/linux/netfilter/xt_ipcomp.h new file mode 100644 index 000000000000..45c7e40eb8e1 --- /dev/null +++ b/include/uapi/linux/netfilter/xt_ipcomp.h | |||
@@ -0,0 +1,16 @@ | |||
1 | #ifndef _XT_IPCOMP_H | ||
2 | #define _XT_IPCOMP_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | struct xt_ipcomp { | ||
7 | __u32 spis[2]; /* Security Parameter Index */ | ||
8 | __u8 invflags; /* Inverse flags */ | ||
9 | __u8 hdrres; /* Test of the Reserved Filed */ | ||
10 | }; | ||
11 | |||
12 | /* Values for "invflags" field in struct xt_ipcomp. */ | ||
13 | #define XT_IPCOMP_INV_SPI 0x01 /* Invert the sense of spi. */ | ||
14 | #define XT_IPCOMP_INV_MASK 0x01 /* All possible flags. */ | ||
15 | |||
16 | #endif /*_XT_IPCOMP_H*/ | ||
diff --git a/include/uapi/linux/netfilter/xt_l2tp.h b/include/uapi/linux/netfilter/xt_l2tp.h new file mode 100644 index 000000000000..7dccfa0acbfa --- /dev/null +++ b/include/uapi/linux/netfilter/xt_l2tp.h | |||
@@ -0,0 +1,27 @@ | |||
1 | #ifndef _LINUX_NETFILTER_XT_L2TP_H | ||
2 | #define _LINUX_NETFILTER_XT_L2TP_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | enum xt_l2tp_type { | ||
7 | XT_L2TP_TYPE_CONTROL, | ||
8 | XT_L2TP_TYPE_DATA, | ||
9 | }; | ||
10 | |||
11 | /* L2TP matching stuff */ | ||
12 | struct xt_l2tp_info { | ||
13 | __u32 tid; /* tunnel id */ | ||
14 | __u32 sid; /* session id */ | ||
15 | __u8 version; /* L2TP protocol version */ | ||
16 | __u8 type; /* L2TP packet type */ | ||
17 | __u8 flags; /* which fields to match */ | ||
18 | }; | ||
19 | |||
20 | enum { | ||
21 | XT_L2TP_TID = (1 << 0), /* match L2TP tunnel id */ | ||
22 | XT_L2TP_SID = (1 << 1), /* match L2TP session id */ | ||
23 | XT_L2TP_VERSION = (1 << 2), /* match L2TP protocol version */ | ||
24 | XT_L2TP_TYPE = (1 << 3), /* match L2TP packet type */ | ||
25 | }; | ||
26 | |||
27 | #endif /* _LINUX_NETFILTER_XT_L2TP_H */ | ||
diff --git a/include/uapi/linux/netfilter/xt_osf.h b/include/uapi/linux/netfilter/xt_osf.h index 18afa495f973..5d66caeba3ee 100644 --- a/include/uapi/linux/netfilter/xt_osf.h +++ b/include/uapi/linux/netfilter/xt_osf.h | |||
@@ -13,8 +13,7 @@ | |||
13 | * GNU General Public License for more details. | 13 | * GNU General Public License for more details. |
14 | * | 14 | * |
15 | * You should have received a copy of the GNU General Public License | 15 | * You should have received a copy of the GNU General Public License |
16 | * along with this program; if not, write to the Free Software | 16 | * along with this program; if not, see <http://www.gnu.org/licenses/>. |
17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
18 | */ | 17 | */ |
19 | 18 | ||
20 | #ifndef _XT_OSF_H | 19 | #ifndef _XT_OSF_H |
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index f752e9821e71..91054fd660e0 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h | |||
@@ -581,7 +581,14 @@ | |||
581 | * operation, %NL80211_ATTR_MAC contains the peer MAC address, and | 581 | * operation, %NL80211_ATTR_MAC contains the peer MAC address, and |
582 | * %NL80211_ATTR_REASON_CODE the reason code to be used (only with | 582 | * %NL80211_ATTR_REASON_CODE the reason code to be used (only with |
583 | * %NL80211_TDLS_TEARDOWN). | 583 | * %NL80211_TDLS_TEARDOWN). |
584 | * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. | 584 | * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. The |
585 | * %NL80211_ATTR_TDLS_ACTION attribute determines the type of frame to be | ||
586 | * sent. Public Action codes (802.11-2012 8.1.5.1) will be sent as | ||
587 | * 802.11 management frames, while TDLS action codes (802.11-2012 | ||
588 | * 8.5.13.1) will be encapsulated and sent as data frames. The currently | ||
589 | * supported Public Action code is %WLAN_PUB_ACTION_TDLS_DISCOVER_RES | ||
590 | * and the currently supported TDLS actions codes are given in | ||
591 | * &enum ieee80211_tdls_actioncode. | ||
585 | * | 592 | * |
586 | * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP | 593 | * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP |
587 | * (or GO) interface (i.e. hostapd) to ask for unexpected frames to | 594 | * (or GO) interface (i.e. hostapd) to ask for unexpected frames to |
@@ -686,6 +693,21 @@ | |||
686 | * other station that transmission must be blocked until the channel | 693 | * other station that transmission must be blocked until the channel |
687 | * switch is complete. | 694 | * switch is complete. |
688 | * | 695 | * |
696 | * @NL80211_CMD_VENDOR: Vendor-specified command/event. The command is specified | ||
697 | * by the %NL80211_ATTR_VENDOR_ID attribute and a sub-command in | ||
698 | * %NL80211_ATTR_VENDOR_SUBCMD. Parameter(s) can be transported in | ||
699 | * %NL80211_ATTR_VENDOR_DATA. | ||
700 | * For feature advertisement, the %NL80211_ATTR_VENDOR_DATA attribute is | ||
701 | * used in the wiphy data as a nested attribute containing descriptions | ||
702 | * (&struct nl80211_vendor_cmd_info) of the supported vendor commands. | ||
703 | * This may also be sent as an event with the same attributes. | ||
704 | * | ||
705 | * @NL80211_CMD_SET_QOS_MAP: Set Interworking QoS mapping for IP DSCP values. | ||
706 | * The QoS mapping information is included in %NL80211_ATTR_QOS_MAP. If | ||
707 | * that attribute is not included, QoS mapping is disabled. Since this | ||
708 | * QoS mapping is relevant for IP packets, it is only valid during an | ||
709 | * association. This is cleared on disassociation and AP restart. | ||
710 | * | ||
689 | * @NL80211_CMD_MAX: highest used command number | 711 | * @NL80211_CMD_MAX: highest used command number |
690 | * @__NL80211_CMD_AFTER_LAST: internal use | 712 | * @__NL80211_CMD_AFTER_LAST: internal use |
691 | */ | 713 | */ |
@@ -853,6 +875,10 @@ enum nl80211_commands { | |||
853 | 875 | ||
854 | NL80211_CMD_CHANNEL_SWITCH, | 876 | NL80211_CMD_CHANNEL_SWITCH, |
855 | 877 | ||
878 | NL80211_CMD_VENDOR, | ||
879 | |||
880 | NL80211_CMD_SET_QOS_MAP, | ||
881 | |||
856 | /* add new commands above here */ | 882 | /* add new commands above here */ |
857 | 883 | ||
858 | /* used to define NL80211_CMD_MAX below */ | 884 | /* used to define NL80211_CMD_MAX below */ |
@@ -1508,6 +1534,27 @@ enum nl80211_commands { | |||
1508 | * to react to radar events, e.g. initiate a channel switch or leave the | 1534 | * to react to radar events, e.g. initiate a channel switch or leave the |
1509 | * IBSS network. | 1535 | * IBSS network. |
1510 | * | 1536 | * |
1537 | * @NL80211_ATTR_SUPPORT_5_MHZ: A flag indicating that the device supports | ||
1538 | * 5 MHz channel bandwidth. | ||
1539 | * @NL80211_ATTR_SUPPORT_10_MHZ: A flag indicating that the device supports | ||
1540 | * 10 MHz channel bandwidth. | ||
1541 | * | ||
1542 | * @NL80211_ATTR_OPMODE_NOTIF: Operating mode field from Operating Mode | ||
1543 | * Notification Element based on association request when used with | ||
1544 | * %NL80211_CMD_NEW_STATION; u8 attribute. | ||
1545 | * | ||
1546 | * @NL80211_ATTR_VENDOR_ID: The vendor ID, either a 24-bit OUI or, if | ||
1547 | * %NL80211_VENDOR_ID_IS_LINUX is set, a special Linux ID (not used yet) | ||
1548 | * @NL80211_ATTR_VENDOR_SUBCMD: vendor sub-command | ||
1549 | * @NL80211_ATTR_VENDOR_DATA: data for the vendor command, if any; this | ||
1550 | * attribute is also used for vendor command feature advertisement | ||
1551 | * @NL80211_ATTR_VENDOR_EVENTS: used for event list advertising in the wiphy | ||
1552 | * info, containing a nested array of possible events | ||
1553 | * | ||
1554 | * @NL80211_ATTR_QOS_MAP: IP DSCP mapping for Interworking QoS mapping. This | ||
1555 | * data is in the format defined for the payload of the QoS Map Set element | ||
1556 | * in IEEE Std 802.11-2012, 8.4.2.97. | ||
1557 | * | ||
1511 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 1558 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
1512 | * @__NL80211_ATTR_AFTER_LAST: internal use | 1559 | * @__NL80211_ATTR_AFTER_LAST: internal use |
1513 | */ | 1560 | */ |
@@ -1824,6 +1871,18 @@ enum nl80211_attrs { | |||
1824 | 1871 | ||
1825 | NL80211_ATTR_HANDLE_DFS, | 1872 | NL80211_ATTR_HANDLE_DFS, |
1826 | 1873 | ||
1874 | NL80211_ATTR_SUPPORT_5_MHZ, | ||
1875 | NL80211_ATTR_SUPPORT_10_MHZ, | ||
1876 | |||
1877 | NL80211_ATTR_OPMODE_NOTIF, | ||
1878 | |||
1879 | NL80211_ATTR_VENDOR_ID, | ||
1880 | NL80211_ATTR_VENDOR_SUBCMD, | ||
1881 | NL80211_ATTR_VENDOR_DATA, | ||
1882 | NL80211_ATTR_VENDOR_EVENTS, | ||
1883 | |||
1884 | NL80211_ATTR_QOS_MAP, | ||
1885 | |||
1827 | /* add attributes here, update the policy in nl80211.c */ | 1886 | /* add attributes here, update the policy in nl80211.c */ |
1828 | 1887 | ||
1829 | __NL80211_ATTR_AFTER_LAST, | 1888 | __NL80211_ATTR_AFTER_LAST, |
@@ -2224,10 +2283,9 @@ enum nl80211_band_attr { | |||
2224 | * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz | 2283 | * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz |
2225 | * @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current | 2284 | * @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current |
2226 | * regulatory domain. | 2285 | * regulatory domain. |
2227 | * @NL80211_FREQUENCY_ATTR_PASSIVE_SCAN: Only passive scanning is | 2286 | * @NL80211_FREQUENCY_ATTR_NO_IR: no mechanisms that initiate radiation |
2228 | * permitted on this channel in current regulatory domain. | 2287 | * are permitted on this channel, this includes sending probe |
2229 | * @NL80211_FREQUENCY_ATTR_NO_IBSS: IBSS networks are not permitted | 2288 | * requests, or modes of operation that require beaconing. |
2230 | * on this channel in current regulatory domain. | ||
2231 | * @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory | 2289 | * @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory |
2232 | * on this channel in current regulatory domain. | 2290 | * on this channel in current regulatory domain. |
2233 | * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm | 2291 | * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm |
@@ -2254,8 +2312,8 @@ enum nl80211_frequency_attr { | |||
2254 | __NL80211_FREQUENCY_ATTR_INVALID, | 2312 | __NL80211_FREQUENCY_ATTR_INVALID, |
2255 | NL80211_FREQUENCY_ATTR_FREQ, | 2313 | NL80211_FREQUENCY_ATTR_FREQ, |
2256 | NL80211_FREQUENCY_ATTR_DISABLED, | 2314 | NL80211_FREQUENCY_ATTR_DISABLED, |
2257 | NL80211_FREQUENCY_ATTR_PASSIVE_SCAN, | 2315 | NL80211_FREQUENCY_ATTR_NO_IR, |
2258 | NL80211_FREQUENCY_ATTR_NO_IBSS, | 2316 | __NL80211_FREQUENCY_ATTR_NO_IBSS, |
2259 | NL80211_FREQUENCY_ATTR_RADAR, | 2317 | NL80211_FREQUENCY_ATTR_RADAR, |
2260 | NL80211_FREQUENCY_ATTR_MAX_TX_POWER, | 2318 | NL80211_FREQUENCY_ATTR_MAX_TX_POWER, |
2261 | NL80211_FREQUENCY_ATTR_DFS_STATE, | 2319 | NL80211_FREQUENCY_ATTR_DFS_STATE, |
@@ -2271,6 +2329,9 @@ enum nl80211_frequency_attr { | |||
2271 | }; | 2329 | }; |
2272 | 2330 | ||
2273 | #define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER | 2331 | #define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER |
2332 | #define NL80211_FREQUENCY_ATTR_PASSIVE_SCAN NL80211_FREQUENCY_ATTR_NO_IR | ||
2333 | #define NL80211_FREQUENCY_ATTR_NO_IBSS NL80211_FREQUENCY_ATTR_NO_IR | ||
2334 | #define NL80211_FREQUENCY_ATTR_NO_IR NL80211_FREQUENCY_ATTR_NO_IR | ||
2274 | 2335 | ||
2275 | /** | 2336 | /** |
2276 | * enum nl80211_bitrate_attr - bitrate attributes | 2337 | * enum nl80211_bitrate_attr - bitrate attributes |
@@ -2413,8 +2474,9 @@ enum nl80211_sched_scan_match_attr { | |||
2413 | * @NL80211_RRF_DFS: DFS support is required to be used | 2474 | * @NL80211_RRF_DFS: DFS support is required to be used |
2414 | * @NL80211_RRF_PTP_ONLY: this is only for Point To Point links | 2475 | * @NL80211_RRF_PTP_ONLY: this is only for Point To Point links |
2415 | * @NL80211_RRF_PTMP_ONLY: this is only for Point To Multi Point links | 2476 | * @NL80211_RRF_PTMP_ONLY: this is only for Point To Multi Point links |
2416 | * @NL80211_RRF_PASSIVE_SCAN: passive scan is required | 2477 | * @NL80211_RRF_NO_IR: no mechanisms that initiate radiation are allowed, |
2417 | * @NL80211_RRF_NO_IBSS: no IBSS is allowed | 2478 | * this includes probe requests or modes of operation that require |
2479 | * beaconing. | ||
2418 | */ | 2480 | */ |
2419 | enum nl80211_reg_rule_flags { | 2481 | enum nl80211_reg_rule_flags { |
2420 | NL80211_RRF_NO_OFDM = 1<<0, | 2482 | NL80211_RRF_NO_OFDM = 1<<0, |
@@ -2424,10 +2486,17 @@ enum nl80211_reg_rule_flags { | |||
2424 | NL80211_RRF_DFS = 1<<4, | 2486 | NL80211_RRF_DFS = 1<<4, |
2425 | NL80211_RRF_PTP_ONLY = 1<<5, | 2487 | NL80211_RRF_PTP_ONLY = 1<<5, |
2426 | NL80211_RRF_PTMP_ONLY = 1<<6, | 2488 | NL80211_RRF_PTMP_ONLY = 1<<6, |
2427 | NL80211_RRF_PASSIVE_SCAN = 1<<7, | 2489 | NL80211_RRF_NO_IR = 1<<7, |
2428 | NL80211_RRF_NO_IBSS = 1<<8, | 2490 | __NL80211_RRF_NO_IBSS = 1<<8, |
2429 | }; | 2491 | }; |
2430 | 2492 | ||
2493 | #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR | ||
2494 | #define NL80211_RRF_NO_IBSS NL80211_RRF_NO_IR | ||
2495 | #define NL80211_RRF_NO_IR NL80211_RRF_NO_IR | ||
2496 | |||
2497 | /* For backport compatibility with older userspace */ | ||
2498 | #define NL80211_RRF_NO_IR_ALL (NL80211_RRF_NO_IR | __NL80211_RRF_NO_IBSS) | ||
2499 | |||
2431 | /** | 2500 | /** |
2432 | * enum nl80211_dfs_regions - regulatory DFS regions | 2501 | * enum nl80211_dfs_regions - regulatory DFS regions |
2433 | * | 2502 | * |
@@ -3058,21 +3127,35 @@ enum nl80211_key_attributes { | |||
3058 | * in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with | 3127 | * in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with |
3059 | * 1 = 500 kbps) but without the IE length restriction (at most | 3128 | * 1 = 500 kbps) but without the IE length restriction (at most |
3060 | * %NL80211_MAX_SUPP_RATES in a single array). | 3129 | * %NL80211_MAX_SUPP_RATES in a single array). |
3061 | * @NL80211_TXRATE_MCS: HT (MCS) rates allowed for TX rate selection | 3130 | * @NL80211_TXRATE_HT: HT (MCS) rates allowed for TX rate selection |
3062 | * in an array of MCS numbers. | 3131 | * in an array of MCS numbers. |
3132 | * @NL80211_TXRATE_VHT: VHT rates allowed for TX rate selection, | ||
3133 | * see &struct nl80211_txrate_vht | ||
3063 | * @__NL80211_TXRATE_AFTER_LAST: internal | 3134 | * @__NL80211_TXRATE_AFTER_LAST: internal |
3064 | * @NL80211_TXRATE_MAX: highest TX rate attribute | 3135 | * @NL80211_TXRATE_MAX: highest TX rate attribute |
3065 | */ | 3136 | */ |
3066 | enum nl80211_tx_rate_attributes { | 3137 | enum nl80211_tx_rate_attributes { |
3067 | __NL80211_TXRATE_INVALID, | 3138 | __NL80211_TXRATE_INVALID, |
3068 | NL80211_TXRATE_LEGACY, | 3139 | NL80211_TXRATE_LEGACY, |
3069 | NL80211_TXRATE_MCS, | 3140 | NL80211_TXRATE_HT, |
3141 | NL80211_TXRATE_VHT, | ||
3070 | 3142 | ||
3071 | /* keep last */ | 3143 | /* keep last */ |
3072 | __NL80211_TXRATE_AFTER_LAST, | 3144 | __NL80211_TXRATE_AFTER_LAST, |
3073 | NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1 | 3145 | NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1 |
3074 | }; | 3146 | }; |
3075 | 3147 | ||
3148 | #define NL80211_TXRATE_MCS NL80211_TXRATE_HT | ||
3149 | #define NL80211_VHT_NSS_MAX 8 | ||
3150 | |||
3151 | /** | ||
3152 | * struct nl80211_txrate_vht - VHT MCS/NSS txrate bitmap | ||
3153 | * @mcs: MCS bitmap table for each NSS (array index 0 for 1 stream, etc.) | ||
3154 | */ | ||
3155 | struct nl80211_txrate_vht { | ||
3156 | __u16 mcs[NL80211_VHT_NSS_MAX]; | ||
3157 | }; | ||
3158 | |||
3076 | /** | 3159 | /** |
3077 | * enum nl80211_band - Frequency band | 3160 | * enum nl80211_band - Frequency band |
3078 | * @NL80211_BAND_2GHZ: 2.4 GHz ISM band | 3161 | * @NL80211_BAND_2GHZ: 2.4 GHz ISM band |
@@ -3934,4 +4017,24 @@ enum nl80211_rxmgmt_flags { | |||
3934 | NL80211_RXMGMT_FLAG_ANSWERED = 1 << 0, | 4017 | NL80211_RXMGMT_FLAG_ANSWERED = 1 << 0, |
3935 | }; | 4018 | }; |
3936 | 4019 | ||
4020 | /* | ||
4021 | * If this flag is unset, the lower 24 bits are an OUI, if set | ||
4022 | * a Linux nl80211 vendor ID is used (no such IDs are allocated | ||
4023 | * yet, so that's not valid so far) | ||
4024 | */ | ||
4025 | #define NL80211_VENDOR_ID_IS_LINUX 0x80000000 | ||
4026 | |||
4027 | /** | ||
4028 | * struct nl80211_vendor_cmd_info - vendor command data | ||
4029 | * @vendor_id: If the %NL80211_VENDOR_ID_IS_LINUX flag is clear, then the | ||
4030 | * value is a 24-bit OUI; if it is set then a separately allocated ID | ||
4031 | * may be used, but no such IDs are allocated yet. New IDs should be | ||
4032 | * added to this file when needed. | ||
4033 | * @subcmd: sub-command ID for the command | ||
4034 | */ | ||
4035 | struct nl80211_vendor_cmd_info { | ||
4036 | __u32 vendor_id; | ||
4037 | __u32 subcmd; | ||
4038 | }; | ||
4039 | |||
3937 | #endif /* __LINUX_NL80211_H */ | 4040 | #endif /* __LINUX_NL80211_H */ |
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h index d120f9fe0017..970553cbbc8e 100644 --- a/include/uapi/linux/openvswitch.h +++ b/include/uapi/linux/openvswitch.h | |||
@@ -40,7 +40,15 @@ struct ovs_header { | |||
40 | 40 | ||
41 | #define OVS_DATAPATH_FAMILY "ovs_datapath" | 41 | #define OVS_DATAPATH_FAMILY "ovs_datapath" |
42 | #define OVS_DATAPATH_MCGROUP "ovs_datapath" | 42 | #define OVS_DATAPATH_MCGROUP "ovs_datapath" |
43 | #define OVS_DATAPATH_VERSION 0x1 | 43 | |
44 | /* V2: | ||
45 | * - API users are expected to provide OVS_DP_ATTR_USER_FEATURES | ||
46 | * when creating the datapath. | ||
47 | */ | ||
48 | #define OVS_DATAPATH_VERSION 2 | ||
49 | |||
50 | /* First OVS datapath version to support features */ | ||
51 | #define OVS_DP_VER_FEATURES 2 | ||
44 | 52 | ||
45 | enum ovs_datapath_cmd { | 53 | enum ovs_datapath_cmd { |
46 | OVS_DP_CMD_UNSPEC, | 54 | OVS_DP_CMD_UNSPEC, |
@@ -75,6 +83,7 @@ enum ovs_datapath_attr { | |||
75 | OVS_DP_ATTR_UPCALL_PID, /* Netlink PID to receive upcalls */ | 83 | OVS_DP_ATTR_UPCALL_PID, /* Netlink PID to receive upcalls */ |
76 | OVS_DP_ATTR_STATS, /* struct ovs_dp_stats */ | 84 | OVS_DP_ATTR_STATS, /* struct ovs_dp_stats */ |
77 | OVS_DP_ATTR_MEGAFLOW_STATS, /* struct ovs_dp_megaflow_stats */ | 85 | OVS_DP_ATTR_MEGAFLOW_STATS, /* struct ovs_dp_megaflow_stats */ |
86 | OVS_DP_ATTR_USER_FEATURES, /* OVS_DP_F_* */ | ||
78 | __OVS_DP_ATTR_MAX | 87 | __OVS_DP_ATTR_MAX |
79 | }; | 88 | }; |
80 | 89 | ||
@@ -106,6 +115,9 @@ struct ovs_vport_stats { | |||
106 | __u64 tx_dropped; /* no space available in linux */ | 115 | __u64 tx_dropped; /* no space available in linux */ |
107 | }; | 116 | }; |
108 | 117 | ||
118 | /* Allow last Netlink attribute to be unaligned */ | ||
119 | #define OVS_DP_F_UNALIGNED (1 << 0) | ||
120 | |||
109 | /* Fixed logical ports. */ | 121 | /* Fixed logical ports. */ |
110 | #define OVSP_LOCAL ((__u32)0) | 122 | #define OVSP_LOCAL ((__u32)0) |
111 | 123 | ||
diff --git a/include/uapi/linux/pci_regs.h b/include/uapi/linux/pci_regs.h index ab6b4e7f6657..30db069bce62 100644 --- a/include/uapi/linux/pci_regs.h +++ b/include/uapi/linux/pci_regs.h | |||
@@ -489,7 +489,12 @@ | |||
489 | #define PCI_EXP_LNKSTA_CLS 0x000f /* Current Link Speed */ | 489 | #define PCI_EXP_LNKSTA_CLS 0x000f /* Current Link Speed */ |
490 | #define PCI_EXP_LNKSTA_CLS_2_5GB 0x0001 /* Current Link Speed 2.5GT/s */ | 490 | #define PCI_EXP_LNKSTA_CLS_2_5GB 0x0001 /* Current Link Speed 2.5GT/s */ |
491 | #define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002 /* Current Link Speed 5.0GT/s */ | 491 | #define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002 /* Current Link Speed 5.0GT/s */ |
492 | #define PCI_EXP_LNKSTA_CLS_8_0GB 0x0003 /* Current Link Speed 8.0GT/s */ | ||
492 | #define PCI_EXP_LNKSTA_NLW 0x03f0 /* Negotiated Link Width */ | 493 | #define PCI_EXP_LNKSTA_NLW 0x03f0 /* Negotiated Link Width */ |
494 | #define PCI_EXP_LNKSTA_NLW_X1 0x0010 /* Current Link Width x1 */ | ||
495 | #define PCI_EXP_LNKSTA_NLW_X2 0x0020 /* Current Link Width x2 */ | ||
496 | #define PCI_EXP_LNKSTA_NLW_X4 0x0040 /* Current Link Width x4 */ | ||
497 | #define PCI_EXP_LNKSTA_NLW_X8 0x0080 /* Current Link Width x8 */ | ||
493 | #define PCI_EXP_LNKSTA_NLW_SHIFT 4 /* start of NLW mask in link status */ | 498 | #define PCI_EXP_LNKSTA_NLW_SHIFT 4 /* start of NLW mask in link status */ |
494 | #define PCI_EXP_LNKSTA_LT 0x0800 /* Link Training */ | 499 | #define PCI_EXP_LNKSTA_LT 0x0800 /* Link Training */ |
495 | #define PCI_EXP_LNKSTA_SLC 0x1000 /* Slot Clock Configuration */ | 500 | #define PCI_EXP_LNKSTA_SLC 0x1000 /* Slot Clock Configuration */ |
diff --git a/include/uapi/linux/pkt_sched.h b/include/uapi/linux/pkt_sched.h index a806687ad98f..d62316baae94 100644 --- a/include/uapi/linux/pkt_sched.h +++ b/include/uapi/linux/pkt_sched.h | |||
@@ -173,6 +173,8 @@ enum { | |||
173 | TCA_TBF_PTAB, | 173 | TCA_TBF_PTAB, |
174 | TCA_TBF_RATE64, | 174 | TCA_TBF_RATE64, |
175 | TCA_TBF_PRATE64, | 175 | TCA_TBF_PRATE64, |
176 | TCA_TBF_BURST, | ||
177 | TCA_TBF_PBURST, | ||
176 | __TCA_TBF_MAX, | 178 | __TCA_TBF_MAX, |
177 | }; | 179 | }; |
178 | 180 | ||
@@ -523,6 +525,7 @@ enum { | |||
523 | TCA_NETEM_LOSS, | 525 | TCA_NETEM_LOSS, |
524 | TCA_NETEM_RATE, | 526 | TCA_NETEM_RATE, |
525 | TCA_NETEM_ECN, | 527 | TCA_NETEM_ECN, |
528 | TCA_NETEM_RATE64, | ||
526 | __TCA_NETEM_MAX, | 529 | __TCA_NETEM_MAX, |
527 | }; | 530 | }; |
528 | 531 | ||
@@ -790,4 +793,54 @@ struct tc_fq_qd_stats { | |||
790 | __u32 throttled_flows; | 793 | __u32 throttled_flows; |
791 | __u32 pad; | 794 | __u32 pad; |
792 | }; | 795 | }; |
796 | |||
797 | /* Heavy-Hitter Filter */ | ||
798 | |||
799 | enum { | ||
800 | TCA_HHF_UNSPEC, | ||
801 | TCA_HHF_BACKLOG_LIMIT, | ||
802 | TCA_HHF_QUANTUM, | ||
803 | TCA_HHF_HH_FLOWS_LIMIT, | ||
804 | TCA_HHF_RESET_TIMEOUT, | ||
805 | TCA_HHF_ADMIT_BYTES, | ||
806 | TCA_HHF_EVICT_TIMEOUT, | ||
807 | TCA_HHF_NON_HH_WEIGHT, | ||
808 | __TCA_HHF_MAX | ||
809 | }; | ||
810 | |||
811 | #define TCA_HHF_MAX (__TCA_HHF_MAX - 1) | ||
812 | |||
813 | struct tc_hhf_xstats { | ||
814 | __u32 drop_overlimit; /* number of times max qdisc packet limit | ||
815 | * was hit | ||
816 | */ | ||
817 | __u32 hh_overlimit; /* number of times max heavy-hitters was hit */ | ||
818 | __u32 hh_tot_count; /* number of captured heavy-hitters so far */ | ||
819 | __u32 hh_cur_count; /* number of current heavy-hitters */ | ||
820 | }; | ||
821 | |||
822 | /* PIE */ | ||
823 | enum { | ||
824 | TCA_PIE_UNSPEC, | ||
825 | TCA_PIE_TARGET, | ||
826 | TCA_PIE_LIMIT, | ||
827 | TCA_PIE_TUPDATE, | ||
828 | TCA_PIE_ALPHA, | ||
829 | TCA_PIE_BETA, | ||
830 | TCA_PIE_ECN, | ||
831 | TCA_PIE_BYTEMODE, | ||
832 | __TCA_PIE_MAX | ||
833 | }; | ||
834 | #define TCA_PIE_MAX (__TCA_PIE_MAX - 1) | ||
835 | |||
836 | struct tc_pie_xstats { | ||
837 | __u32 prob; /* current probability */ | ||
838 | __u32 delay; /* current delay in ms */ | ||
839 | __u32 avg_dq_rate; /* current average dq_rate in bits/pie_time */ | ||
840 | __u32 packets_in; /* total number of packets enqueued */ | ||
841 | __u32 dropped; /* packets dropped due to pie_action */ | ||
842 | __u32 overlimit; /* dropped due to lack of space in queue */ | ||
843 | __u32 maxq; /* maximum queue size */ | ||
844 | __u32 ecn_mark; /* packets marked with ecn*/ | ||
845 | }; | ||
793 | #endif | 846 | #endif |
diff --git a/include/uapi/linux/sctp.h b/include/uapi/linux/sctp.h index ca451e99b28b..266022a2be4a 100644 --- a/include/uapi/linux/sctp.h +++ b/include/uapi/linux/sctp.h | |||
@@ -22,9 +22,8 @@ | |||
22 | * See the GNU General Public License for more details. | 22 | * See the GNU General Public License for more details. |
23 | * | 23 | * |
24 | * You should have received a copy of the GNU General Public License | 24 | * You should have received a copy of the GNU General Public License |
25 | * along with GNU CC; see the file COPYING. If not, write to | 25 | * along with GNU CC; see the file COPYING. If not, see |
26 | * the Free Software Foundation, 59 Temple Place - Suite 330, | 26 | * <http://www.gnu.org/licenses/>. |
27 | * Boston, MA 02111-1307, USA. | ||
28 | * | 27 | * |
29 | * Please send any bug reports or fixes you make to the | 28 | * Please send any bug reports or fixes you make to the |
30 | * email address(es): | 29 | * email address(es): |
diff --git a/include/uapi/linux/snmp.h b/include/uapi/linux/snmp.h index 1bdb4a39d1e1..bbaba22f2d1b 100644 --- a/include/uapi/linux/snmp.h +++ b/include/uapi/linux/snmp.h | |||
@@ -258,6 +258,7 @@ enum | |||
258 | LINUX_MIB_TCPFASTOPENCOOKIEREQD, /* TCPFastOpenCookieReqd */ | 258 | LINUX_MIB_TCPFASTOPENCOOKIEREQD, /* TCPFastOpenCookieReqd */ |
259 | LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES, /* TCPSpuriousRtxHostQueues */ | 259 | LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES, /* TCPSpuriousRtxHostQueues */ |
260 | LINUX_MIB_BUSYPOLLRXPACKETS, /* BusyPollRxPackets */ | 260 | LINUX_MIB_BUSYPOLLRXPACKETS, /* BusyPollRxPackets */ |
261 | LINUX_MIB_TCPAUTOCORKING, /* TCPAutoCorking */ | ||
261 | __LINUX_MIB_MAX | 262 | __LINUX_MIB_MAX |
262 | }; | 263 | }; |
263 | 264 | ||
diff --git a/include/uapi/linux/sockios.h b/include/uapi/linux/sockios.h index 7997a506ad41..e888b1aed69f 100644 --- a/include/uapi/linux/sockios.h +++ b/include/uapi/linux/sockios.h | |||
@@ -125,7 +125,8 @@ | |||
125 | #define SIOCBRDELIF 0x89a3 /* remove interface from bridge */ | 125 | #define SIOCBRDELIF 0x89a3 /* remove interface from bridge */ |
126 | 126 | ||
127 | /* hardware time stamping: parameters in linux/net_tstamp.h */ | 127 | /* hardware time stamping: parameters in linux/net_tstamp.h */ |
128 | #define SIOCSHWTSTAMP 0x89b0 | 128 | #define SIOCSHWTSTAMP 0x89b0 /* set and get config */ |
129 | #define SIOCGHWTSTAMP 0x89b1 /* get config */ | ||
129 | 130 | ||
130 | /* Device private ioctl calls */ | 131 | /* Device private ioctl calls */ |
131 | 132 | ||
diff --git a/include/uapi/linux/tc_act/tc_ipt.h b/include/uapi/linux/tc_act/tc_ipt.h index a2335563d21f..130aaadf6fac 100644 --- a/include/uapi/linux/tc_act/tc_ipt.h +++ b/include/uapi/linux/tc_act/tc_ipt.h | |||
@@ -4,6 +4,7 @@ | |||
4 | #include <linux/pkt_cls.h> | 4 | #include <linux/pkt_cls.h> |
5 | 5 | ||
6 | #define TCA_ACT_IPT 6 | 6 | #define TCA_ACT_IPT 6 |
7 | #define TCA_ACT_XT 10 | ||
7 | 8 | ||
8 | enum { | 9 | enum { |
9 | TCA_IPT_UNSPEC, | 10 | TCA_IPT_UNSPEC, |
diff --git a/include/uapi/linux/tcp_metrics.h b/include/uapi/linux/tcp_metrics.h index cb5157b55f32..54a37b13f2c4 100644 --- a/include/uapi/linux/tcp_metrics.h +++ b/include/uapi/linux/tcp_metrics.h | |||
@@ -35,6 +35,8 @@ enum { | |||
35 | TCP_METRICS_ATTR_FOPEN_SYN_DROPS, /* u16, count of drops */ | 35 | TCP_METRICS_ATTR_FOPEN_SYN_DROPS, /* u16, count of drops */ |
36 | TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS, /* msecs age */ | 36 | TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS, /* msecs age */ |
37 | TCP_METRICS_ATTR_FOPEN_COOKIE, /* binary */ | 37 | TCP_METRICS_ATTR_FOPEN_COOKIE, /* binary */ |
38 | TCP_METRICS_ATTR_SADDR_IPV4, /* u32 */ | ||
39 | TCP_METRICS_ATTR_SADDR_IPV6, /* binary */ | ||
38 | 40 | ||
39 | __TCP_METRICS_ATTR_MAX, | 41 | __TCP_METRICS_ATTR_MAX, |
40 | }; | 42 | }; |