History

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 ...

Linus Torvalds committed 10 years ago

Commit aee3bfa2 parents c597b6b 415b6f11739 files · +70829 −25686Browse files

Showing the changes to include/uapi (43 of 1739 files). Show all

Unified · Split

43 files
  1. include/uapi/asm-generic/socket.h +3 −0
  2. include/uapi/linux/bpf.h +26 −1
  3. include/uapi/linux/ethtool.h +3 −0
  4. include/uapi/linux/if_link.h +4 −0
  5. include/uapi/linux/ila.h +22 −0
  6. include/uapi/linux/in6.h +1 −0
  7. include/uapi/linux/mroute.h +17 −42
  8. include/uapi/linux/netfilter/ipset/ip_set_bitmap.h +2 −0
  9. include/uapi/linux/netfilter/ipset/ip_set_hash.h +2 −0
  10. include/uapi/linux/netfilter/ipset/ip_set_list.h +2 −0
  11. include/uapi/linux/netfilter/nf_conntrack_sctp.h +3 −9
  12. include/uapi/linux/netfilter/nf_conntrack_tuple_common.h +3 −0
  13. include/uapi/linux/netfilter/nf_tables.h +91 −0
  14. include/uapi/linux/netfilter/nfnetlink.h +2 −0
  15. include/uapi/linux/netfilter/xt_HMARK.h +1 −0
  16. include/uapi/linux/netfilter/xt_RATEEST.h +1 −0
  17. include/uapi/linux/netfilter/xt_TEE.h +2 −0
  18. include/uapi/linux/netfilter/xt_TPROXY.h +1 −0
  19. include/uapi/linux/netfilter/xt_cgroup.h +14 −1
  20. include/uapi/linux/netfilter/xt_hashlimit.h +1 −0
  21. include/uapi/linux/netfilter/xt_ipvs.h +1 −0
  22. include/uapi/linux/netfilter/xt_mac.h +2 −0
  23. include/uapi/linux/netfilter/xt_osf.h +2 −0
  24. include/uapi/linux/netfilter/xt_physdev.h +1 −1
  25. include/uapi/linux/netfilter/xt_policy.h +2 −0
  26. include/uapi/linux/netfilter/xt_rateest.h +1 −0
  27. include/uapi/linux/netfilter/xt_recent.h +1 −0
  28. include/uapi/linux/netfilter/xt_sctp.h +6 −6
  29. include/uapi/linux/netfilter_arp/arp_tables.h +1 −0
  30. include/uapi/linux/netfilter_bridge.h +1 −0
  31. include/uapi/linux/netfilter_bridge/ebt_arp.h +1 −0
  32. include/uapi/linux/netfilter_bridge/ebt_arpreply.h +2 −0
  33. include/uapi/linux/netfilter_bridge/ebt_ip6.h +1 −0
  34. include/uapi/linux/netfilter_bridge/ebt_nat.h +2 −0
  35. include/uapi/linux/netfilter_bridge/ebtables.h +4 −2
  36. include/uapi/linux/netfilter_ipv4/ip_tables.h +1 −0
  37. include/uapi/linux/netfilter_ipv6/ip6_tables.h +1 −0
  38. include/uapi/linux/netfilter_ipv6/ip6t_rt.h +1 −1
  39. include/uapi/linux/nl80211.h +9 −2
  40. include/uapi/linux/pkt_sched.h +4 −0
  41. include/uapi/linux/rtnetlink.h +1 −0
  42. include/uapi/linux/sock_diag.h +1 −0
  43. include/uapi/linux/sockios.h +1 −1
