History

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next

Pull networking updates from David Millar: "Here are some highlights from the 2065 networking commits that happened this development cycle: 1) XDP support for IXGBE (John Fastabend) and thunderx (Sunil Kowuri) 2) Add a generic XDP driver, so that anyone can test XDP even if they lack a networking device whose driver has explicit XDP support (me). 3) Sparc64 now has an eBPF JIT too (me) 4) Add a BPF program testing framework via BPF_PROG_TEST_RUN (Alexei Starovoitov) 5) Make netfitler network namespace teardown less expensive (Florian Westphal) 6) Add symmetric hashing support to nft_hash (Laura Garcia Liebana) 7) Implement NAPI and GRO in netvsc driver (Stephen Hemminger) 8) Support TC flower offload statistics in mlxsw (Arkadi Sharshevsky) 9) Multiqueue support in stmmac driver (Joao Pinto) 10) Remove TCP timewait recycling, it never really could possibly work well in the real world and timestamp randomization really zaps any hint of usability this feature had (Soheil Hassas Yeganeh) 11) Support level3 vs level4 ECMP route hashing in ipv4 (Nikolay Aleksandrov) 12) Add socket busy poll support to epoll (Sridhar Samudrala) 13) Netlink extended ACK support (Johannes Berg, Pablo Neira Ayuso, and several others) 14) IPSEC hw offload infrastructure (Steffen Klassert)" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (2065 commits) tipc: refactor function tipc_sk_recv_stream() tipc: refactor function tipc_sk_recvmsg() net: thunderx: Optimize page recycling for XDP net: thunderx: Support for XDP header adjustment net: thunderx: Add support for XDP_TX net: thunderx: Add support for XDP_DROP net: thunderx: Add basic XDP support net: thunderx: Cleanup receive buffer allocation net: thunderx: Optimize CQE_TX handling net: thunderx: Optimize RBDR descriptor handling net: thunderx: Support for page recycling ipx: call ipxitf_put() in ioctl error path net: sched: add helpers to handle extended actions qed*: Fix issues in the ptp filter config implementation. qede: Fix concurrency issue in PTP Tx path processing. stmmac: Add support for SIMATIC IOT2000 platform net: hns: fix ethtool_get_strings overflow in hns driver tcp: fix wraparound issue in tcp_lp bpf, arm64: fix jit branch offset related to ldimm64 bpf, arm64: implement jiting of BPF_XADD ...

Linus Torvalds committed 9 years ago

Commit 8d65b082 parents 5a0387a 5d15af61690 files · +108404 −45694Browse files

Showing the changes to include/uapi/linux (26 of 1690 files). Show all

Unified · Split

26 files
  1. include/uapi/linux/Kbuild +1 −0
  2. include/uapi/linux/bpf.h +30 −1
  3. include/uapi/linux/can/vxcan.h +12 −0
  4. include/uapi/linux/devlink.h +73 −1
  5. include/uapi/linux/ethtool.h +1 −0
  6. include/uapi/linux/gtp.h +2 −1
  7. include/uapi/linux/if_arp.h +1 −0
  8. include/uapi/linux/if_link.h +11 −1
  9. include/uapi/linux/if_packet.h +1 −0
  10. include/uapi/linux/if_tunnel.h +3 −0
  11. include/uapi/linux/ipv6.h +2 −0
  12. include/uapi/linux/mpls_iptunnel.h +2 −0
  13. include/uapi/linux/netfilter/nf_conntrack_common.h +7 −2
  14. include/uapi/linux/netfilter/nf_tables.h +27 −1
  15. include/uapi/linux/netlink.h +42 −6
  16. include/uapi/linux/netlink_diag.h +10 −0
  17. include/uapi/linux/nl80211.h +111 −5
  18. include/uapi/linux/openvswitch.h +27 −0
  19. include/uapi/linux/pkt_cls.h +19 −1
  20. include/uapi/linux/pkt_sched.h +8 −0
  21. include/uapi/linux/rtnetlink.h +4 −0
  22. include/uapi/linux/sctp.h +32 −0
  23. include/uapi/linux/snmp.h +1 −1
  24. include/uapi/linux/sysctl.h +1 −0
  25. include/uapi/linux/vsockmon.h +60 −0
  26. include/uapi/linux/xfrm.h +8 −0
