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
103 BPF_BTF_LOAD,103 BPF_BTF_LOAD,
104 BPF_BTF_GET_FD_BY_ID,104 BPF_BTF_GET_FD_BY_ID,
105 BPF_TASK_FD_QUERY,105 BPF_TASK_FD_QUERY,
106 BPF_MAP_LOOKUP_AND_DELETE_ELEM,
106};107};
107 108
108enum bpf_map_type {109enum bpf_map_type {
@@ -127,6 +128,9 @@ enum bpf_map_type { · 18 unmodified lines
127 BPF_MAP_TYPE_SOCKHASH,128 BPF_MAP_TYPE_SOCKHASH,
128 BPF_MAP_TYPE_CGROUP_STORAGE,129 BPF_MAP_TYPE_CGROUP_STORAGE,
129 BPF_MAP_TYPE_REUSEPORT_SOCKARRAY,130 BPF_MAP_TYPE_REUSEPORT_SOCKARRAY,
131 BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE,
132 BPF_MAP_TYPE_QUEUE,
133 BPF_MAP_TYPE_STACK,
130};134};
131 135
132enum bpf_prog_type {136enum bpf_prog_type {
@@ -152,6 +156,7 @@ enum bpf_prog_type { · 19 unmodified lines
152 BPF_PROG_TYPE_LWT_SEG6LOCAL,156 BPF_PROG_TYPE_LWT_SEG6LOCAL,
153 BPF_PROG_TYPE_LIRC_MODE2,157 BPF_PROG_TYPE_LIRC_MODE2,
154 BPF_PROG_TYPE_SK_REUSEPORT,158 BPF_PROG_TYPE_SK_REUSEPORT,
159 BPF_PROG_TYPE_FLOW_DISSECTOR,
155};160};
156 161
157enum bpf_attach_type {162enum bpf_attach_type {
@@ -172,6 +177,7 @@ enum bpf_attach_type { · 14 unmodified lines
172 BPF_CGROUP_UDP4_SENDMSG,177 BPF_CGROUP_UDP4_SENDMSG,
173 BPF_CGROUP_UDP6_SENDMSG,178 BPF_CGROUP_UDP6_SENDMSG,
174 BPF_LIRC_MODE2,179 BPF_LIRC_MODE2,
180 BPF_FLOW_DISSECTOR,
175 __MAX_BPF_ATTACH_TYPE181 __MAX_BPF_ATTACH_TYPE
176};182};
177 183
@@ -459,6 +465,28 @@ union bpf_attr { · 281 unmodified lines
459 * Return465 * Return
460 * 0 on success, or a negative error in case of failure.466 * 0 on success, or a negative error in case of failure.
461 *467 *
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 *
462 * int bpf_probe_read(void *dst, u32 size, const void *src)490 * int bpf_probe_read(void *dst, u32 size, const void *src)
463 * Description491 * Description
464 * For tracing programs, safely attempt to read *size* bytes from492 * For tracing programs, safely attempt to read *size* bytes from
@@ -1430,7 +1458,7 @@ union bpf_attr { · 965 unmodified lines
1430 * Return1458 * Return
1431 * 0 on success, or a negative error in case of failure.1459 * 0 on success, or a negative error in case of failure.
1432 *1460 *
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)
1434 * Description1462 * Description
1435 * Grow or shrink the room for data in the packet associated to1463 * Grow or shrink the room for data in the packet associated to
1436 * *skb* by *len_diff*, and according to the selected *mode*.1464 * *skb* by *len_diff*, and according to the selected *mode*.
@@ -2141,6 +2169,94 @@ union bpf_attr { · 704 unmodified lines
2141 * request in the skb.2169 * request in the skb.
2142 * Return2170 * Return
2143 * 0 on success, or a negative error in case of failure.2171 * 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.
2144 */2260 */
2145#define __BPF_FUNC_MAPPER(FN) \2261#define __BPF_FUNC_MAPPER(FN) \
2146 FN(unspec), \2262 FN(unspec), \
@@ -2226,7 +2342,14 @@ union bpf_attr { · 79 unmodified lines
2226 FN(get_current_cgroup_id), \2342 FN(get_current_cgroup_id), \
2227 FN(get_local_storage), \2343 FN(get_local_storage), \
2228 FN(sk_select_reuseport), \2344 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),
2230 2353
2231/* integer value in 'imm' field of BPF_CALL instruction selects which helper2354/* integer value in 'imm' field of BPF_CALL instruction selects which helper
2232 * function eBPF program intends to call2355 * function eBPF program intends to call
@@ -2333,6 +2456,7 @@ struct __sk_buff { · 100 unmodified lines
2333 /* ... here. */2456 /* ... here. */
2334 2457
2335 __u32 data_meta;2458 __u32 data_meta;
2459 struct bpf_flow_keys *flow_keys;
2336};2460};
2337 2461
2338struct bpf_tunnel_key {2462struct bpf_tunnel_key {
@@ -2395,6 +2519,23 @@ struct bpf_sock { · 56 unmodified lines
2395 */2519 */
2396};2520};
2397 2521
2522struct 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
2398#define XDP_PACKET_HEADROOM 2562539#define XDP_PACKET_HEADROOM 256
2399 2540
2400/* User return codes for XDP prog type.2541/* User return codes for XDP prog type.
@@ -2778,4 +2919,27 @@ enum bpf_task_fd_type { · 377 unmodified lines
2778 BPF_FD_TYPE_URETPROBE, /* filename + offset */2919 BPF_FD_TYPE_URETPROBE, /* filename + offset */
2779};2920};
2780 2921
2922struct 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
2781#endif /* _UAPI__LINUX_BPF_H__ */2945#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 */
21enum 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 */
28enum 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 */
36enum 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 */
45enum 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 */
58enum 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 */
73struct 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 */
84struct 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 */
97struct 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 */
112struct 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
91 * %ETHTOOL_GSET to get the current values before making specific91 * %ETHTOOL_GSET to get the current values before making specific
92 * changes and then applying them with %ETHTOOL_SSET.92 * changes and then applying them with %ETHTOOL_SSET.
93 *93 *
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 *
98 * Deprecated fields should be ignored by both users and drivers.94 * Deprecated fields should be ignored by both users and drivers.
99 */95 */
100struct ethtool_cmd {96struct ethtool_cmd {
@@ -1800,14 +1796,9 @@ enum ethtool_reset_flags { · 1699 unmodified lines
1800 * rejected.1796 * rejected.
1801 *1797 *
1802 * Deprecated %ethtool_cmd fields transceiver, maxtxpkt and maxrxpkt1798 * Deprecated %ethtool_cmd fields transceiver, maxtxpkt and maxrxpkt
1803 * are not available in %ethtool_link_settings. Until all drivers are1799 * are not available in %ethtool_link_settings. These fields will be
1804 * converted to ignore them or to the new %ethtool_link_settings API,1800 * always set to zero in %ETHTOOL_GSET reply and %ETHTOOL_SSET will
1805 * for both queries and changes, users should always try1801 * fail if any of them is set to non-zero value.
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).
1811 *1802 *
1812 * Users should assume that all fields not marked read-only are1803 * Users should assume that all fields not marked read-only are
1813 * writable and subject to validation by the driver. They should use1804 * 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
12 TCA_STATS_APP,12 TCA_STATS_APP,
13 TCA_STATS_RATE_EST64,13 TCA_STATS_RATE_EST64,
14 TCA_STATS_PAD,14 TCA_STATS_PAD,
15 TCA_STATS_BASIC_HW,
15 __TCA_STATS_MAX,16 __TCA_STATS_MAX,
16};17};
17#define TCA_STATS_MAX (__TCA_STATS_MAX - 1)18#define TCA_STATS_MAX (__TCA_STATS_MAX - 1)
include/uapi/linux/if_addr.h+1−0
@@ -34,6 +34,7 @@ enum { · 33 unmodified lines
34 IFA_MULTICAST,34 IFA_MULTICAST,
35 IFA_FLAGS,35 IFA_FLAGS,
36 IFA_RT_PRIORITY, /* u32, priority/metric for prefix route */36 IFA_RT_PRIORITY, /* u32, priority/metric for prefix route */
37 IFA_TARGET_NETNSID,
37 __IFA_MAX,38 __IFA_MAX,
38};39};
39 40
include/uapi/linux/if_arp.h+9−9
@@ -114,18 +114,18 @@ · 113 unmodified lines
114 114
115/* ARP ioctl request. */115/* ARP ioctl request. */
116struct arpreq {116struct arpreq {
117 struct sockaddr arp_pa; /* protocol address */117 struct sockaddr arp_pa; /* protocol address */
118 struct sockaddr arp_ha; /* hardware address */118 struct sockaddr arp_ha; /* hardware address */
119 int arp_flags; /* flags */119 int arp_flags; /* flags */
120 struct sockaddr arp_netmask; /* netmask (only for proxy arps) */120 struct sockaddr arp_netmask; /* netmask (only for proxy arps) */
121 char arp_dev[16];121 char arp_dev[IFNAMSIZ];
122};122};
123 123
124struct arpreq_old {124struct arpreq_old {
125 struct sockaddr arp_pa; /* protocol address */125 struct sockaddr arp_pa; /* protocol address */
126 struct sockaddr arp_ha; /* hardware address */126 struct sockaddr arp_ha; /* hardware address */
127 int arp_flags; /* flags */127 int arp_flags; /* flags */
128 struct sockaddr arp_netmask; /* netmask (only for proxy arps) */128 struct sockaddr arp_netmask; /* netmask (only for proxy arps) */
129};129};
130 130
131/* ARP Flag values. */131/* ARP Flag values. */
include/uapi/linux/if_fddi.h+18−3
@@ -6,9 +6,10 @@ · 5 unmodified lines
6 *6 *
7 * Global definitions for the ANSI FDDI interface.7 * Global definitions for the ANSI FDDI interface.
8 *8 *
9 * Version: @(#)if_fddi.h 1.0.2 Sep 29 20049 * Version: @(#)if_fddi.h 1.0.3 Oct 6 2018
10 *10 *
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>
12 *13 *
13 * if_fddi.h is based on previous if_ether.h and if_tr.h work by14 * if_fddi.h is based on previous if_ether.h and if_tr.h work by
14 * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>15 * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
@@ -45,7 +46,21 @@ · 30 unmodified lines
45#define FDDI_K_OUI_LEN 3 /* Octets in OUI in 802.2 SNAP46#define FDDI_K_OUI_LEN 3 /* Octets in OUI in 802.2 SNAP
46 header */47 header */
47 48
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 */
49#define FDDI_FC_K_VOID 0x0064#define FDDI_FC_K_VOID 0x00
50#define FDDI_FC_K_NON_RESTRICTED_TOKEN 0x8065#define FDDI_FC_K_NON_RESTRICTED_TOKEN 0x80
51#define FDDI_FC_K_RESTRICTED_TOKEN 0xC066#define FDDI_FC_K_RESTRICTED_TOKEN 0xC0
include/uapi/linux/if_link.h+3−0
@@ -161,6 +161,7 @@ enum { · 160 unmodified lines
161 IFLA_EVENT,161 IFLA_EVENT,
162 IFLA_NEW_NETNSID,162 IFLA_NEW_NETNSID,
163 IFLA_IF_NETNSID,163 IFLA_IF_NETNSID,
164 IFLA_TARGET_NETNSID = IFLA_IF_NETNSID, /* new alias */
164 IFLA_CARRIER_UP_COUNT,165 IFLA_CARRIER_UP_COUNT,
165 IFLA_CARRIER_DOWN_COUNT,166 IFLA_CARRIER_DOWN_COUNT,
166 IFLA_NEW_IFINDEX,167 IFLA_NEW_IFINDEX,
@@ -286,6 +287,7 @@ enum { · 119 unmodified lines
286 IFLA_BR_MCAST_STATS_ENABLED,287 IFLA_BR_MCAST_STATS_ENABLED,
287 IFLA_BR_MCAST_IGMP_VERSION,288 IFLA_BR_MCAST_IGMP_VERSION,
288 IFLA_BR_MCAST_MLD_VERSION,289 IFLA_BR_MCAST_MLD_VERSION,
290 IFLA_BR_VLAN_STATS_PER_PORT,
289 __IFLA_BR_MAX,291 __IFLA_BR_MAX,
290};292};
291 293
@@ -554,6 +556,7 @@ enum { · 262 unmodified lines
554 IFLA_GENEVE_UDP_ZERO_CSUM6_TX,556 IFLA_GENEVE_UDP_ZERO_CSUM6_TX,
555 IFLA_GENEVE_UDP_ZERO_CSUM6_RX,557 IFLA_GENEVE_UDP_ZERO_CSUM6_RX,
556 IFLA_GENEVE_LABEL,558 IFLA_GENEVE_LABEL,
559 IFLA_GENEVE_TTL_INHERIT,
557 __IFLA_GENEVE_MAX560 __IFLA_GENEVE_MAX
558};561};
559#define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1)562#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
57#define PACKET_QDISC_BYPASS 2057#define PACKET_QDISC_BYPASS 20
58#define PACKET_ROLLOVER_STATS 2158#define PACKET_ROLLOVER_STATS 21
59#define PACKET_FANOUT_DATA 2259#define PACKET_FANOUT_DATA 22
60#define PACKET_IGNORE_OUTGOING 23
60 61
61#define PACKET_FANOUT_HASH 062#define PACKET_FANOUT_HASH 0
62#define PACKET_FANOUT_LB 163#define PACKET_FANOUT_LB 1
include/uapi/linux/in6.h+1−0
@@ -177,6 +177,7 @@ struct in6_flowlabel_req { · 176 unmodified lines
177#define IPV6_V6ONLY 26177#define IPV6_V6ONLY 26
178#define IPV6_JOIN_ANYCAST 27178#define IPV6_JOIN_ANYCAST 27
179#define IPV6_LEAVE_ANYCAST 28179#define IPV6_LEAVE_ANYCAST 28
180#define IPV6_MULTICAST_ALL 29
180 181
181/* IPV6_MTU_DISCOVER values */182/* IPV6_MTU_DISCOVER values */
182#define IPV6_PMTUDISC_DONT 0183#define IPV6_PMTUDISC_DONT 0
include/uapi/linux/ncsi.h+6−0
@@ -23,6 +23,9 @@ · 22 unmodified lines
23 * optionally the preferred NCSI_ATTR_CHANNEL_ID.23 * optionally the preferred NCSI_ATTR_CHANNEL_ID.
24 * @NCSI_CMD_CLEAR_INTERFACE: clear any preferred package/channel combination.24 * @NCSI_CMD_CLEAR_INTERFACE: clear any preferred package/channel combination.
25 * Requires NCSI_ATTR_IFINDEX.25 * 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.
26 * @NCSI_CMD_MAX: highest command number29 * @NCSI_CMD_MAX: highest command number
27 */30 */
28enum ncsi_nl_commands {31enum ncsi_nl_commands {
@@ -30,6 +33,7 @@ enum ncsi_nl_commands { · 1 unmodified line
30 NCSI_CMD_PKG_INFO,33 NCSI_CMD_PKG_INFO,
31 NCSI_CMD_SET_INTERFACE,34 NCSI_CMD_SET_INTERFACE,
32 NCSI_CMD_CLEAR_INTERFACE,35 NCSI_CMD_CLEAR_INTERFACE,
36 NCSI_CMD_SEND_CMD,
33 37
34 __NCSI_CMD_AFTER_LAST,38 __NCSI_CMD_AFTER_LAST,
35 NCSI_CMD_MAX = __NCSI_CMD_AFTER_LAST - 139 NCSI_CMD_MAX = __NCSI_CMD_AFTER_LAST - 1
@@ -43,6 +47,7 @@ enum ncsi_nl_commands { · 7 unmodified lines
43 * @NCSI_ATTR_PACKAGE_LIST: nested array of NCSI_PKG_ATTR attributes47 * @NCSI_ATTR_PACKAGE_LIST: nested array of NCSI_PKG_ATTR attributes
44 * @NCSI_ATTR_PACKAGE_ID: package ID48 * @NCSI_ATTR_PACKAGE_ID: package ID
45 * @NCSI_ATTR_CHANNEL_ID: channel ID49 * @NCSI_ATTR_CHANNEL_ID: channel ID
50 * @NCSI_ATTR_DATA: command payload
46 * @NCSI_ATTR_MAX: highest attribute number51 * @NCSI_ATTR_MAX: highest attribute number
47 */52 */
48enum ncsi_nl_attrs {53enum ncsi_nl_attrs {
@@ -51,6 +56,7 @@ enum ncsi_nl_attrs { · 2 unmodified lines
51 NCSI_ATTR_PACKAGE_LIST,56 NCSI_ATTR_PACKAGE_LIST,
52 NCSI_ATTR_PACKAGE_ID,57 NCSI_ATTR_PACKAGE_ID,
53 NCSI_ATTR_CHANNEL_ID,58 NCSI_ATTR_CHANNEL_ID,
59 NCSI_ATTR_DATA,
54 60
55 __NCSI_ATTR_AFTER_LAST,61 __NCSI_ATTR_AFTER_LAST,
56 NCSI_ATTR_MAX = __NCSI_ATTR_AFTER_LAST - 162 NCSI_ATTR_MAX = __NCSI_ATTR_AFTER_LAST - 1
include/uapi/linux/neighbour.h+1−0
@@ -43,6 +43,7 @@ enum { · 42 unmodified lines
43#define NTF_PROXY 0x08 /* == ATF_PUBL */43#define NTF_PROXY 0x08 /* == ATF_PUBL */
44#define NTF_EXT_LEARNED 0x1044#define NTF_EXT_LEARNED 0x10
45#define NTF_OFFLOADED 0x2045#define NTF_OFFLOADED 0x20
46#define NTF_STICKY 0x40
46#define NTF_ROUTER 0x8047#define NTF_ROUTER 0x80
47 48
48/*49/*
include/uapi/linux/netfilter/nf_tables.h+55−1
@@ -826,12 +826,14 @@ enum nft_meta_keys { · 825 unmodified lines
826 * @NFT_RT_NEXTHOP4: routing nexthop for IPv4826 * @NFT_RT_NEXTHOP4: routing nexthop for IPv4
827 * @NFT_RT_NEXTHOP6: routing nexthop for IPv6827 * @NFT_RT_NEXTHOP6: routing nexthop for IPv6
828 * @NFT_RT_TCPMSS: fetch current path tcp mss828 * @NFT_RT_TCPMSS: fetch current path tcp mss
829 * @NFT_RT_XFRM: boolean, skb->dst->xfrm != NULL
829 */830 */
830enum nft_rt_keys {831enum nft_rt_keys {
831 NFT_RT_CLASSID,832 NFT_RT_CLASSID,
832 NFT_RT_NEXTHOP4,833 NFT_RT_NEXTHOP4,
833 NFT_RT_NEXTHOP6,834 NFT_RT_NEXTHOP6,
834 NFT_RT_TCPMSS,835 NFT_RT_TCPMSS,
836 NFT_RT_XFRM,
835 __NFT_RT_MAX837 __NFT_RT_MAX
836};838};
837#define NFT_RT_MAX (__NFT_RT_MAX - 1)839#define NFT_RT_MAX (__NFT_RT_MAX - 1)
@@ -1174,6 +1176,21 @@ enum nft_quota_attributes { · 336 unmodified lines
1174};1176};
1175#define NFTA_QUOTA_MAX (__NFTA_QUOTA_MAX - 1)1177#define NFTA_QUOTA_MAX (__NFTA_QUOTA_MAX - 1)
1176 1178
1179/**
1180 * enum nft_secmark_attributes - nf_tables secmark object netlink attributes
1181 *
1182 * @NFTA_SECMARK_CTX: security context (NLA_STRING)
1183 */
1184enum 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
1177/**1194/**
1178 * enum nft_reject_types - nf_tables reject expression reject types1195 * enum nft_reject_types - nf_tables reject expression reject types
1179 *1196 *
@@ -1430,7 +1447,8 @@ enum nft_ct_timeout_timeout_attributes { · 250 unmodified lines
1430#define NFT_OBJECT_CONNLIMIT 51447#define NFT_OBJECT_CONNLIMIT 5
1431#define NFT_OBJECT_TUNNEL 61448#define NFT_OBJECT_TUNNEL 6
1432#define NFT_OBJECT_CT_TIMEOUT 71449#define NFT_OBJECT_CT_TIMEOUT 7
1433#define __NFT_OBJECT_MAX 81450#define NFT_OBJECT_SECMARK 8
1451#define __NFT_OBJECT_MAX 9
1434#define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1)1452#define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1)
1435 1453
1436/**1454/**
@@ -1493,9 +1511,16 @@ enum nft_flowtable_hook_attributes { · 56 unmodified lines
1493};1511};
1494#define NFTA_FLOWTABLE_HOOK_MAX (__NFTA_FLOWTABLE_HOOK_MAX - 1)1512#define NFTA_FLOWTABLE_HOOK_MAX (__NFTA_FLOWTABLE_HOOK_MAX - 1)
1495 1513
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 */
1496enum nft_osf_attributes {1520enum nft_osf_attributes {
1497 NFTA_OSF_UNSPEC,1521 NFTA_OSF_UNSPEC,
1498 NFTA_OSF_DREG,1522 NFTA_OSF_DREG,
1523 NFTA_OSF_TTL,
1499 __NFTA_OSF_MAX,1524 __NFTA_OSF_MAX,
1500};1525};
1501#define NFTA_OSF_MAX (__NFTA_OSF_MAX - 1)1526#define NFTA_OSF_MAX (__NFTA_OSF_MAX - 1)
@@ -1512,6 +1537,35 @@ enum nft_devices_attributes { · 10 unmodified lines
1512};1537};
1513#define NFTA_DEVICE_MAX (__NFTA_DEVICE_MAX - 1)1538#define NFTA_DEVICE_MAX (__NFTA_DEVICE_MAX - 1)
1514 1539
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 */
1548enum 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
1558enum 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)
1515 1569
1516/**1570/**
1517 * enum nft_trace_attributes - nf_tables trace netlink attributes1571 * 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
22 void *priv __attribute__((aligned(8)));22 void *priv __attribute__((aligned(8)));
23};23};
24 24
25#define XT_CGROUP_PATH_MAX 512
26
27struct 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
25#endif /* _UAPI_XT_CGROUP_H */41#endif /* _UAPI_XT_CGROUP_H */
include/uapi/linux/netlink.h+1−0
@@ -155,6 +155,7 @@ enum nlmsgerr_attrs { · 154 unmodified lines
155#define NETLINK_LIST_MEMBERSHIPS 9155#define NETLINK_LIST_MEMBERSHIPS 9
156#define NETLINK_CAP_ACK 10156#define NETLINK_CAP_ACK 10
157#define NETLINK_EXT_ACK 11157#define NETLINK_EXT_ACK 11
158#define NETLINK_DUMP_STRICT_CHK 12
158 159
159struct nl_pktinfo {160struct nl_pktinfo {
160 __u32 group;161 __u32 group;
include/uapi/linux/nl80211.h+116−8
@@ -1033,6 +1033,9 @@ · 1032 unmodified lines
1033 * %NL80211_ATTR_CHANNEL_WIDTH,%NL80211_ATTR_NSS attributes with its1033 * %NL80211_ATTR_CHANNEL_WIDTH,%NL80211_ATTR_NSS attributes with its
1034 * address(specified in %NL80211_ATTR_MAC).1034 * address(specified in %NL80211_ATTR_MAC).
1035 *1035 *
1036 * @NL80211_CMD_GET_FTM_RESPONDER_STATS: Retrieve FTM responder statistics, in
1037 * the %NL80211_ATTR_FTM_RESPONDER_STATS attribute.
1038 *
1036 * @NL80211_CMD_MAX: highest used command number1039 * @NL80211_CMD_MAX: highest used command number
1037 * @__NL80211_CMD_AFTER_LAST: internal use1040 * @__NL80211_CMD_AFTER_LAST: internal use
1038 */1041 */
@@ -1245,6 +1248,8 @@ enum nl80211_commands { · 206 unmodified lines
1245 1248
1246 NL80211_CMD_CONTROL_PORT_FRAME,1249 NL80211_CMD_CONTROL_PORT_FRAME,
1247 1250
1251 NL80211_CMD_GET_FTM_RESPONDER_STATS,
1252
1248 /* add new commands above here */1253 /* add new commands above here */
1249 1254
1250 /* used to define NL80211_CMD_MAX below */1255 /* used to define NL80211_CMD_MAX below */
@@ -2241,6 +2246,14 @@ enum nl80211_commands { · 990 unmodified lines
2241 * association request when used with NL80211_CMD_NEW_STATION). Can be set2246 * association request when used with NL80211_CMD_NEW_STATION). Can be set
2242 * only if %NL80211_STA_FLAG_WME is set.2247 * only if %NL80211_STA_FLAG_WME is set.
2243 *2248 *
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 *
2244 * @NUM_NL80211_ATTR: total number of nl80211_attrs available2257 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
2245 * @NL80211_ATTR_MAX: highest attribute number currently defined2258 * @NL80211_ATTR_MAX: highest attribute number currently defined
2246 * @__NL80211_ATTR_AFTER_LAST: internal use2259 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2682,6 +2695,10 @@ enum nl80211_attrs { · 435 unmodified lines
2682 2695
2683 NL80211_ATTR_HE_CAPABILITY,2696 NL80211_ATTR_HE_CAPABILITY,
2684 2697
2698 NL80211_ATTR_FTM_RESPONDER,
2699
2700 NL80211_ATTR_FTM_RESPONDER_STATS,
2701
2685 /* add attributes here, update the policy in nl80211.c */2702 /* add attributes here, update the policy in nl80211.c */
2686 2703
2687 __NL80211_ATTR_AFTER_LAST,2704 __NL80211_ATTR_AFTER_LAST,
@@ -3050,8 +3067,13 @@ enum nl80211_sta_bss_param { · 362 unmodified lines
3050 * received from the station (u64, usec)3067 * received from the station (u64, usec)
3051 * @NL80211_STA_INFO_PAD: attribute used for padding for 64-bit alignment3068 * @NL80211_STA_INFO_PAD: attribute used for padding for 64-bit alignment
3052 * @NL80211_STA_INFO_ACK_SIGNAL: signal strength of the last ACK frame(u8, dBm)3069 * @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)3070 * @NL80211_STA_INFO_ACK_SIGNAL_AVG: avg signal strength of ACK frames (s8, dBm)
3054 * ACK frame (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.
3055 * @__NL80211_STA_INFO_AFTER_LAST: internal3077 * @__NL80211_STA_INFO_AFTER_LAST: internal
3056 * @NL80211_STA_INFO_MAX: highest possible station info attribute3078 * @NL80211_STA_INFO_MAX: highest possible station info attribute
3057 */3079 */
@@ -3091,13 +3113,19 @@ enum nl80211_sta_info { · 33 unmodified lines
3091 NL80211_STA_INFO_RX_DURATION,3113 NL80211_STA_INFO_RX_DURATION,
3092 NL80211_STA_INFO_PAD,3114 NL80211_STA_INFO_PAD,
3093 NL80211_STA_INFO_ACK_SIGNAL,3115 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,
3095 3119
3096 /* keep last */3120 /* keep last */
3097 __NL80211_STA_INFO_AFTER_LAST,3121 __NL80211_STA_INFO_AFTER_LAST,
3098 NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 13122 NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1
3099};3123};
3100 3124
3125/* we renamed this - stay compatible */
3126#define NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG NL80211_STA_INFO_ACK_SIGNAL_AVG
3127
3128
3101/**3129/**
3102 * enum nl80211_tid_stats - per TID statistics attributes3130 * enum nl80211_tid_stats - per TID statistics attributes
3103 * @__NL80211_TID_STATS_INVALID: attribute number 0 is reserved3131 * @__NL80211_TID_STATS_INVALID: attribute number 0 is reserved
@@ -4338,7 +4366,7 @@ enum nl80211_txrate_gi { · 1234 unmodified lines
4338 * enum nl80211_band - Frequency band4366 * enum nl80211_band - Frequency band
4339 * @NL80211_BAND_2GHZ: 2.4 GHz ISM band4367 * @NL80211_BAND_2GHZ: 2.4 GHz ISM band
4340 * @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz)4368 * @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)
4342 * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace4370 * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
4343 * since newer kernel versions may support more bands4371 * since newer kernel versions may support more bands
4344 */4372 */
@@ -5213,9 +5241,8 @@ enum nl80211_feature_flags { · 868 unmodified lines
5213 * "radar detected" event.5241 * "radar detected" event.
5214 * @NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211: Driver supports sending and5242 * @NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211: Driver supports sending and
5215 * receiving control port frames over nl80211 instead of the netdevice.5243 * receiving control port frames over nl80211 instead of the netdevice.
5216 * @NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT: This Driver support data ack5244 * @NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT: This driver/device supports
5217 * rssi if firmware support, this flag is to intimate about ack rssi5245 * (average) ACK signal strength reporting.
5218 * support to nl80211.
5219 * @NL80211_EXT_FEATURE_TXQS: Driver supports FQ-CoDel-enabled intermediate5246 * @NL80211_EXT_FEATURE_TXQS: Driver supports FQ-CoDel-enabled intermediate
5220 * TXQs.5247 * TXQs.
5221 * @NL80211_EXT_FEATURE_SCAN_RANDOM_SN: Driver/device supports randomizing the5248 * @NL80211_EXT_FEATURE_SCAN_RANDOM_SN: Driver/device supports randomizing the
@@ -5223,6 +5250,13 @@ enum nl80211_feature_flags { · 1 unmodified line
5223 * @NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT: Driver/device can omit all data5250 * @NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT: Driver/device can omit all data
5224 * except for supported rates from the probe request content if requested5251 * except for supported rates from the probe request content if requested
5225 * by the %NL80211_SCAN_FLAG_MIN_PREQ_CONTENT flag.5252 * 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.
5226 *5260 *
5227 * @NUM_NL80211_EXT_FEATURES: number of extended features.5261 * @NUM_NL80211_EXT_FEATURES: number of extended features.
5228 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.5262 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
@@ -5255,10 +5289,14 @@ enum nl80211_ext_feature_index { · 26 unmodified lines
5255 NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN,5289 NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN,
5256 NL80211_EXT_FEATURE_DFS_OFFLOAD,5290 NL80211_EXT_FEATURE_DFS_OFFLOAD,
5257 NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211,5291 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,
5259 NL80211_EXT_FEATURE_TXQS,5295 NL80211_EXT_FEATURE_TXQS,
5260 NL80211_EXT_FEATURE_SCAN_RANDOM_SN,5296 NL80211_EXT_FEATURE_SCAN_RANDOM_SN,
5261 NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT,5297 NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT,
5298 NL80211_EXT_FEATURE_CAN_REPLACE_PTK0,
5299 NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER,
5262 5300
5263 /* add new features before the definition below */5301 /* add new features before the definition below */
5264 NUM_NL80211_EXT_FEATURES,5302 NUM_NL80211_EXT_FEATURES,
@@ -5798,4 +5836,74 @@ enum nl80211_external_auth_action { · 533 unmodified lines
5798 NL80211_EXTERNAL_AUTH_ABORT,5836 NL80211_EXTERNAL_AUTH_ABORT,
5799};5837};
5800 5838
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 */
5851enum 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 */
5891enum 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
5801#endif /* __LINUX_NL80211_H */5909#endif /* __LINUX_NL80211_H */
include/uapi/linux/pkt_cls.h+2−0
@@ -483,6 +483,8 @@ enum { · 482 unmodified lines
483 TCA_FLOWER_KEY_ENC_OPTS,483 TCA_FLOWER_KEY_ENC_OPTS,
484 TCA_FLOWER_KEY_ENC_OPTS_MASK,484 TCA_FLOWER_KEY_ENC_OPTS_MASK,
485 485
486 TCA_FLOWER_IN_HW_COUNT,
487
486 __TCA_FLOWER_MAX,488 __TCA_FLOWER_MAX,
487};489};
488 490
include/uapi/linux/pkt_sched.h+49−3
@@ -395,9 +395,9 @@ enum { · 394 unmodified lines
395struct tc_htb_xstats {395struct tc_htb_xstats {
396 __u32 lends;396 __u32 lends;
397 __u32 borrows;397 __u32 borrows;
398 __u32 giants; /* too big packets (rate will not be accurate) */398 __u32 giants; /* unused since 'Make HTB scheduler work with TSO.' */
399 __u32 tokens;399 __s32 tokens;
400 __u32 ctokens;400 __s32 ctokens;
401};401};
402 402
403/* HFSC section */403/* HFSC section */
@@ -1084,4 +1084,50 @@ enum { · 680 unmodified lines
1084 CAKE_ATM_MAX1084 CAKE_ATM_MAX
1085};1085};
1086 1086
1087
1088/* TAPRIO */
1089enum {
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
1095enum {
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 */
1112enum {
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
1120enum {
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
1087#endif1133#endif