History

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

Pull networking updates from David Miller: 1) Add VF IPSEC offload support in ixgbe, from Shannon Nelson. 2) Add zero-copy AF_XDP support to i40e, from Björn Töpel. 3) All in-tree drivers are converted to {g,s}et_link_ksettings() so we can get rid of the {g,s}et_settings ethtool callbacks, from Michal Kubecek. 4) Add software timestamping to veth driver, from Michael Walle. 5) More work to make packet classifiers and actions lockless, from Vlad Buslov. 6) Support sticky FDB entries in bridge, from Nikolay Aleksandrov. 7) Add ipv6 version of IP_MULTICAST_ALL sockopt, from Andre Naujoks. 8) Support batching of XDP buffers in vhost_net, from Jason Wang. 9) Add flow dissector BPF hook, from Petar Penkov. 10) i40e vf --> generic iavf conversion, from Jesse Brandeburg. 11) Add NLA_REJECT netlink attribute policy type, to signal when users provide attributes in situations which don't make sense. From Johannes Berg. 12) Switch TCP and fair-queue scheduler over to earliest departure time model. From Eric Dumazet. 13) Improve guest receive performance by doing rx busy polling in tx path of vhost networking driver, from Tonghao Zhang. 14) Add per-cgroup local storage to bpf 15) Add reference tracking to BPF, from Joe Stringer. The verifier can now make sure that references taken to objects are properly released by the program. 16) Support in-place encryption in TLS, from Vakul Garg. 17) Add new taprio packet scheduler, from Vinicius Costa Gomes. 18) Lots of selftests additions, too numerous to mention one by one here but all of which are very much appreciated. 19) Support offloading of eBPF programs containing BPF to BPF calls in nfp driver, frm Quentin Monnet. 20) Move dpaa2_ptp driver out of staging, from Yangbo Lu. 21) Lots of u32 classifier cleanups and simplifications, from Al Viro. 22) Add new strict versions of netlink message parsers, and enable them for some situations. From David Ahern. 23) Evict neighbour entries on carrier down, also from David Ahern. 24) Support BPF sk_msg verdict programs with kTLS, from Daniel Borkmann and John Fastabend. 25) Add support for filtering route dumps, from David Ahern. 26) New igc Intel driver for 2.5G parts, from Sasha Neftin et al. 27) Allow vxlan enslavement to bridges in mlxsw driver, from Ido Schimmel. 28) Add queue and stack map types to eBPF, from Mauricio Vasquez B. 29) Add back byte-queue-limit support to r8169, with all the bug fixes in other areas of the driver it works now! From Florian Westphal and Heiner Kallweit. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (2147 commits) tcp: add tcp_reset_xmit_timer() helper qed: Fix static checker warning Revert "be2net: remove desc field from be_eq_obj" Revert "net: simplify sock_poll_wait" net: socionext: Reset tx queue in ndo_stop net: socionext: Add dummy PHY register read in phy_write() net: socionext: Stop PHY before resetting netsec net: stmmac: Set OWN bit for jumbo frames arm64: dts: stratix10: Support Ethernet Jumbo frame tls: Add maintainers net: ethernet: ti: cpsw: unsync mcast entries while switch promisc mode octeontx2-af: Support for NIXLF's UCAST/PROMISC/ALLMULTI modes octeontx2-af: Support for setting MAC address octeontx2-af: Support for changing RSS algorithm octeontx2-af: NIX Rx flowkey configuration for RSS octeontx2-af: Install ucast and bcast pkt forwarding rules octeontx2-af: Add LMAC channel info to NIXLF_ALLOC response octeontx2-af: NPC MCAM and LDATA extract minimal configuration octeontx2-af: Enable packet length and csum validation octeontx2-af: Support for VTAG strip and capture ...

Linus Torvalds committed 8 years ago

Commit 50b825d2 parents a97a2d4 3f80e081716 files · +130568 −56775Browse files

Showing the changes to include/uapi/linux (18 of 1716 files). Show all

Unified · Split

18 files
  1. include/uapi/linux/bpf.h +166 −2
  2. include/uapi/linux/dns_resolver.h +116 −0
  3. include/uapi/linux/ethtool.h +3 −12
  4. include/uapi/linux/gen_stats.h +1 −0
  5. include/uapi/linux/if_addr.h +1 −0
  6. include/uapi/linux/if_arp.h +9 −9
  7. include/uapi/linux/if_fddi.h +18 −3
  8. include/uapi/linux/if_link.h +3 −0
  9. include/uapi/linux/if_packet.h +1 −0
  10. include/uapi/linux/in6.h +1 −0
  11. include/uapi/linux/ncsi.h +6 −0
  12. include/uapi/linux/neighbour.h +1 −0
  13. include/uapi/linux/netfilter/nf_tables.h +55 −1
  14. include/uapi/linux/netfilter/xt_cgroup.h +16 −0
  15. include/uapi/linux/netlink.h +1 −0
  16. include/uapi/linux/nl80211.h +116 −8
  17. include/uapi/linux/pkt_cls.h +2 −0
  18. include/uapi/linux/pkt_sched.h +49 −3