include/uapi/linux/Kbuild+1−0
@@ -477,6 +477,7 @@ header-y += virtio_types.h · 476 unmodified lines
477477 header-y += virtio_vsock.h
478478 header-y += virtio_crypto.h
479479 header-y += vm_sockets.h
480+header-y += vsockmon.h
480481 header-y += vt.h
481482 header-y += vtpm_proxy.h
482483 header-y += wait.h
include/uapi/linux/bpf.h+30−1
@@ -81,6 +81,7 @@ enum bpf_cmd { · 80 unmodified lines
8181 BPF_OBJ_GET,
8282 BPF_PROG_ATTACH,
8383 BPF_PROG_DETACH,
84+ BPF_PROG_TEST_RUN,
8485 };
8586
8687 enum bpf_map_type {
@@ -96,6 +97,8 @@ enum bpf_map_type { · 9 unmodified lines
9697 BPF_MAP_TYPE_LRU_HASH,
9798 BPF_MAP_TYPE_LRU_PERCPU_HASH,
9899 BPF_MAP_TYPE_LPM_TRIE,
100+ BPF_MAP_TYPE_ARRAY_OF_MAPS,
101+ BPF_MAP_TYPE_HASH_OF_MAPS,
99102 };
100103
101104 enum bpf_prog_type {
@@ -152,6 +155,7 @@ union bpf_attr { · 50 unmodified lines
152155 __u32 value_size; /* size of value in bytes */
153156 __u32 max_entries; /* max number of entries in a map */
154157 __u32 map_flags; /* prealloc or not */
158+ __u32 inner_map_fd; /* fd pointing to the inner map */
155159 };
156160
157161 struct { /* anonymous struct used by BPF_MAP_*_ELEM commands */
@@ -186,6 +190,17 @@ union bpf_attr { · 28 unmodified lines
186190 __u32 attach_type;
187191 __u32 attach_flags;
188192 };
193+
194+ struct { /* anonymous struct used by BPF_PROG_TEST_RUN command */
195+ __u32 prog_fd;
196+ __u32 retval;
197+ __u32 data_size_in;
198+ __u32 data_size_out;
199+ __aligned_u64 data_in;
200+ __aligned_u64 data_out;
201+ __u32 repeat;
202+ __u32 duration;
203+ } test;
189204 } __attribute__((aligned(8)));
190205
191206 /* BPF helper function descriptions:
@@ -456,6 +471,17 @@ union bpf_attr { · 264 unmodified lines
456471 * Return:
457472 * > 0 length of the string including the trailing NUL on success
458473 * < 0 error
474+ *
475+ * u64 bpf_get_socket_cookie(skb)
476+ * Get the cookie for the socket stored inside sk_buff.
477+ * @skb: pointer to skb
478+ * Return: 8 Bytes non-decreasing number on success or 0 if the socket
479+ * field is missing inside sk_buff
480+ *
481+ * u32 bpf_get_socket_uid(skb)
482+ * Get the owner uid of the socket stored inside sk_buff.
483+ * @skb: pointer to skb
484+ * Return: uid of the socket owner on success or overflowuid if failed.
459485 */
460486 #define __BPF_FUNC_MAPPER(FN) \
461487 FN(unspec), \
@@ -503,7 +529,9 @@ union bpf_attr { · 41 unmodified lines
503529 FN(get_numa_node_id), \
504530 FN(skb_change_head), \
505531 FN(xdp_adjust_head), \
506− FN(probe_read_str),
532+ FN(probe_read_str), \
533+ FN(get_socket_cookie), \
534+ FN(get_socket_uid),
507535
508536 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
509537 * function eBPF program intends to call
@@ -574,6 +602,7 @@ struct __sk_buff { · 64 unmodified lines
574602 __u32 tc_classid;
575603 __u32 data;
576604 __u32 data_end;
605+ __u32 napi_id;
577606 };
578607
579608 struct bpf_tunnel_key {
include/uapi/linux/can/vxcan.h+12−0
@@ -0,0 +1,12 @@
1+#ifndef _UAPI_CAN_VXCAN_H
2+#define _UAPI_CAN_VXCAN_H
3+
4+enum {
5+ VXCAN_INFO_UNSPEC,
6+ VXCAN_INFO_PEER,
7+
8+ __VXCAN_INFO_MAX
9+#define VXCAN_INFO_MAX (__VXCAN_INFO_MAX - 1)
10+};
11+
12+#endif
include/uapi/linux/devlink.h+73−1
@@ -65,8 +65,12 @@ enum devlink_command { · 64 unmodified lines
6565 #define DEVLINK_CMD_ESWITCH_MODE_SET /* obsolete, never use this! */ \
6666 DEVLINK_CMD_ESWITCH_SET
6767
68− /* add new commands above here */
68+ DEVLINK_CMD_DPIPE_TABLE_GET,
69+ DEVLINK_CMD_DPIPE_ENTRIES_GET,
70+ DEVLINK_CMD_DPIPE_HEADERS_GET,
71+ DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET,
6972
73+ /* add new commands above here */
7074 __DEVLINK_CMD_MAX,
7175 DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
7276 };
@@ -115,6 +119,11 @@ enum devlink_eswitch_inline_mode { · 42 unmodified lines
115119 DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT,
116120 };
117121
122+enum devlink_eswitch_encap_mode {
123+ DEVLINK_ESWITCH_ENCAP_MODE_NONE,
124+ DEVLINK_ESWITCH_ENCAP_MODE_BASIC,
125+};
126+
118127 enum devlink_attr {
119128 /* don't change the order or add anything between, this is ABI! */
120129 DEVLINK_ATTR_UNSPEC,
@@ -148,10 +157,73 @@ enum devlink_attr { · 27 unmodified lines
148157 DEVLINK_ATTR_ESWITCH_MODE, /* u16 */
149158 DEVLINK_ATTR_ESWITCH_INLINE_MODE, /* u8 */
150159
160+ DEVLINK_ATTR_DPIPE_TABLES, /* nested */
161+ DEVLINK_ATTR_DPIPE_TABLE, /* nested */
162+ DEVLINK_ATTR_DPIPE_TABLE_NAME, /* string */
163+ DEVLINK_ATTR_DPIPE_TABLE_SIZE, /* u64 */
164+ DEVLINK_ATTR_DPIPE_TABLE_MATCHES, /* nested */
165+ DEVLINK_ATTR_DPIPE_TABLE_ACTIONS, /* nested */
166+ DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED, /* u8 */
167+
168+ DEVLINK_ATTR_DPIPE_ENTRIES, /* nested */
169+ DEVLINK_ATTR_DPIPE_ENTRY, /* nested */
170+ DEVLINK_ATTR_DPIPE_ENTRY_INDEX, /* u64 */
171+ DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES, /* nested */
172+ DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES, /* nested */
173+ DEVLINK_ATTR_DPIPE_ENTRY_COUNTER, /* u64 */
174+
175+ DEVLINK_ATTR_DPIPE_MATCH, /* nested */
176+ DEVLINK_ATTR_DPIPE_MATCH_VALUE, /* nested */
177+ DEVLINK_ATTR_DPIPE_MATCH_TYPE, /* u32 */
178+
179+ DEVLINK_ATTR_DPIPE_ACTION, /* nested */
180+ DEVLINK_ATTR_DPIPE_ACTION_VALUE, /* nested */
181+ DEVLINK_ATTR_DPIPE_ACTION_TYPE, /* u32 */
182+
183+ DEVLINK_ATTR_DPIPE_VALUE,
184+ DEVLINK_ATTR_DPIPE_VALUE_MASK,
185+ DEVLINK_ATTR_DPIPE_VALUE_MAPPING, /* u32 */
186+
187+ DEVLINK_ATTR_DPIPE_HEADERS, /* nested */
188+ DEVLINK_ATTR_DPIPE_HEADER, /* nested */
189+ DEVLINK_ATTR_DPIPE_HEADER_NAME, /* string */
190+ DEVLINK_ATTR_DPIPE_HEADER_ID, /* u32 */
191+ DEVLINK_ATTR_DPIPE_HEADER_FIELDS, /* nested */
192+ DEVLINK_ATTR_DPIPE_HEADER_GLOBAL, /* u8 */
193+ DEVLINK_ATTR_DPIPE_HEADER_INDEX, /* u32 */
194+
195+ DEVLINK_ATTR_DPIPE_FIELD, /* nested */
196+ DEVLINK_ATTR_DPIPE_FIELD_NAME, /* string */
197+ DEVLINK_ATTR_DPIPE_FIELD_ID, /* u32 */
198+ DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH, /* u32 */
199+ DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE, /* u32 */
200+
201+ DEVLINK_ATTR_PAD,
202+
203+ DEVLINK_ATTR_ESWITCH_ENCAP_MODE, /* u8 */
204+
151205 /* add new attributes above here, update the policy in devlink.c */
152206
153207 __DEVLINK_ATTR_MAX,
154208 DEVLINK_ATTR_MAX = __DEVLINK_ATTR_MAX - 1
155209 };
156210
211+/* Mapping between internal resource described by the field and system
212+ * structure
213+ */
214+enum devlink_dpipe_field_mapping_type {
215+ DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE,
216+ DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX,
217+};
218+
219+/* Match type - specify the type of the match */
220+enum devlink_dpipe_match_type {
221+ DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT,
222+};
223+
224+/* Action type - specify the action type */
225+enum devlink_dpipe_action_type {
226+ DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY,
227+};
228+
157229 #endif /* _UAPI_LINUX_DEVLINK_H_ */
include/uapi/linux/ethtool.h+1−0
@@ -1487,6 +1487,7 @@ enum ethtool_link_mode_bit_indices { · 1486 unmodified lines
14871487 */
14881488
14891489 /* The forced speed, in units of 1Mb. All values 0 to INT_MAX are legal. */
1490+/* Update drivers/net/phy/phy.c:phy_speed_to_str() when adding new values */
14901491 #define SPEED_10 10
14911492 #define SPEED_100 100
14921493 #define SPEED_1000 1000
include/uapi/linux/gtp.h+2−1
@@ -19,7 +19,8 @@ enum gtp_attrs { · 18 unmodified lines
1919 GTPA_LINK,
2020 GTPA_VERSION,
2121 GTPA_TID, /* for GTPv0 only */
22− GTPA_SGSN_ADDRESS,
22+ GTPA_PEER_ADDRESS, /* Remote GSN peer, either SGSN or GGSN */
23+#define GTPA_SGSN_ADDRESS GTPA_PEER_ADDRESS /* maintain legacy attr name */
2324 GTPA_MS_ADDRESS,
2425 GTPA_FLOW,
2526 GTPA_NET_NS_FD,
include/uapi/linux/if_arp.h+1−0
@@ -95,6 +95,7 @@ · 94 unmodified lines
9595 #define ARPHRD_IP6GRE 823 /* GRE over IPv6 */
9696 #define ARPHRD_NETLINK 824 /* Netlink header */
9797 #define ARPHRD_6LOWPAN 825 /* IPv6 over LoWPAN */
98+#define ARPHRD_VSOCKMON 826 /* Vsock monitor header */
9899
99100 #define ARPHRD_VOID 0xFFFF /* Void type, nothing is known */
100101 #define ARPHRD_NONE 0xFFFE /* zero header length */
include/uapi/linux/if_link.h+11−1
@@ -323,6 +323,7 @@ enum { · 322 unmodified lines
323323 IFLA_BRPORT_MCAST_FLOOD,
324324 IFLA_BRPORT_MCAST_TO_UCAST,
325325 IFLA_BRPORT_VLAN_TUNNEL,
326+ IFLA_BRPORT_BCAST_FLOOD,
326327 __IFLA_BRPORT_MAX
327328 };
328329 #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
@@ -538,11 +539,18 @@ enum { · 209 unmodified lines
538539 #define IFLA_PPP_MAX (__IFLA_PPP_MAX - 1)
539540
540541 /* GTP section */
542+
543+enum ifla_gtp_role {
544+ GTP_ROLE_GGSN = 0,
545+ GTP_ROLE_SGSN,
546+};
547+
541548 enum {
542549 IFLA_GTP_UNSPEC,
543550 IFLA_GTP_FD0,
544551 IFLA_GTP_FD1,
545552 IFLA_GTP_PDP_HASHSIZE,
553+ IFLA_GTP_ROLE,
546554 __IFLA_GTP_MAX,
547555 };
548556 #define IFLA_GTP_MAX (__IFLA_GTP_MAX - 1)
@@ -880,7 +888,9 @@ enum { · 331 unmodified lines
880888 /* XDP section */
881889
882890 #define XDP_FLAGS_UPDATE_IF_NOEXIST (1U << 0)
883−#define XDP_FLAGS_MASK (XDP_FLAGS_UPDATE_IF_NOEXIST)
891+#define XDP_FLAGS_SKB_MODE (2U << 0)
892+#define XDP_FLAGS_MASK (XDP_FLAGS_UPDATE_IF_NOEXIST | \
893+ XDP_FLAGS_SKB_MODE)
884894
885895 enum {
886896 IFLA_XDP_UNSPEC,
include/uapi/linux/if_packet.h+1−0
@@ -66,6 +66,7 @@ struct sockaddr_ll { · 65 unmodified lines
6666 #define PACKET_FANOUT_CBPF 6
6767 #define PACKET_FANOUT_EBPF 7
6868 #define PACKET_FANOUT_FLAG_ROLLOVER 0x1000
69+#define PACKET_FANOUT_FLAG_UNIQUEID 0x2000
6970 #define PACKET_FANOUT_FLAG_DEFRAG 0x8000
7071
7172 struct tpacket_stats {
include/uapi/linux/if_tunnel.h+3−0
@@ -75,6 +75,7 @@ enum { · 74 unmodified lines
7575 IFLA_IPTUN_ENCAP_SPORT,
7676 IFLA_IPTUN_ENCAP_DPORT,
7777 IFLA_IPTUN_COLLECT_METADATA,
78+ IFLA_IPTUN_FWMARK,
7879 __IFLA_IPTUN_MAX,
7980 };
8081 #define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1)
@@ -132,6 +133,7 @@ enum { · 51 unmodified lines
132133 IFLA_GRE_ENCAP_DPORT,
133134 IFLA_GRE_COLLECT_METADATA,
134135 IFLA_GRE_IGNORE_DF,
136+ IFLA_GRE_FWMARK,
135137 __IFLA_GRE_MAX,
136138 };
137139
@@ -147,6 +149,7 @@ enum { · 9 unmodified lines
147149 IFLA_VTI_OKEY,
148150 IFLA_VTI_LOCAL,
149151 IFLA_VTI_REMOTE,
152+ IFLA_VTI_FWMARK,
150153 __IFLA_VTI_MAX,
151154 };
152155
include/uapi/linux/ipv6.h+2−0
@@ -183,6 +183,8 @@ enum { · 182 unmodified lines
183183 DEVCONF_SEG6_REQUIRE_HMAC,
184184 DEVCONF_ENHANCED_DAD,
185185 DEVCONF_ADDR_GEN_MODE,
186+ DEVCONF_DISABLE_POLICY,
187+ DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN,
186188 DEVCONF_MAX
187189 };
188190
include/uapi/linux/mpls_iptunnel.h+2−0
@@ -16,11 +16,13 @@ · 15 unmodified lines
1616 /* MPLS tunnel attributes
1717 * [RTA_ENCAP] = {
1818 * [MPLS_IPTUNNEL_DST]
19+ * [MPLS_IPTUNNEL_TTL]
1920 * }
2021 */
2122 enum {
2223 MPLS_IPTUNNEL_UNSPEC,
2324 MPLS_IPTUNNEL_DST,
25+ MPLS_IPTUNNEL_TTL,
2426 __MPLS_IPTUNNEL_MAX,
2527 };
2628 #define MPLS_IPTUNNEL_MAX (__MPLS_IPTUNNEL_MAX - 1)
include/uapi/linux/netfilter/nf_conntrack_common.h+7−2
@@ -28,12 +28,14 @@ enum ip_conntrack_info { · 27 unmodified lines
2828 /* only for userspace compatibility */
2929 #ifndef __KERNEL__
3030 IP_CT_NEW_REPLY = IP_CT_NUMBER,
31+#else
32+ IP_CT_UNTRACKED = 7,
3133 #endif
3234 };
3335
3436 #define NF_CT_STATE_INVALID_BIT (1 << 0)
3537 #define NF_CT_STATE_BIT(ctinfo) (1 << ((ctinfo) % IP_CT_IS_REPLY + 1))
36−#define NF_CT_STATE_UNTRACKED_BIT (1 << (IP_CT_NUMBER + 1))
38+#define NF_CT_STATE_UNTRACKED_BIT (1 << (IP_CT_UNTRACKED + 1))
3739
3840 /* Bitset representing status of connection. */
3941 enum ip_conntrack_status {
@@ -94,7 +96,7 @@ enum ip_conntrack_status { · 54 unmodified lines
9496 IPS_TEMPLATE_BIT = 11,
9597 IPS_TEMPLATE = (1 << IPS_TEMPLATE_BIT),
9698
97− /* Conntrack is a fake untracked entry */
99+ /* Conntrack is a fake untracked entry. Obsolete and not used anymore */
98100 IPS_UNTRACKED_BIT = 12,
99101 IPS_UNTRACKED = (1 << IPS_UNTRACKED_BIT),
100102
@@ -117,6 +119,9 @@ enum ip_conntrack_events { · 16 unmodified lines
117119 IPCT_NATSEQADJ = IPCT_SEQADJ,
118120 IPCT_SECMARK, /* new security mark has been set */
119121 IPCT_LABEL, /* new connlabel has been set */
122+#ifdef __KERNEL__
123+ __IPCT_MAX
124+#endif
120125 };
121126
122127 enum ip_conntrack_expect_events {
include/uapi/linux/netfilter/nf_tables.h+27−1
@@ -815,6 +815,17 @@ enum nft_rt_keys { · 814 unmodified lines
815815 NFT_RT_NEXTHOP6,
816816 };
817817
818+/**
819+ * enum nft_hash_types - nf_tables hash expression types
820+ *
821+ * @NFT_HASH_JENKINS: Jenkins Hash
822+ * @NFT_HASH_SYM: Symmetric Hash
823+ */
824+enum nft_hash_types {
825+ NFT_HASH_JENKINS,
826+ NFT_HASH_SYM,
827+};
828+
818829 /**
819830 * enum nft_hash_attributes - nf_tables hash expression netlink attributes
820831 *
@@ -824,6 +835,7 @@ enum nft_rt_keys { · 3 unmodified lines
824835 * @NFTA_HASH_MODULUS: modulus value (NLA_U32)
825836 * @NFTA_HASH_SEED: seed value (NLA_U32)
826837 * @NFTA_HASH_OFFSET: add this offset value to hash result (NLA_U32)
838+ * @NFTA_HASH_TYPE: hash operation (NLA_U32: nft_hash_types)
827839 */
828840 enum nft_hash_attributes {
829841 NFTA_HASH_UNSPEC,
@@ -833,6 +845,7 @@ enum nft_hash_attributes { · 3 unmodified lines
833845 NFTA_HASH_MODULUS,
834846 NFTA_HASH_SEED,
835847 NFTA_HASH_OFFSET,
848+ NFTA_HASH_TYPE,
836849 __NFTA_HASH_MAX,
837850 };
838851 #define NFTA_HASH_MAX (__NFTA_HASH_MAX - 1)
@@ -888,6 +901,7 @@ enum nft_rt_attributes { · 49 unmodified lines
888901 * @NFT_CT_BYTES: conntrack bytes
889902 * @NFT_CT_AVGPKT: conntrack average bytes per packet
890903 * @NFT_CT_ZONE: conntrack zone
904+ * @NFT_CT_EVENTMASK: ctnetlink events to be generated for this conntrack
891905 */
892906 enum nft_ct_keys {
893907 NFT_CT_STATE,
@@ -908,6 +922,7 @@ enum nft_ct_keys { · 14 unmodified lines
908922 NFT_CT_BYTES,
909923 NFT_CT_AVGPKT,
910924 NFT_CT_ZONE,
925+ NFT_CT_EVENTMASK,
911926 };
912927
913928 /**
@@ -1244,12 +1259,23 @@ enum nft_fib_flags { · 330 unmodified lines
12441259 NFTA_FIB_F_MARK = 1 << 2, /* use skb->mark */
12451260 NFTA_FIB_F_IIF = 1 << 3, /* restrict to iif */
12461261 NFTA_FIB_F_OIF = 1 << 4, /* restrict to oif */
1262+ NFTA_FIB_F_PRESENT = 1 << 5, /* check existence only */
1263+};
1264+
1265+enum nft_ct_helper_attributes {
1266+ NFTA_CT_HELPER_UNSPEC,
1267+ NFTA_CT_HELPER_NAME,
1268+ NFTA_CT_HELPER_L3PROTO,
1269+ NFTA_CT_HELPER_L4PROTO,
1270+ __NFTA_CT_HELPER_MAX,
12471271 };
1272+#define NFTA_CT_HELPER_MAX (__NFTA_CT_HELPER_MAX - 1)
12481273
12491274 #define NFT_OBJECT_UNSPEC 0
12501275 #define NFT_OBJECT_COUNTER 1
12511276 #define NFT_OBJECT_QUOTA 2
1252−#define __NFT_OBJECT_MAX 3
1277+#define NFT_OBJECT_CT_HELPER 3
1278+#define __NFT_OBJECT_MAX 4
12531279 #define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1)
12541280
12551281 /**
include/uapi/linux/netlink.h+42−6
@@ -50,12 +50,12 @@ struct nlmsghdr { · 49 unmodified lines
5050
5151 /* Flags values */
5252
53−#define NLM_F_REQUEST 1 /* It is request message. */
54−#define NLM_F_MULTI 2 /* Multipart message, terminated by NLMSG_DONE */
55−#define NLM_F_ACK 4 /* Reply with ack, with zero or error code */
56−#define NLM_F_ECHO 8 /* Echo this request */
57−#define NLM_F_DUMP_INTR 16 /* Dump was inconsistent due to sequence change */
58−#define NLM_F_DUMP_FILTERED 32 /* Dump was filtered as requested */
53+#define NLM_F_REQUEST 0x01 /* It is request message. */
54+#define NLM_F_MULTI 0x02 /* Multipart message, terminated by NLMSG_DONE */
55+#define NLM_F_ACK 0x04 /* Reply with ack, with zero or error code */
56+#define NLM_F_ECHO 0x08 /* Echo this request */
57+#define NLM_F_DUMP_INTR 0x10 /* Dump was inconsistent due to sequence change */
58+#define NLM_F_DUMP_FILTERED 0x20 /* Dump was filtered as requested */
5959
6060 /* Modifiers to GET request */
6161 #define NLM_F_ROOT 0x100 /* specify tree root */
@@ -69,6 +69,10 @@ struct nlmsghdr { · 7 unmodified lines
6969 #define NLM_F_CREATE 0x400 /* Create, if it does not exist */
7070 #define NLM_F_APPEND 0x800 /* Add to end of list */
7171
72+/* Flags for ACK message */
73+#define NLM_F_CAPPED 0x100 /* request was capped */
74+#define NLM_F_ACK_TLVS 0x200 /* extended ACK TVLs were included */
75+
7276 /*
7377 4.4BSD ADD NLM_F_CREATE|NLM_F_EXCL
7478 4.4BSD CHANGE NLM_F_REPLACE
@@ -101,6 +105,37 @@ struct nlmsghdr { · 26 unmodified lines
101105 struct nlmsgerr {
102106 int error;
103107 struct nlmsghdr msg;
108+ /*
109+ * followed by the message contents unless NETLINK_CAP_ACK was set
110+ * or the ACK indicates success (error == 0)
111+ * message length is aligned with NLMSG_ALIGN()
112+ */
113+ /*
114+ * followed by TLVs defined in enum nlmsgerr_attrs
115+ * if NETLINK_EXT_ACK was set
116+ */
117+};
118+
119+/**
120+ * enum nlmsgerr_attrs - nlmsgerr attributes
121+ * @NLMSGERR_ATTR_UNUSED: unused
122+ * @NLMSGERR_ATTR_MSG: error message string (string)
123+ * @NLMSGERR_ATTR_OFFS: offset of the invalid attribute in the original
124+ * message, counting from the beginning of the header (u32)
125+ * @NLMSGERR_ATTR_COOKIE: arbitrary subsystem specific cookie to
126+ * be used - in the success case - to identify a created
127+ * object or operation or similar (binary)
128+ * @__NLMSGERR_ATTR_MAX: number of attributes
129+ * @NLMSGERR_ATTR_MAX: highest attribute number
130+ */
131+enum nlmsgerr_attrs {
132+ NLMSGERR_ATTR_UNUSED,
133+ NLMSGERR_ATTR_MSG,
134+ NLMSGERR_ATTR_OFFS,
135+ NLMSGERR_ATTR_COOKIE,
136+
137+ __NLMSGERR_ATTR_MAX,
138+ NLMSGERR_ATTR_MAX = __NLMSGERR_ATTR_MAX - 1
104139 };
105140
106141 #define NETLINK_ADD_MEMBERSHIP 1
@@ -115,6 +150,7 @@ struct nlmsgerr { · 8 unmodified lines
115150 #define NETLINK_LISTEN_ALL_NSID 8
116151 #define NETLINK_LIST_MEMBERSHIPS 9
117152 #define NETLINK_CAP_ACK 10
153+#define NETLINK_EXT_ACK 11
118154
119155 struct nl_pktinfo {
120156 __u32 group;
include/uapi/linux/netlink_diag.h+10−0
@@ -38,6 +38,7 @@ enum { · 37 unmodified lines
3838 NETLINK_DIAG_GROUPS,
3939 NETLINK_DIAG_RX_RING,
4040 NETLINK_DIAG_TX_RING,
41+ NETLINK_DIAG_FLAGS,
4142
4243 __NETLINK_DIAG_MAX,
4344 };
@@ -52,5 +53,14 @@ enum { · 8 unmodified lines
5253 /* deprecated since 4.6 */
5354 #define NDIAG_SHOW_RING_CFG 0x00000004 /* show ring configuration */
5455 #endif
56+#define NDIAG_SHOW_FLAGS 0x00000008 /* show flags of a netlink socket */
57+
58+/* flags */
59+#define NDIAG_FLAG_CB_RUNNING 0x00000001
60+#define NDIAG_FLAG_PKTINFO 0x00000002
61+#define NDIAG_FLAG_BROADCAST_ERROR 0x00000004
62+#define NDIAG_FLAG_NO_ENOBUFS 0x00000008
63+#define NDIAG_FLAG_LISTEN_ALL_NSID 0x00000010
64+#define NDIAG_FLAG_CAP_ACK 0x00000020
5565
5666 #endif
include/uapi/linux/nl80211.h+111−5
@@ -172,6 +172,42 @@ · 171 unmodified lines
172172 * Multiple such rules can be created.
173173 */
174174
175+/**
176+ * DOC: FILS shared key authentication offload
177+ *
178+ * FILS shared key authentication offload can be advertized by drivers by
179+ * setting @NL80211_EXT_FEATURE_FILS_SK_OFFLOAD flag. The drivers that support
180+ * FILS shared key authentication offload should be able to construct the
181+ * authentication and association frames for FILS shared key authentication and
182+ * eventually do a key derivation as per IEEE 802.11ai. The below additional
183+ * parameters should be given to driver in %NL80211_CMD_CONNECT.
184+ * %NL80211_ATTR_FILS_ERP_USERNAME - used to construct keyname_nai
185+ * %NL80211_ATTR_FILS_ERP_REALM - used to construct keyname_nai
186+ * %NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM - used to construct erp message
187+ * %NL80211_ATTR_FILS_ERP_RRK - used to generate the rIK and rMSK
188+ * rIK should be used to generate an authentication tag on the ERP message and
189+ * rMSK should be used to derive a PMKSA.
190+ * rIK, rMSK should be generated and keyname_nai, sequence number should be used
191+ * as specified in IETF RFC 6696.
192+ *
193+ * When FILS shared key authentication is completed, driver needs to provide the
194+ * below additional parameters to userspace.
195+ * %NL80211_ATTR_FILS_KEK - used for key renewal
196+ * %NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM - used in further EAP-RP exchanges
197+ * %NL80211_ATTR_PMKID - used to identify the PMKSA used/generated
198+ * %Nl80211_ATTR_PMK - used to update PMKSA cache in userspace
199+ * The PMKSA can be maintained in userspace persistently so that it can be used
200+ * later after reboots or wifi turn off/on also.
201+ *
202+ * %NL80211_ATTR_FILS_CACHE_ID is the cache identifier advertized by a FILS
203+ * capable AP supporting PMK caching. It specifies the scope within which the
204+ * PMKSAs are cached in an ESS. %NL80211_CMD_SET_PMKSA and
205+ * %NL80211_CMD_DEL_PMKSA are enhanced to allow support for PMKSA caching based
206+ * on FILS cache identifier. Additionally %NL80211_ATTR_PMK is used with
207+ * %NL80211_SET_PMKSA to specify the PMK corresponding to a PMKSA for driver to
208+ * use in a FILS shared key connection with PMKSA caching.
209+ */
210+
175211 /**
176212 * enum nl80211_commands - supported nl80211 commands
177213 *
@@ -351,7 +387,9 @@ · 173 unmodified lines
351387 * are used. Extra IEs can also be passed from the userspace by
352388 * using the %NL80211_ATTR_IE attribute. The first cycle of the
353389 * scheduled scan can be delayed by %NL80211_ATTR_SCHED_SCAN_DELAY
354− * is supplied.
390+ * is supplied. If the device supports multiple concurrent scheduled
391+ * scans, it will allow such when the caller provides the flag attribute
392+ * %NL80211_ATTR_SCHED_SCAN_MULTI to indicate user-space support for it.
355393 * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan. Returns -ENOENT if
356394 * scheduled scan is not running. The caller may assume that as soon
357395 * as the call returns, it is safe to start a new scheduled scan again.
@@ -370,10 +408,18 @@ · 12 unmodified lines
370408 * @NL80211_CMD_NEW_SURVEY_RESULTS: survey data notification (as a reply to
371409 * NL80211_CMD_GET_SURVEY and on the "scan" multicast group)
372410 *
373− * @NL80211_CMD_SET_PMKSA: Add a PMKSA cache entry, using %NL80211_ATTR_MAC
374− * (for the BSSID) and %NL80211_ATTR_PMKID.
411+ * @NL80211_CMD_SET_PMKSA: Add a PMKSA cache entry using %NL80211_ATTR_MAC
412+ * (for the BSSID), %NL80211_ATTR_PMKID, and optionally %NL80211_ATTR_PMK
413+ * (PMK is used for PTKSA derivation in case of FILS shared key offload) or
414+ * using %NL80211_ATTR_SSID, %NL80211_ATTR_FILS_CACHE_ID,
415+ * %NL80211_ATTR_PMKID, and %NL80211_ATTR_PMK in case of FILS
416+ * authentication where %NL80211_ATTR_FILS_CACHE_ID is the identifier
417+ * advertized by a FILS capable AP identifying the scope of PMKSA in an
418+ * ESS.
375419 * @NL80211_CMD_DEL_PMKSA: Delete a PMKSA cache entry, using %NL80211_ATTR_MAC
376− * (for the BSSID) and %NL80211_ATTR_PMKID.
420+ * (for the BSSID) and %NL80211_ATTR_PMKID or using %NL80211_ATTR_SSID,
421+ * %NL80211_ATTR_FILS_CACHE_ID, and %NL80211_ATTR_PMKID in case of FILS
422+ * authentication.
377423 * @NL80211_CMD_FLUSH_PMKSA: Flush all PMKSA cache entries.
378424 *
379425 * @NL80211_CMD_REG_CHANGE: indicates to userspace the regulatory domain
@@ -2012,6 +2058,36 @@ enum nl80211_commands { · 1632 unmodified lines
20122058 * u32 attribute with an &enum nl80211_timeout_reason value. This is used,
20132059 * e.g., with %NL80211_CMD_CONNECT event.
20142060 *
2061+ * @NL80211_ATTR_FILS_ERP_USERNAME: EAP Re-authentication Protocol (ERP)
2062+ * username part of NAI used to refer keys rRK and rIK. This is used with
2063+ * %NL80211_CMD_CONNECT.
2064+ *
2065+ * @NL80211_ATTR_FILS_ERP_REALM: EAP Re-authentication Protocol (ERP) realm part
2066+ * of NAI specifying the domain name of the ER server. This is used with
2067+ * %NL80211_CMD_CONNECT.
2068+ *
2069+ * @NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM: Unsigned 16-bit ERP next sequence number
2070+ * to use in ERP messages. This is used in generating the FILS wrapped data
2071+ * for FILS authentication and is used with %NL80211_CMD_CONNECT.
2072+ *
2073+ * @NL80211_ATTR_FILS_ERP_RRK: ERP re-authentication Root Key (rRK) for the
2074+ * NAI specified by %NL80211_ATTR_FILS_ERP_USERNAME and
2075+ * %NL80211_ATTR_FILS_ERP_REALM. This is used for generating rIK and rMSK
2076+ * from successful FILS authentication and is used with
2077+ * %NL80211_CMD_CONNECT.
2078+ *
2079+ * @NL80211_ATTR_FILS_CACHE_ID: A 2-octet identifier advertized by a FILS AP
2080+ * identifying the scope of PMKSAs. This is used with
2081+ * @NL80211_CMD_SET_PMKSA and @NL80211_CMD_DEL_PMKSA.
2082+ *
2083+ * @NL80211_ATTR_PMK: PMK for the PMKSA identified by %NL80211_ATTR_PMKID.
2084+ * This is used with @NL80211_CMD_SET_PMKSA.
2085+ *
2086+ * @NL80211_ATTR_SCHED_SCAN_MULTI: flag attribute which user-space shall use to
2087+ * indicate that it supports multiple active scheduled scan requests.
2088+ * @NL80211_ATTR_SCHED_SCAN_MAX_REQS: indicates maximum number of scheduled
2089+ * scan request that may be active for the device (u32).
2090+ *
20152091 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
20162092 * @NL80211_ATTR_MAX: highest attribute number currently defined
20172093 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2423,6 +2499,17 @@ enum nl80211_attrs { · 405 unmodified lines
24232499
24242500 NL80211_ATTR_TIMEOUT_REASON,
24252501
2502+ NL80211_ATTR_FILS_ERP_USERNAME,
2503+ NL80211_ATTR_FILS_ERP_REALM,
2504+ NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM,
2505+ NL80211_ATTR_FILS_ERP_RRK,
2506+ NL80211_ATTR_FILS_CACHE_ID,
2507+
2508+ NL80211_ATTR_PMK,
2509+
2510+ NL80211_ATTR_SCHED_SCAN_MULTI,
2511+ NL80211_ATTR_SCHED_SCAN_MAX_REQS,
2512+
24262513 /* add attributes here, update the policy in nl80211.c */
24272514
24282515 __NL80211_ATTR_AFTER_LAST,
@@ -3107,6 +3194,7 @@ enum nl80211_reg_rule_attr { · 678 unmodified lines
31073194 * @__NL80211_SCHED_SCAN_MATCH_ATTR_INVALID: attribute number 0 is reserved
31083195 * @NL80211_SCHED_SCAN_MATCH_ATTR_SSID: SSID to be used for matching,
31093196 * only report BSS with matching SSID.
3197+ * (This cannot be used together with BSSID.)
31103198 * @NL80211_SCHED_SCAN_MATCH_ATTR_RSSI: RSSI threshold (in dBm) for reporting a
31113199 * BSS in scan results. Filtering is turned off if not specified. Note that
31123200 * if this attribute is in a match set of its own, then it is treated as
@@ -3122,6 +3210,8 @@ enum nl80211_reg_rule_attr { · 9 unmodified lines
31223210 * BSS-es in the specified band is to be adjusted before doing
31233211 * RSSI-based BSS selection. The attribute value is a packed structure
31243212 * value as specified by &struct nl80211_bss_select_rssi_adjust.
3213+ * @NL80211_SCHED_SCAN_MATCH_ATTR_BSSID: BSSID to be used for matching
3214+ * (this cannot be used together with SSID).
31253215 * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter
31263216 * attribute number currently defined
31273217 * @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use
@@ -3133,6 +3223,7 @@ enum nl80211_sched_scan_match_attr { · 5 unmodified lines
31333223 NL80211_SCHED_SCAN_MATCH_ATTR_RSSI,
31343224 NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI,
31353225 NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST,
3226+ NL80211_SCHED_SCAN_MATCH_ATTR_BSSID,
31363227
31373228 /* keep last */
31383229 __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST,
@@ -3942,7 +4033,10 @@ enum nl80211_ps_state { · 803 unmodified lines
39424033 * @__NL80211_ATTR_CQM_INVALID: invalid
39434034 * @NL80211_ATTR_CQM_RSSI_THOLD: RSSI threshold in dBm. This value specifies
39444035 * the threshold for the RSSI level at which an event will be sent. Zero
3945− * to disable.
4036+ * to disable. Alternatively, if %NL80211_EXT_FEATURE_CQM_RSSI_LIST is
4037+ * set, multiple values can be supplied as a low-to-high sorted array of
4038+ * threshold values in dBm. Events will be sent when the RSSI value
4039+ * crosses any of the thresholds.
39464040 * @NL80211_ATTR_CQM_RSSI_HYST: RSSI hysteresis in dBm. This value specifies
39474041 * the minimum amount the RSSI level must change after an event before a
39484042 * new event may be issued (to reduce effects of RSSI oscillation).
@@ -4753,6 +4847,11 @@ enum nl80211_feature_flags { · 804 unmodified lines
47534847 * @NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI: The driver supports sched_scan
47544848 * for reporting BSSs with better RSSI than the current connected BSS
47554849 * (%NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI).
4850+ * @NL80211_EXT_FEATURE_CQM_RSSI_LIST: With this driver the
4851+ * %NL80211_ATTR_CQM_RSSI_THOLD attribute accepts a list of zero or more
4852+ * RSSI threshold values to monitor rather than exactly one threshold.
4853+ * @NL80211_EXT_FEATURE_FILS_SK_OFFLOAD: Driver SME supports FILS shared key
4854+ * authentication with %NL80211_CMD_CONNECT.
47564855 *
47574856 * @NUM_NL80211_EXT_FEATURES: number of extended features.
47584857 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
@@ -4771,6 +4870,8 @@ enum nl80211_ext_feature_index { · 12 unmodified lines
47714870 NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA,
47724871 NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED,
47734872 NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI,
4873+ NL80211_EXT_FEATURE_CQM_RSSI_LIST,
4874+ NL80211_EXT_FEATURE_FILS_SK_OFFLOAD,
47744875
47754876 /* add new features before the definition below */
47764877 NUM_NL80211_EXT_FEATURES,
@@ -4906,12 +5007,17 @@ enum nl80211_smps_mode { · 129 unmodified lines
49065007 * change to the channel status.
49075008 * @NL80211_RADAR_NOP_FINISHED: The Non-Occupancy Period for this channel is
49085009 * over, channel becomes usable.
5010+ * @NL80211_RADAR_PRE_CAC_EXPIRED: Channel Availability Check done on this
5011+ * non-operating channel is expired and no longer valid. New CAC must
5012+ * be done on this channel before starting the operation. This is not
5013+ * applicable for ETSI dfs domain where pre-CAC is valid for ever.
49095014 */
49105015 enum nl80211_radar_event {
49115016 NL80211_RADAR_DETECTED,
49125017 NL80211_RADAR_CAC_FINISHED,
49135018 NL80211_RADAR_CAC_ABORTED,
49145019 NL80211_RADAR_NOP_FINISHED,
5020+ NL80211_RADAR_PRE_CAC_EXPIRED,
49155021 };
49165022
49175023 /**
include/uapi/linux/openvswitch.h+27−0
@@ -578,10 +578,25 @@ enum ovs_sample_attr { · 577 unmodified lines
578578 OVS_SAMPLE_ATTR_PROBABILITY, /* u32 number */
579579 OVS_SAMPLE_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */
580580 __OVS_SAMPLE_ATTR_MAX,
581+
582+#ifdef __KERNEL__
583+ OVS_SAMPLE_ATTR_ARG /* struct sample_arg */
584+#endif
581585 };
582586
583587 #define OVS_SAMPLE_ATTR_MAX (__OVS_SAMPLE_ATTR_MAX - 1)
584588
589+#ifdef __KERNEL__
590+struct sample_arg {
591+ bool exec; /* When true, actions in sample will not
592+ * change flow keys. False otherwise.
593+ */
594+ u32 probability; /* Same value as
595+ * 'OVS_SAMPLE_ATTR_PROBABILITY'.
596+ */
597+};
598+#endif
599+
585600 /**
586601 * enum ovs_userspace_attr - Attributes for %OVS_ACTION_ATTR_USERSPACE action.
587602 * @OVS_USERSPACE_ATTR_PID: u32 Netlink PID to which the %OVS_PACKET_CMD_ACTION
@@ -678,6 +693,17 @@ struct ovs_action_hash { · 90 unmodified lines
678693 * nothing if the connection is already committed will check that the current
679694 * packet is in conntrack entry's original direction. If directionality does
680695 * not match, will delete the existing conntrack entry and commit a new one.
696+ * @OVS_CT_ATTR_EVENTMASK: Mask of bits indicating which conntrack event types
697+ * (enum ip_conntrack_events IPCT_*) should be reported. For any bit set to
698+ * zero, the corresponding event type is not generated. Default behavior
699+ * depends on system configuration, but typically all event types are
700+ * generated, hence listening on NFNLGRP_CONNTRACK_UPDATE events may get a lot
701+ * of events. Explicitly passing this attribute allows limiting the updates
702+ * received to the events of interest. The bit 1 << IPCT_NEW, 1 <<
703+ * IPCT_RELATED, and 1 << IPCT_DESTROY must be set to ones for those events to
704+ * be received on NFNLGRP_CONNTRACK_NEW and NFNLGRP_CONNTRACK_DESTROY groups,
705+ * respectively. Remaining bits control the changes for which an event is
706+ * delivered on the NFNLGRP_CONNTRACK_UPDATE group.
681707 */
682708 enum ovs_ct_attr {
683709 OVS_CT_ATTR_UNSPEC,
@@ -689,6 +715,7 @@ enum ovs_ct_attr { · 5 unmodified lines
689715 related connections. */
690716 OVS_CT_ATTR_NAT, /* Nested OVS_NAT_ATTR_* */
691717 OVS_CT_ATTR_FORCE_COMMIT, /* No argument */
718+ OVS_CT_ATTR_EVENTMASK, /* u32 mask of IPCT_* events. */
692719 __OVS_CT_ATTR_MAX
693720 };
694721
include/uapi/linux/pkt_cls.h+19−1
@@ -37,7 +37,20 @@ enum { · 36 unmodified lines
3737 #define TC_ACT_QUEUED 5
3838 #define TC_ACT_REPEAT 6
3939 #define TC_ACT_REDIRECT 7
40−#define TC_ACT_JUMP 0x10000000
40+
41+/* There is a special kind of actions called "extended actions",
42+ * which need a value parameter. These have a local opcode located in
43+ * the highest nibble, starting from 1. The rest of the bits
44+ * are used to carry the value. These two parts together make
45+ * a combined opcode.
46+ */
47+#define __TC_ACT_EXT_SHIFT 28
48+#define __TC_ACT_EXT(local) ((local) << __TC_ACT_EXT_SHIFT)
49+#define TC_ACT_EXT_VAL_MASK ((1 << __TC_ACT_EXT_SHIFT) - 1)
50+#define TC_ACT_EXT_CMP(combined, opcode) \
51+ (((combined) & (~TC_ACT_EXT_VAL_MASK)) == opcode)
52+
53+#define TC_ACT_JUMP __TC_ACT_EXT(1)
4154
4255 /* Action type identifiers*/
4356 enum {
@@ -432,6 +445,11 @@ enum { · 388 unmodified lines
432445 TCA_FLOWER_KEY_ARP_THA, /* ETH_ALEN */
433446 TCA_FLOWER_KEY_ARP_THA_MASK, /* ETH_ALEN */
434447
448+ TCA_FLOWER_KEY_MPLS_TTL, /* u8 - 8 bits */
449+ TCA_FLOWER_KEY_MPLS_BOS, /* u8 - 1 bit */
450+ TCA_FLOWER_KEY_MPLS_TC, /* u8 - 3 bits */
451+ TCA_FLOWER_KEY_MPLS_LABEL, /* be32 - 20 bits */
452+
435453 __TCA_FLOWER_MAX,
436454 };
437455
include/uapi/linux/pkt_sched.h+8−0
@@ -617,6 +617,14 @@ struct tc_drr_stats { · 616 unmodified lines
617617 #define TC_QOPT_BITMASK 15
618618 #define TC_QOPT_MAX_QUEUE 16
619619
620+enum {
621+ TC_MQPRIO_HW_OFFLOAD_NONE, /* no offload requested */
622+ TC_MQPRIO_HW_OFFLOAD_TCS, /* offload TCs, no queue counts */
623+ __TC_MQPRIO_HW_OFFLOAD_MAX
624+};
625+
626+#define TC_MQPRIO_HW_OFFLOAD_MAX (__TC_MQPRIO_HW_OFFLOAD_MAX - 1)
627+
620628 struct tc_mqprio_qopt {
621629 __u8 num_tc;
622630 __u8 prio_tc_map[TC_QOPT_BITMASK + 1];
include/uapi/linux/rtnetlink.h+4−0
@@ -122,6 +122,8 @@ enum { · 121 unmodified lines
122122
123123 RTM_NEWNETCONF = 80,
124124 #define RTM_NEWNETCONF RTM_NEWNETCONF
125+ RTM_DELNETCONF,
126+#define RTM_DELNETCONF RTM_DELNETCONF
125127 RTM_GETNETCONF = 82,
126128 #define RTM_GETNETCONF RTM_GETNETCONF
127129
@@ -319,6 +321,7 @@ enum rtattr_type_t { · 191 unmodified lines
319321 RTA_EXPIRES,
320322 RTA_PAD,
321323 RTA_UID,
324+ RTA_TTL_PROPAGATE,
322325 __RTA_MAX
323326 };
324327
@@ -545,6 +548,7 @@ enum { · 220 unmodified lines
545548 TCA_STATS2,
546549 TCA_STAB,
547550 TCA_PAD,
551+ TCA_DUMP_INVISIBLE,
548552 __TCA_MAX
549553 };
550554
include/uapi/linux/sctp.h+32−0
@@ -115,6 +115,8 @@ typedef __s32 sctp_assoc_t; · 114 unmodified lines
115115 #define SCTP_PR_SUPPORTED 113
116116 #define SCTP_DEFAULT_PRINFO 114
117117 #define SCTP_PR_ASSOC_STATUS 115
118+#define SCTP_PR_STREAM_STATUS 116
119+#define SCTP_RECONFIG_SUPPORTED 117
118120 #define SCTP_ENABLE_STREAM_RESET 118
119121 #define SCTP_RESET_STREAMS 119
120122 #define SCTP_RESET_ASSOC 120
@@ -502,6 +504,28 @@ struct sctp_stream_reset_event { · 381 unmodified lines
502504 __u16 strreset_stream_list[];
503505 };
504506
507+#define SCTP_ASSOC_RESET_DENIED 0x0004
508+#define SCTP_ASSOC_RESET_FAILED 0x0008
509+struct sctp_assoc_reset_event {
510+ __u16 assocreset_type;
511+ __u16 assocreset_flags;
512+ __u32 assocreset_length;
513+ sctp_assoc_t assocreset_assoc_id;
514+ __u32 assocreset_local_tsn;
515+ __u32 assocreset_remote_tsn;
516+};
517+
518+#define SCTP_ASSOC_CHANGE_DENIED 0x0004
519+#define SCTP_ASSOC_CHANGE_FAILED 0x0008
520+struct sctp_stream_change_event {
521+ __u16 strchange_type;
522+ __u16 strchange_flags;
523+ __u32 strchange_length;
524+ sctp_assoc_t strchange_assoc_id;
525+ __u16 strchange_instrms;
526+ __u16 strchange_outstrms;
527+};
528+
505529 /*
506530 * Described in Section 7.3
507531 * Ancillary Data and Notification Interest Options
@@ -518,6 +542,8 @@ struct sctp_event_subscribe { · 10 unmodified lines
518542 __u8 sctp_authentication_event;
519543 __u8 sctp_sender_dry_event;
520544 __u8 sctp_stream_reset_event;
545+ __u8 sctp_assoc_reset_event;
546+ __u8 sctp_stream_change_event;
521547 };
522548
523549 /*
@@ -543,6 +569,8 @@ union sctp_notification { · 19 unmodified lines
543569 struct sctp_authkey_event sn_authkey_event;
544570 struct sctp_sender_dry_event sn_sender_dry_event;
545571 struct sctp_stream_reset_event sn_strreset_event;
572+ struct sctp_assoc_reset_event sn_assocreset_event;
573+ struct sctp_stream_change_event sn_strchange_event;
546574 };
547575
548576 /* Section 5.3.1
@@ -572,6 +600,10 @@ enum sctp_sn_type { · 23 unmodified lines
572600 #define SCTP_SENDER_DRY_EVENT SCTP_SENDER_DRY_EVENT
573601 SCTP_STREAM_RESET_EVENT,
574602 #define SCTP_STREAM_RESET_EVENT SCTP_STREAM_RESET_EVENT
603+ SCTP_ASSOC_RESET_EVENT,
604+#define SCTP_ASSOC_RESET_EVENT SCTP_ASSOC_RESET_EVENT
605+ SCTP_STREAM_CHANGE_EVENT,
606+#define SCTP_STREAM_CHANGE_EVENT SCTP_STREAM_CHANGE_EVENT
575607 };
576608
577609 /* Notification error codes used to fill up the error fields in some
include/uapi/linux/snmp.h+1−1
@@ -177,7 +177,6 @@ enum · 176 unmodified lines
177177 LINUX_MIB_TIMEWAITED, /* TimeWaited */
178178 LINUX_MIB_TIMEWAITRECYCLED, /* TimeWaitRecycled */
179179 LINUX_MIB_TIMEWAITKILLED, /* TimeWaitKilled */
180− LINUX_MIB_PAWSPASSIVEREJECTED, /* PAWSPassiveRejected */
181180 LINUX_MIB_PAWSACTIVEREJECTED, /* PAWSActiveRejected */
182181 LINUX_MIB_PAWSESTABREJECTED, /* PAWSEstabRejected */
183182 LINUX_MIB_DELAYEDACKS, /* DelayedACKs */
@@ -260,6 +259,7 @@ enum · 76 unmodified lines
260259 LINUX_MIB_TCPFASTOPENPASSIVEFAIL, /* TCPFastOpenPassiveFail */
261260 LINUX_MIB_TCPFASTOPENLISTENOVERFLOW, /* TCPFastOpenListenOverflow */
262261 LINUX_MIB_TCPFASTOPENCOOKIEREQD, /* TCPFastOpenCookieReqd */
262+ LINUX_MIB_TCPFASTOPENBLACKHOLE, /* TCPFastOpenBlackholeDetect */
263263 LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES, /* TCPSpuriousRtxHostQueues */
264264 LINUX_MIB_BUSYPOLLRXPACKETS, /* BusyPollRxPackets */
265265 LINUX_MIB_TCPAUTOCORKING, /* TCPAutoCorking */
include/uapi/linux/sysctl.h+1−0
@@ -568,6 +568,7 @@ enum { · 567 unmodified lines
568568 NET_IPV6_PROXY_NDP=23,
569569 NET_IPV6_ACCEPT_SOURCE_ROUTE=25,
570570 NET_IPV6_ACCEPT_RA_FROM_LOCAL=26,
571+ NET_IPV6_ACCEPT_RA_RT_INFO_MIN_PLEN=27,
571572 __NET_IPV6_MAX
572573 };
573574
include/uapi/linux/vsockmon.h+60−0
@@ -0,0 +1,60 @@
1+#ifndef _UAPI_VSOCKMON_H
2+#define _UAPI_VSOCKMON_H
3+
4+#include <linux/virtio_vsock.h>
5+
6+/*
7+ * vsockmon is the AF_VSOCK packet capture device. Packets captured have the
8+ * following layout:
9+ *
10+ * +-----------------------------------+
11+ * | vsockmon header |
12+ * | (struct af_vsockmon_hdr) |
13+ * +-----------------------------------+
14+ * | transport header |
15+ * | (af_vsockmon_hdr->len bytes long) |
16+ * +-----------------------------------+
17+ * | payload |
18+ * | (until end of packet) |
19+ * +-----------------------------------+
20+ *
21+ * The vsockmon header is a transport-independent description of the packet.
22+ * It duplicates some of the information from the transport header so that
23+ * no transport-specific knowledge is necessary to process packets.
24+ *
25+ * The transport header is useful for low-level transport-specific packet
26+ * analysis. Transport type is given in af_vsockmon_hdr->transport and
27+ * transport header length is given in af_vsockmon_hdr->len.
28+ *
29+ * If af_vsockmon_hdr->op is AF_VSOCK_OP_PAYLOAD then the payload follows the
30+ * transport header. Other ops do not have a payload.
31+ */
32+
33+struct af_vsockmon_hdr {
34+ __le64 src_cid;
35+ __le64 dst_cid;
36+ __le32 src_port;
37+ __le32 dst_port;
38+ __le16 op; /* enum af_vsockmon_op */
39+ __le16 transport; /* enum af_vsockmon_transport */
40+ __le16 len; /* Transport header length */
41+ __u8 reserved[2];
42+};
43+
44+enum af_vsockmon_op {
45+ AF_VSOCK_OP_UNKNOWN = 0,
46+ AF_VSOCK_OP_CONNECT = 1,
47+ AF_VSOCK_OP_DISCONNECT = 2,
48+ AF_VSOCK_OP_CONTROL = 3,
49+ AF_VSOCK_OP_PAYLOAD = 4,
50+};
51+
52+enum af_vsockmon_transport {
53+ AF_VSOCK_TRANSPORT_UNKNOWN = 0,
54+ AF_VSOCK_TRANSPORT_NO_INFO = 1, /* No transport information */
55+
56+ /* Transport header type: struct virtio_vsock_hdr */
57+ AF_VSOCK_TRANSPORT_VIRTIO = 2,
58+};
59+
60+#endif
include/uapi/linux/xfrm.h+8−0
@@ -303,6 +303,7 @@ enum xfrm_attr_type_t { · 302 unmodified lines
303303 XFRMA_PROTO, /* __u8 */
304304 XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */
305305 XFRMA_PAD,
306+ XFRMA_OFFLOAD_DEV, /* struct xfrm_state_offload */
306307 __XFRMA_MAX
307308
308309 #define XFRMA_MAX (__XFRMA_MAX - 1)
@@ -494,6 +495,13 @@ struct xfrm_address_filter { · 185 unmodified lines
494495 __u8 dplen;
495496 };
496497
498+struct xfrm_user_offload {
499+ int ifindex;
500+ __u8 flags;
501+};
502+#define XFRM_OFFLOAD_IPV6 1
503+#define XFRM_OFFLOAD_INBOUND 2
504+
497505 #ifndef __KERNEL__
498506 /* backwards compatibility for userspace */
499507 #define XFRMGRP_ACQUIRE 1