aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/asm-generic/socket.h2
-rw-r--r--include/uapi/linux/if_addr.h6
-rw-r--r--include/uapi/linux/if_arp.h1
-rw-r--r--include/uapi/linux/if_link.h48
-rw-r--r--include/uapi/linux/if_packet.h29
-rw-r--r--include/uapi/linux/in6.h6
-rw-r--r--include/uapi/linux/net_tstamp.h16
-rw-r--r--include/uapi/linux/netconf.h1
-rw-r--r--include/uapi/linux/netfilter.h1
-rw-r--r--include/uapi/linux/netfilter/Kbuild3
-rw-r--r--include/uapi/linux/netfilter/nf_nat.h12
-rw-r--r--include/uapi/linux/netfilter/nf_tables.h30
-rw-r--r--include/uapi/linux/netfilter/nfnetlink_queue.h5
-rw-r--r--include/uapi/linux/netfilter/xt_cgroup.h11
-rw-r--r--include/uapi/linux/netfilter/xt_ipcomp.h16
-rw-r--r--include/uapi/linux/netfilter/xt_l2tp.h27
-rw-r--r--include/uapi/linux/netfilter/xt_osf.h3
-rw-r--r--include/uapi/linux/nl80211.h129
-rw-r--r--include/uapi/linux/openvswitch.h14
-rw-r--r--include/uapi/linux/pci_regs.h5
-rw-r--r--include/uapi/linux/pkt_sched.h53
-rw-r--r--include/uapi/linux/sctp.h5
-rw-r--r--include/uapi/linux/snmp.h1
-rw-r--r--include/uapi/linux/sockios.h3
-rw-r--r--include/uapi/linux/tc_act/tc_ipt.h1
-rw-r--r--include/uapi/linux/tcp_metrics.h2
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 */
22enum { 25enum {
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
48struct ifa_cacheinfo { 54struct 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
362enum {
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
374enum {
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
341enum { 389enum {
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
138struct tpacket_hdr_variant1 { 144struct 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
143struct tpacket3_hdr { 151struct 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
158struct tpacket_bd_ts { 167struct 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 */
41struct hwtstamp_config { 41struct 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
54enum { 54enum {
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
39header-y += xt_TPROXY.h 39header-y += xt_TPROXY.h
40header-y += xt_addrtype.h 40header-y += xt_addrtype.h
41header-y += xt_bpf.h 41header-y += xt_bpf.h
42header-y += xt_cgroup.h
42header-y += xt_cluster.h 43header-y += xt_cluster.h
43header-y += xt_comment.h 44header-y += xt_comment.h
44header-y += xt_connbytes.h 45header-y += xt_connbytes.h
@@ -54,8 +55,10 @@ header-y += xt_ecn.h
54header-y += xt_esp.h 55header-y += xt_esp.h
55header-y += xt_hashlimit.h 56header-y += xt_hashlimit.h
56header-y += xt_helper.h 57header-y += xt_helper.h
58header-y += xt_ipcomp.h
57header-y += xt_iprange.h 59header-y += xt_iprange.h
58header-y += xt_ipvs.h 60header-y += xt_ipvs.h
61header-y += xt_l2tp.h
59header-y += xt_length.h 62header-y += xt_length.h
60header-y += xt_limit.h 63header-y += xt_limit.h
61header-y += xt_mac.h 64header-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
12struct nf_nat_ipv4_range { 16struct 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 */
114enum nft_table_attributes { 115enum 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 */
533enum nft_meta_keys { 537enum 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 */
557enum nft_meta_attributes { 564enum 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 */
605enum nft_ct_attributes { 614enum 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 */
677enum 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
6struct 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
6struct 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
6enum xt_l2tp_type {
7 XT_L2TP_TYPE_CONTROL,
8 XT_L2TP_TYPE_DATA,
9};
10
11/* L2TP matching stuff */
12struct 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
20enum {
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 */
2419enum nl80211_reg_rule_flags { 2481enum 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 */
3066enum nl80211_tx_rate_attributes { 3137enum 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 */
3155struct 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 */
4035struct 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
45enum ovs_datapath_cmd { 53enum 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
799enum {
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
813struct 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 */
823enum {
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
836struct 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
8enum { 9enum {
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};