include/uapi/asm-generic/socket.h+3−0
@@ -87,4 +87,7 @@ · 86 unmodified lines
8787 #define SO_ATTACH_BPF 50
8888 #define SO_DETACH_BPF SO_DETACH_FILTER
8989
90+#define SO_ATTACH_REUSEPORT_CBPF 51
91+#define SO_ATTACH_REUSEPORT_EBPF 52
92+
9093 #endif /* __ASM_GENERIC_SOCKET_H */
include/uapi/linux/bpf.h+26−1
@@ -269,9 +269,29 @@ enum bpf_func_id { · 268 unmodified lines
269269 * Return: 0 on success
270270 */
271271 BPF_FUNC_perf_event_output,
272+ BPF_FUNC_skb_load_bytes,
272273 __BPF_FUNC_MAX_ID,
273274 };
274275
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+
275295 /* user accessible mirror of in-kernel sk_buff.
276296 * new fields can only be added to the end of this structure
277297 */
@@ -295,7 +315,12 @@ struct __sk_buff { · 17 unmodified lines
295315
296316 struct bpf_tunnel_key {
297317 __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;
299324 };
300325
301326 #endif /* _UAPI__LINUX_BPF_H__ */
include/uapi/linux/ethtool.h+3−0
@@ -542,6 +542,7 @@ struct ethtool_pauseparam { · 541 unmodified lines
542542 * now deprecated
543543 * @ETH_SS_FEATURES: Device feature names
544544 * @ETH_SS_RSS_HASH_FUNCS: RSS hush function names
545+ * @ETH_SS_PHY_STATS: Statistic names, for use with %ETHTOOL_GPHYSTATS
545546 */
546547 enum ethtool_stringset {
547548 ETH_SS_TEST = 0,
@@ -551,6 +552,7 @@ enum ethtool_stringset { · 3 unmodified lines
551552 ETH_SS_FEATURES,
552553 ETH_SS_RSS_HASH_FUNCS,
553554 ETH_SS_TUNABLES,
555+ ETH_SS_PHY_STATS,
554556 };
555557
556558 /**
@@ -1225,6 +1227,7 @@ enum ethtool_sfeatures_retval_bits { · 668 unmodified lines
12251227 #define ETHTOOL_SRSSH 0x00000047 /* Set RX flow hash configuration */
12261228 #define ETHTOOL_GTUNABLE 0x00000048 /* Get tunable configuration */
12271229 #define ETHTOOL_STUNABLE 0x00000049 /* Set tunable configuration */
1230+#define ETHTOOL_GPHYSTATS 0x0000004a /* get PHY-specific statistics */
12281231
12291232 /* compatibility with older code */
12301233 #define SPARC_ETH_GSET ETHTOOL_GSET
include/uapi/linux/if_link.h+4−0
@@ -218,6 +218,7 @@ enum in6_addr_gen_mode { · 217 unmodified lines
218218 IN6_ADDR_GEN_MODE_EUI64,
219219 IN6_ADDR_GEN_MODE_NONE,
220220 IN6_ADDR_GEN_MODE_STABLE_PRIVACY,
221+ IN6_ADDR_GEN_MODE_RANDOM,
221222 };
222223
223224 /* Bridge section */
@@ -462,6 +463,9 @@ enum { · 238 unmodified lines
462463 IFLA_GENEVE_PORT, /* destination port */
463464 IFLA_GENEVE_COLLECT_METADATA,
464465 IFLA_GENEVE_REMOTE6,
466+ IFLA_GENEVE_UDP_CSUM,
467+ IFLA_GENEVE_UDP_ZERO_CSUM6_TX,
468+ IFLA_GENEVE_UDP_ZERO_CSUM6_RX,
465469 __IFLA_GENEVE_MAX
466470 };
467471 #define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1)
include/uapi/linux/ila.h+22−0
@@ -3,13 +3,35 @@ · 2 unmodified lines
33 #ifndef _UAPI_LINUX_ILA_H
44 #define _UAPI_LINUX_ILA_H
55
6+/* NETLINK_GENERIC related info */
7+#define ILA_GENL_NAME "ila"
8+#define ILA_GENL_VERSION 0x1
9+
610 enum {
711 ILA_ATTR_UNSPEC,
812 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 */
917
1018 __ILA_ATTR_MAX,
1119 };
1220
1321 #define ILA_ATTR_MAX (__ILA_ATTR_MAX - 1)
1422
23+enum {
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+
1537 #endif /* _UAPI_LINUX_ILA_H */
include/uapi/linux/in6.h+1−0
@@ -196,6 +196,7 @@ struct in6_flowlabel_req { · 195 unmodified lines
196196
197197 #define IPV6_IPSEC_POLICY 34
198198 #define IPV6_XFRM_POLICY 35
199+#define IPV6_HDRINCL 36
199200 #endif
200201
201202 /*
include/uapi/linux/mroute.h+17−42
@@ -4,15 +4,13 @@ · 3 unmodified lines
44 #include <linux/sockios.h>
55 #include <linux/types.h>
66
7−/*
8− * Based on the MROUTING 3.5 defines primarily to keep
9− * source compatibility with BSD.
7+/* Based on the MROUTING 3.5 defines primarily to keep
8+ * source compatibility with BSD.
109 *
11− * 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)
10+ * See the mrouted code for the original history.
1511 *
12+ * Protocol Independent Multicast (PIM) data structures included
13+ * Carlos Picoto (cap@di.fc.ul.pt)
1614 */
1715
1816 #define MRT_BASE 200
@@ -34,15 +32,13 @@ · 15 unmodified lines
3432 #define SIOCGETSGCNT (SIOCPROTOPRIVATE+1)
3533 #define SIOCGETRPF (SIOCPROTOPRIVATE+2)
3634
37−#define MAXVIFS 32
35+#define MAXVIFS 32
3836 typedef unsigned long vifbitmap_t; /* User mode code depends on this lot */
3937 typedef unsigned short vifi_t;
4038 #define ALL_VIFS ((vifi_t)(-1))
4139
42−/*
43− * Same idea as select
44− */
45−
40+/* Same idea as select */
41+
4642 #define VIFM_SET(n,m) ((m)|=(1<<(n)))
4743 #define VIFM_CLR(n,m) ((m)&=~(1<<(n)))
4844 #define VIFM_ISSET(n,m) ((m)&(1<<(n)))
@@ -50,11 +46,9 @@ typedef unsigned short vifi_t; · 1 unmodified line
5046 #define VIFM_COPY(mfrom,mto) ((mto)=(mfrom))
5147 #define VIFM_SAME(m1,m2) ((m1)==(m2))
5248
53−/*
54− * Passed by mrouted for an MRT_ADD_VIF - again we use the
55− * mrouted 3.6 structures for compatibility
49+/* Passed by mrouted for an MRT_ADD_VIF - again we use the
50+ * mrouted 3.6 structures for compatibility
5651 */
57−
5852 struct vifctl {
5953 vifi_t vifc_vifi; /* Index of VIF */
6054 unsigned char vifc_flags; /* VIFF_ flags */
@@ -73,10 +67,7 @@ struct vifctl { · 12 unmodified lines
7367 #define VIFF_USE_IFINDEX 0x8 /* use vifc_lcl_ifindex instead of
7468 vifc_lcl_addr to find an interface */
7569
76−/*
77− * Cache manipulation structures for mrouted and PIMd
78− */
79−
70+/* Cache manipulation structures for mrouted and PIMd */
8071 struct mfcctl {
8172 struct in_addr mfcc_origin; /* Origin of mcast */
8273 struct in_addr mfcc_mcastgrp; /* Group in question */
@@ -88,10 +79,7 @@ struct mfcctl { · 5 unmodified lines
8879 int mfcc_expire;
8980 };
9081
91−/*
92− * Group count retrieval for mrouted
93− */
94−
82+/* Group count retrieval for mrouted */
9583 struct sioc_sg_req {
9684 struct in_addr src;
9785 struct in_addr grp;
@@ -100,10 +88,7 @@ struct sioc_sg_req { · 2 unmodified lines
10088 unsigned long wrong_if;
10189 };
10290
103−/*
104− * To get vif packet counts
105− */
106−
91+/* To get vif packet counts */
10792 struct sioc_vif_req {
10893 vifi_t vifi; /* Which iface */
10994 unsigned long icount; /* In packets */
@@ -112,11 +97,9 @@ struct sioc_vif_req { · 2 unmodified lines
11297 unsigned long obytes; /* Out bytes */
11398 };
11499
115−/*
116− * This is the format the mroute daemon expects to see IGMP control
117− * data. Magically happens to be like an IP packet as per the original
100+/* 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
118102 */
119−
120103 struct igmpmsg {
121104 __u32 unused1,unused2;
122105 unsigned char im_msgtype; /* What is this */
@@ -126,21 +109,13 @@ struct igmpmsg { · 3 unmodified lines
126109 struct in_addr im_src,im_dst;
127110 };
128111
129−/*
130− * That's all usermode folks
131− */
132−
133−
112+/* That's all usermode folks */
134113
135114 #define MFC_ASSERT_THRESH (3*HZ) /* Maximal freq. of asserts */
136115
137−/*
138− * Pseudo messages used by mrouted
139− */
140−
116+/* Pseudo messages used by mrouted */
141117 #define IGMPMSG_NOCACHE 1 /* Kern cache fill request to mrouted */
142118 #define IGMPMSG_WRONGVIF 2 /* For PIM assert processing (unused) */
143119 #define IGMPMSG_WHOLEPKT 3 /* For PIM Register processing */
144120
145−
146121 #endif /* _UAPI__LINUX_MROUTE_H */
include/uapi/linux/netfilter/ipset/ip_set_bitmap.h+2−0
@@ -1,6 +1,8 @@
11 #ifndef _UAPI__IP_SET_BITMAP_H
22 #define _UAPI__IP_SET_BITMAP_H
33
4+#include <linux/netfilter/ipset/ip_set.h>
5+
46 /* Bitmap type specific error codes */
57 enum {
68 /* The element is out of the range of the set */
include/uapi/linux/netfilter/ipset/ip_set_hash.h+2−0
@@ -1,6 +1,8 @@
11 #ifndef _UAPI__IP_SET_HASH_H
22 #define _UAPI__IP_SET_HASH_H
33
4+#include <linux/netfilter/ipset/ip_set.h>
5+
46 /* Hash type specific error codes */
57 enum {
68 /* Hash is full */
include/uapi/linux/netfilter/ipset/ip_set_list.h+2−0
@@ -1,6 +1,8 @@
11 #ifndef _UAPI__IP_SET_LIST_H
22 #define _UAPI__IP_SET_LIST_H
33
4+#include <linux/netfilter/ipset/ip_set.h>
5+
46 /* List type specific error codes */
57 enum {
68 /* Set name to be added/deleted/tested does not exist. */
include/uapi/linux/netfilter/nf_conntrack_sctp.h+3−9
@@ -1,5 +1,5 @@
1−#ifndef _NF_CONNTRACK_SCTP_H
2−#define _NF_CONNTRACK_SCTP_H
1+#ifndef _UAPI_NF_CONNTRACK_SCTP_H
2+#define _UAPI_NF_CONNTRACK_SCTP_H
33 /* SCTP tracking. */
44
55 #include <linux/netfilter/nf_conntrack_tuple_common.h>
@@ -18,10 +18,4 @@ enum sctp_conntrack { · 12 unmodified lines
1818 SCTP_CONNTRACK_MAX
1919 };
2020
21−struct ip_ct_sctp {
22− enum sctp_conntrack state;
23−
24− __be32 vtag[IP_CT_DIR_MAX];
25−};
26−
27−#endif /* _NF_CONNTRACK_SCTP_H */
21+#endif /* _UAPI_NF_CONNTRACK_SCTP_H */
include/uapi/linux/netfilter/nf_conntrack_tuple_common.h+3−0
@@ -1,6 +1,9 @@
11 #ifndef _NF_CONNTRACK_TUPLE_COMMON_H
22 #define _NF_CONNTRACK_TUPLE_COMMON_H
33
4+#include <linux/types.h>
5+#include <linux/netfilter.h>
6+
47 enum ip_conntrack_dir {
58 IP_CT_DIR_ORIGINAL,
69 IP_CT_DIR_REPLY,
include/uapi/linux/netfilter/nf_tables.h+91−0
@@ -83,6 +83,7 @@ enum nft_verdicts { · 82 unmodified lines
8383 * @NFT_MSG_DELSETELEM: delete a set element (enum nft_set_elem_attributes)
8484 * @NFT_MSG_NEWGEN: announce a new generation, only for events (enum nft_gen_attributes)
8585 * @NFT_MSG_GETGEN: get the rule-set generation (enum nft_gen_attributes)
86+ * @NFT_MSG_TRACE: trace event (enum nft_trace_attributes)
8687 */
8788 enum nf_tables_msg_types {
8889 NFT_MSG_NEWTABLE,
@@ -102,6 +103,7 @@ enum nf_tables_msg_types { · 13 unmodified lines
102103 NFT_MSG_DELSETELEM,
103104 NFT_MSG_NEWGEN,
104105 NFT_MSG_GETGEN,
106+ NFT_MSG_TRACE,
105107 NFT_MSG_MAX,
106108 };
107109
@@ -289,6 +291,7 @@ enum nft_set_desc_attributes { · 181 unmodified lines
289291 * @NFTA_SET_ID: uniquely identifies a set in a transaction (NLA_U32)
290292 * @NFTA_SET_TIMEOUT: default timeout value (NLA_U64)
291293 * @NFTA_SET_GC_INTERVAL: garbage collection interval (NLA_U32)
294+ * @NFTA_SET_USERDATA: user data (NLA_BINARY)
292295 */
293296 enum nft_set_attributes {
294297 NFTA_SET_UNSPEC,
@@ -304,6 +307,7 @@ enum nft_set_attributes { · 9 unmodified lines
304307 NFTA_SET_ID,
305308 NFTA_SET_TIMEOUT,
306309 NFTA_SET_GC_INTERVAL,
310+ NFTA_SET_USERDATA,
307311 __NFTA_SET_MAX
308312 };
309313 #define NFTA_SET_MAX (__NFTA_SET_MAX - 1)
@@ -597,6 +601,17 @@ enum nft_payload_bases { · 287 unmodified lines
597601 NFT_PAYLOAD_TRANSPORT_HEADER,
598602 };
599603
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+ */
610+enum nft_payload_csum_types {
611+ NFT_PAYLOAD_CSUM_NONE,
612+ NFT_PAYLOAD_CSUM_INET,
613+};
614+
600615 /**
601616 * enum nft_payload_attributes - nf_tables payload expression netlink attributes
602617 *
@@ -604,6 +619,9 @@ enum nft_payload_bases { · 1 unmodified line
604619 * @NFTA_PAYLOAD_BASE: payload base (NLA_U32: nft_payload_bases)
605620 * @NFTA_PAYLOAD_OFFSET: payload offset relative to base (NLA_U32)
606621 * @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)
607625 */
608626 enum nft_payload_attributes {
609627 NFTA_PAYLOAD_UNSPEC,
@@ -611,6 +629,9 @@ enum nft_payload_attributes { · 1 unmodified line
611629 NFTA_PAYLOAD_BASE,
612630 NFTA_PAYLOAD_OFFSET,
613631 NFTA_PAYLOAD_LEN,
632+ NFTA_PAYLOAD_SREG,
633+ NFTA_PAYLOAD_CSUM_TYPE,
634+ NFTA_PAYLOAD_CSUM_OFFSET,
614635 __NFTA_PAYLOAD_MAX
615636 };
616637 #define NFTA_PAYLOAD_MAX (__NFTA_PAYLOAD_MAX - 1)
@@ -736,6 +757,8 @@ enum nft_ct_keys { · 119 unmodified lines
736757 NFT_CT_PROTO_SRC,
737758 NFT_CT_PROTO_DST,
738759 NFT_CT_LABELS,
760+ NFT_CT_PKTS,
761+ NFT_CT_BYTES,
739762 };
740763
741764 /**
@@ -761,6 +784,10 @@ enum nft_limit_type { · 19 unmodified lines
761784 NFT_LIMIT_PKT_BYTES
762785 };
763786
787+enum nft_limit_flags {
788+ NFT_LIMIT_F_INV = (1 << 0),
789+};
790+
764791 /**
765792 * enum nft_limit_attributes - nf_tables limit expression netlink attributes
766793 *
@@ -768,6 +795,7 @@ enum nft_limit_type { · 1 unmodified line
768795 * @NFTA_LIMIT_UNIT: refill unit (NLA_U64)
769796 * @NFTA_LIMIT_BURST: burst (NLA_U32)
770797 * @NFTA_LIMIT_TYPE: type of limit (NLA_U32: enum nft_limit_type)
798+ * @NFTA_LIMIT_FLAGS: flags (NLA_U32: enum nft_limit_flags)
771799 */
772800 enum nft_limit_attributes {
773801 NFTA_LIMIT_UNSPEC,
@@ -775,6 +803,7 @@ enum nft_limit_attributes { · 1 unmodified line
775803 NFTA_LIMIT_UNIT,
776804 NFTA_LIMIT_BURST,
777805 NFTA_LIMIT_TYPE,
806+ NFTA_LIMIT_FLAGS,
778807 __NFTA_LIMIT_MAX
779808 };
780809 #define NFTA_LIMIT_MAX (__NFTA_LIMIT_MAX - 1)
@@ -958,6 +987,18 @@ enum nft_dup_attributes { · 177 unmodified lines
958987 };
959988 #define NFTA_DUP_MAX (__NFTA_DUP_MAX - 1)
960989
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+ */
995+enum 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+
9611002 /**
9621003 * enum nft_gen_attributes - nf_tables ruleset generation attributes
9631004 *
@@ -970,4 +1011,54 @@ enum nft_gen_attributes { · 6 unmodified lines
9701011 };
9711012 #define NFTA_GEN_MAX (__NFTA_GEN_MAX - 1)
9721013
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+ */
1034+enum 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+
1056+enum 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)
9731064 #endif /* _LINUX_NF_TABLES_H */
include/uapi/linux/netfilter/nfnetlink.h+2−0
@@ -22,6 +22,8 @@ enum nfnetlink_groups { · 21 unmodified lines
2222 #define NFNLGRP_NFTABLES NFNLGRP_NFTABLES
2323 NFNLGRP_ACCT_QUOTA,
2424 #define NFNLGRP_ACCT_QUOTA NFNLGRP_ACCT_QUOTA
25+ NFNLGRP_NFTRACE,
26+#define NFNLGRP_NFTRACE NFNLGRP_NFTRACE
2527 __NFNLGRP_MAX,
2628 };
2729 #define NFNLGRP_MAX (__NFNLGRP_MAX - 1)
include/uapi/linux/netfilter/xt_HMARK.h+1−0
@@ -2,6 +2,7 @@ · 1 unmodified line
22 #define XT_HMARK_H_
33
44 #include <linux/types.h>
5+#include <linux/netfilter.h>
56
67 enum {
78 XT_HMARK_SADDR_MASK,
include/uapi/linux/netfilter/xt_RATEEST.h+1−0
@@ -2,6 +2,7 @@ · 1 unmodified line
22 #define _XT_RATEEST_TARGET_H
33
44 #include <linux/types.h>
5+#include <linux/if.h>
56
67 struct xt_rateest_target_info {
78 char name[IFNAMSIZ];
include/uapi/linux/netfilter/xt_TEE.h+2−0
@@ -1,6 +1,8 @@
11 #ifndef _XT_TEE_TARGET_H
22 #define _XT_TEE_TARGET_H
33
4+#include <linux/netfilter.h>
5+
46 struct xt_tee_tginfo {
57 union nf_inet_addr gw;
68 char oif[16];
include/uapi/linux/netfilter/xt_TPROXY.h+1−0
@@ -2,6 +2,7 @@ · 1 unmodified line
22 #define _XT_TPROXY_H
33
44 #include <linux/types.h>
5+#include <linux/netfilter.h>
56
67 /* TPROXY target is capable of marking the packet to perform
78 * redirection. We can get rid of that whenever we get support for
include/uapi/linux/netfilter/xt_cgroup.h+14−1
@@ -2,10 +2,23 @@ · 1 unmodified line
22 #define _UAPI_XT_CGROUP_H
33
44 #include <linux/types.h>
5+#include <linux/limits.h>
56
6−struct xt_cgroup_info {
7+struct xt_cgroup_info_v0 {
78 __u32 id;
89 __u32 invert;
910 };
1011
12+struct 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+
1124 #endif /* _UAPI_XT_CGROUP_H */
include/uapi/linux/netfilter/xt_hashlimit.h+1−0
@@ -2,6 +2,7 @@ · 1 unmodified line
22 #define _UAPI_XT_HASHLIMIT_H
33
44 #include <linux/types.h>
5+#include <linux/if.h>
56
67 /* timings are in milliseconds. */
78 #define XT_HASHLIMIT_SCALE 10000
include/uapi/linux/netfilter/xt_ipvs.h+1−0
@@ -2,6 +2,7 @@ · 1 unmodified line
22 #define _XT_IPVS_H
33
44 #include <linux/types.h>
5+#include <linux/netfilter.h>
56
67 enum {
78 XT_IPVS_IPVS_PROPERTY = 1 << 0, /* all other options imply this one */
include/uapi/linux/netfilter/xt_mac.h+2−0
@@ -1,6 +1,8 @@
11 #ifndef _XT_MAC_H
22 #define _XT_MAC_H
33
4+#include <linux/if_ether.h>
5+
46 struct xt_mac_info {
57 unsigned char srcaddr[ETH_ALEN];
68 int invert;
include/uapi/linux/netfilter/xt_osf.h+2−0
@@ -20,6 +20,8 @@ · 19 unmodified lines
2020 #define _XT_OSF_H
2121
2222 #include <linux/types.h>
23+#include <linux/ip.h>
24+#include <linux/tcp.h>
2325
2426 #define MAXGENRELEN 32
2527
include/uapi/linux/netfilter/xt_physdev.h+1−1
@@ -2,7 +2,7 @@ · 1 unmodified line
22 #define _UAPI_XT_PHYSDEV_H
33
44 #include <linux/types.h>
5−
5+#include <linux/if.h>
66
77 #define XT_PHYSDEV_OP_IN 0x01
88 #define XT_PHYSDEV_OP_OUT 0x02
include/uapi/linux/netfilter/xt_policy.h+2−0
@@ -2,6 +2,8 @@ · 1 unmodified line
22 #define _XT_POLICY_H
33
44 #include <linux/types.h>
5+#include <linux/in.h>
6+#include <linux/in6.h>
57
68 #define XT_POLICY_MAX_ELEM 4
79
include/uapi/linux/netfilter/xt_rateest.h+1−0
@@ -2,6 +2,7 @@ · 1 unmodified line
22 #define _XT_RATEEST_MATCH_H
33
44 #include <linux/types.h>
5+#include <linux/if.h>
56
67 enum xt_rateest_match_flags {
78 XT_RATEEST_MATCH_INVERT = 1<<0,
include/uapi/linux/netfilter/xt_recent.h+1−0
@@ -2,6 +2,7 @@ · 1 unmodified line
22 #define _LINUX_NETFILTER_XT_RECENT_H 1
33
44 #include <linux/types.h>
5+#include <linux/netfilter.h>
56
67 enum {
78 XT_RECENT_CHECK = 1 << 0,
include/uapi/linux/netfilter/xt_sctp.h+6−6
@@ -66,26 +66,26 @@ struct xt_sctp_info { · 65 unmodified lines
6666
6767 #define SCTP_CHUNKMAP_IS_CLEAR(chunkmap) \
6868 __sctp_chunkmap_is_clear((chunkmap), ARRAY_SIZE(chunkmap))
69−static inline bool
69+static inline _Bool
7070 __sctp_chunkmap_is_clear(const __u32 *chunkmap, unsigned int n)
7171 {
7272 unsigned int i;
7373 for (i = 0; i < n; ++i)
7474 if (chunkmap[i])
75− return false;
76− return true;
75+ return 0;
76+ return 1;
7777 }
7878
7979 #define SCTP_CHUNKMAP_IS_ALL_SET(chunkmap) \
8080 __sctp_chunkmap_is_all_set((chunkmap), ARRAY_SIZE(chunkmap))
81−static inline bool
81+static inline _Bool
8282 __sctp_chunkmap_is_all_set(const __u32 *chunkmap, unsigned int n)
8383 {
8484 unsigned int i;
8585 for (i = 0; i < n; ++i)
8686 if (chunkmap[i] != ~0U)
87− return false;
88− return true;
87+ return 0;
88+ return 1;
8989 }
9090
9191 #endif /* _XT_SCTP_H_ */
include/uapi/linux/netfilter_arp/arp_tables.h+1−0
@@ -11,6 +11,7 @@ · 10 unmodified lines
1111
1212 #include <linux/types.h>
1313 #include <linux/compiler.h>
14+#include <linux/if.h>
1415 #include <linux/netfilter_arp.h>
1516
1617 #include <linux/netfilter/x_tables.h>
include/uapi/linux/netfilter_bridge.h+1−0
@@ -4,6 +4,7 @@ · 3 unmodified lines
44 /* bridge-specific defines for netfilter.
55 */
66
7+#include <linux/in.h>
78 #include <linux/netfilter.h>
89 #include <linux/if_ether.h>
910 #include <linux/if_vlan.h>
include/uapi/linux/netfilter_bridge/ebt_arp.h+1−0
@@ -2,6 +2,7 @@ · 1 unmodified line
22 #define __LINUX_BRIDGE_EBT_ARP_H
33
44 #include <linux/types.h>
5+#include <linux/if_ether.h>
56
67 #define EBT_ARP_OPCODE 0x01
78 #define EBT_ARP_HTYPE 0x02
include/uapi/linux/netfilter_bridge/ebt_arpreply.h+2−0
@@ -1,6 +1,8 @@
11 #ifndef __LINUX_BRIDGE_EBT_ARPREPLY_H
22 #define __LINUX_BRIDGE_EBT_ARPREPLY_H
33
4+#include <linux/if_ether.h>
5+
46 struct ebt_arpreply_info {
57 unsigned char mac[ETH_ALEN];
68 int target;
include/uapi/linux/netfilter_bridge/ebt_ip6.h+1−0
@@ -13,6 +13,7 @@ · 12 unmodified lines
1313 #define __LINUX_BRIDGE_EBT_IP6_H
1414
1515 #include <linux/types.h>
16+#include <linux/in6.h>
1617
1718 #define EBT_IP6_SOURCE 0x01
1819 #define EBT_IP6_DEST 0x02
include/uapi/linux/netfilter_bridge/ebt_nat.h+2−0
@@ -1,6 +1,8 @@
11 #ifndef __LINUX_BRIDGE_EBT_NAT_H
22 #define __LINUX_BRIDGE_EBT_NAT_H
33
4+#include <linux/if_ether.h>
5+
46 #define NAT_ARP_BIT (0x00000010)
57 struct ebt_nat_info {
68 unsigned char mac[ETH_ALEN];
include/uapi/linux/netfilter_bridge/ebtables.h+4−2
@@ -12,6 +12,8 @@ · 11 unmodified lines
1212
1313 #ifndef _UAPI__LINUX_BRIDGE_EFF_H
1414 #define _UAPI__LINUX_BRIDGE_EFF_H
15+#include <linux/types.h>
16+#include <linux/if.h>
1517 #include <linux/netfilter_bridge.h>
1618
1719 #define EBT_TABLE_MAXNAMELEN 32
@@ -33,8 +35,8 @@ struct xt_match; · 15 unmodified lines
3335 struct xt_target;
3436
3537 struct ebt_counter {
36− uint64_t pcnt;
37− uint64_t bcnt;
38+ __u64 pcnt;
39+ __u64 bcnt;
3840 };
3941
4042 struct ebt_replace {
include/uapi/linux/netfilter_ipv4/ip_tables.h+1−0
@@ -17,6 +17,7 @@ · 16 unmodified lines
1717
1818 #include <linux/types.h>
1919 #include <linux/compiler.h>
20+#include <linux/if.h>
2021 #include <linux/netfilter_ipv4.h>
2122
2223 #include <linux/netfilter/x_tables.h>
include/uapi/linux/netfilter_ipv6/ip6_tables.h+1−0
@@ -17,6 +17,7 @@ · 16 unmodified lines
1717
1818 #include <linux/types.h>
1919 #include <linux/compiler.h>
20+#include <linux/if.h>
2021 #include <linux/netfilter_ipv6.h>
2122
2223 #include <linux/netfilter/x_tables.h>
include/uapi/linux/netfilter_ipv6/ip6t_rt.h+1−1
@@ -2,7 +2,7 @@ · 1 unmodified line
22 #define _IP6T_RT_H
33
44 #include <linux/types.h>
5−/*#include <linux/in6.h>*/
5+#include <linux/in6.h>
66
77 #define IP6T_RT_HOPS 16
88
include/uapi/linux/nl80211.h+9−2
@@ -820,6 +820,10 @@ · 819 unmodified lines
820820 * as an event to indicate changes for devices with wiphy-specific regdom
821821 * management.
822822 *
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+ *
823827 * @NL80211_CMD_MAX: highest used command number
824828 * @__NL80211_CMD_AFTER_LAST: internal use
825829 */
@@ -1006,6 +1010,8 @@ enum nl80211_commands { · 180 unmodified lines
10061010
10071011 NL80211_CMD_WIPHY_REG_CHANGE,
10081012
1013+ NL80211_CMD_ABORT_SCAN,
1014+
10091015 /* add new commands above here */
10101016
10111017 /* used to define NL80211_CMD_MAX below */
@@ -1764,8 +1770,9 @@ enum nl80211_commands { · 752 unmodified lines
17641770 * over all channels.
17651771 *
17661772 * @NL80211_ATTR_SCHED_SCAN_DELAY: delay before the first cycle of a
1767− * scheduled scan (or a WoWLAN net-detect scan) is started, u32
1768− * in seconds.
1773+ * scheduled scan is started. Or the delay before a WoWLAN
1774+ * net-detect scan is started, counting from the moment the
1775+ * system is suspended. This value is a u32, in seconds.
17691776
17701777 * @NL80211_ATTR_REG_INDOOR: flag attribute, if set indicates that the device
17711778 * is operating in an indoor environment.
include/uapi/linux/pkt_sched.h+4−0
@@ -72,6 +72,10 @@ struct tc_estimator { · 71 unmodified lines
7272 #define TC_H_UNSPEC (0U)
7373 #define TC_H_ROOT (0xFFFFFFFFU)
7474 #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
7579
7680 /* Need to corrospond to iproute2 tc/tc_core.h "enum link_layer" */
7781 enum tc_link_layer {
include/uapi/linux/rtnetlink.h+1−0
@@ -311,6 +311,7 @@ enum rtattr_type_t { · 310 unmodified lines
311311 RTA_PREF,
312312 RTA_ENCAP_TYPE,
313313 RTA_ENCAP,
314+ RTA_EXPIRES,
314315 __RTA_MAX
315316 };
316317
include/uapi/linux/sock_diag.h+1−0
@@ -4,6 +4,7 @@ · 3 unmodified lines
44 #include <linux/types.h>
55
66 #define SOCK_DIAG_BY_FAMILY 20
7+#define SOCK_DESTROY 21
78
89 struct sock_diag_req {
910 __u8 sdiag_family;
include/uapi/linux/sockios.h+1−1
@@ -27,7 +27,7 @@ · 26 unmodified lines
2727 /* Routing table calls. */
2828 #define SIOCADDRT 0x890B /* add routing table entry */
2929 #define SIOCDELRT 0x890C /* delete routing table entry */
30−#define SIOCRTMSG 0x890D /* call to routing system */
30+#define SIOCRTMSG 0x890D /* unused */
3131
3232 /* Socket configuration controls. */
3333 #define SIOCGIFNAME 0x8910 /* get iface name */