include/uapi/linux/bpf.h+166−2
@@ -103,6 +103,7 @@ enum bpf_cmd { · 102 unmodified lines
103103 BPF_BTF_LOAD,
104104 BPF_BTF_GET_FD_BY_ID,
105105 BPF_TASK_FD_QUERY,
106+ BPF_MAP_LOOKUP_AND_DELETE_ELEM,
106107 };
107108
108109 enum bpf_map_type {
@@ -127,6 +128,9 @@ enum bpf_map_type { · 18 unmodified lines
127128 BPF_MAP_TYPE_SOCKHASH,
128129 BPF_MAP_TYPE_CGROUP_STORAGE,
129130 BPF_MAP_TYPE_REUSEPORT_SOCKARRAY,
131+ BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE,
132+ BPF_MAP_TYPE_QUEUE,
133+ BPF_MAP_TYPE_STACK,
130134 };
131135
132136 enum bpf_prog_type {
@@ -152,6 +156,7 @@ enum bpf_prog_type { · 19 unmodified lines
152156 BPF_PROG_TYPE_LWT_SEG6LOCAL,
153157 BPF_PROG_TYPE_LIRC_MODE2,
154158 BPF_PROG_TYPE_SK_REUSEPORT,
159+ BPF_PROG_TYPE_FLOW_DISSECTOR,
155160 };
156161
157162 enum bpf_attach_type {
@@ -172,6 +177,7 @@ enum bpf_attach_type { · 14 unmodified lines
172177 BPF_CGROUP_UDP4_SENDMSG,
173178 BPF_CGROUP_UDP6_SENDMSG,
174179 BPF_LIRC_MODE2,
180+ BPF_FLOW_DISSECTOR,
175181 __MAX_BPF_ATTACH_TYPE
176182 };
177183
@@ -459,6 +465,28 @@ union bpf_attr { · 281 unmodified lines
459465 * Return
460466 * 0 on success, or a negative error in case of failure.
461467 *
468+ * int bpf_map_push_elem(struct bpf_map *map, const void *value, u64 flags)
469+ * Description
470+ * Push an element *value* in *map*. *flags* is one of:
471+ *
472+ * **BPF_EXIST**
473+ * If the queue/stack is full, the oldest element is removed to
474+ * make room for this.
475+ * Return
476+ * 0 on success, or a negative error in case of failure.
477+ *
478+ * int bpf_map_pop_elem(struct bpf_map *map, void *value)
479+ * Description
480+ * Pop an element from *map*.
481+ * Return
482+ * 0 on success, or a negative error in case of failure.
483+ *
484+ * int bpf_map_peek_elem(struct bpf_map *map, void *value)
485+ * Description
486+ * Get an element from *map* without removing it.
487+ * Return
488+ * 0 on success, or a negative error in case of failure.
489+ *
462490 * int bpf_probe_read(void *dst, u32 size, const void *src)
463491 * Description
464492 * For tracing programs, safely attempt to read *size* bytes from
@@ -1430,7 +1458,7 @@ union bpf_attr { · 965 unmodified lines
14301458 * Return
14311459 * 0 on success, or a negative error in case of failure.
14321460 *
1433− * int bpf_skb_adjust_room(struct sk_buff *skb, u32 len_diff, u32 mode, u64 flags)
1461+ * int bpf_skb_adjust_room(struct sk_buff *skb, s32 len_diff, u32 mode, u64 flags)
14341462 * Description
14351463 * Grow or shrink the room for data in the packet associated to
14361464 * *skb* by *len_diff*, and according to the selected *mode*.
@@ -2141,6 +2169,94 @@ union bpf_attr { · 704 unmodified lines
21412169 * request in the skb.
21422170 * Return
21432171 * 0 on success, or a negative error in case of failure.
2172+ *
2173+ * struct bpf_sock *bpf_sk_lookup_tcp(void *ctx, struct bpf_sock_tuple *tuple, u32 tuple_size, u32 netns, u64 flags)
2174+ * Description
2175+ * Look for TCP socket matching *tuple*, optionally in a child
2176+ * network namespace *netns*. The return value must be checked,
2177+ * and if non-NULL, released via **bpf_sk_release**\ ().
2178+ *
2179+ * The *ctx* should point to the context of the program, such as
2180+ * the skb or socket (depending on the hook in use). This is used
2181+ * to determine the base network namespace for the lookup.
2182+ *
2183+ * *tuple_size* must be one of:
2184+ *
2185+ * **sizeof**\ (*tuple*\ **->ipv4**)
2186+ * Look for an IPv4 socket.
2187+ * **sizeof**\ (*tuple*\ **->ipv6**)
2188+ * Look for an IPv6 socket.
2189+ *
2190+ * If the *netns* is zero, then the socket lookup table in the
2191+ * netns associated with the *ctx* will be used. For the TC hooks,
2192+ * this in the netns of the device in the skb. For socket hooks,
2193+ * this in the netns of the socket. If *netns* is non-zero, then
2194+ * it specifies the ID of the netns relative to the netns
2195+ * associated with the *ctx*.
2196+ *
2197+ * All values for *flags* are reserved for future usage, and must
2198+ * be left at zero.
2199+ *
2200+ * This helper is available only if the kernel was compiled with
2201+ * **CONFIG_NET** configuration option.
2202+ * Return
2203+ * Pointer to *struct bpf_sock*, or NULL in case of failure.
2204+ *
2205+ * struct bpf_sock *bpf_sk_lookup_udp(void *ctx, struct bpf_sock_tuple *tuple, u32 tuple_size, u32 netns, u64 flags)
2206+ * Description
2207+ * Look for UDP socket matching *tuple*, optionally in a child
2208+ * network namespace *netns*. The return value must be checked,
2209+ * and if non-NULL, released via **bpf_sk_release**\ ().
2210+ *
2211+ * The *ctx* should point to the context of the program, such as
2212+ * the skb or socket (depending on the hook in use). This is used
2213+ * to determine the base network namespace for the lookup.
2214+ *
2215+ * *tuple_size* must be one of:
2216+ *
2217+ * **sizeof**\ (*tuple*\ **->ipv4**)
2218+ * Look for an IPv4 socket.
2219+ * **sizeof**\ (*tuple*\ **->ipv6**)
2220+ * Look for an IPv6 socket.
2221+ *
2222+ * If the *netns* is zero, then the socket lookup table in the
2223+ * netns associated with the *ctx* will be used. For the TC hooks,
2224+ * this in the netns of the device in the skb. For socket hooks,
2225+ * this in the netns of the socket. If *netns* is non-zero, then
2226+ * it specifies the ID of the netns relative to the netns
2227+ * associated with the *ctx*.
2228+ *
2229+ * All values for *flags* are reserved for future usage, and must
2230+ * be left at zero.
2231+ *
2232+ * This helper is available only if the kernel was compiled with
2233+ * **CONFIG_NET** configuration option.
2234+ * Return
2235+ * Pointer to *struct bpf_sock*, or NULL in case of failure.
2236+ *
2237+ * int bpf_sk_release(struct bpf_sock *sk)
2238+ * Description
2239+ * Release the reference held by *sock*. *sock* must be a non-NULL
2240+ * pointer that was returned from bpf_sk_lookup_xxx\ ().
2241+ * Return
2242+ * 0 on success, or a negative error in case of failure.
2243+ *
2244+ * int bpf_msg_push_data(struct sk_buff *skb, u32 start, u32 len, u64 flags)
2245+ * Description
2246+ * For socket policies, insert *len* bytes into msg at offset
2247+ * *start*.
2248+ *
2249+ * If a program of type **BPF_PROG_TYPE_SK_MSG** is run on a
2250+ * *msg* it may want to insert metadata or options into the msg.
2251+ * This can later be read and used by any of the lower layer BPF
2252+ * hooks.
2253+ *
2254+ * This helper may fail if under memory pressure (a malloc
2255+ * fails) in these cases BPF programs will get an appropriate
2256+ * error and BPF programs will need to handle them.
2257+ *
2258+ * Return
2259+ * 0 on success, or a negative error in case of failure.
21442260 */
21452261 #define __BPF_FUNC_MAPPER(FN) \
21462262 FN(unspec), \
@@ -2226,7 +2342,14 @@ union bpf_attr { · 79 unmodified lines
22262342 FN(get_current_cgroup_id), \
22272343 FN(get_local_storage), \
22282344 FN(sk_select_reuseport), \
2229− FN(skb_ancestor_cgroup_id),
2345+ FN(skb_ancestor_cgroup_id), \
2346+ FN(sk_lookup_tcp), \
2347+ FN(sk_lookup_udp), \
2348+ FN(sk_release), \
2349+ FN(map_push_elem), \
2350+ FN(map_pop_elem), \
2351+ FN(map_peek_elem), \
2352+ FN(msg_push_data),
22302353
22312354 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
22322355 * function eBPF program intends to call
@@ -2333,6 +2456,7 @@ struct __sk_buff { · 100 unmodified lines
23332456 /* ... here. */
23342457
23352458 __u32 data_meta;
2459+ struct bpf_flow_keys *flow_keys;
23362460 };
23372461
23382462 struct bpf_tunnel_key {
@@ -2395,6 +2519,23 @@ struct bpf_sock { · 56 unmodified lines
23952519 */
23962520 };
23972521
2522+struct bpf_sock_tuple {
2523+ union {
2524+ struct {
2525+ __be32 saddr;
2526+ __be32 daddr;
2527+ __be16 sport;
2528+ __be16 dport;
2529+ } ipv4;
2530+ struct {
2531+ __be32 saddr[4];
2532+ __be32 daddr[4];
2533+ __be16 sport;
2534+ __be16 dport;
2535+ } ipv6;
2536+ };
2537+};
2538+
23982539 #define XDP_PACKET_HEADROOM 256
23992540
24002541 /* User return codes for XDP prog type.
@@ -2778,4 +2919,27 @@ enum bpf_task_fd_type { · 377 unmodified lines
27782919 BPF_FD_TYPE_URETPROBE, /* filename + offset */
27792920 };
27802921
2922+struct bpf_flow_keys {
2923+ __u16 nhoff;
2924+ __u16 thoff;
2925+ __u16 addr_proto; /* ETH_P_* of valid addrs */
2926+ __u8 is_frag;
2927+ __u8 is_first_frag;
2928+ __u8 is_encap;
2929+ __u8 ip_proto;
2930+ __be16 n_proto;
2931+ __be16 sport;
2932+ __be16 dport;
2933+ union {
2934+ struct {
2935+ __be32 ipv4_src;
2936+ __be32 ipv4_dst;
2937+ };
2938+ struct {
2939+ __u32 ipv6_src[4]; /* in6_addr; network order */
2940+ __u32 ipv6_dst[4]; /* in6_addr; network order */
2941+ };
2942+ };
2943+};
2944+
27812945 #endif /* _UAPI__LINUX_BPF_H__ */
include/uapi/linux/dns_resolver.h+116−0
@@ -0,0 +1,116 @@
1+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2+/* DNS resolver interface definitions.
3+ *
4+ * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved.
5+ * Written by David Howells (dhowells@redhat.com)
6+ *
7+ * This program is free software; you can redistribute it and/or
8+ * modify it under the terms of the GNU General Public Licence
9+ * as published by the Free Software Foundation; either version
10+ * 2 of the Licence, or (at your option) any later version.
11+ */
12+
13+#ifndef _UAPI_LINUX_DNS_RESOLVER_H
14+#define _UAPI_LINUX_DNS_RESOLVER_H
15+
16+#include <linux/types.h>
17+
18+/*
19+ * Type of payload.
20+ */
21+enum dns_payload_content_type {
22+ DNS_PAYLOAD_IS_SERVER_LIST = 0, /* List of servers, requested by srv=1 */
23+};
24+
25+/*
26+ * Type of address that might be found in an address record.
27+ */
28+enum dns_payload_address_type {
29+ DNS_ADDRESS_IS_IPV4 = 0, /* 4-byte AF_INET address */
30+ DNS_ADDRESS_IS_IPV6 = 1, /* 16-byte AF_INET6 address */
31+};
32+
33+/*
34+ * Type of protocol used to access a server.
35+ */
36+enum dns_payload_protocol_type {
37+ DNS_SERVER_PROTOCOL_UNSPECIFIED = 0,
38+ DNS_SERVER_PROTOCOL_UDP = 1, /* Use UDP to talk to the server */
39+ DNS_SERVER_PROTOCOL_TCP = 2, /* Use TCP to talk to the server */
40+};
41+
42+/*
43+ * Source of record included in DNS resolver payload.
44+ */
45+enum dns_record_source {
46+ DNS_RECORD_UNAVAILABLE = 0, /* No source available (empty record) */
47+ DNS_RECORD_FROM_CONFIG = 1, /* From local configuration data */
48+ DNS_RECORD_FROM_DNS_A = 2, /* From DNS A or AAAA record */
49+ DNS_RECORD_FROM_DNS_AFSDB = 3, /* From DNS AFSDB record */
50+ DNS_RECORD_FROM_DNS_SRV = 4, /* From DNS SRV record */
51+ DNS_RECORD_FROM_NSS = 5, /* From NSS */
52+ NR__dns_record_source
53+};
54+
55+/*
56+ * Status of record included in DNS resolver payload.
57+ */
58+enum dns_lookup_status {
59+ DNS_LOOKUP_NOT_DONE = 0, /* No lookup has been made */
60+ DNS_LOOKUP_GOOD = 1, /* Good records obtained */
61+ DNS_LOOKUP_GOOD_WITH_BAD = 2, /* Good records, some decoding errors */
62+ DNS_LOOKUP_BAD = 3, /* Couldn't decode results */
63+ DNS_LOOKUP_GOT_NOT_FOUND = 4, /* Got a "Not Found" result */
64+ DNS_LOOKUP_GOT_LOCAL_FAILURE = 5, /* Local failure during lookup */
65+ DNS_LOOKUP_GOT_TEMP_FAILURE = 6, /* Temporary failure during lookup */
66+ DNS_LOOKUP_GOT_NS_FAILURE = 7, /* Name server failure */
67+ NR__dns_lookup_status
68+};
69+
70+/*
71+ * Header at the beginning of binary format payload.
72+ */
73+struct dns_payload_header {
74+ __u8 zero; /* Zero byte: marks this as not being text */
75+ __u8 content; /* enum dns_payload_content_type */
76+ __u8 version; /* Encoding version */
77+} __packed;
78+
79+/*
80+ * Header at the beginning of a V1 server list. This is followed directly by
81+ * the server records. Each server records begins with a struct of type
82+ * dns_server_list_v1_server.
83+ */
84+struct dns_server_list_v1_header {
85+ struct dns_payload_header hdr;
86+ __u8 source; /* enum dns_record_source */
87+ __u8 status; /* enum dns_lookup_status */
88+ __u8 nr_servers; /* Number of server records following this */
89+} __packed;
90+
91+/*
92+ * Header at the beginning of each V1 server record. This is followed by the
93+ * characters of the name with no NUL-terminator, followed by the address
94+ * records for that server. Each address record begins with a struct of type
95+ * struct dns_server_list_v1_address.
96+ */
97+struct dns_server_list_v1_server {
98+ __u16 name_len; /* Length of name (LE) */
99+ __u16 priority; /* Priority (as SRV record) (LE) */
100+ __u16 weight; /* Weight (as SRV record) (LE) */
101+ __u16 port; /* UDP/TCP port number (LE) */
102+ __u8 source; /* enum dns_record_source */
103+ __u8 status; /* enum dns_lookup_status */
104+ __u8 protocol; /* enum dns_payload_protocol_type */
105+ __u8 nr_addrs;
106+} __packed;
107+
108+/*
109+ * Header at the beginning of each V1 address record. This is followed by the
110+ * bytes of the address, 4 for IPV4 and 16 for IPV6.
111+ */
112+struct dns_server_list_v1_address {
113+ __u8 address_type; /* enum dns_payload_address_type */
114+} __packed;
115+
116+#endif /* _UAPI_LINUX_DNS_RESOLVER_H */
include/uapi/linux/ethtool.h+3−12
@@ -91,10 +91,6 @@ · 90 unmodified lines
9191 * %ETHTOOL_GSET to get the current values before making specific
9292 * changes and then applying them with %ETHTOOL_SSET.
9393 *
94− * Drivers that implement set_settings() should validate all fields
95− * other than @cmd that are not described as read-only or deprecated,
96− * and must ignore all fields described as read-only.
97− *
9894 * Deprecated fields should be ignored by both users and drivers.
9995 */
10096 struct ethtool_cmd {
@@ -1800,14 +1796,9 @@ enum ethtool_reset_flags { · 1699 unmodified lines
18001796 * rejected.
18011797 *
18021798 * Deprecated %ethtool_cmd fields transceiver, maxtxpkt and maxrxpkt
1803− * are not available in %ethtool_link_settings. Until all drivers are
1804− * converted to ignore them or to the new %ethtool_link_settings API,
1805− * for both queries and changes, users should always try
1806− * %ETHTOOL_GLINKSETTINGS first, and if it fails with -ENOTSUPP stick
1807− * only to %ETHTOOL_GSET and %ETHTOOL_SSET consistently. If it
1808− * succeeds, then users should stick to %ETHTOOL_GLINKSETTINGS and
1809− * %ETHTOOL_SLINKSETTINGS (which would support drivers implementing
1810− * either %ethtool_cmd or %ethtool_link_settings).
1799+ * are not available in %ethtool_link_settings. These fields will be
1800+ * always set to zero in %ETHTOOL_GSET reply and %ETHTOOL_SSET will
1801+ * fail if any of them is set to non-zero value.
18111802 *
18121803 * Users should assume that all fields not marked read-only are
18131804 * writable and subject to validation by the driver. They should use
include/uapi/linux/gen_stats.h+1−0
@@ -12,6 +12,7 @@ enum { · 11 unmodified lines
1212 TCA_STATS_APP,
1313 TCA_STATS_RATE_EST64,
1414 TCA_STATS_PAD,
15+ TCA_STATS_BASIC_HW,
1516 __TCA_STATS_MAX,
1617 };
1718 #define TCA_STATS_MAX (__TCA_STATS_MAX - 1)
include/uapi/linux/if_addr.h+1−0
@@ -34,6 +34,7 @@ enum { · 33 unmodified lines
3434 IFA_MULTICAST,
3535 IFA_FLAGS,
3636 IFA_RT_PRIORITY, /* u32, priority/metric for prefix route */
37+ IFA_TARGET_NETNSID,
3738 __IFA_MAX,
3839 };
3940
include/uapi/linux/if_arp.h+9−9
@@ -114,18 +114,18 @@ · 113 unmodified lines
114114
115115 /* ARP ioctl request. */
116116 struct arpreq {
117− struct sockaddr arp_pa; /* protocol address */
118− struct sockaddr arp_ha; /* hardware address */
119− int arp_flags; /* flags */
120− struct sockaddr arp_netmask; /* netmask (only for proxy arps) */
121− char arp_dev[16];
117+ struct sockaddr arp_pa; /* protocol address */
118+ struct sockaddr arp_ha; /* hardware address */
119+ int arp_flags; /* flags */
120+ struct sockaddr arp_netmask; /* netmask (only for proxy arps) */
121+ char arp_dev[IFNAMSIZ];
122122 };
123123
124124 struct arpreq_old {
125− struct sockaddr arp_pa; /* protocol address */
126− struct sockaddr arp_ha; /* hardware address */
127− int arp_flags; /* flags */
128− struct sockaddr arp_netmask; /* netmask (only for proxy arps) */
125+ struct sockaddr arp_pa; /* protocol address */
126+ struct sockaddr arp_ha; /* hardware address */
127+ int arp_flags; /* flags */
128+ struct sockaddr arp_netmask; /* netmask (only for proxy arps) */
129129 };
130130
131131 /* ARP Flag values. */
include/uapi/linux/if_fddi.h+18−3
@@ -6,9 +6,10 @@ · 5 unmodified lines
66 *
77 * Global definitions for the ANSI FDDI interface.
88 *
9− * Version: @(#)if_fddi.h 1.0.2 Sep 29 2004
9+ * Version: @(#)if_fddi.h 1.0.3 Oct 6 2018
1010 *
11− * Author: Lawrence V. Stefani, <stefani@lkg.dec.com>
11+ * Author: Lawrence V. Stefani, <stefani@yahoo.com>
12+ * Maintainer: Maciej W. Rozycki, <macro@linux-mips.org>
1213 *
1314 * if_fddi.h is based on previous if_ether.h and if_tr.h work by
1415 * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
@@ -45,7 +46,21 @@ · 30 unmodified lines
4546 #define FDDI_K_OUI_LEN 3 /* Octets in OUI in 802.2 SNAP
4647 header */
4748
48−/* Define FDDI Frame Control (FC) Byte values */
49+/* Define FDDI Frame Control (FC) Byte masks */
50+#define FDDI_FC_K_CLASS_MASK 0x80 /* class bit */
51+#define FDDI_FC_K_CLASS_SYNC 0x80
52+#define FDDI_FC_K_CLASS_ASYNC 0x00
53+#define FDDI_FC_K_ALEN_MASK 0x40 /* address length bit */
54+#define FDDI_FC_K_ALEN_48 0x40
55+#define FDDI_FC_K_ALEN_16 0x00
56+#define FDDI_FC_K_FORMAT_MASK 0x30 /* format bits */
57+#define FDDI_FC_K_FORMAT_FUTURE 0x30
58+#define FDDI_FC_K_FORMAT_IMPLEMENTOR 0x20
59+#define FDDI_FC_K_FORMAT_LLC 0x10
60+#define FDDI_FC_K_FORMAT_MANAGEMENT 0x00
61+#define FDDI_FC_K_CONTROL_MASK 0x0f /* control bits */
62+
63+/* Define FDDI Frame Control (FC) Byte specific values */
4964 #define FDDI_FC_K_VOID 0x00
5065 #define FDDI_FC_K_NON_RESTRICTED_TOKEN 0x80
5166 #define FDDI_FC_K_RESTRICTED_TOKEN 0xC0
include/uapi/linux/if_link.h+3−0
@@ -161,6 +161,7 @@ enum { · 160 unmodified lines
161161 IFLA_EVENT,
162162 IFLA_NEW_NETNSID,
163163 IFLA_IF_NETNSID,
164+ IFLA_TARGET_NETNSID = IFLA_IF_NETNSID, /* new alias */
164165 IFLA_CARRIER_UP_COUNT,
165166 IFLA_CARRIER_DOWN_COUNT,
166167 IFLA_NEW_IFINDEX,
@@ -286,6 +287,7 @@ enum { · 119 unmodified lines
286287 IFLA_BR_MCAST_STATS_ENABLED,
287288 IFLA_BR_MCAST_IGMP_VERSION,
288289 IFLA_BR_MCAST_MLD_VERSION,
290+ IFLA_BR_VLAN_STATS_PER_PORT,
289291 __IFLA_BR_MAX,
290292 };
291293
@@ -554,6 +556,7 @@ enum { · 262 unmodified lines
554556 IFLA_GENEVE_UDP_ZERO_CSUM6_TX,
555557 IFLA_GENEVE_UDP_ZERO_CSUM6_RX,
556558 IFLA_GENEVE_LABEL,
559+ IFLA_GENEVE_TTL_INHERIT,
557560 __IFLA_GENEVE_MAX
558561 };
559562 #define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1)
include/uapi/linux/if_packet.h+1−0
@@ -57,6 +57,7 @@ struct sockaddr_ll { · 56 unmodified lines
5757 #define PACKET_QDISC_BYPASS 20
5858 #define PACKET_ROLLOVER_STATS 21
5959 #define PACKET_FANOUT_DATA 22
60+#define PACKET_IGNORE_OUTGOING 23
6061
6162 #define PACKET_FANOUT_HASH 0
6263 #define PACKET_FANOUT_LB 1
include/uapi/linux/in6.h+1−0
@@ -177,6 +177,7 @@ struct in6_flowlabel_req { · 176 unmodified lines
177177 #define IPV6_V6ONLY 26
178178 #define IPV6_JOIN_ANYCAST 27
179179 #define IPV6_LEAVE_ANYCAST 28
180+#define IPV6_MULTICAST_ALL 29
180181
181182 /* IPV6_MTU_DISCOVER values */
182183 #define IPV6_PMTUDISC_DONT 0
include/uapi/linux/ncsi.h+6−0
@@ -23,6 +23,9 @@ · 22 unmodified lines
2323 * optionally the preferred NCSI_ATTR_CHANNEL_ID.
2424 * @NCSI_CMD_CLEAR_INTERFACE: clear any preferred package/channel combination.
2525 * Requires NCSI_ATTR_IFINDEX.
26+ * @NCSI_CMD_SEND_CMD: send NC-SI command to network card.
27+ * Requires NCSI_ATTR_IFINDEX, NCSI_ATTR_PACKAGE_ID
28+ * and NCSI_ATTR_CHANNEL_ID.
2629 * @NCSI_CMD_MAX: highest command number
2730 */
2831 enum ncsi_nl_commands {
@@ -30,6 +33,7 @@ enum ncsi_nl_commands { · 1 unmodified line
3033 NCSI_CMD_PKG_INFO,
3134 NCSI_CMD_SET_INTERFACE,
3235 NCSI_CMD_CLEAR_INTERFACE,
36+ NCSI_CMD_SEND_CMD,
3337
3438 __NCSI_CMD_AFTER_LAST,
3539 NCSI_CMD_MAX = __NCSI_CMD_AFTER_LAST - 1
@@ -43,6 +47,7 @@ enum ncsi_nl_commands { · 7 unmodified lines
4347 * @NCSI_ATTR_PACKAGE_LIST: nested array of NCSI_PKG_ATTR attributes
4448 * @NCSI_ATTR_PACKAGE_ID: package ID
4549 * @NCSI_ATTR_CHANNEL_ID: channel ID
50+ * @NCSI_ATTR_DATA: command payload
4651 * @NCSI_ATTR_MAX: highest attribute number
4752 */
4853 enum ncsi_nl_attrs {
@@ -51,6 +56,7 @@ enum ncsi_nl_attrs { · 2 unmodified lines
5156 NCSI_ATTR_PACKAGE_LIST,
5257 NCSI_ATTR_PACKAGE_ID,
5358 NCSI_ATTR_CHANNEL_ID,
59+ NCSI_ATTR_DATA,
5460
5561 __NCSI_ATTR_AFTER_LAST,
5662 NCSI_ATTR_MAX = __NCSI_ATTR_AFTER_LAST - 1
include/uapi/linux/neighbour.h+1−0
@@ -43,6 +43,7 @@ enum { · 42 unmodified lines
4343 #define NTF_PROXY 0x08 /* == ATF_PUBL */
4444 #define NTF_EXT_LEARNED 0x10
4545 #define NTF_OFFLOADED 0x20
46+#define NTF_STICKY 0x40
4647 #define NTF_ROUTER 0x80
4748
4849 /*
include/uapi/linux/netfilter/nf_tables.h+55−1
@@ -826,12 +826,14 @@ enum nft_meta_keys { · 825 unmodified lines
826826 * @NFT_RT_NEXTHOP4: routing nexthop for IPv4
827827 * @NFT_RT_NEXTHOP6: routing nexthop for IPv6
828828 * @NFT_RT_TCPMSS: fetch current path tcp mss
829+ * @NFT_RT_XFRM: boolean, skb->dst->xfrm != NULL
829830 */
830831 enum nft_rt_keys {
831832 NFT_RT_CLASSID,
832833 NFT_RT_NEXTHOP4,
833834 NFT_RT_NEXTHOP6,
834835 NFT_RT_TCPMSS,
836+ NFT_RT_XFRM,
835837 __NFT_RT_MAX
836838 };
837839 #define NFT_RT_MAX (__NFT_RT_MAX - 1)
@@ -1174,6 +1176,21 @@ enum nft_quota_attributes { · 336 unmodified lines
11741176 };
11751177 #define NFTA_QUOTA_MAX (__NFTA_QUOTA_MAX - 1)
11761178
1179+/**
1180+ * enum nft_secmark_attributes - nf_tables secmark object netlink attributes
1181+ *
1182+ * @NFTA_SECMARK_CTX: security context (NLA_STRING)
1183+ */
1184+enum nft_secmark_attributes {
1185+ NFTA_SECMARK_UNSPEC,
1186+ NFTA_SECMARK_CTX,
1187+ __NFTA_SECMARK_MAX,
1188+};
1189+#define NFTA_SECMARK_MAX (__NFTA_SECMARK_MAX - 1)
1190+
1191+/* Max security context length */
1192+#define NFT_SECMARK_CTX_MAXLEN 256
1193+
11771194 /**
11781195 * enum nft_reject_types - nf_tables reject expression reject types
11791196 *
@@ -1430,7 +1447,8 @@ enum nft_ct_timeout_timeout_attributes { · 250 unmodified lines
14301447 #define NFT_OBJECT_CONNLIMIT 5
14311448 #define NFT_OBJECT_TUNNEL 6
14321449 #define NFT_OBJECT_CT_TIMEOUT 7
1433−#define __NFT_OBJECT_MAX 8
1450+#define NFT_OBJECT_SECMARK 8
1451+#define __NFT_OBJECT_MAX 9
14341452 #define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1)
14351453
14361454 /**
@@ -1493,9 +1511,16 @@ enum nft_flowtable_hook_attributes { · 56 unmodified lines
14931511 };
14941512 #define NFTA_FLOWTABLE_HOOK_MAX (__NFTA_FLOWTABLE_HOOK_MAX - 1)
14951513
1514+/**
1515+ * enum nft_osf_attributes - nftables osf expression netlink attributes
1516+ *
1517+ * @NFTA_OSF_DREG: destination register (NLA_U32: nft_registers)
1518+ * @NFTA_OSF_TTL: Value of the TTL osf option (NLA_U8)
1519+ */
14961520 enum nft_osf_attributes {
14971521 NFTA_OSF_UNSPEC,
14981522 NFTA_OSF_DREG,
1523+ NFTA_OSF_TTL,
14991524 __NFTA_OSF_MAX,
15001525 };
15011526 #define NFTA_OSF_MAX (__NFTA_OSF_MAX - 1)
@@ -1512,6 +1537,35 @@ enum nft_devices_attributes { · 10 unmodified lines
15121537 };
15131538 #define NFTA_DEVICE_MAX (__NFTA_DEVICE_MAX - 1)
15141539
1540+/*
1541+ * enum nft_xfrm_attributes - nf_tables xfrm expr netlink attributes
1542+ *
1543+ * @NFTA_XFRM_DREG: destination register (NLA_U32)
1544+ * @NFTA_XFRM_KEY: enum nft_xfrm_keys (NLA_U32)
1545+ * @NFTA_XFRM_DIR: direction (NLA_U8)
1546+ * @NFTA_XFRM_SPNUM: index in secpath array (NLA_U32)
1547+ */
1548+enum nft_xfrm_attributes {
1549+ NFTA_XFRM_UNSPEC,
1550+ NFTA_XFRM_DREG,
1551+ NFTA_XFRM_KEY,
1552+ NFTA_XFRM_DIR,
1553+ NFTA_XFRM_SPNUM,
1554+ __NFTA_XFRM_MAX
1555+};
1556+#define NFTA_XFRM_MAX (__NFTA_XFRM_MAX - 1)
1557+
1558+enum nft_xfrm_keys {
1559+ NFT_XFRM_KEY_UNSPEC,
1560+ NFT_XFRM_KEY_DADDR_IP4,
1561+ NFT_XFRM_KEY_DADDR_IP6,
1562+ NFT_XFRM_KEY_SADDR_IP4,
1563+ NFT_XFRM_KEY_SADDR_IP6,
1564+ NFT_XFRM_KEY_REQID,
1565+ NFT_XFRM_KEY_SPI,
1566+ __NFT_XFRM_KEY_MAX,
1567+};
1568+#define NFT_XFRM_KEY_MAX (__NFT_XFRM_KEY_MAX - 1)
15151569
15161570 /**
15171571 * enum nft_trace_attributes - nf_tables trace netlink attributes
include/uapi/linux/netfilter/xt_cgroup.h+16−0
@@ -22,4 +22,20 @@ struct xt_cgroup_info_v1 { · 21 unmodified lines
2222 void *priv __attribute__((aligned(8)));
2323 };
2424
25+#define XT_CGROUP_PATH_MAX 512
26+
27+struct xt_cgroup_info_v2 {
28+ __u8 has_path;
29+ __u8 has_classid;
30+ __u8 invert_path;
31+ __u8 invert_classid;
32+ union {
33+ char path[XT_CGROUP_PATH_MAX];
34+ __u32 classid;
35+ };
36+
37+ /* kernel internal data */
38+ void *priv __attribute__((aligned(8)));
39+};
40+
2541 #endif /* _UAPI_XT_CGROUP_H */
include/uapi/linux/netlink.h+1−0
@@ -155,6 +155,7 @@ enum nlmsgerr_attrs { · 154 unmodified lines
155155 #define NETLINK_LIST_MEMBERSHIPS 9
156156 #define NETLINK_CAP_ACK 10
157157 #define NETLINK_EXT_ACK 11
158+#define NETLINK_DUMP_STRICT_CHK 12
158159
159160 struct nl_pktinfo {
160161 __u32 group;
include/uapi/linux/nl80211.h+116−8
@@ -1033,6 +1033,9 @@ · 1032 unmodified lines
10331033 * %NL80211_ATTR_CHANNEL_WIDTH,%NL80211_ATTR_NSS attributes with its
10341034 * address(specified in %NL80211_ATTR_MAC).
10351035 *
1036+ * @NL80211_CMD_GET_FTM_RESPONDER_STATS: Retrieve FTM responder statistics, in
1037+ * the %NL80211_ATTR_FTM_RESPONDER_STATS attribute.
1038+ *
10361039 * @NL80211_CMD_MAX: highest used command number
10371040 * @__NL80211_CMD_AFTER_LAST: internal use
10381041 */
@@ -1245,6 +1248,8 @@ enum nl80211_commands { · 206 unmodified lines
12451248
12461249 NL80211_CMD_CONTROL_PORT_FRAME,
12471250
1251+ NL80211_CMD_GET_FTM_RESPONDER_STATS,
1252+
12481253 /* add new commands above here */
12491254
12501255 /* used to define NL80211_CMD_MAX below */
@@ -2241,6 +2246,14 @@ enum nl80211_commands { · 990 unmodified lines
22412246 * association request when used with NL80211_CMD_NEW_STATION). Can be set
22422247 * only if %NL80211_STA_FLAG_WME is set.
22432248 *
2249+ * @NL80211_ATTR_FTM_RESPONDER: nested attribute which user-space can include
2250+ * in %NL80211_CMD_START_AP or %NL80211_CMD_SET_BEACON for fine timing
2251+ * measurement (FTM) responder functionality and containing parameters as
2252+ * possible, see &enum nl80211_ftm_responder_attr
2253+ *
2254+ * @NL80211_ATTR_FTM_RESPONDER_STATS: Nested attribute with FTM responder
2255+ * statistics, see &enum nl80211_ftm_responder_stats.
2256+ *
22442257 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
22452258 * @NL80211_ATTR_MAX: highest attribute number currently defined
22462259 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2682,6 +2695,10 @@ enum nl80211_attrs { · 435 unmodified lines
26822695
26832696 NL80211_ATTR_HE_CAPABILITY,
26842697
2698+ NL80211_ATTR_FTM_RESPONDER,
2699+
2700+ NL80211_ATTR_FTM_RESPONDER_STATS,
2701+
26852702 /* add attributes here, update the policy in nl80211.c */
26862703
26872704 __NL80211_ATTR_AFTER_LAST,
@@ -3050,8 +3067,13 @@ enum nl80211_sta_bss_param { · 362 unmodified lines
30503067 * received from the station (u64, usec)
30513068 * @NL80211_STA_INFO_PAD: attribute used for padding for 64-bit alignment
30523069 * @NL80211_STA_INFO_ACK_SIGNAL: signal strength of the last ACK frame(u8, dBm)
3053− * @NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG: avg signal strength of (data)
3054− * ACK frame (s8, dBm)
3070+ * @NL80211_STA_INFO_ACK_SIGNAL_AVG: avg signal strength of ACK frames (s8, dBm)
3071+ * @NL80211_STA_INFO_RX_MPDUS: total number of received packets (MPDUs)
3072+ * (u32, from this station)
3073+ * @NL80211_STA_INFO_FCS_ERROR_COUNT: total number of packets (MPDUs) received
3074+ * with an FCS error (u32, from this station). This count may not include
3075+ * some packets with an FCS error due to TA corruption. Hence this counter
3076+ * might not be fully accurate.
30553077 * @__NL80211_STA_INFO_AFTER_LAST: internal
30563078 * @NL80211_STA_INFO_MAX: highest possible station info attribute
30573079 */
@@ -3091,13 +3113,19 @@ enum nl80211_sta_info { · 33 unmodified lines
30913113 NL80211_STA_INFO_RX_DURATION,
30923114 NL80211_STA_INFO_PAD,
30933115 NL80211_STA_INFO_ACK_SIGNAL,
3094− NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG,
3116+ NL80211_STA_INFO_ACK_SIGNAL_AVG,
3117+ NL80211_STA_INFO_RX_MPDUS,
3118+ NL80211_STA_INFO_FCS_ERROR_COUNT,
30953119
30963120 /* keep last */
30973121 __NL80211_STA_INFO_AFTER_LAST,
30983122 NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1
30993123 };
31003124
3125+/* we renamed this - stay compatible */
3126+#define NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG NL80211_STA_INFO_ACK_SIGNAL_AVG
3127+
3128+
31013129 /**
31023130 * enum nl80211_tid_stats - per TID statistics attributes
31033131 * @__NL80211_TID_STATS_INVALID: attribute number 0 is reserved
@@ -4338,7 +4366,7 @@ enum nl80211_txrate_gi { · 1234 unmodified lines
43384366 * enum nl80211_band - Frequency band
43394367 * @NL80211_BAND_2GHZ: 2.4 GHz ISM band
43404368 * @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz)
4341− * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 64.80 GHz)
4369+ * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz)
43424370 * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
43434371 * since newer kernel versions may support more bands
43444372 */
@@ -5213,9 +5241,8 @@ enum nl80211_feature_flags { · 868 unmodified lines
52135241 * "radar detected" event.
52145242 * @NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211: Driver supports sending and
52155243 * receiving control port frames over nl80211 instead of the netdevice.
5216− * @NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT: This Driver support data ack
5217− * rssi if firmware support, this flag is to intimate about ack rssi
5218− * support to nl80211.
5244+ * @NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT: This driver/device supports
5245+ * (average) ACK signal strength reporting.
52195246 * @NL80211_EXT_FEATURE_TXQS: Driver supports FQ-CoDel-enabled intermediate
52205247 * TXQs.
52215248 * @NL80211_EXT_FEATURE_SCAN_RANDOM_SN: Driver/device supports randomizing the
@@ -5223,6 +5250,13 @@ enum nl80211_feature_flags { · 1 unmodified line
52235250 * @NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT: Driver/device can omit all data
52245251 * except for supported rates from the probe request content if requested
52255252 * by the %NL80211_SCAN_FLAG_MIN_PREQ_CONTENT flag.
5253+ * @NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER: Driver supports enabling fine
5254+ * timing measurement responder role.
5255+ *
5256+ * @NL80211_EXT_FEATURE_CAN_REPLACE_PTK0: Driver/device confirm that they are
5257+ * able to rekey an in-use key correctly. Userspace must not rekey PTK keys
5258+ * if this flag is not set. Ignoring this can leak clear text packets and/or
5259+ * freeze the connection.
52265260 *
52275261 * @NUM_NL80211_EXT_FEATURES: number of extended features.
52285262 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
@@ -5255,10 +5289,14 @@ enum nl80211_ext_feature_index { · 26 unmodified lines
52555289 NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN,
52565290 NL80211_EXT_FEATURE_DFS_OFFLOAD,
52575291 NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211,
5258− NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT,
5292+ NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT,
5293+ /* we renamed this - stay compatible */
5294+ NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT = NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT,
52595295 NL80211_EXT_FEATURE_TXQS,
52605296 NL80211_EXT_FEATURE_SCAN_RANDOM_SN,
52615297 NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT,
5298+ NL80211_EXT_FEATURE_CAN_REPLACE_PTK0,
5299+ NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER,
52625300
52635301 /* add new features before the definition below */
52645302 NUM_NL80211_EXT_FEATURES,
@@ -5798,4 +5836,74 @@ enum nl80211_external_auth_action { · 533 unmodified lines
57985836 NL80211_EXTERNAL_AUTH_ABORT,
57995837 };
58005838
5839+/**
5840+ * enum nl80211_ftm_responder_attributes - fine timing measurement
5841+ * responder attributes
5842+ * @__NL80211_FTM_RESP_ATTR_INVALID: Invalid
5843+ * @NL80211_FTM_RESP_ATTR_ENABLED: FTM responder is enabled
5844+ * @NL80211_FTM_RESP_ATTR_LCI: The content of Measurement Report Element
5845+ * (9.4.2.22 in 802.11-2016) with type 8 - LCI (9.4.2.22.10)
5846+ * @NL80211_FTM_RESP_ATTR_CIVIC: The content of Measurement Report Element
5847+ * (9.4.2.22 in 802.11-2016) with type 11 - Civic (Section 9.4.2.22.13)
5848+ * @__NL80211_FTM_RESP_ATTR_LAST: Internal
5849+ * @NL80211_FTM_RESP_ATTR_MAX: highest FTM responder attribute.
5850+ */
5851+enum nl80211_ftm_responder_attributes {
5852+ __NL80211_FTM_RESP_ATTR_INVALID,
5853+
5854+ NL80211_FTM_RESP_ATTR_ENABLED,
5855+ NL80211_FTM_RESP_ATTR_LCI,
5856+ NL80211_FTM_RESP_ATTR_CIVICLOC,
5857+
5858+ /* keep last */
5859+ __NL80211_FTM_RESP_ATTR_LAST,
5860+ NL80211_FTM_RESP_ATTR_MAX = __NL80211_FTM_RESP_ATTR_LAST - 1,
5861+};
5862+
5863+/*
5864+ * enum nl80211_ftm_responder_stats - FTM responder statistics
5865+ *
5866+ * These attribute types are used with %NL80211_ATTR_FTM_RESPONDER_STATS
5867+ * when getting FTM responder statistics.
5868+ *
5869+ * @__NL80211_FTM_STATS_INVALID: attribute number 0 is reserved
5870+ * @NL80211_FTM_STATS_SUCCESS_NUM: number of FTM sessions in which all frames
5871+ * were ssfully answered (u32)
5872+ * @NL80211_FTM_STATS_PARTIAL_NUM: number of FTM sessions in which part of the
5873+ * frames were successfully answered (u32)
5874+ * @NL80211_FTM_STATS_FAILED_NUM: number of failed FTM sessions (u32)
5875+ * @NL80211_FTM_STATS_ASAP_NUM: number of ASAP sessions (u32)
5876+ * @NL80211_FTM_STATS_NON_ASAP_NUM: number of non-ASAP sessions (u32)
5877+ * @NL80211_FTM_STATS_TOTAL_DURATION_MSEC: total sessions durations - gives an
5878+ * indication of how much time the responder was busy (u64, msec)
5879+ * @NL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM: number of unknown FTM triggers -
5880+ * triggers from initiators that didn't finish successfully the negotiation
5881+ * phase with the responder (u32)
5882+ * @NL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM: number of FTM reschedule requests
5883+ * - initiator asks for a new scheduling although it already has scheduled
5884+ * FTM slot (u32)
5885+ * @NL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM: number of FTM triggers out of
5886+ * scheduled window (u32)
5887+ * @NL80211_FTM_STATS_PAD: used for padding, ignore
5888+ * @__NL80211_TXQ_ATTR_AFTER_LAST: Internal
5889+ * @NL80211_FTM_STATS_MAX: highest possible FTM responder stats attribute
5890+ */
5891+enum nl80211_ftm_responder_stats {
5892+ __NL80211_FTM_STATS_INVALID,
5893+ NL80211_FTM_STATS_SUCCESS_NUM,
5894+ NL80211_FTM_STATS_PARTIAL_NUM,
5895+ NL80211_FTM_STATS_FAILED_NUM,
5896+ NL80211_FTM_STATS_ASAP_NUM,
5897+ NL80211_FTM_STATS_NON_ASAP_NUM,
5898+ NL80211_FTM_STATS_TOTAL_DURATION_MSEC,
5899+ NL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM,
5900+ NL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM,
5901+ NL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM,
5902+ NL80211_FTM_STATS_PAD,
5903+
5904+ /* keep last */
5905+ __NL80211_FTM_STATS_AFTER_LAST,
5906+ NL80211_FTM_STATS_MAX = __NL80211_FTM_STATS_AFTER_LAST - 1
5907+};
5908+
58015909 #endif /* __LINUX_NL80211_H */
include/uapi/linux/pkt_cls.h+2−0
@@ -483,6 +483,8 @@ enum { · 482 unmodified lines
483483 TCA_FLOWER_KEY_ENC_OPTS,
484484 TCA_FLOWER_KEY_ENC_OPTS_MASK,
485485
486+ TCA_FLOWER_IN_HW_COUNT,
487+
486488 __TCA_FLOWER_MAX,
487489 };
488490
include/uapi/linux/pkt_sched.h+49−3
@@ -395,9 +395,9 @@ enum { · 394 unmodified lines
395395 struct tc_htb_xstats {
396396 __u32 lends;
397397 __u32 borrows;
398− __u32 giants; /* too big packets (rate will not be accurate) */
399− __u32 tokens;
400− __u32 ctokens;
398+ __u32 giants; /* unused since 'Make HTB scheduler work with TSO.' */
399+ __s32 tokens;
400+ __s32 ctokens;
401401 };
402402
403403 /* HFSC section */
@@ -1084,4 +1084,50 @@ enum { · 680 unmodified lines
10841084 CAKE_ATM_MAX
10851085 };
10861086
1087+
1088+/* TAPRIO */
1089+enum {
1090+ TC_TAPRIO_CMD_SET_GATES = 0x00,
1091+ TC_TAPRIO_CMD_SET_AND_HOLD = 0x01,
1092+ TC_TAPRIO_CMD_SET_AND_RELEASE = 0x02,
1093+};
1094+
1095+enum {
1096+ TCA_TAPRIO_SCHED_ENTRY_UNSPEC,
1097+ TCA_TAPRIO_SCHED_ENTRY_INDEX, /* u32 */
1098+ TCA_TAPRIO_SCHED_ENTRY_CMD, /* u8 */
1099+ TCA_TAPRIO_SCHED_ENTRY_GATE_MASK, /* u32 */
1100+ TCA_TAPRIO_SCHED_ENTRY_INTERVAL, /* u32 */
1101+ __TCA_TAPRIO_SCHED_ENTRY_MAX,
1102+};
1103+#define TCA_TAPRIO_SCHED_ENTRY_MAX (__TCA_TAPRIO_SCHED_ENTRY_MAX - 1)
1104+
1105+/* The format for schedule entry list is:
1106+ * [TCA_TAPRIO_SCHED_ENTRY_LIST]
1107+ * [TCA_TAPRIO_SCHED_ENTRY]
1108+ * [TCA_TAPRIO_SCHED_ENTRY_CMD]
1109+ * [TCA_TAPRIO_SCHED_ENTRY_GATES]
1110+ * [TCA_TAPRIO_SCHED_ENTRY_INTERVAL]
1111+ */
1112+enum {
1113+ TCA_TAPRIO_SCHED_UNSPEC,
1114+ TCA_TAPRIO_SCHED_ENTRY,
1115+ __TCA_TAPRIO_SCHED_MAX,
1116+};
1117+
1118+#define TCA_TAPRIO_SCHED_MAX (__TCA_TAPRIO_SCHED_MAX - 1)
1119+
1120+enum {
1121+ TCA_TAPRIO_ATTR_UNSPEC,
1122+ TCA_TAPRIO_ATTR_PRIOMAP, /* struct tc_mqprio_qopt */
1123+ TCA_TAPRIO_ATTR_SCHED_ENTRY_LIST, /* nested of entry */
1124+ TCA_TAPRIO_ATTR_SCHED_BASE_TIME, /* s64 */
1125+ TCA_TAPRIO_ATTR_SCHED_SINGLE_ENTRY, /* single entry */
1126+ TCA_TAPRIO_ATTR_SCHED_CLOCKID, /* s32 */
1127+ TCA_TAPRIO_PAD,
1128+ __TCA_TAPRIO_ATTR_MAX,
1129+};
1130+
1131+#define TCA_TAPRIO_ATTR_MAX (__TCA_TAPRIO_ATTR_MAX - 1)
1132+
10871133 #endif