aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-01-12 21:57:02 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2016-01-12 21:57:02 -0500
commitaee3bfa3307cd0da2126bdc0ea359dabea5ee8f7 (patch)
tree3d35c69e8fa835098bb90f77f30abed120681651 /include/uapi/linux
parentc597b6bcd5c624534afc3df65cdc42bb05173bca (diff)
parent415b6f19e87e350b13585591859d4fdf50772229 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking updates from Davic Miller: 1) Support busy polling generically, for all NAPI drivers. From Eric Dumazet. 2) Add byte/packet counter support to nft_ct, from Floriani Westphal. 3) Add RSS/XPS support to mvneta driver, from Gregory Clement. 4) Implement IPV6_HDRINCL socket option for raw sockets, from Hannes Frederic Sowa. 5) Add support for T6 adapter to cxgb4 driver, from Hariprasad Shenai. 6) Add support for VLAN device bridging to mlxsw switch driver, from Ido Schimmel. 7) Add driver for Netronome NFP4000/NFP6000, from Jakub Kicinski. 8) Provide hwmon interface to mlxsw switch driver, from Jiri Pirko. 9) Reorganize wireless drivers into per-vendor directories just like we do for ethernet drivers. From Kalle Valo. 10) Provide a way for administrators "destroy" connected sockets via the SOCK_DESTROY socket netlink diag operation. From Lorenzo Colitti. 11) Add support to add/remove multicast routes via netlink, from Nikolay Aleksandrov. 12) Make TCP keepalive settings per-namespace, from Nikolay Borisov. 13) Add forwarding and packet duplication facilities to nf_tables, from Pablo Neira Ayuso. 14) Dead route support in MPLS, from Roopa Prabhu. 15) TSO support for thunderx chips, from Sunil Goutham. 16) Add driver for IBM's System i/p VNIC protocol, from Thomas Falcon. 17) Rationalize, consolidate, and more completely document the checksum offloading facilities in the networking stack. From Tom Herbert. 18) Support aborting an ongoing scan in mac80211/cfg80211, from Vidyullatha Kanchanapally. 19) Use per-bucket spinlock for bpf hash facility, from Tom Leiming. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1375 commits) net: bnxt: always return values from _bnxt_get_max_rings net: bpf: reject invalid shifts phonet: properly unshare skbs in phonet_rcv() dwc_eth_qos: Fix dma address for multi-fragment skbs phy: remove an unneeded condition mdio: remove an unneed condition mdio_bus: NULL dereference on allocation error net: Fix typo in netdev_intersect_features net: freescale: mac-fec: Fix build error from phy_device API change net: freescale: ucc_geth: Fix build error from phy_device API change bonding: Prevent IPv6 link local address on enslaved devices IB/mlx5: Add flow steering support net/mlx5_core: Export flow steering API net/mlx5_core: Make ipv4/ipv6 location more clear net/mlx5_core: Enable flow steering support for the IB driver net/mlx5_core: Initialize namespaces only when supported by device net/mlx5_core: Set priority attributes net/mlx5_core: Connect flow tables net/mlx5_core: Introduce modify flow table command net/mlx5_core: Managing root flow table ...
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/bpf.h27
-rw-r--r--include/uapi/linux/ethtool.h3
-rw-r--r--include/uapi/linux/if_link.h4
-rw-r--r--include/uapi/linux/ila.h22
-rw-r--r--include/uapi/linux/in6.h1
-rw-r--r--include/uapi/linux/mroute.h59
-rw-r--r--include/uapi/linux/netfilter/ipset/ip_set_bitmap.h2
-rw-r--r--include/uapi/linux/netfilter/ipset/ip_set_hash.h2
-rw-r--r--include/uapi/linux/netfilter/ipset/ip_set_list.h2
-rw-r--r--include/uapi/linux/netfilter/nf_conntrack_sctp.h12
-rw-r--r--include/uapi/linux/netfilter/nf_conntrack_tuple_common.h3
-rw-r--r--include/uapi/linux/netfilter/nf_tables.h91
-rw-r--r--include/uapi/linux/netfilter/nfnetlink.h2
-rw-r--r--include/uapi/linux/netfilter/xt_HMARK.h1
-rw-r--r--include/uapi/linux/netfilter/xt_RATEEST.h1
-rw-r--r--include/uapi/linux/netfilter/xt_TEE.h2
-rw-r--r--include/uapi/linux/netfilter/xt_TPROXY.h1
-rw-r--r--include/uapi/linux/netfilter/xt_cgroup.h15
-rw-r--r--include/uapi/linux/netfilter/xt_hashlimit.h1
-rw-r--r--include/uapi/linux/netfilter/xt_ipvs.h1
-rw-r--r--include/uapi/linux/netfilter/xt_mac.h2
-rw-r--r--include/uapi/linux/netfilter/xt_osf.h2
-rw-r--r--include/uapi/linux/netfilter/xt_physdev.h2
-rw-r--r--include/uapi/linux/netfilter/xt_policy.h2
-rw-r--r--include/uapi/linux/netfilter/xt_rateest.h1
-rw-r--r--include/uapi/linux/netfilter/xt_recent.h1
-rw-r--r--include/uapi/linux/netfilter/xt_sctp.h12
-rw-r--r--include/uapi/linux/netfilter_arp/arp_tables.h1
-rw-r--r--include/uapi/linux/netfilter_bridge.h1
-rw-r--r--include/uapi/linux/netfilter_bridge/ebt_arp.h1
-rw-r--r--include/uapi/linux/netfilter_bridge/ebt_arpreply.h2
-rw-r--r--include/uapi/linux/netfilter_bridge/ebt_ip6.h1
-rw-r--r--include/uapi/linux/netfilter_bridge/ebt_nat.h2
-rw-r--r--include/uapi/linux/netfilter_bridge/ebtables.h6
-rw-r--r--include/uapi/linux/netfilter_ipv4/ip_tables.h1
-rw-r--r--include/uapi/linux/netfilter_ipv6/ip6_tables.h1
-rw-r--r--include/uapi/linux/netfilter_ipv6/ip6t_rt.h2
-rw-r--r--include/uapi/linux/nl80211.h11
-rw-r--r--include/uapi/linux/pkt_sched.h4
-rw-r--r--include/uapi/linux/rtnetlink.h1
-rw-r--r--include/uapi/linux/sock_diag.h1
-rw-r--r--include/uapi/linux/sockios.h2
42 files changed, 245 insertions, 66 deletions
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
index 9ea2d22fa2cb..aa6f8571de13 100644
--- a/include/uapi/linux/bpf.h
+++ b/include/uapi/linux/bpf.h
@@ -269,9 +269,29 @@ enum bpf_func_id {
269 * Return: 0 on success 269 * Return: 0 on success
270 */ 270 */
271 BPF_FUNC_perf_event_output, 271 BPF_FUNC_perf_event_output,
272 BPF_FUNC_skb_load_bytes,
272 __BPF_FUNC_MAX_ID, 273 __BPF_FUNC_MAX_ID,
273}; 274};
274 275
276/* All flags used by eBPF helper functions, placed here. */
277
278/* BPF_FUNC_skb_store_bytes flags. */
279#define BPF_F_RECOMPUTE_CSUM (1ULL << 0)
280
281/* BPF_FUNC_l3_csum_replace and BPF_FUNC_l4_csum_replace flags.
282 * First 4 bits are for passing the header field size.
283 */
284#define BPF_F_HDR_FIELD_MASK 0xfULL
285
286/* BPF_FUNC_l4_csum_replace flags. */
287#define BPF_F_PSEUDO_HDR (1ULL << 4)
288
289/* BPF_FUNC_clone_redirect and BPF_FUNC_redirect flags. */
290#define BPF_F_INGRESS (1ULL << 0)
291
292/* BPF_FUNC_skb_set_tunnel_key and BPF_FUNC_skb_get_tunnel_key flags. */
293#define BPF_F_TUNINFO_IPV6 (1ULL << 0)
294
275/* user accessible mirror of in-kernel sk_buff. 295/* user accessible mirror of in-kernel sk_buff.
276 * new fields can only be added to the end of this structure 296 * new fields can only be added to the end of this structure
277 */ 297 */
@@ -295,7 +315,12 @@ struct __sk_buff {
295 315
296struct bpf_tunnel_key { 316struct bpf_tunnel_key {
297 __u32 tunnel_id; 317 __u32 tunnel_id;
298 __u32 remote_ipv4; 318 union {
319 __u32 remote_ipv4;
320 __u32 remote_ipv6[4];
321 };
322 __u8 tunnel_tos;
323 __u8 tunnel_ttl;
299}; 324};
300 325
301#endif /* _UAPI__LINUX_BPF_H__ */ 326#endif /* _UAPI__LINUX_BPF_H__ */
diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h
index cd1629170103..57fa39005e79 100644
--- a/include/uapi/linux/ethtool.h
+++ b/include/uapi/linux/ethtool.h
@@ -542,6 +542,7 @@ struct ethtool_pauseparam {
542 * now deprecated 542 * now deprecated
543 * @ETH_SS_FEATURES: Device feature names 543 * @ETH_SS_FEATURES: Device feature names
544 * @ETH_SS_RSS_HASH_FUNCS: RSS hush function names 544 * @ETH_SS_RSS_HASH_FUNCS: RSS hush function names
545 * @ETH_SS_PHY_STATS: Statistic names, for use with %ETHTOOL_GPHYSTATS
545 */ 546 */
546enum ethtool_stringset { 547enum ethtool_stringset {
547 ETH_SS_TEST = 0, 548 ETH_SS_TEST = 0,
@@ -551,6 +552,7 @@ enum ethtool_stringset {
551 ETH_SS_FEATURES, 552 ETH_SS_FEATURES,
552 ETH_SS_RSS_HASH_FUNCS, 553 ETH_SS_RSS_HASH_FUNCS,
553 ETH_SS_TUNABLES, 554 ETH_SS_TUNABLES,
555 ETH_SS_PHY_STATS,
554}; 556};
555 557
556/** 558/**
@@ -1225,6 +1227,7 @@ enum ethtool_sfeatures_retval_bits {
1225#define ETHTOOL_SRSSH 0x00000047 /* Set RX flow hash configuration */ 1227#define ETHTOOL_SRSSH 0x00000047 /* Set RX flow hash configuration */
1226#define ETHTOOL_GTUNABLE 0x00000048 /* Get tunable configuration */ 1228#define ETHTOOL_GTUNABLE 0x00000048 /* Get tunable configuration */
1227#define ETHTOOL_STUNABLE 0x00000049 /* Set tunable configuration */ 1229#define ETHTOOL_STUNABLE 0x00000049 /* Set tunable configuration */
1230#define ETHTOOL_GPHYSTATS 0x0000004a /* get PHY-specific statistics */
1228 1231
1229/* compatibility with older code */ 1232/* compatibility with older code */
1230#define SPARC_ETH_GSET ETHTOOL_GSET 1233#define SPARC_ETH_GSET ETHTOOL_GSET
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
index 5ad57375a99f..a30b78090594 100644
--- a/include/uapi/linux/if_link.h
+++ b/include/uapi/linux/if_link.h
@@ -218,6 +218,7 @@ enum in6_addr_gen_mode {
218 IN6_ADDR_GEN_MODE_EUI64, 218 IN6_ADDR_GEN_MODE_EUI64,
219 IN6_ADDR_GEN_MODE_NONE, 219 IN6_ADDR_GEN_MODE_NONE,
220 IN6_ADDR_GEN_MODE_STABLE_PRIVACY, 220 IN6_ADDR_GEN_MODE_STABLE_PRIVACY,
221 IN6_ADDR_GEN_MODE_RANDOM,
221}; 222};
222 223
223/* Bridge section */ 224/* Bridge section */
@@ -462,6 +463,9 @@ enum {
462 IFLA_GENEVE_PORT, /* destination port */ 463 IFLA_GENEVE_PORT, /* destination port */
463 IFLA_GENEVE_COLLECT_METADATA, 464 IFLA_GENEVE_COLLECT_METADATA,
464 IFLA_GENEVE_REMOTE6, 465 IFLA_GENEVE_REMOTE6,
466 IFLA_GENEVE_UDP_CSUM,
467 IFLA_GENEVE_UDP_ZERO_CSUM6_TX,
468 IFLA_GENEVE_UDP_ZERO_CSUM6_RX,
465 __IFLA_GENEVE_MAX 469 __IFLA_GENEVE_MAX
466}; 470};
467#define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1) 471#define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1)
diff --git a/include/uapi/linux/ila.h b/include/uapi/linux/ila.h
index 7ed9e670814e..abde7bbd6f3b 100644
--- a/include/uapi/linux/ila.h
+++ b/include/uapi/linux/ila.h
@@ -3,13 +3,35 @@
3#ifndef _UAPI_LINUX_ILA_H 3#ifndef _UAPI_LINUX_ILA_H
4#define _UAPI_LINUX_ILA_H 4#define _UAPI_LINUX_ILA_H
5 5
6/* NETLINK_GENERIC related info */
7#define ILA_GENL_NAME "ila"
8#define ILA_GENL_VERSION 0x1
9
6enum { 10enum {
7 ILA_ATTR_UNSPEC, 11 ILA_ATTR_UNSPEC,
8 ILA_ATTR_LOCATOR, /* u64 */ 12 ILA_ATTR_LOCATOR, /* u64 */
13 ILA_ATTR_IDENTIFIER, /* u64 */
14 ILA_ATTR_LOCATOR_MATCH, /* u64 */
15 ILA_ATTR_IFINDEX, /* s32 */
16 ILA_ATTR_DIR, /* u32 */
9 17
10 __ILA_ATTR_MAX, 18 __ILA_ATTR_MAX,
11}; 19};
12 20
13#define ILA_ATTR_MAX (__ILA_ATTR_MAX - 1) 21#define ILA_ATTR_MAX (__ILA_ATTR_MAX - 1)
14 22
23enum {
24 ILA_CMD_UNSPEC,
25 ILA_CMD_ADD,
26 ILA_CMD_DEL,
27 ILA_CMD_GET,
28
29 __ILA_CMD_MAX,
30};
31
32#define ILA_CMD_MAX (__ILA_CMD_MAX - 1)
33
34#define ILA_DIR_IN (1 << 0)
35#define ILA_DIR_OUT (1 << 1)
36
15#endif /* _UAPI_LINUX_ILA_H */ 37#endif /* _UAPI_LINUX_ILA_H */
diff --git a/include/uapi/linux/in6.h b/include/uapi/linux/in6.h
index 79b12b004ade..318a4828bf98 100644
--- a/include/uapi/linux/in6.h
+++ b/include/uapi/linux/in6.h
@@ -196,6 +196,7 @@ struct in6_flowlabel_req {
196 196
197#define IPV6_IPSEC_POLICY 34 197#define IPV6_IPSEC_POLICY 34
198#define IPV6_XFRM_POLICY 35 198#define IPV6_XFRM_POLICY 35
199#define IPV6_HDRINCL 36
199#endif 200#endif
200 201
201/* 202/*
diff --git a/include/uapi/linux/mroute.h b/include/uapi/linux/mroute.h
index a382d2c04a42..cf943016930f 100644
--- a/include/uapi/linux/mroute.h
+++ b/include/uapi/linux/mroute.h
@@ -4,15 +4,13 @@
4#include <linux/sockios.h> 4#include <linux/sockios.h>
5#include <linux/types.h> 5#include <linux/types.h>
6 6
7/* 7/* Based on the MROUTING 3.5 defines primarily to keep
8 * Based on the MROUTING 3.5 defines primarily to keep 8 * source compatibility with BSD.
9 * source compatibility with BSD.
10 * 9 *
11 * See the mrouted code for the original history. 10 * See the mrouted code for the original history.
12 *
13 * Protocol Independent Multicast (PIM) data structures included
14 * Carlos Picoto (cap@di.fc.ul.pt)
15 * 11 *
12 * Protocol Independent Multicast (PIM) data structures included
13 * Carlos Picoto (cap@di.fc.ul.pt)
16 */ 14 */
17 15
18#define MRT_BASE 200 16#define MRT_BASE 200
@@ -34,15 +32,13 @@
34#define SIOCGETSGCNT (SIOCPROTOPRIVATE+1) 32#define SIOCGETSGCNT (SIOCPROTOPRIVATE+1)
35#define SIOCGETRPF (SIOCPROTOPRIVATE+2) 33#define SIOCGETRPF (SIOCPROTOPRIVATE+2)
36 34
37#define MAXVIFS 32 35#define MAXVIFS 32
38typedef unsigned long vifbitmap_t; /* User mode code depends on this lot */ 36typedef unsigned long vifbitmap_t; /* User mode code depends on this lot */
39typedef unsigned short vifi_t; 37typedef unsigned short vifi_t;
40#define ALL_VIFS ((vifi_t)(-1)) 38#define ALL_VIFS ((vifi_t)(-1))
41 39
42/* 40/* Same idea as select */
43 * Same idea as select 41
44 */
45
46#define VIFM_SET(n,m) ((m)|=(1<<(n))) 42#define VIFM_SET(n,m) ((m)|=(1<<(n)))
47#define VIFM_CLR(n,m) ((m)&=~(1<<(n))) 43#define VIFM_CLR(n,m) ((m)&=~(1<<(n)))
48#define VIFM_ISSET(n,m) ((m)&(1<<(n))) 44#define VIFM_ISSET(n,m) ((m)&(1<<(n)))
@@ -50,11 +46,9 @@ typedef unsigned short vifi_t;
50#define VIFM_COPY(mfrom,mto) ((mto)=(mfrom)) 46#define VIFM_COPY(mfrom,mto) ((mto)=(mfrom))
51#define VIFM_SAME(m1,m2) ((m1)==(m2)) 47#define VIFM_SAME(m1,m2) ((m1)==(m2))
52 48
53/* 49/* Passed by mrouted for an MRT_ADD_VIF - again we use the
54 * Passed by mrouted for an MRT_ADD_VIF - again we use the 50 * mrouted 3.6 structures for compatibility
55 * mrouted 3.6 structures for compatibility
56 */ 51 */
57
58struct vifctl { 52struct vifctl {
59 vifi_t vifc_vifi; /* Index of VIF */ 53 vifi_t vifc_vifi; /* Index of VIF */
60 unsigned char vifc_flags; /* VIFF_ flags */ 54 unsigned char vifc_flags; /* VIFF_ flags */
@@ -73,10 +67,7 @@ struct vifctl {
73#define VIFF_USE_IFINDEX 0x8 /* use vifc_lcl_ifindex instead of 67#define VIFF_USE_IFINDEX 0x8 /* use vifc_lcl_ifindex instead of
74 vifc_lcl_addr to find an interface */ 68 vifc_lcl_addr to find an interface */
75 69
76/* 70/* Cache manipulation structures for mrouted and PIMd */
77 * Cache manipulation structures for mrouted and PIMd
78 */
79
80struct mfcctl { 71struct mfcctl {
81 struct in_addr mfcc_origin; /* Origin of mcast */ 72 struct in_addr mfcc_origin; /* Origin of mcast */
82 struct in_addr mfcc_mcastgrp; /* Group in question */ 73 struct in_addr mfcc_mcastgrp; /* Group in question */
@@ -88,10 +79,7 @@ struct mfcctl {
88 int mfcc_expire; 79 int mfcc_expire;
89}; 80};
90 81
91/* 82/* Group count retrieval for mrouted */
92 * Group count retrieval for mrouted
93 */
94
95struct sioc_sg_req { 83struct sioc_sg_req {
96 struct in_addr src; 84 struct in_addr src;
97 struct in_addr grp; 85 struct in_addr grp;
@@ -100,10 +88,7 @@ struct sioc_sg_req {
100 unsigned long wrong_if; 88 unsigned long wrong_if;
101}; 89};
102 90
103/* 91/* To get vif packet counts */
104 * To get vif packet counts
105 */
106
107struct sioc_vif_req { 92struct sioc_vif_req {
108 vifi_t vifi; /* Which iface */ 93 vifi_t vifi; /* Which iface */
109 unsigned long icount; /* In packets */ 94 unsigned long icount; /* In packets */
@@ -112,11 +97,9 @@ struct sioc_vif_req {
112 unsigned long obytes; /* Out bytes */ 97 unsigned long obytes; /* Out bytes */
113}; 98};
114 99
115/* 100/* This is the format the mroute daemon expects to see IGMP control
116 * This is the format the mroute daemon expects to see IGMP control 101 * data. Magically happens to be like an IP packet as per the original
117 * data. Magically happens to be like an IP packet as per the original
118 */ 102 */
119
120struct igmpmsg { 103struct igmpmsg {
121 __u32 unused1,unused2; 104 __u32 unused1,unused2;
122 unsigned char im_msgtype; /* What is this */ 105 unsigned char im_msgtype; /* What is this */
@@ -126,21 +109,13 @@ struct igmpmsg {
126 struct in_addr im_src,im_dst; 109 struct in_addr im_src,im_dst;
127}; 110};
128 111
129/* 112/* That's all usermode folks */
130 * That's all usermode folks
131 */
132
133
134 113
135#define MFC_ASSERT_THRESH (3*HZ) /* Maximal freq. of asserts */ 114#define MFC_ASSERT_THRESH (3*HZ) /* Maximal freq. of asserts */
136 115
137/* 116/* Pseudo messages used by mrouted */
138 * Pseudo messages used by mrouted
139 */
140
141#define IGMPMSG_NOCACHE 1 /* Kern cache fill request to mrouted */ 117#define IGMPMSG_NOCACHE 1 /* Kern cache fill request to mrouted */
142#define IGMPMSG_WRONGVIF 2 /* For PIM assert processing (unused) */ 118#define IGMPMSG_WRONGVIF 2 /* For PIM assert processing (unused) */
143#define IGMPMSG_WHOLEPKT 3 /* For PIM Register processing */ 119#define IGMPMSG_WHOLEPKT 3 /* For PIM Register processing */
144 120
145
146#endif /* _UAPI__LINUX_MROUTE_H */ 121#endif /* _UAPI__LINUX_MROUTE_H */
diff --git a/include/uapi/linux/netfilter/ipset/ip_set_bitmap.h b/include/uapi/linux/netfilter/ipset/ip_set_bitmap.h
index 6a2c038d1888..fd5024d26269 100644
--- a/include/uapi/linux/netfilter/ipset/ip_set_bitmap.h
+++ b/include/uapi/linux/netfilter/ipset/ip_set_bitmap.h
@@ -1,6 +1,8 @@
1#ifndef _UAPI__IP_SET_BITMAP_H 1#ifndef _UAPI__IP_SET_BITMAP_H
2#define _UAPI__IP_SET_BITMAP_H 2#define _UAPI__IP_SET_BITMAP_H
3 3
4#include <linux/netfilter/ipset/ip_set.h>
5
4/* Bitmap type specific error codes */ 6/* Bitmap type specific error codes */
5enum { 7enum {
6 /* The element is out of the range of the set */ 8 /* The element is out of the range of the set */
diff --git a/include/uapi/linux/netfilter/ipset/ip_set_hash.h b/include/uapi/linux/netfilter/ipset/ip_set_hash.h
index 352eeccdc7f2..82deeb883ac4 100644
--- a/include/uapi/linux/netfilter/ipset/ip_set_hash.h
+++ b/include/uapi/linux/netfilter/ipset/ip_set_hash.h
@@ -1,6 +1,8 @@
1#ifndef _UAPI__IP_SET_HASH_H 1#ifndef _UAPI__IP_SET_HASH_H
2#define _UAPI__IP_SET_HASH_H 2#define _UAPI__IP_SET_HASH_H
3 3
4#include <linux/netfilter/ipset/ip_set.h>
5
4/* Hash type specific error codes */ 6/* Hash type specific error codes */
5enum { 7enum {
6 /* Hash is full */ 8 /* Hash is full */
diff --git a/include/uapi/linux/netfilter/ipset/ip_set_list.h b/include/uapi/linux/netfilter/ipset/ip_set_list.h
index a44efaa98213..84d430368266 100644
--- a/include/uapi/linux/netfilter/ipset/ip_set_list.h
+++ b/include/uapi/linux/netfilter/ipset/ip_set_list.h
@@ -1,6 +1,8 @@
1#ifndef _UAPI__IP_SET_LIST_H 1#ifndef _UAPI__IP_SET_LIST_H
2#define _UAPI__IP_SET_LIST_H 2#define _UAPI__IP_SET_LIST_H
3 3
4#include <linux/netfilter/ipset/ip_set.h>
5
4/* List type specific error codes */ 6/* List type specific error codes */
5enum { 7enum {
6 /* Set name to be added/deleted/tested does not exist. */ 8 /* Set name to be added/deleted/tested does not exist. */
diff --git a/include/uapi/linux/netfilter/nf_conntrack_sctp.h b/include/uapi/linux/netfilter/nf_conntrack_sctp.h
index ed4e776e1242..2cbc366c3fb4 100644
--- a/include/uapi/linux/netfilter/nf_conntrack_sctp.h
+++ b/include/uapi/linux/netfilter/nf_conntrack_sctp.h
@@ -1,5 +1,5 @@
1#ifndef _NF_CONNTRACK_SCTP_H 1#ifndef _UAPI_NF_CONNTRACK_SCTP_H
2#define _NF_CONNTRACK_SCTP_H 2#define _UAPI_NF_CONNTRACK_SCTP_H
3/* SCTP tracking. */ 3/* SCTP tracking. */
4 4
5#include <linux/netfilter/nf_conntrack_tuple_common.h> 5#include <linux/netfilter/nf_conntrack_tuple_common.h>
@@ -18,10 +18,4 @@ enum sctp_conntrack {
18 SCTP_CONNTRACK_MAX 18 SCTP_CONNTRACK_MAX
19}; 19};
20 20
21struct ip_ct_sctp { 21#endif /* _UAPI_NF_CONNTRACK_SCTP_H */
22 enum sctp_conntrack state;
23
24 __be32 vtag[IP_CT_DIR_MAX];
25};
26
27#endif /* _NF_CONNTRACK_SCTP_H */
diff --git a/include/uapi/linux/netfilter/nf_conntrack_tuple_common.h b/include/uapi/linux/netfilter/nf_conntrack_tuple_common.h
index 2f6bbc5b8125..a9c3834abdd4 100644
--- a/include/uapi/linux/netfilter/nf_conntrack_tuple_common.h
+++ b/include/uapi/linux/netfilter/nf_conntrack_tuple_common.h
@@ -1,6 +1,9 @@
1#ifndef _NF_CONNTRACK_TUPLE_COMMON_H 1#ifndef _NF_CONNTRACK_TUPLE_COMMON_H
2#define _NF_CONNTRACK_TUPLE_COMMON_H 2#define _NF_CONNTRACK_TUPLE_COMMON_H
3 3
4#include <linux/types.h>
5#include <linux/netfilter.h>
6
4enum ip_conntrack_dir { 7enum ip_conntrack_dir {
5 IP_CT_DIR_ORIGINAL, 8 IP_CT_DIR_ORIGINAL,
6 IP_CT_DIR_REPLY, 9 IP_CT_DIR_REPLY,
diff --git a/include/uapi/linux/netfilter/nf_tables.h b/include/uapi/linux/netfilter/nf_tables.h
index d8c8a7c9d88a..be41ffc128b8 100644
--- a/include/uapi/linux/netfilter/nf_tables.h
+++ b/include/uapi/linux/netfilter/nf_tables.h
@@ -83,6 +83,7 @@ enum nft_verdicts {
83 * @NFT_MSG_DELSETELEM: delete a set element (enum nft_set_elem_attributes) 83 * @NFT_MSG_DELSETELEM: delete a set element (enum nft_set_elem_attributes)
84 * @NFT_MSG_NEWGEN: announce a new generation, only for events (enum nft_gen_attributes) 84 * @NFT_MSG_NEWGEN: announce a new generation, only for events (enum nft_gen_attributes)
85 * @NFT_MSG_GETGEN: get the rule-set generation (enum nft_gen_attributes) 85 * @NFT_MSG_GETGEN: get the rule-set generation (enum nft_gen_attributes)
86 * @NFT_MSG_TRACE: trace event (enum nft_trace_attributes)
86 */ 87 */
87enum nf_tables_msg_types { 88enum nf_tables_msg_types {
88 NFT_MSG_NEWTABLE, 89 NFT_MSG_NEWTABLE,
@@ -102,6 +103,7 @@ enum nf_tables_msg_types {
102 NFT_MSG_DELSETELEM, 103 NFT_MSG_DELSETELEM,
103 NFT_MSG_NEWGEN, 104 NFT_MSG_NEWGEN,
104 NFT_MSG_GETGEN, 105 NFT_MSG_GETGEN,
106 NFT_MSG_TRACE,
105 NFT_MSG_MAX, 107 NFT_MSG_MAX,
106}; 108};
107 109
@@ -289,6 +291,7 @@ enum nft_set_desc_attributes {
289 * @NFTA_SET_ID: uniquely identifies a set in a transaction (NLA_U32) 291 * @NFTA_SET_ID: uniquely identifies a set in a transaction (NLA_U32)
290 * @NFTA_SET_TIMEOUT: default timeout value (NLA_U64) 292 * @NFTA_SET_TIMEOUT: default timeout value (NLA_U64)
291 * @NFTA_SET_GC_INTERVAL: garbage collection interval (NLA_U32) 293 * @NFTA_SET_GC_INTERVAL: garbage collection interval (NLA_U32)
294 * @NFTA_SET_USERDATA: user data (NLA_BINARY)
292 */ 295 */
293enum nft_set_attributes { 296enum nft_set_attributes {
294 NFTA_SET_UNSPEC, 297 NFTA_SET_UNSPEC,
@@ -304,6 +307,7 @@ enum nft_set_attributes {
304 NFTA_SET_ID, 307 NFTA_SET_ID,
305 NFTA_SET_TIMEOUT, 308 NFTA_SET_TIMEOUT,
306 NFTA_SET_GC_INTERVAL, 309 NFTA_SET_GC_INTERVAL,
310 NFTA_SET_USERDATA,
307 __NFTA_SET_MAX 311 __NFTA_SET_MAX
308}; 312};
309#define NFTA_SET_MAX (__NFTA_SET_MAX - 1) 313#define NFTA_SET_MAX (__NFTA_SET_MAX - 1)
@@ -598,12 +602,26 @@ enum nft_payload_bases {
598}; 602};
599 603
600/** 604/**
605 * enum nft_payload_csum_types - nf_tables payload expression checksum types
606 *
607 * @NFT_PAYLOAD_CSUM_NONE: no checksumming
608 * @NFT_PAYLOAD_CSUM_INET: internet checksum (RFC 791)
609 */
610enum nft_payload_csum_types {
611 NFT_PAYLOAD_CSUM_NONE,
612 NFT_PAYLOAD_CSUM_INET,
613};
614
615/**
601 * enum nft_payload_attributes - nf_tables payload expression netlink attributes 616 * enum nft_payload_attributes - nf_tables payload expression netlink attributes
602 * 617 *
603 * @NFTA_PAYLOAD_DREG: destination register to load data into (NLA_U32: nft_registers) 618 * @NFTA_PAYLOAD_DREG: destination register to load data into (NLA_U32: nft_registers)
604 * @NFTA_PAYLOAD_BASE: payload base (NLA_U32: nft_payload_bases) 619 * @NFTA_PAYLOAD_BASE: payload base (NLA_U32: nft_payload_bases)
605 * @NFTA_PAYLOAD_OFFSET: payload offset relative to base (NLA_U32) 620 * @NFTA_PAYLOAD_OFFSET: payload offset relative to base (NLA_U32)
606 * @NFTA_PAYLOAD_LEN: payload length (NLA_U32) 621 * @NFTA_PAYLOAD_LEN: payload length (NLA_U32)
622 * @NFTA_PAYLOAD_SREG: source register to load data from (NLA_U32: nft_registers)
623 * @NFTA_PAYLOAD_CSUM_TYPE: checksum type (NLA_U32)
624 * @NFTA_PAYLOAD_CSUM_OFFSET: checksum offset relative to base (NLA_U32)
607 */ 625 */
608enum nft_payload_attributes { 626enum nft_payload_attributes {
609 NFTA_PAYLOAD_UNSPEC, 627 NFTA_PAYLOAD_UNSPEC,
@@ -611,6 +629,9 @@ enum nft_payload_attributes {
611 NFTA_PAYLOAD_BASE, 629 NFTA_PAYLOAD_BASE,
612 NFTA_PAYLOAD_OFFSET, 630 NFTA_PAYLOAD_OFFSET,
613 NFTA_PAYLOAD_LEN, 631 NFTA_PAYLOAD_LEN,
632 NFTA_PAYLOAD_SREG,
633 NFTA_PAYLOAD_CSUM_TYPE,
634 NFTA_PAYLOAD_CSUM_OFFSET,
614 __NFTA_PAYLOAD_MAX 635 __NFTA_PAYLOAD_MAX
615}; 636};
616#define NFTA_PAYLOAD_MAX (__NFTA_PAYLOAD_MAX - 1) 637#define NFTA_PAYLOAD_MAX (__NFTA_PAYLOAD_MAX - 1)
@@ -736,6 +757,8 @@ enum nft_ct_keys {
736 NFT_CT_PROTO_SRC, 757 NFT_CT_PROTO_SRC,
737 NFT_CT_PROTO_DST, 758 NFT_CT_PROTO_DST,
738 NFT_CT_LABELS, 759 NFT_CT_LABELS,
760 NFT_CT_PKTS,
761 NFT_CT_BYTES,
739}; 762};
740 763
741/** 764/**
@@ -761,6 +784,10 @@ enum nft_limit_type {
761 NFT_LIMIT_PKT_BYTES 784 NFT_LIMIT_PKT_BYTES
762}; 785};
763 786
787enum nft_limit_flags {
788 NFT_LIMIT_F_INV = (1 << 0),
789};
790
764/** 791/**
765 * enum nft_limit_attributes - nf_tables limit expression netlink attributes 792 * enum nft_limit_attributes - nf_tables limit expression netlink attributes
766 * 793 *
@@ -768,6 +795,7 @@ enum nft_limit_type {
768 * @NFTA_LIMIT_UNIT: refill unit (NLA_U64) 795 * @NFTA_LIMIT_UNIT: refill unit (NLA_U64)
769 * @NFTA_LIMIT_BURST: burst (NLA_U32) 796 * @NFTA_LIMIT_BURST: burst (NLA_U32)
770 * @NFTA_LIMIT_TYPE: type of limit (NLA_U32: enum nft_limit_type) 797 * @NFTA_LIMIT_TYPE: type of limit (NLA_U32: enum nft_limit_type)
798 * @NFTA_LIMIT_FLAGS: flags (NLA_U32: enum nft_limit_flags)
771 */ 799 */
772enum nft_limit_attributes { 800enum nft_limit_attributes {
773 NFTA_LIMIT_UNSPEC, 801 NFTA_LIMIT_UNSPEC,
@@ -775,6 +803,7 @@ enum nft_limit_attributes {
775 NFTA_LIMIT_UNIT, 803 NFTA_LIMIT_UNIT,
776 NFTA_LIMIT_BURST, 804 NFTA_LIMIT_BURST,
777 NFTA_LIMIT_TYPE, 805 NFTA_LIMIT_TYPE,
806 NFTA_LIMIT_FLAGS,
778 __NFTA_LIMIT_MAX 807 __NFTA_LIMIT_MAX
779}; 808};
780#define NFTA_LIMIT_MAX (__NFTA_LIMIT_MAX - 1) 809#define NFTA_LIMIT_MAX (__NFTA_LIMIT_MAX - 1)
@@ -959,6 +988,18 @@ enum nft_dup_attributes {
959#define NFTA_DUP_MAX (__NFTA_DUP_MAX - 1) 988#define NFTA_DUP_MAX (__NFTA_DUP_MAX - 1)
960 989
961/** 990/**
991 * enum nft_fwd_attributes - nf_tables fwd expression netlink attributes
992 *
993 * @NFTA_FWD_SREG_DEV: source register of output interface (NLA_U32: nft_register)
994 */
995enum nft_fwd_attributes {
996 NFTA_FWD_UNSPEC,
997 NFTA_FWD_SREG_DEV,
998 __NFTA_FWD_MAX
999};
1000#define NFTA_FWD_MAX (__NFTA_FWD_MAX - 1)
1001
1002/**
962 * enum nft_gen_attributes - nf_tables ruleset generation attributes 1003 * enum nft_gen_attributes - nf_tables ruleset generation attributes
963 * 1004 *
964 * @NFTA_GEN_ID: Ruleset generation ID (NLA_U32) 1005 * @NFTA_GEN_ID: Ruleset generation ID (NLA_U32)
@@ -970,4 +1011,54 @@ enum nft_gen_attributes {
970}; 1011};
971#define NFTA_GEN_MAX (__NFTA_GEN_MAX - 1) 1012#define NFTA_GEN_MAX (__NFTA_GEN_MAX - 1)
972 1013
1014/**
1015 * enum nft_trace_attributes - nf_tables trace netlink attributes
1016 *
1017 * @NFTA_TRACE_TABLE: name of the table (NLA_STRING)
1018 * @NFTA_TRACE_CHAIN: name of the chain (NLA_STRING)
1019 * @NFTA_TRACE_RULE_HANDLE: numeric handle of the rule (NLA_U64)
1020 * @NFTA_TRACE_TYPE: type of the event (NLA_U32: nft_trace_types)
1021 * @NFTA_TRACE_VERDICT: verdict returned by hook (NLA_NESTED: nft_verdicts)
1022 * @NFTA_TRACE_ID: pseudo-id, same for each skb traced (NLA_U32)
1023 * @NFTA_TRACE_LL_HEADER: linklayer header (NLA_BINARY)
1024 * @NFTA_TRACE_NETWORK_HEADER: network header (NLA_BINARY)
1025 * @NFTA_TRACE_TRANSPORT_HEADER: transport header (NLA_BINARY)
1026 * @NFTA_TRACE_IIF: indev ifindex (NLA_U32)
1027 * @NFTA_TRACE_IIFTYPE: netdev->type of indev (NLA_U16)
1028 * @NFTA_TRACE_OIF: outdev ifindex (NLA_U32)
1029 * @NFTA_TRACE_OIFTYPE: netdev->type of outdev (NLA_U16)
1030 * @NFTA_TRACE_MARK: nfmark (NLA_U32)
1031 * @NFTA_TRACE_NFPROTO: nf protocol processed (NLA_U32)
1032 * @NFTA_TRACE_POLICY: policy that decided fate of packet (NLA_U32)
1033 */
1034enum nft_trace_attibutes {
1035 NFTA_TRACE_UNSPEC,
1036 NFTA_TRACE_TABLE,
1037 NFTA_TRACE_CHAIN,
1038 NFTA_TRACE_RULE_HANDLE,
1039 NFTA_TRACE_TYPE,
1040 NFTA_TRACE_VERDICT,
1041 NFTA_TRACE_ID,
1042 NFTA_TRACE_LL_HEADER,
1043 NFTA_TRACE_NETWORK_HEADER,
1044 NFTA_TRACE_TRANSPORT_HEADER,
1045 NFTA_TRACE_IIF,
1046 NFTA_TRACE_IIFTYPE,
1047 NFTA_TRACE_OIF,
1048 NFTA_TRACE_OIFTYPE,
1049 NFTA_TRACE_MARK,
1050 NFTA_TRACE_NFPROTO,
1051 NFTA_TRACE_POLICY,
1052 __NFTA_TRACE_MAX
1053};
1054#define NFTA_TRACE_MAX (__NFTA_TRACE_MAX - 1)
1055
1056enum nft_trace_types {
1057 NFT_TRACETYPE_UNSPEC,
1058 NFT_TRACETYPE_POLICY,
1059 NFT_TRACETYPE_RETURN,
1060 NFT_TRACETYPE_RULE,
1061 __NFT_TRACETYPE_MAX
1062};
1063#define NFT_TRACETYPE_MAX (__NFT_TRACETYPE_MAX - 1)
973#endif /* _LINUX_NF_TABLES_H */ 1064#endif /* _LINUX_NF_TABLES_H */
diff --git a/include/uapi/linux/netfilter/nfnetlink.h b/include/uapi/linux/netfilter/nfnetlink.h
index 354a7e5e50f2..4bb8cb7730e7 100644
--- a/include/uapi/linux/netfilter/nfnetlink.h
+++ b/include/uapi/linux/netfilter/nfnetlink.h
@@ -22,6 +22,8 @@ enum nfnetlink_groups {
22#define NFNLGRP_NFTABLES NFNLGRP_NFTABLES 22#define NFNLGRP_NFTABLES NFNLGRP_NFTABLES
23 NFNLGRP_ACCT_QUOTA, 23 NFNLGRP_ACCT_QUOTA,
24#define NFNLGRP_ACCT_QUOTA NFNLGRP_ACCT_QUOTA 24#define NFNLGRP_ACCT_QUOTA NFNLGRP_ACCT_QUOTA
25 NFNLGRP_NFTRACE,
26#define NFNLGRP_NFTRACE NFNLGRP_NFTRACE
25 __NFNLGRP_MAX, 27 __NFNLGRP_MAX,
26}; 28};
27#define NFNLGRP_MAX (__NFNLGRP_MAX - 1) 29#define NFNLGRP_MAX (__NFNLGRP_MAX - 1)
diff --git a/include/uapi/linux/netfilter/xt_HMARK.h b/include/uapi/linux/netfilter/xt_HMARK.h
index 826fc5807577..3fb48c8d8d78 100644
--- a/include/uapi/linux/netfilter/xt_HMARK.h
+++ b/include/uapi/linux/netfilter/xt_HMARK.h
@@ -2,6 +2,7 @@
2#define XT_HMARK_H_ 2#define XT_HMARK_H_
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/netfilter.h>
5 6
6enum { 7enum {
7 XT_HMARK_SADDR_MASK, 8 XT_HMARK_SADDR_MASK,
diff --git a/include/uapi/linux/netfilter/xt_RATEEST.h b/include/uapi/linux/netfilter/xt_RATEEST.h
index 6605e20ad8cf..ec1b57047e03 100644
--- a/include/uapi/linux/netfilter/xt_RATEEST.h
+++ b/include/uapi/linux/netfilter/xt_RATEEST.h
@@ -2,6 +2,7 @@
2#define _XT_RATEEST_TARGET_H 2#define _XT_RATEEST_TARGET_H
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/if.h>
5 6
6struct xt_rateest_target_info { 7struct xt_rateest_target_info {
7 char name[IFNAMSIZ]; 8 char name[IFNAMSIZ];
diff --git a/include/uapi/linux/netfilter/xt_TEE.h b/include/uapi/linux/netfilter/xt_TEE.h
index 5c21d5c829af..01092023404b 100644
--- a/include/uapi/linux/netfilter/xt_TEE.h
+++ b/include/uapi/linux/netfilter/xt_TEE.h
@@ -1,6 +1,8 @@
1#ifndef _XT_TEE_TARGET_H 1#ifndef _XT_TEE_TARGET_H
2#define _XT_TEE_TARGET_H 2#define _XT_TEE_TARGET_H
3 3
4#include <linux/netfilter.h>
5
4struct xt_tee_tginfo { 6struct xt_tee_tginfo {
5 union nf_inet_addr gw; 7 union nf_inet_addr gw;
6 char oif[16]; 8 char oif[16];
diff --git a/include/uapi/linux/netfilter/xt_TPROXY.h b/include/uapi/linux/netfilter/xt_TPROXY.h
index 902043c2073f..8d693eefdc1f 100644
--- a/include/uapi/linux/netfilter/xt_TPROXY.h
+++ b/include/uapi/linux/netfilter/xt_TPROXY.h
@@ -2,6 +2,7 @@
2#define _XT_TPROXY_H 2#define _XT_TPROXY_H
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/netfilter.h>
5 6
6/* TPROXY target is capable of marking the packet to perform 7/* TPROXY target is capable of marking the packet to perform
7 * redirection. We can get rid of that whenever we get support for 8 * redirection. We can get rid of that whenever we get support for
diff --git a/include/uapi/linux/netfilter/xt_cgroup.h b/include/uapi/linux/netfilter/xt_cgroup.h
index 43acb7e175f6..1e4b37b93bef 100644
--- a/include/uapi/linux/netfilter/xt_cgroup.h
+++ b/include/uapi/linux/netfilter/xt_cgroup.h
@@ -2,10 +2,23 @@
2#define _UAPI_XT_CGROUP_H 2#define _UAPI_XT_CGROUP_H
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/limits.h>
5 6
6struct xt_cgroup_info { 7struct xt_cgroup_info_v0 {
7 __u32 id; 8 __u32 id;
8 __u32 invert; 9 __u32 invert;
9}; 10};
10 11
12struct xt_cgroup_info_v1 {
13 __u8 has_path;
14 __u8 has_classid;
15 __u8 invert_path;
16 __u8 invert_classid;
17 char path[PATH_MAX];
18 __u32 classid;
19
20 /* kernel internal data */
21 void *priv __attribute__((aligned(8)));
22};
23
11#endif /* _UAPI_XT_CGROUP_H */ 24#endif /* _UAPI_XT_CGROUP_H */
diff --git a/include/uapi/linux/netfilter/xt_hashlimit.h b/include/uapi/linux/netfilter/xt_hashlimit.h
index cbfc43d1af68..6db90372f09c 100644
--- a/include/uapi/linux/netfilter/xt_hashlimit.h
+++ b/include/uapi/linux/netfilter/xt_hashlimit.h
@@ -2,6 +2,7 @@
2#define _UAPI_XT_HASHLIMIT_H 2#define _UAPI_XT_HASHLIMIT_H
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/if.h>
5 6
6/* timings are in milliseconds. */ 7/* timings are in milliseconds. */
7#define XT_HASHLIMIT_SCALE 10000 8#define XT_HASHLIMIT_SCALE 10000
diff --git a/include/uapi/linux/netfilter/xt_ipvs.h b/include/uapi/linux/netfilter/xt_ipvs.h
index eff34ac18808..e03b9c31a39d 100644
--- a/include/uapi/linux/netfilter/xt_ipvs.h
+++ b/include/uapi/linux/netfilter/xt_ipvs.h
@@ -2,6 +2,7 @@
2#define _XT_IPVS_H 2#define _XT_IPVS_H
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/netfilter.h>
5 6
6enum { 7enum {
7 XT_IPVS_IPVS_PROPERTY = 1 << 0, /* all other options imply this one */ 8 XT_IPVS_IPVS_PROPERTY = 1 << 0, /* all other options imply this one */
diff --git a/include/uapi/linux/netfilter/xt_mac.h b/include/uapi/linux/netfilter/xt_mac.h
index b892cdc67e06..9a19a08a9181 100644
--- a/include/uapi/linux/netfilter/xt_mac.h
+++ b/include/uapi/linux/netfilter/xt_mac.h
@@ -1,6 +1,8 @@
1#ifndef _XT_MAC_H 1#ifndef _XT_MAC_H
2#define _XT_MAC_H 2#define _XT_MAC_H
3 3
4#include <linux/if_ether.h>
5
4struct xt_mac_info { 6struct xt_mac_info {
5 unsigned char srcaddr[ETH_ALEN]; 7 unsigned char srcaddr[ETH_ALEN];
6 int invert; 8 int invert;
diff --git a/include/uapi/linux/netfilter/xt_osf.h b/include/uapi/linux/netfilter/xt_osf.h
index 5d66caeba3ee..e6159958b2fb 100644
--- a/include/uapi/linux/netfilter/xt_osf.h
+++ b/include/uapi/linux/netfilter/xt_osf.h
@@ -20,6 +20,8 @@
20#define _XT_OSF_H 20#define _XT_OSF_H
21 21
22#include <linux/types.h> 22#include <linux/types.h>
23#include <linux/ip.h>
24#include <linux/tcp.h>
23 25
24#define MAXGENRELEN 32 26#define MAXGENRELEN 32
25 27
diff --git a/include/uapi/linux/netfilter/xt_physdev.h b/include/uapi/linux/netfilter/xt_physdev.h
index db7a2982e9c0..ccdde87da214 100644
--- a/include/uapi/linux/netfilter/xt_physdev.h
+++ b/include/uapi/linux/netfilter/xt_physdev.h
@@ -2,7 +2,7 @@
2#define _UAPI_XT_PHYSDEV_H 2#define _UAPI_XT_PHYSDEV_H
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5 5#include <linux/if.h>
6 6
7#define XT_PHYSDEV_OP_IN 0x01 7#define XT_PHYSDEV_OP_IN 0x01
8#define XT_PHYSDEV_OP_OUT 0x02 8#define XT_PHYSDEV_OP_OUT 0x02
diff --git a/include/uapi/linux/netfilter/xt_policy.h b/include/uapi/linux/netfilter/xt_policy.h
index be8ead05c316..d8a9800dce61 100644
--- a/include/uapi/linux/netfilter/xt_policy.h
+++ b/include/uapi/linux/netfilter/xt_policy.h
@@ -2,6 +2,8 @@
2#define _XT_POLICY_H 2#define _XT_POLICY_H
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/in.h>
6#include <linux/in6.h>
5 7
6#define XT_POLICY_MAX_ELEM 4 8#define XT_POLICY_MAX_ELEM 4
7 9
diff --git a/include/uapi/linux/netfilter/xt_rateest.h b/include/uapi/linux/netfilter/xt_rateest.h
index d40a6196842a..13fe50d4e4b3 100644
--- a/include/uapi/linux/netfilter/xt_rateest.h
+++ b/include/uapi/linux/netfilter/xt_rateest.h
@@ -2,6 +2,7 @@
2#define _XT_RATEEST_MATCH_H 2#define _XT_RATEEST_MATCH_H
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/if.h>
5 6
6enum xt_rateest_match_flags { 7enum xt_rateest_match_flags {
7 XT_RATEEST_MATCH_INVERT = 1<<0, 8 XT_RATEEST_MATCH_INVERT = 1<<0,
diff --git a/include/uapi/linux/netfilter/xt_recent.h b/include/uapi/linux/netfilter/xt_recent.h
index 6ef36c113e89..955d562031cc 100644
--- a/include/uapi/linux/netfilter/xt_recent.h
+++ b/include/uapi/linux/netfilter/xt_recent.h
@@ -2,6 +2,7 @@
2#define _LINUX_NETFILTER_XT_RECENT_H 1 2#define _LINUX_NETFILTER_XT_RECENT_H 1
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/netfilter.h>
5 6
6enum { 7enum {
7 XT_RECENT_CHECK = 1 << 0, 8 XT_RECENT_CHECK = 1 << 0,
diff --git a/include/uapi/linux/netfilter/xt_sctp.h b/include/uapi/linux/netfilter/xt_sctp.h
index 29287be696a2..58ffcfb7978e 100644
--- a/include/uapi/linux/netfilter/xt_sctp.h
+++ b/include/uapi/linux/netfilter/xt_sctp.h
@@ -66,26 +66,26 @@ struct xt_sctp_info {
66 66
67#define SCTP_CHUNKMAP_IS_CLEAR(chunkmap) \ 67#define SCTP_CHUNKMAP_IS_CLEAR(chunkmap) \
68 __sctp_chunkmap_is_clear((chunkmap), ARRAY_SIZE(chunkmap)) 68 __sctp_chunkmap_is_clear((chunkmap), ARRAY_SIZE(chunkmap))
69static inline bool 69static inline _Bool
70__sctp_chunkmap_is_clear(const __u32 *chunkmap, unsigned int n) 70__sctp_chunkmap_is_clear(const __u32 *chunkmap, unsigned int n)
71{ 71{
72 unsigned int i; 72 unsigned int i;
73 for (i = 0; i < n; ++i) 73 for (i = 0; i < n; ++i)
74 if (chunkmap[i]) 74 if (chunkmap[i])
75 return false; 75 return 0;
76 return true; 76 return 1;
77} 77}
78 78
79#define SCTP_CHUNKMAP_IS_ALL_SET(chunkmap) \ 79#define SCTP_CHUNKMAP_IS_ALL_SET(chunkmap) \
80 __sctp_chunkmap_is_all_set((chunkmap), ARRAY_SIZE(chunkmap)) 80 __sctp_chunkmap_is_all_set((chunkmap), ARRAY_SIZE(chunkmap))
81static inline bool 81static inline _Bool
82__sctp_chunkmap_is_all_set(const __u32 *chunkmap, unsigned int n) 82__sctp_chunkmap_is_all_set(const __u32 *chunkmap, unsigned int n)
83{ 83{
84 unsigned int i; 84 unsigned int i;
85 for (i = 0; i < n; ++i) 85 for (i = 0; i < n; ++i)
86 if (chunkmap[i] != ~0U) 86 if (chunkmap[i] != ~0U)
87 return false; 87 return 0;
88 return true; 88 return 1;
89} 89}
90 90
91#endif /* _XT_SCTP_H_ */ 91#endif /* _XT_SCTP_H_ */
diff --git a/include/uapi/linux/netfilter_arp/arp_tables.h b/include/uapi/linux/netfilter_arp/arp_tables.h
index a5a86a4db6b3..ece3ad4eecda 100644
--- a/include/uapi/linux/netfilter_arp/arp_tables.h
+++ b/include/uapi/linux/netfilter_arp/arp_tables.h
@@ -11,6 +11,7 @@
11 11
12#include <linux/types.h> 12#include <linux/types.h>
13#include <linux/compiler.h> 13#include <linux/compiler.h>
14#include <linux/if.h>
14#include <linux/netfilter_arp.h> 15#include <linux/netfilter_arp.h>
15 16
16#include <linux/netfilter/x_tables.h> 17#include <linux/netfilter/x_tables.h>
diff --git a/include/uapi/linux/netfilter_bridge.h b/include/uapi/linux/netfilter_bridge.h
index a5eda6db8d79..514519b47651 100644
--- a/include/uapi/linux/netfilter_bridge.h
+++ b/include/uapi/linux/netfilter_bridge.h
@@ -4,6 +4,7 @@
4/* bridge-specific defines for netfilter. 4/* bridge-specific defines for netfilter.
5 */ 5 */
6 6
7#include <linux/in.h>
7#include <linux/netfilter.h> 8#include <linux/netfilter.h>
8#include <linux/if_ether.h> 9#include <linux/if_ether.h>
9#include <linux/if_vlan.h> 10#include <linux/if_vlan.h>
diff --git a/include/uapi/linux/netfilter_bridge/ebt_arp.h b/include/uapi/linux/netfilter_bridge/ebt_arp.h
index 522f3e427f49..dd4df25330e8 100644
--- a/include/uapi/linux/netfilter_bridge/ebt_arp.h
+++ b/include/uapi/linux/netfilter_bridge/ebt_arp.h
@@ -2,6 +2,7 @@
2#define __LINUX_BRIDGE_EBT_ARP_H 2#define __LINUX_BRIDGE_EBT_ARP_H
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/if_ether.h>
5 6
6#define EBT_ARP_OPCODE 0x01 7#define EBT_ARP_OPCODE 0x01
7#define EBT_ARP_HTYPE 0x02 8#define EBT_ARP_HTYPE 0x02
diff --git a/include/uapi/linux/netfilter_bridge/ebt_arpreply.h b/include/uapi/linux/netfilter_bridge/ebt_arpreply.h
index 7e77896e1fbf..6fee3402e307 100644
--- a/include/uapi/linux/netfilter_bridge/ebt_arpreply.h
+++ b/include/uapi/linux/netfilter_bridge/ebt_arpreply.h
@@ -1,6 +1,8 @@
1#ifndef __LINUX_BRIDGE_EBT_ARPREPLY_H 1#ifndef __LINUX_BRIDGE_EBT_ARPREPLY_H
2#define __LINUX_BRIDGE_EBT_ARPREPLY_H 2#define __LINUX_BRIDGE_EBT_ARPREPLY_H
3 3
4#include <linux/if_ether.h>
5
4struct ebt_arpreply_info { 6struct ebt_arpreply_info {
5 unsigned char mac[ETH_ALEN]; 7 unsigned char mac[ETH_ALEN];
6 int target; 8 int target;
diff --git a/include/uapi/linux/netfilter_bridge/ebt_ip6.h b/include/uapi/linux/netfilter_bridge/ebt_ip6.h
index 42b889682721..a062f0ce95f9 100644
--- a/include/uapi/linux/netfilter_bridge/ebt_ip6.h
+++ b/include/uapi/linux/netfilter_bridge/ebt_ip6.h
@@ -13,6 +13,7 @@
13#define __LINUX_BRIDGE_EBT_IP6_H 13#define __LINUX_BRIDGE_EBT_IP6_H
14 14
15#include <linux/types.h> 15#include <linux/types.h>
16#include <linux/in6.h>
16 17
17#define EBT_IP6_SOURCE 0x01 18#define EBT_IP6_SOURCE 0x01
18#define EBT_IP6_DEST 0x02 19#define EBT_IP6_DEST 0x02
diff --git a/include/uapi/linux/netfilter_bridge/ebt_nat.h b/include/uapi/linux/netfilter_bridge/ebt_nat.h
index 5e74e3b03bd6..c990d74ee966 100644
--- a/include/uapi/linux/netfilter_bridge/ebt_nat.h
+++ b/include/uapi/linux/netfilter_bridge/ebt_nat.h
@@ -1,6 +1,8 @@
1#ifndef __LINUX_BRIDGE_EBT_NAT_H 1#ifndef __LINUX_BRIDGE_EBT_NAT_H
2#define __LINUX_BRIDGE_EBT_NAT_H 2#define __LINUX_BRIDGE_EBT_NAT_H
3 3
4#include <linux/if_ether.h>
5
4#define NAT_ARP_BIT (0x00000010) 6#define NAT_ARP_BIT (0x00000010)
5struct ebt_nat_info { 7struct ebt_nat_info {
6 unsigned char mac[ETH_ALEN]; 8 unsigned char mac[ETH_ALEN];
diff --git a/include/uapi/linux/netfilter_bridge/ebtables.h b/include/uapi/linux/netfilter_bridge/ebtables.h
index fd2ee501726d..e3cdf9f1a259 100644
--- a/include/uapi/linux/netfilter_bridge/ebtables.h
+++ b/include/uapi/linux/netfilter_bridge/ebtables.h
@@ -12,6 +12,8 @@
12 12
13#ifndef _UAPI__LINUX_BRIDGE_EFF_H 13#ifndef _UAPI__LINUX_BRIDGE_EFF_H
14#define _UAPI__LINUX_BRIDGE_EFF_H 14#define _UAPI__LINUX_BRIDGE_EFF_H
15#include <linux/types.h>
16#include <linux/if.h>
15#include <linux/netfilter_bridge.h> 17#include <linux/netfilter_bridge.h>
16 18
17#define EBT_TABLE_MAXNAMELEN 32 19#define EBT_TABLE_MAXNAMELEN 32
@@ -33,8 +35,8 @@ struct xt_match;
33struct xt_target; 35struct xt_target;
34 36
35struct ebt_counter { 37struct ebt_counter {
36 uint64_t pcnt; 38 __u64 pcnt;
37 uint64_t bcnt; 39 __u64 bcnt;
38}; 40};
39 41
40struct ebt_replace { 42struct ebt_replace {
diff --git a/include/uapi/linux/netfilter_ipv4/ip_tables.h b/include/uapi/linux/netfilter_ipv4/ip_tables.h
index f1e6ef256034..d0da53d96d93 100644
--- a/include/uapi/linux/netfilter_ipv4/ip_tables.h
+++ b/include/uapi/linux/netfilter_ipv4/ip_tables.h
@@ -17,6 +17,7 @@
17 17
18#include <linux/types.h> 18#include <linux/types.h>
19#include <linux/compiler.h> 19#include <linux/compiler.h>
20#include <linux/if.h>
20#include <linux/netfilter_ipv4.h> 21#include <linux/netfilter_ipv4.h>
21 22
22#include <linux/netfilter/x_tables.h> 23#include <linux/netfilter/x_tables.h>
diff --git a/include/uapi/linux/netfilter_ipv6/ip6_tables.h b/include/uapi/linux/netfilter_ipv6/ip6_tables.h
index 649c68062dca..d1b22653daf2 100644
--- a/include/uapi/linux/netfilter_ipv6/ip6_tables.h
+++ b/include/uapi/linux/netfilter_ipv6/ip6_tables.h
@@ -17,6 +17,7 @@
17 17
18#include <linux/types.h> 18#include <linux/types.h>
19#include <linux/compiler.h> 19#include <linux/compiler.h>
20#include <linux/if.h>
20#include <linux/netfilter_ipv6.h> 21#include <linux/netfilter_ipv6.h>
21 22
22#include <linux/netfilter/x_tables.h> 23#include <linux/netfilter/x_tables.h>
diff --git a/include/uapi/linux/netfilter_ipv6/ip6t_rt.h b/include/uapi/linux/netfilter_ipv6/ip6t_rt.h
index 7605a5ff81cd..558f81e46fb9 100644
--- a/include/uapi/linux/netfilter_ipv6/ip6t_rt.h
+++ b/include/uapi/linux/netfilter_ipv6/ip6t_rt.h
@@ -2,7 +2,7 @@
2#define _IP6T_RT_H 2#define _IP6T_RT_H
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5/*#include <linux/in6.h>*/ 5#include <linux/in6.h>
6 6
7#define IP6T_RT_HOPS 16 7#define IP6T_RT_HOPS 16
8 8
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index 1f0b4cf5dd03..5b7b5ebe7ca8 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -820,6 +820,10 @@
820 * as an event to indicate changes for devices with wiphy-specific regdom 820 * as an event to indicate changes for devices with wiphy-specific regdom
821 * management. 821 * management.
822 * 822 *
823 * @NL80211_CMD_ABORT_SCAN: Stop an ongoing scan. Returns -ENOENT if a scan is
824 * not running. The driver indicates the status of the scan through
825 * cfg80211_scan_done().
826 *
823 * @NL80211_CMD_MAX: highest used command number 827 * @NL80211_CMD_MAX: highest used command number
824 * @__NL80211_CMD_AFTER_LAST: internal use 828 * @__NL80211_CMD_AFTER_LAST: internal use
825 */ 829 */
@@ -1006,6 +1010,8 @@ enum nl80211_commands {
1006 1010
1007 NL80211_CMD_WIPHY_REG_CHANGE, 1011 NL80211_CMD_WIPHY_REG_CHANGE,
1008 1012
1013 NL80211_CMD_ABORT_SCAN,
1014
1009 /* add new commands above here */ 1015 /* add new commands above here */
1010 1016
1011 /* used to define NL80211_CMD_MAX below */ 1017 /* used to define NL80211_CMD_MAX below */
@@ -1764,8 +1770,9 @@ enum nl80211_commands {
1764 * over all channels. 1770 * over all channels.
1765 * 1771 *
1766 * @NL80211_ATTR_SCHED_SCAN_DELAY: delay before the first cycle of a 1772 * @NL80211_ATTR_SCHED_SCAN_DELAY: delay before the first cycle of a
1767 * scheduled scan (or a WoWLAN net-detect scan) is started, u32 1773 * scheduled scan is started. Or the delay before a WoWLAN
1768 * in seconds. 1774 * net-detect scan is started, counting from the moment the
1775 * system is suspended. This value is a u32, in seconds.
1769 1776
1770 * @NL80211_ATTR_REG_INDOOR: flag attribute, if set indicates that the device 1777 * @NL80211_ATTR_REG_INDOOR: flag attribute, if set indicates that the device
1771 * is operating in an indoor environment. 1778 * is operating in an indoor environment.
diff --git a/include/uapi/linux/pkt_sched.h b/include/uapi/linux/pkt_sched.h
index 8d2530daca9f..8cb18b44968e 100644
--- a/include/uapi/linux/pkt_sched.h
+++ b/include/uapi/linux/pkt_sched.h
@@ -72,6 +72,10 @@ struct tc_estimator {
72#define TC_H_UNSPEC (0U) 72#define TC_H_UNSPEC (0U)
73#define TC_H_ROOT (0xFFFFFFFFU) 73#define TC_H_ROOT (0xFFFFFFFFU)
74#define TC_H_INGRESS (0xFFFFFFF1U) 74#define TC_H_INGRESS (0xFFFFFFF1U)
75#define TC_H_CLSACT TC_H_INGRESS
76
77#define TC_H_MIN_INGRESS 0xFFF2U
78#define TC_H_MIN_EGRESS 0xFFF3U
75 79
76/* Need to corrospond to iproute2 tc/tc_core.h "enum link_layer" */ 80/* Need to corrospond to iproute2 tc/tc_core.h "enum link_layer" */
77enum tc_link_layer { 81enum tc_link_layer {
diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h
index 123a5af4e8bb..ca764b5da86d 100644
--- a/include/uapi/linux/rtnetlink.h
+++ b/include/uapi/linux/rtnetlink.h
@@ -311,6 +311,7 @@ enum rtattr_type_t {
311 RTA_PREF, 311 RTA_PREF,
312 RTA_ENCAP_TYPE, 312 RTA_ENCAP_TYPE,
313 RTA_ENCAP, 313 RTA_ENCAP,
314 RTA_EXPIRES,
314 __RTA_MAX 315 __RTA_MAX
315}; 316};
316 317
diff --git a/include/uapi/linux/sock_diag.h b/include/uapi/linux/sock_diag.h
index 49230d36f9ce..bae2d80034d4 100644
--- a/include/uapi/linux/sock_diag.h
+++ b/include/uapi/linux/sock_diag.h
@@ -4,6 +4,7 @@
4#include <linux/types.h> 4#include <linux/types.h>
5 5
6#define SOCK_DIAG_BY_FAMILY 20 6#define SOCK_DIAG_BY_FAMILY 20
7#define SOCK_DESTROY 21
7 8
8struct sock_diag_req { 9struct sock_diag_req {
9 __u8 sdiag_family; 10 __u8 sdiag_family;
diff --git a/include/uapi/linux/sockios.h b/include/uapi/linux/sockios.h
index e888b1aed69f..8e7890b26d9a 100644
--- a/include/uapi/linux/sockios.h
+++ b/include/uapi/linux/sockios.h
@@ -27,7 +27,7 @@
27/* Routing table calls. */ 27/* Routing table calls. */
28#define SIOCADDRT 0x890B /* add routing table entry */ 28#define SIOCADDRT 0x890B /* add routing table entry */
29#define SIOCDELRT 0x890C /* delete routing table entry */ 29#define SIOCDELRT 0x890C /* delete routing table entry */
30#define SIOCRTMSG 0x890D /* call to routing system */ 30#define SIOCRTMSG 0x890D /* unused */
31 31
32/* Socket configuration controls. */ 32/* Socket configuration controls. */
33#define SIOCGIFNAME 0x8910 /* get iface name */ 33#define SIOCGIFNAME 0x8910 /* get iface name */