aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
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 */