History

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

Pull networking updates from David Miller: "Highlights: 1) Support AES128-CCM ciphers in kTLS, from Vakul Garg. 2) Add fib_sync_mem to control the amount of dirty memory we allow to queue up between synchronize RCU calls, from David Ahern. 3) Make flow classifier more lockless, from Vlad Buslov. 4) Add PHY downshift support to aquantia driver, from Heiner Kallweit. 5) Add SKB cache for TCP rx and tx, from Eric Dumazet. This reduces contention on SLAB spinlocks in heavy RPC workloads. 6) Partial GSO offload support in XFRM, from Boris Pismenny. 7) Add fast link down support to ethtool, from Heiner Kallweit. 8) Use siphash for IP ID generator, from Eric Dumazet. 9) Pull nexthops even further out from ipv4/ipv6 routes and FIB entries, from David Ahern. 10) Move skb->xmit_more into a per-cpu variable, from Florian Westphal. 11) Improve eBPF verifier speed and increase maximum program size, from Alexei Starovoitov. 12) Eliminate per-bucket spinlocks in rhashtable, and instead use bit spinlocks. From Neil Brown. 13) Allow tunneling with GUE encap in ipvs, from Jacky Hu. 14) Improve link partner cap detection in generic PHY code, from Heiner Kallweit. 15) Add layer 2 encap support to bpf_skb_adjust_room(), from Alan Maguire. 16) Remove SKB list implementation assumptions in SCTP, your's truly. 17) Various cleanups, optimizations, and simplifications in r8169 driver. From Heiner Kallweit. 18) Add memory accounting on TX and RX path of SCTP, from Xin Long. 19) Switch PHY drivers over to use dynamic featue detection, from Heiner Kallweit. 20) Support flow steering without masking in dpaa2-eth, from Ioana Ciocoi. 21) Implement ndo_get_devlink_port in netdevsim driver, from Jiri Pirko. 22) Increase the strict parsing of current and future netlink attributes, also export such policies to userspace. From Johannes Berg. 23) Allow DSA tag drivers to be modular, from Andrew Lunn. 24) Remove legacy DSA probing support, also from Andrew Lunn. 25) Allow ll_temac driver to be used on non-x86 platforms, from Esben Haabendal. 26) Add a generic tracepoint for TX queue timeouts to ease debugging, from Cong Wang. 27) More indirect call optimizations, from Paolo Abeni" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1763 commits) cxgb4: Fix error path in cxgb4_init_module net: phy: improve pause mode reporting in phy_print_status dt-bindings: net: Fix a typo in the phy-mode list for ethernet bindings net: macb: Change interrupt and napi enable order in open net: ll_temac: Improve error message on error IRQ net/sched: remove block pointer from common offload structure net: ethernet: support of_get_mac_address new ERR_PTR error net: usb: smsc: fix warning reported by kbuild test robot staging: octeon-ethernet: Fix of_get_mac_address ERR_PTR check net: dsa: support of_get_mac_address new ERR_PTR error net: dsa: sja1105: Fix status initialization in sja1105_get_ethtool_stats vrf: sit mtu should not be updated when vrf netdev is the link net: dsa: Fix error cleanup path in dsa_init_module l2tp: Fix possible NULL pointer dereference taprio: add null check on sched_nest to avoid potential null pointer dereference net: mvpp2: cls: fix less than zero check on a u32 variable net_sched: sch_fq: handle non connected flows net_sched: sch_fq: do not assume EDT packets are ordered net: hns3: use devm_kcalloc when allocating desc_cb net: hns3: some cleanup for struct hns3_enet_ring ...

Linus Torvalds committed 7 years ago

Commit 80f23212 parents 82efe43 a9e41a51636 files · +126811 −26978Browse files

Showing the changes to include/uapi/linux (20 of 1636 files). Show all

Unified · Split

20 files
  1. include/uapi/linux/batadv_packet.h +0 −12
  2. include/uapi/linux/batman_adv.h +7 −18
  3. include/uapi/linux/bpf.h +284 −7
  4. include/uapi/linux/btf.h +28 −4
  5. include/uapi/linux/ethtool.h +11 −0
  6. include/uapi/linux/fou.h +6 −0
  7. include/uapi/linux/icmpv6.h +4 −0
  8. include/uapi/linux/if_ether.h +1 −0
  9. include/uapi/linux/if_tun.h +1 −0
  10. include/uapi/linux/if_vlan.h +5 −4
  11. include/uapi/linux/ip_vs.h +11 −0
  12. include/uapi/linux/netfilter/nf_tables.h +8 −0
  13. include/uapi/linux/nl80211.h +84 −2
  14. include/uapi/linux/openvswitch.h +46 −0
  15. include/uapi/linux/pkt_sched.h +13 −0
  16. include/uapi/linux/sockios.h +21 −0
  17. include/uapi/linux/tcp.h +27 −0
  18. include/uapi/linux/tipc.h +1 −0
  19. include/uapi/linux/tipc_netlink.h +2 −0
  20. include/uapi/linux/tls.h +15 −0
include/uapi/linux/batadv_packet.h+0−12
@@ -2,18 +2,6 @@ · 1 unmodified line
2/* Copyright (C) 2007-2019 B.A.T.M.A.N. contributors:2/* Copyright (C) 2007-2019 B.A.T.M.A.N. contributors:
3 *3 *
4 * Marek Lindner, Simon Wunderlich4 * Marek Lindner, Simon Wunderlich
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of version 2 of the GNU General Public
8 * License as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, see <http://www.gnu.org/licenses/>.
17 */5 */
18 6
19#ifndef _UAPI_LINUX_BATADV_PACKET_H_7#ifndef _UAPI_LINUX_BATADV_PACKET_H_
include/uapi/linux/batman_adv.h+7−18
@@ -2,24 +2,6 @@ · 1 unmodified line
2/* Copyright (C) 2016-2019 B.A.T.M.A.N. contributors:2/* Copyright (C) 2016-2019 B.A.T.M.A.N. contributors:
3 *3 *
4 * Matthias Schiffer4 * Matthias Schiffer
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the "Software"),
8 * to deal in the Software without restriction, including without limitation
9 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 * and/or sell copies of the Software, and to permit persons to whom the
11 * Software is furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
23 */5 */
24 6
25#ifndef _UAPI_LINUX_BATMAN_ADV_H_7#ifndef _UAPI_LINUX_BATMAN_ADV_H_
@@ -491,6 +473,13 @@ enum batadv_nl_attrs { · 465 unmodified lines
491 */473 */
492 BATADV_ATTR_THROUGHPUT_OVERRIDE,474 BATADV_ATTR_THROUGHPUT_OVERRIDE,
493 475
476 /**
477 * @BATADV_ATTR_MULTICAST_FANOUT: defines the maximum number of packet
478 * copies that may be generated for a multicast-to-unicast conversion.
479 * Once this limit is exceeded distribution will fall back to broadcast.
480 */
481 BATADV_ATTR_MULTICAST_FANOUT,
482
494 /* add attributes above here, update the policy in netlink.c */483 /* add attributes above here, update the policy in netlink.c */
495 484
496 /**485 /**
include/uapi/linux/bpf.h+284−7
@@ -105,6 +105,7 @@ enum bpf_cmd { · 104 unmodified lines
105 BPF_BTF_GET_FD_BY_ID,105 BPF_BTF_GET_FD_BY_ID,
106 BPF_TASK_FD_QUERY,106 BPF_TASK_FD_QUERY,
107 BPF_MAP_LOOKUP_AND_DELETE_ELEM,107 BPF_MAP_LOOKUP_AND_DELETE_ELEM,
108 BPF_MAP_FREEZE,
108};109};
109 110
110enum bpf_map_type {111enum bpf_map_type {
@@ -132,6 +133,7 @@ enum bpf_map_type { · 21 unmodified lines
132 BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE,133 BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE,
133 BPF_MAP_TYPE_QUEUE,134 BPF_MAP_TYPE_QUEUE,
134 BPF_MAP_TYPE_STACK,135 BPF_MAP_TYPE_STACK,
136 BPF_MAP_TYPE_SK_STORAGE,
135};137};
136 138
137/* Note that tracing related programs such as139/* Note that tracing related programs such as
@@ -166,6 +168,8 @@ enum bpf_prog_type { · 28 unmodified lines
166 BPF_PROG_TYPE_LIRC_MODE2,168 BPF_PROG_TYPE_LIRC_MODE2,
167 BPF_PROG_TYPE_SK_REUSEPORT,169 BPF_PROG_TYPE_SK_REUSEPORT,
168 BPF_PROG_TYPE_FLOW_DISSECTOR,170 BPF_PROG_TYPE_FLOW_DISSECTOR,
171 BPF_PROG_TYPE_CGROUP_SYSCTL,
172 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE,
169};173};
170 174
171enum bpf_attach_type {175enum bpf_attach_type {
@@ -187,6 +191,7 @@ enum bpf_attach_type { · 15 unmodified lines
187 BPF_CGROUP_UDP6_SENDMSG,191 BPF_CGROUP_UDP6_SENDMSG,
188 BPF_LIRC_MODE2,192 BPF_LIRC_MODE2,
189 BPF_FLOW_DISSECTOR,193 BPF_FLOW_DISSECTOR,
194 BPF_CGROUP_SYSCTL,
190 __MAX_BPF_ATTACH_TYPE195 __MAX_BPF_ATTACH_TYPE
191};196};
192 197
@@ -255,8 +260,19 @@ enum bpf_attach_type { · 62 unmodified lines
255 */260 */
256#define BPF_F_ANY_ALIGNMENT (1U << 1)261#define BPF_F_ANY_ALIGNMENT (1U << 1)
257 262
258/* when bpf_ldimm64->src_reg == BPF_PSEUDO_MAP_FD, bpf_ldimm64->imm == fd */263/* When BPF ldimm64's insn[0].src_reg != 0 then this can have
264 * two extensions:
265 *
266 * insn[0].src_reg: BPF_PSEUDO_MAP_FD BPF_PSEUDO_MAP_VALUE
267 * insn[0].imm: map fd map fd
268 * insn[1].imm: 0 offset into value
269 * insn[0].off: 0 0
270 * insn[1].off: 0 0
271 * ldimm64 rewrite: address of map address of map[0]+offset
272 * verifier type: CONST_PTR_TO_MAP PTR_TO_MAP_VALUE
273 */
259#define BPF_PSEUDO_MAP_FD 1274#define BPF_PSEUDO_MAP_FD 1
275#define BPF_PSEUDO_MAP_VALUE 2
260 276
261/* when bpf_call->src_reg == BPF_PSEUDO_CALL, bpf_call->imm == pc-relative277/* when bpf_call->src_reg == BPF_PSEUDO_CALL, bpf_call->imm == pc-relative
262 * offset to another bpf function278 * offset to another bpf function
@@ -283,7 +299,7 @@ enum bpf_attach_type { · 20 unmodified lines
283 299
284#define BPF_OBJ_NAME_LEN 16U300#define BPF_OBJ_NAME_LEN 16U
285 301
286/* Flags for accessing BPF object */302/* Flags for accessing BPF object from syscall side. */
287#define BPF_F_RDONLY (1U << 3)303#define BPF_F_RDONLY (1U << 3)
288#define BPF_F_WRONLY (1U << 4)304#define BPF_F_WRONLY (1U << 4)
289 305
@@ -293,6 +309,10 @@ enum bpf_attach_type { · 3 unmodified lines
293/* Zero-initialize hash function seed. This should only be used for testing. */309/* Zero-initialize hash function seed. This should only be used for testing. */
294#define BPF_F_ZERO_SEED (1U << 6)310#define BPF_F_ZERO_SEED (1U << 6)
295 311
312/* Flags for accessing BPF object from program side. */
313#define BPF_F_RDONLY_PROG (1U << 7)
314#define BPF_F_WRONLY_PROG (1U << 8)
315
296/* flags for BPF_PROG_QUERY */316/* flags for BPF_PROG_QUERY */
297#define BPF_F_QUERY_EFFECTIVE (1U << 0)317#define BPF_F_QUERY_EFFECTIVE (1U << 0)
298 318
@@ -396,6 +416,13 @@ union bpf_attr { · 97 unmodified lines
396 __aligned_u64 data_out;416 __aligned_u64 data_out;
397 __u32 repeat;417 __u32 repeat;
398 __u32 duration;418 __u32 duration;
419 __u32 ctx_size_in; /* input: len of ctx_in */
420 __u32 ctx_size_out; /* input/output: len of ctx_out
421 * returns ENOSPC if ctx_out
422 * is too small.
423 */
424 __aligned_u64 ctx_in;
425 __aligned_u64 ctx_out;
399 } test;426 } test;
400 427
401 struct { /* anonymous struct used by BPF_*_GET_*_ID */428 struct { /* anonymous struct used by BPF_*_GET_*_ID */
@@ -1478,13 +1505,31 @@ union bpf_attr { · 1076 unmodified lines
1478 * Grow or shrink the room for data in the packet associated to1505 * Grow or shrink the room for data in the packet associated to
1479 * *skb* by *len_diff*, and according to the selected *mode*.1506 * *skb* by *len_diff*, and according to the selected *mode*.
1480 *1507 *
1481 * There is a single supported mode at this time:1508 * There are two supported modes at this time:
1509 *
1510 * * **BPF_ADJ_ROOM_MAC**: Adjust room at the mac layer
1511 * (room space is added or removed below the layer 2 header).
1482 *1512 *
1483 * * **BPF_ADJ_ROOM_NET**: Adjust room at the network layer1513 * * **BPF_ADJ_ROOM_NET**: Adjust room at the network layer
1484 * (room space is added or removed below the layer 3 header).1514 * (room space is added or removed below the layer 3 header).
1485 *1515 *
1486 * All values for *flags* are reserved for future usage, and must1516 * The following flags are supported at this time:
1487 * be left at zero.1517 *
1518 * * **BPF_F_ADJ_ROOM_FIXED_GSO**: Do not adjust gso_size.
1519 * Adjusting mss in this way is not allowed for datagrams.
1520 *
1521 * * **BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 **:
1522 * * **BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 **:
1523 * Any new space is reserved to hold a tunnel header.
1524 * Configure skb offsets and other fields accordingly.
1525 *
1526 * * **BPF_F_ADJ_ROOM_ENCAP_L4_GRE **:
1527 * * **BPF_F_ADJ_ROOM_ENCAP_L4_UDP **:
1528 * Use with ENCAP_L3 flags to further specify the tunnel type.
1529 *
1530 * * **BPF_F_ADJ_ROOM_ENCAP_L2(len) **:
1531 * Use with ENCAP_L3/L4 flags to further specify the tunnel
1532 * type; **len** is the length of the inner MAC header.
1488 *1533 *
1489 * A call to this helper is susceptible to change the underlaying1534 * A call to this helper is susceptible to change the underlaying
1490 * packet buffer. Therefore, at load time, all checks on pointers1535 * packet buffer. Therefore, at load time, all checks on pointers
@@ -1694,12 +1739,19 @@ union bpf_attr { · 203 unmodified lines
1694 * error if an eBPF program tries to set a callback that is not1739 * error if an eBPF program tries to set a callback that is not
1695 * supported in the current kernel.1740 * supported in the current kernel.
1696 *1741 *
1697 * The supported callback values that *argval* can combine are:1742 * *argval* is a flag array which can combine these flags:
1698 *1743 *
1699 * * **BPF_SOCK_OPS_RTO_CB_FLAG** (retransmission time out)1744 * * **BPF_SOCK_OPS_RTO_CB_FLAG** (retransmission time out)
1700 * * **BPF_SOCK_OPS_RETRANS_CB_FLAG** (retransmission)1745 * * **BPF_SOCK_OPS_RETRANS_CB_FLAG** (retransmission)
1701 * * **BPF_SOCK_OPS_STATE_CB_FLAG** (TCP state change)1746 * * **BPF_SOCK_OPS_STATE_CB_FLAG** (TCP state change)
1702 *1747 *
1748 * Therefore, this function can be used to clear a callback flag by
1749 * setting the appropriate bit to zero. e.g. to disable the RTO
1750 * callback:
1751 *
1752 * **bpf_sock_ops_cb_flags_set(bpf_sock,**
1753 * **bpf_sock->bpf_sock_ops_cb_flags & ~BPF_SOCK_OPS_RTO_CB_FLAG)**
1754 *
1703 * Here are some examples of where one could call such eBPF1755 * Here are some examples of where one could call such eBPF
1704 * program:1756 * program:
1705 *1757 *
@@ -2431,6 +2483,190 @@ union bpf_attr { · 725 unmodified lines
2431 * Return2483 * Return
2432 * A **struct bpf_sock** pointer on success, or **NULL** in2484 * A **struct bpf_sock** pointer on success, or **NULL** in
2433 * case of failure.2485 * case of failure.
2486 *
2487 * struct bpf_sock *bpf_skc_lookup_tcp(void *ctx, struct bpf_sock_tuple *tuple, u32 tuple_size, u64 netns, u64 flags)
2488 * Description
2489 * Look for TCP socket matching *tuple*, optionally in a child
2490 * network namespace *netns*. The return value must be checked,
2491 * and if non-**NULL**, released via **bpf_sk_release**\ ().
2492 *
2493 * This function is identical to bpf_sk_lookup_tcp, except that it
2494 * also returns timewait or request sockets. Use bpf_sk_fullsock
2495 * or bpf_tcp_socket to access the full structure.
2496 *
2497 * This helper is available only if the kernel was compiled with
2498 * **CONFIG_NET** configuration option.
2499 * Return
2500 * Pointer to **struct bpf_sock**, or **NULL** in case of failure.
2501 * For sockets with reuseport option, the **struct bpf_sock**
2502 * result is from **reuse->socks**\ [] using the hash of the tuple.
2503 *
2504 * int bpf_tcp_check_syncookie(struct bpf_sock *sk, void *iph, u32 iph_len, struct tcphdr *th, u32 th_len)
2505 * Description
2506 * Check whether iph and th contain a valid SYN cookie ACK for
2507 * the listening socket in sk.
2508 *
2509 * iph points to the start of the IPv4 or IPv6 header, while
2510 * iph_len contains sizeof(struct iphdr) or sizeof(struct ip6hdr).
2511 *
2512 * th points to the start of the TCP header, while th_len contains
2513 * sizeof(struct tcphdr).
2514 *
2515 * Return
2516 * 0 if iph and th are a valid SYN cookie ACK, or a negative error
2517 * otherwise.
2518 *
2519 * int bpf_sysctl_get_name(struct bpf_sysctl *ctx, char *buf, size_t buf_len, u64 flags)
2520 * Description
2521 * Get name of sysctl in /proc/sys/ and copy it into provided by
2522 * program buffer *buf* of size *buf_len*.
2523 *
2524 * The buffer is always NUL terminated, unless it's zero-sized.
2525 *
2526 * If *flags* is zero, full name (e.g. "net/ipv4/tcp_mem") is
2527 * copied. Use **BPF_F_SYSCTL_BASE_NAME** flag to copy base name
2528 * only (e.g. "tcp_mem").
2529 * Return
2530 * Number of character copied (not including the trailing NUL).
2531 *
2532 * **-E2BIG** if the buffer wasn't big enough (*buf* will contain
2533 * truncated name in this case).
2534 *
2535 * int bpf_sysctl_get_current_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len)
2536 * Description
2537 * Get current value of sysctl as it is presented in /proc/sys
2538 * (incl. newline, etc), and copy it as a string into provided
2539 * by program buffer *buf* of size *buf_len*.
2540 *
2541 * The whole value is copied, no matter what file position user
2542 * space issued e.g. sys_read at.
2543 *
2544 * The buffer is always NUL terminated, unless it's zero-sized.
2545 * Return
2546 * Number of character copied (not including the trailing NUL).
2547 *
2548 * **-E2BIG** if the buffer wasn't big enough (*buf* will contain
2549 * truncated name in this case).
2550 *
2551 * **-EINVAL** if current value was unavailable, e.g. because
2552 * sysctl is uninitialized and read returns -EIO for it.
2553 *
2554 * int bpf_sysctl_get_new_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len)
2555 * Description
2556 * Get new value being written by user space to sysctl (before
2557 * the actual write happens) and copy it as a string into
2558 * provided by program buffer *buf* of size *buf_len*.
2559 *
2560 * User space may write new value at file position > 0.
2561 *
2562 * The buffer is always NUL terminated, unless it's zero-sized.
2563 * Return
2564 * Number of character copied (not including the trailing NUL).
2565 *
2566 * **-E2BIG** if the buffer wasn't big enough (*buf* will contain
2567 * truncated name in this case).
2568 *
2569 * **-EINVAL** if sysctl is being read.
2570 *
2571 * int bpf_sysctl_set_new_value(struct bpf_sysctl *ctx, const char *buf, size_t buf_len)
2572 * Description
2573 * Override new value being written by user space to sysctl with
2574 * value provided by program in buffer *buf* of size *buf_len*.
2575 *
2576 * *buf* should contain a string in same form as provided by user
2577 * space on sysctl write.
2578 *
2579 * User space may write new value at file position > 0. To override
2580 * the whole sysctl value file position should be set to zero.
2581 * Return
2582 * 0 on success.
2583 *
2584 * **-E2BIG** if the *buf_len* is too big.
2585 *
2586 * **-EINVAL** if sysctl is being read.
2587 *
2588 * int bpf_strtol(const char *buf, size_t buf_len, u64 flags, long *res)
2589 * Description
2590 * Convert the initial part of the string from buffer *buf* of
2591 * size *buf_len* to a long integer according to the given base
2592 * and save the result in *res*.
2593 *
2594 * The string may begin with an arbitrary amount of white space
2595 * (as determined by isspace(3)) followed by a single optional '-'
2596 * sign.
2597 *
2598 * Five least significant bits of *flags* encode base, other bits
2599 * are currently unused.
2600 *
2601 * Base must be either 8, 10, 16 or 0 to detect it automatically
2602 * similar to user space strtol(3).
2603 * Return
2604 * Number of characters consumed on success. Must be positive but
2605 * no more than buf_len.
2606 *
2607 * **-EINVAL** if no valid digits were found or unsupported base
2608 * was provided.
2609 *
2610 * **-ERANGE** if resulting value was out of range.
2611 *
2612 * int bpf_strtoul(const char *buf, size_t buf_len, u64 flags, unsigned long *res)
2613 * Description
2614 * Convert the initial part of the string from buffer *buf* of
2615 * size *buf_len* to an unsigned long integer according to the
2616 * given base and save the result in *res*.
2617 *
2618 * The string may begin with an arbitrary amount of white space
2619 * (as determined by isspace(3)).
2620 *
2621 * Five least significant bits of *flags* encode base, other bits
2622 * are currently unused.
2623 *
2624 * Base must be either 8, 10, 16 or 0 to detect it automatically
2625 * similar to user space strtoul(3).
2626 * Return
2627 * Number of characters consumed on success. Must be positive but
2628 * no more than buf_len.
2629 *
2630 * **-EINVAL** if no valid digits were found or unsupported base
2631 * was provided.
2632 *
2633 * **-ERANGE** if resulting value was out of range.
2634 *
2635 * void *bpf_sk_storage_get(struct bpf_map *map, struct bpf_sock *sk, void *value, u64 flags)
2636 * Description
2637 * Get a bpf-local-storage from a sk.
2638 *
2639 * Logically, it could be thought of getting the value from
2640 * a *map* with *sk* as the **key**. From this
2641 * perspective, the usage is not much different from
2642 * **bpf_map_lookup_elem(map, &sk)** except this
2643 * helper enforces the key must be a **bpf_fullsock()**
2644 * and the map must be a BPF_MAP_TYPE_SK_STORAGE also.
2645 *
2646 * Underneath, the value is stored locally at *sk* instead of
2647 * the map. The *map* is used as the bpf-local-storage **type**.
2648 * The bpf-local-storage **type** (i.e. the *map*) is searched
2649 * against all bpf-local-storages residing at sk.
2650 *
2651 * An optional *flags* (BPF_SK_STORAGE_GET_F_CREATE) can be
2652 * used such that a new bpf-local-storage will be
2653 * created if one does not exist. *value* can be used
2654 * together with BPF_SK_STORAGE_GET_F_CREATE to specify
2655 * the initial value of a bpf-local-storage. If *value* is
2656 * NULL, the new bpf-local-storage will be zero initialized.
2657 * Return
2658 * A bpf-local-storage pointer is returned on success.
2659 *
2660 * **NULL** if not found or there was an error in adding
2661 * a new bpf-local-storage.
2662 *
2663 * int bpf_sk_storage_delete(struct bpf_map *map, struct bpf_sock *sk)
2664 * Description
2665 * Delete a bpf-local-storage from a sk.
2666 * Return
2667 * 0 on success.
2668 *
2669 * **-ENOENT** if the bpf-local-storage cannot be found.
2434 */2670 */
2435#define __BPF_FUNC_MAPPER(FN) \2671#define __BPF_FUNC_MAPPER(FN) \
2436 FN(unspec), \2672 FN(unspec), \
@@ -2531,7 +2767,17 @@ union bpf_attr { · 94 unmodified lines
2531 FN(sk_fullsock), \2767 FN(sk_fullsock), \
2532 FN(tcp_sock), \2768 FN(tcp_sock), \
2533 FN(skb_ecn_set_ce), \2769 FN(skb_ecn_set_ce), \
2534 FN(get_listener_sock),2770 FN(get_listener_sock), \
2771 FN(skc_lookup_tcp), \
2772 FN(tcp_check_syncookie), \
2773 FN(sysctl_get_name), \
2774 FN(sysctl_get_current_value), \
2775 FN(sysctl_get_new_value), \
2776 FN(sysctl_set_new_value), \
2777 FN(strtol), \
2778 FN(strtoul), \
2779 FN(sk_storage_get), \
2780 FN(sk_storage_delete),
2535 2781
2536/* integer value in 'imm' field of BPF_CALL instruction selects which helper2782/* integer value in 'imm' field of BPF_CALL instruction selects which helper
2537 * function eBPF program intends to call2783 * function eBPF program intends to call
@@ -2590,9 +2836,30 @@ enum bpf_func_id { · 52 unmodified lines
2590/* Current network namespace */2836/* Current network namespace */
2591#define BPF_F_CURRENT_NETNS (-1L)2837#define BPF_F_CURRENT_NETNS (-1L)
2592 2838
2839/* BPF_FUNC_skb_adjust_room flags. */
2840#define BPF_F_ADJ_ROOM_FIXED_GSO (1ULL << 0)
2841
2842#define BPF_ADJ_ROOM_ENCAP_L2_MASK 0xff
2843#define BPF_ADJ_ROOM_ENCAP_L2_SHIFT 56
2844
2845#define BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 (1ULL << 1)
2846#define BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 (1ULL << 2)
2847#define BPF_F_ADJ_ROOM_ENCAP_L4_GRE (1ULL << 3)
2848#define BPF_F_ADJ_ROOM_ENCAP_L4_UDP (1ULL << 4)
2849#define BPF_F_ADJ_ROOM_ENCAP_L2(len) (((__u64)len & \
2850 BPF_ADJ_ROOM_ENCAP_L2_MASK) \
2851 << BPF_ADJ_ROOM_ENCAP_L2_SHIFT)
2852
2853/* BPF_FUNC_sysctl_get_name flags. */
2854#define BPF_F_SYSCTL_BASE_NAME (1ULL << 0)
2855
2856/* BPF_FUNC_sk_storage_get flags */
2857#define BPF_SK_STORAGE_GET_F_CREATE (1ULL << 0)
2858
2593/* Mode for BPF_FUNC_skb_adjust_room helper. */2859/* Mode for BPF_FUNC_skb_adjust_room helper. */
2594enum bpf_adj_room_mode {2860enum bpf_adj_room_mode {
2595 BPF_ADJ_ROOM_NET,2861 BPF_ADJ_ROOM_NET,
2862 BPF_ADJ_ROOM_MAC,
2596};2863};
2597 2864
2598/* Mode for BPF_FUNC_skb_load_bytes_relative helper. */2865/* Mode for BPF_FUNC_skb_load_bytes_relative helper. */
@@ -3218,4 +3485,14 @@ struct bpf_line_info { · 619 unmodified lines
3218struct bpf_spin_lock {3485struct bpf_spin_lock {
3219 __u32 val;3486 __u32 val;
3220};3487};
3488
3489struct bpf_sysctl {
3490 __u32 write; /* Sysctl is being read (= 0) or written (= 1).
3491 * Allows 1,2,4-byte read, but no write.
3492 */
3493 __u32 file_pos; /* Sysctl file position to read from, write to.
3494 * Allows 1,2,4-byte read an 4-byte write.
3495 */
3496};
3497
3221#endif /* _UAPI__LINUX_BPF_H__ */3498#endif /* _UAPI__LINUX_BPF_H__ */
include/uapi/linux/btf.h+28−4
@@ -39,11 +39,11 @@ struct btf_type { · 38 unmodified lines
39 * struct, union and fwd39 * struct, union and fwd
40 */40 */
41 __u32 info;41 __u32 info;
42 /* "size" is used by INT, ENUM, STRUCT and UNION.42 /* "size" is used by INT, ENUM, STRUCT, UNION and DATASEC.
43 * "size" tells the size of the type it is describing.43 * "size" tells the size of the type it is describing.
44 *44 *
45 * "type" is used by PTR, TYPEDEF, VOLATILE, CONST, RESTRICT,45 * "type" is used by PTR, TYPEDEF, VOLATILE, CONST, RESTRICT,
46 * FUNC and FUNC_PROTO.46 * FUNC, FUNC_PROTO and VAR.
47 * "type" is a type_id referring to another type.47 * "type" is a type_id referring to another type.
48 */48 */
49 union {49 union {
@@ -70,8 +70,10 @@ struct btf_type { · 20 unmodified lines
70#define BTF_KIND_RESTRICT 11 /* Restrict */70#define BTF_KIND_RESTRICT 11 /* Restrict */
71#define BTF_KIND_FUNC 12 /* Function */71#define BTF_KIND_FUNC 12 /* Function */
72#define BTF_KIND_FUNC_PROTO 13 /* Function Proto */72#define BTF_KIND_FUNC_PROTO 13 /* Function Proto */
73#define BTF_KIND_MAX 1373#define BTF_KIND_VAR 14 /* Variable */
74#define NR_BTF_KINDS 1474#define BTF_KIND_DATASEC 15 /* Section */
75#define BTF_KIND_MAX BTF_KIND_DATASEC
76#define NR_BTF_KINDS (BTF_KIND_MAX + 1)
75 77
76/* For some specific BTF_KIND, "struct btf_type" is immediately78/* For some specific BTF_KIND, "struct btf_type" is immediately
77 * followed by extra data.79 * followed by extra data.
@@ -138,4 +140,26 @@ struct btf_param { · 60 unmodified lines
138 __u32 type;140 __u32 type;
139};141};
140 142
143enum {
144 BTF_VAR_STATIC = 0,
145 BTF_VAR_GLOBAL_ALLOCATED,
146};
147
148/* BTF_KIND_VAR is followed by a single "struct btf_var" to describe
149 * additional information related to the variable such as its linkage.
150 */
151struct btf_var {
152 __u32 linkage;
153};
154
155/* BTF_KIND_DATASEC is followed by multiple "struct btf_var_secinfo"
156 * to describe all BTF_KIND_VAR types it contains along with it's
157 * in-section offset as well as size.
158 */
159struct btf_var_secinfo {
160 __u32 type;
161 __u32 offset;
162 __u32 size;
163};
164
141#endif /* _UAPI__LINUX_BTF_H__ */165#endif /* _UAPI__LINUX_BTF_H__ */
include/uapi/linux/ethtool.h+11−0
@@ -252,9 +252,17 @@ struct ethtool_tunable { · 251 unmodified lines
252#define DOWNSHIFT_DEV_DEFAULT_COUNT 0xff252#define DOWNSHIFT_DEV_DEFAULT_COUNT 0xff
253#define DOWNSHIFT_DEV_DISABLE 0253#define DOWNSHIFT_DEV_DISABLE 0
254 254
255/* Time in msecs after which link is reported as down
256 * 0 = lowest time supported by the PHY
257 * 0xff = off, link down detection according to standard
258 */
259#define ETHTOOL_PHY_FAST_LINK_DOWN_ON 0
260#define ETHTOOL_PHY_FAST_LINK_DOWN_OFF 0xff
261
255enum phy_tunable_id {262enum phy_tunable_id {
256 ETHTOOL_PHY_ID_UNSPEC,263 ETHTOOL_PHY_ID_UNSPEC,
257 ETHTOOL_PHY_DOWNSHIFT,264 ETHTOOL_PHY_DOWNSHIFT,
265 ETHTOOL_PHY_FAST_LINK_DOWN,
258 /*266 /*
259 * Add your fresh new phy tunable attribute above and remember to update267 * Add your fresh new phy tunable attribute above and remember to update
260 * phy_tunable_strings[] in net/core/ethtool.c268 * phy_tunable_strings[] in net/core/ethtool.c
@@ -1704,6 +1712,9 @@ static inline int ethtool_validate_duplex(__u8 duplex) · 1443 unmodified lines
1704#define ETH_MODULE_SFF_8436 0x41712#define ETH_MODULE_SFF_8436 0x4
1705#define ETH_MODULE_SFF_8436_LEN 2561713#define ETH_MODULE_SFF_8436_LEN 256
1706 1714
1715#define ETH_MODULE_SFF_8636_MAX_LEN 640
1716#define ETH_MODULE_SFF_8436_MAX_LEN 640
1717
1707/* Reset flags */1718/* Reset flags */
1708/* The reset() operation must clear the flags for the components which1719/* The reset() operation must clear the flags for the components which
1709 * were actually reset. On successful return, the flags indicate the1720 * were actually reset. On successful return, the flags indicate the
include/uapi/linux/fou.h+6−0
@@ -16,6 +16,12 @@ enum { · 15 unmodified lines
16 FOU_ATTR_IPPROTO, /* u8 */16 FOU_ATTR_IPPROTO, /* u8 */
17 FOU_ATTR_TYPE, /* u8 */17 FOU_ATTR_TYPE, /* u8 */
18 FOU_ATTR_REMCSUM_NOPARTIAL, /* flag */18 FOU_ATTR_REMCSUM_NOPARTIAL, /* flag */
19 FOU_ATTR_LOCAL_V4, /* u32 */
20 FOU_ATTR_LOCAL_V6, /* in6_addr */
21 FOU_ATTR_PEER_V4, /* u32 */
22 FOU_ATTR_PEER_V6, /* in6_addr */
23 FOU_ATTR_PEER_PORT, /* u16 */
24 FOU_ATTR_IFINDEX, /* s32 */
19 25
20 __FOU_ATTR_MAX,26 __FOU_ATTR_MAX,
21};27};
include/uapi/linux/icmpv6.h+4−0
@@ -90,6 +90,8 @@ struct icmp6hdr { · 89 unmodified lines
90#define ICMPV6_TIME_EXCEED 390#define ICMPV6_TIME_EXCEED 3
91#define ICMPV6_PARAMPROB 491#define ICMPV6_PARAMPROB 4
92 92
93#define ICMPV6_ERRMSG_MAX 127
94
93#define ICMPV6_INFOMSG_MASK 0x8095#define ICMPV6_INFOMSG_MASK 0x80
94 96
95#define ICMPV6_ECHO_REQUEST 12897#define ICMPV6_ECHO_REQUEST 128
@@ -110,6 +112,8 @@ struct icmp6hdr { · 14 unmodified lines
110 112
111#define ICMPV6_MRDISC_ADV 151113#define ICMPV6_MRDISC_ADV 151
112 114
115#define ICMPV6_MSG_MAX 255
116
113/*117/*
114 * Codes for Destination Unreachable118 * Codes for Destination Unreachable
115 */119 */
include/uapi/linux/if_ether.h+1−0
@@ -109,6 +109,7 @@ · 108 unmodified lines
109#define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */109#define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
110#define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */110#define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
111#define ETH_P_EDSA 0xDADA /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */111#define ETH_P_EDSA 0xDADA /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */
112#define ETH_P_DSA_8021Q 0xDADB /* Fake VLAN Header for DSA [ NOT AN OFFICIALLY REGISTERED ID ] */
112#define ETH_P_IFE 0xED3E /* ForCES inter-FE LFB type */113#define ETH_P_IFE 0xED3E /* ForCES inter-FE LFB type */
113#define ETH_P_AF_IUCV 0xFBFB /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */114#define ETH_P_AF_IUCV 0xFBFB /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */
114 115
include/uapi/linux/if_tun.h+1−0
@@ -60,6 +60,7 @@ · 59 unmodified lines
60#define TUNSETSTEERINGEBPF _IOR('T', 224, int)60#define TUNSETSTEERINGEBPF _IOR('T', 224, int)
61#define TUNSETFILTEREBPF _IOR('T', 225, int)61#define TUNSETFILTEREBPF _IOR('T', 225, int)
62#define TUNSETCARRIER _IOW('T', 226, int)62#define TUNSETCARRIER _IOW('T', 226, int)
63#define TUNGETDEVNETNS _IO('T', 227)
63 64
64/* TUNSETIFF ifr flags */65/* TUNSETIFF ifr flags */
65#define IFF_TUN 0x000166#define IFF_TUN 0x0001
include/uapi/linux/if_vlan.h+5−4
@@ -32,10 +32,11 @@ enum vlan_ioctl_cmds { · 31 unmodified lines
32};32};
33 33
34enum vlan_flags {34enum vlan_flags {
35 VLAN_FLAG_REORDER_HDR = 0x1,35 VLAN_FLAG_REORDER_HDR = 0x1,
36 VLAN_FLAG_GVRP = 0x2,36 VLAN_FLAG_GVRP = 0x2,
37 VLAN_FLAG_LOOSE_BINDING = 0x4,37 VLAN_FLAG_LOOSE_BINDING = 0x4,
38 VLAN_FLAG_MVRP = 0x8,38 VLAN_FLAG_MVRP = 0x8,
39 VLAN_FLAG_BRIDGE_BINDING = 0x10,
39};40};
40 41
41enum vlan_name_types {42enum vlan_name_types {
include/uapi/linux/ip_vs.h+11−0
@@ -124,6 +124,13 @@ · 123 unmodified lines
124 124
125#define IP_VS_PEDATA_MAXLEN 255125#define IP_VS_PEDATA_MAXLEN 255
126 126
127/* Tunnel types */
128enum {
129 IP_VS_CONN_F_TUNNEL_TYPE_IPIP = 0, /* IPIP */
130 IP_VS_CONN_F_TUNNEL_TYPE_GUE, /* GUE */
131 IP_VS_CONN_F_TUNNEL_TYPE_MAX,
132};
133
127/*134/*
128 * The struct ip_vs_service_user and struct ip_vs_dest_user are135 * The struct ip_vs_service_user and struct ip_vs_dest_user are
129 * used to set IPVS rules through setsockopt.136 * used to set IPVS rules through setsockopt.
@@ -392,6 +399,10 @@ enum { · 262 unmodified lines
392 399
393 IPVS_DEST_ATTR_STATS64, /* nested attribute for dest stats */400 IPVS_DEST_ATTR_STATS64, /* nested attribute for dest stats */
394 401
402 IPVS_DEST_ATTR_TUN_TYPE, /* tunnel type */
403
404 IPVS_DEST_ATTR_TUN_PORT, /* tunnel port */
405
395 __IPVS_DEST_ATTR_MAX,406 __IPVS_DEST_ATTR_MAX,
396};407};
397 408
include/uapi/linux/netfilter/nf_tables.h+8−0
@@ -967,6 +967,7 @@ enum nft_socket_keys { · 966 unmodified lines
967 * @NFT_CT_SRC_IP6: conntrack layer 3 protocol source (IPv6 address)967 * @NFT_CT_SRC_IP6: conntrack layer 3 protocol source (IPv6 address)
968 * @NFT_CT_DST_IP6: conntrack layer 3 protocol destination (IPv6 address)968 * @NFT_CT_DST_IP6: conntrack layer 3 protocol destination (IPv6 address)
969 * @NFT_CT_TIMEOUT: connection tracking timeout policy assigned to conntrack969 * @NFT_CT_TIMEOUT: connection tracking timeout policy assigned to conntrack
970 * @NFT_CT_ID: conntrack id
970 */971 */
971enum nft_ct_keys {972enum nft_ct_keys {
972 NFT_CT_STATE,973 NFT_CT_STATE,
@@ -993,6 +994,7 @@ enum nft_ct_keys { · 20 unmodified lines
993 NFT_CT_SRC_IP6,994 NFT_CT_SRC_IP6,
994 NFT_CT_DST_IP6,995 NFT_CT_DST_IP6,
995 NFT_CT_TIMEOUT,996 NFT_CT_TIMEOUT,
997 NFT_CT_ID,
996 __NFT_CT_MAX998 __NFT_CT_MAX
997};999};
998#define NFT_CT_MAX (__NFT_CT_MAX - 1)1000#define NFT_CT_MAX (__NFT_CT_MAX - 1)
@@ -1522,15 +1524,21 @@ enum nft_flowtable_hook_attributes { · 523 unmodified lines
1522 *1524 *
1523 * @NFTA_OSF_DREG: destination register (NLA_U32: nft_registers)1525 * @NFTA_OSF_DREG: destination register (NLA_U32: nft_registers)
1524 * @NFTA_OSF_TTL: Value of the TTL osf option (NLA_U8)1526 * @NFTA_OSF_TTL: Value of the TTL osf option (NLA_U8)
1527 * @NFTA_OSF_FLAGS: flags (NLA_U32)
1525 */1528 */
1526enum nft_osf_attributes {1529enum nft_osf_attributes {
1527 NFTA_OSF_UNSPEC,1530 NFTA_OSF_UNSPEC,
1528 NFTA_OSF_DREG,1531 NFTA_OSF_DREG,
1529 NFTA_OSF_TTL,1532 NFTA_OSF_TTL,
1533 NFTA_OSF_FLAGS,
1530 __NFTA_OSF_MAX,1534 __NFTA_OSF_MAX,
1531};1535};
1532#define NFTA_OSF_MAX (__NFTA_OSF_MAX - 1)1536#define NFTA_OSF_MAX (__NFTA_OSF_MAX - 1)
1533 1537
1538enum nft_osf_flags {
1539 NFT_OSF_F_VERSION = (1 << 0),
1540};
1541
1534/**1542/**
1535 * enum nft_device_attributes - nf_tables device netlink attributes1543 * enum nft_device_attributes - nf_tables device netlink attributes
1536 *1544 *
include/uapi/linux/nl80211.h+84−2
@@ -11,7 +11,7 @@ · 10 unmodified lines
11 * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>11 * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
12 * Copyright 2008 Colin McCabe <colin@cozybit.com>12 * Copyright 2008 Colin McCabe <colin@cozybit.com>
13 * Copyright 2015-2017 Intel Deutschland GmbH13 * Copyright 2015-2017 Intel Deutschland GmbH
14 * Copyright (C) 2018 Intel Corporation14 * Copyright (C) 2018-2019 Intel Corporation
15 *15 *
16 * Permission to use, copy, modify, and/or distribute this software for any16 * Permission to use, copy, modify, and/or distribute this software for any
17 * purpose with or without fee is hereby granted, provided that the above17 * purpose with or without fee is hereby granted, provided that the above
@@ -1065,6 +1065,26 @@ · 1047 unmodified lines
1065 * indicated by %NL80211_ATTR_WIPHY_FREQ and other attributes1065 * indicated by %NL80211_ATTR_WIPHY_FREQ and other attributes
1066 * determining the width and type.1066 * determining the width and type.
1067 *1067 *
1068 * @NL80211_CMD_UPDATE_OWE_INFO: This interface allows the host driver to
1069 * offload OWE processing to user space. This intends to support
1070 * OWE AKM by the host drivers that implement SME but rely
1071 * on the user space for the cryptographic/DH IE processing in AP mode.
1072 *
1073 * @NL80211_CMD_PROBE_MESH_LINK: The requirement for mesh link metric
1074 * refreshing, is that from one mesh point we be able to send some data
1075 * frames to other mesh points which are not currently selected as a
1076 * primary traffic path, but which are only 1 hop away. The absence of
1077 * the primary path to the chosen node makes it necessary to apply some
1078 * form of marking on a chosen packet stream so that the packets can be
1079 * properly steered to the selected node for testing, and not by the
1080 * regular mesh path lookup. Further, the packets must be of type data
1081 * so that the rate control (often embedded in firmware) is used for
1082 * rate selection.
1083 *
1084 * Here attribute %NL80211_ATTR_MAC is used to specify connected mesh
1085 * peer MAC address and %NL80211_ATTR_FRAME is used to specify the frame
1086 * content. The frame is ethernet data.
1087 *
1068 * @NL80211_CMD_MAX: highest used command number1088 * @NL80211_CMD_MAX: highest used command number
1069 * @__NL80211_CMD_AFTER_LAST: internal use1089 * @__NL80211_CMD_AFTER_LAST: internal use
1070 */1090 */
@@ -1285,6 +1305,10 @@ enum nl80211_commands { · 214 unmodified lines
1285 1305
1286 NL80211_CMD_NOTIFY_RADAR,1306 NL80211_CMD_NOTIFY_RADAR,
1287 1307
1308 NL80211_CMD_UPDATE_OWE_INFO,
1309
1310 NL80211_CMD_PROBE_MESH_LINK,
1311
1288 /* add new commands above here */1312 /* add new commands above here */
1289 1313
1290 /* used to define NL80211_CMD_MAX below */1314 /* used to define NL80211_CMD_MAX below */
@@ -2308,6 +2332,15 @@ enum nl80211_commands { · 1017 unmodified lines
2308 * @NL80211_ATTR_AIRTIME_WEIGHT: Station's weight when scheduled by the airtime2332 * @NL80211_ATTR_AIRTIME_WEIGHT: Station's weight when scheduled by the airtime
2309 * scheduler.2333 * scheduler.
2310 *2334 *
2335 * @NL80211_ATTR_STA_TX_POWER_SETTING: Transmit power setting type (u8) for
2336 * station associated with the AP. See &enum nl80211_tx_power_setting for
2337 * possible values.
2338 * @NL80211_ATTR_STA_TX_POWER: Transmit power level (s16) in dBm units. This
2339 * allows to set Tx power for a station. If this attribute is not included,
2340 * the default per-interface tx power setting will be overriding. Driver
2341 * should be picking up the lowest tx power, either tx power per-interface
2342 * or per-station.
2343 *
2311 * @NUM_NL80211_ATTR: total number of nl80211_attrs available2344 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
2312 * @NL80211_ATTR_MAX: highest attribute number currently defined2345 * @NL80211_ATTR_MAX: highest attribute number currently defined
2313 * @__NL80211_ATTR_AFTER_LAST: internal use2346 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2758,6 +2791,8 @@ enum nl80211_attrs { · 444 unmodified lines
2758 NL80211_ATTR_PEER_MEASUREMENTS,2791 NL80211_ATTR_PEER_MEASUREMENTS,
2759 2792
2760 NL80211_ATTR_AIRTIME_WEIGHT,2793 NL80211_ATTR_AIRTIME_WEIGHT,
2794 NL80211_ATTR_STA_TX_POWER_SETTING,
2795 NL80211_ATTR_STA_TX_POWER,
2761 2796
2762 /* add attributes here, update the policy in nl80211.c */2797 /* add attributes here, update the policy in nl80211.c */
2763 2798
@@ -2802,7 +2837,7 @@ enum nl80211_attrs { · 38 unmodified lines
2802 2837
2803#define NL80211_MAX_SUPP_RATES 322838#define NL80211_MAX_SUPP_RATES 32
2804#define NL80211_MAX_SUPP_HT_RATES 772839#define NL80211_MAX_SUPP_HT_RATES 77
2805#define NL80211_MAX_SUPP_REG_RULES 642840#define NL80211_MAX_SUPP_REG_RULES 128
2806#define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 02841#define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0
2807#define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 162842#define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16
2808#define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 242843#define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24
@@ -3139,6 +3174,7 @@ enum nl80211_sta_bss_param { · 330 unmodified lines
3139 * @NL80211_STA_INFO_TX_DURATION: aggregate PPDU duration for all frames3174 * @NL80211_STA_INFO_TX_DURATION: aggregate PPDU duration for all frames
3140 * sent to the station (u64, usec)3175 * sent to the station (u64, usec)
3141 * @NL80211_STA_INFO_AIRTIME_WEIGHT: current airtime weight for station (u16)3176 * @NL80211_STA_INFO_AIRTIME_WEIGHT: current airtime weight for station (u16)
3177 * @NL80211_STA_INFO_AIRTIME_LINK_METRIC: airtime link metric for mesh station
3142 * @__NL80211_STA_INFO_AFTER_LAST: internal3178 * @__NL80211_STA_INFO_AFTER_LAST: internal
3143 * @NL80211_STA_INFO_MAX: highest possible station info attribute3179 * @NL80211_STA_INFO_MAX: highest possible station info attribute
3144 */3180 */
@@ -3184,6 +3220,7 @@ enum nl80211_sta_info { · 39 unmodified lines
3184 NL80211_STA_INFO_CONNECTED_TO_GATE,3220 NL80211_STA_INFO_CONNECTED_TO_GATE,
3185 NL80211_STA_INFO_TX_DURATION,3221 NL80211_STA_INFO_TX_DURATION,
3186 NL80211_STA_INFO_AIRTIME_WEIGHT,3222 NL80211_STA_INFO_AIRTIME_WEIGHT,
3223 NL80211_STA_INFO_AIRTIME_LINK_METRIC,
3187 3224
3188 /* keep last */3225 /* keep last */
3189 __NL80211_STA_INFO_AFTER_LAST,3226 __NL80211_STA_INFO_AFTER_LAST,
@@ -3638,6 +3675,14 @@ enum nl80211_reg_rule_attr { · 448 unmodified lines
3638 * value as specified by &struct nl80211_bss_select_rssi_adjust.3675 * value as specified by &struct nl80211_bss_select_rssi_adjust.
3639 * @NL80211_SCHED_SCAN_MATCH_ATTR_BSSID: BSSID to be used for matching3676 * @NL80211_SCHED_SCAN_MATCH_ATTR_BSSID: BSSID to be used for matching
3640 * (this cannot be used together with SSID).3677 * (this cannot be used together with SSID).
3678 * @NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI: Nested attribute that carries the
3679 * band specific minimum rssi thresholds for the bands defined in
3680 * enum nl80211_band. The minimum rssi threshold value(s32) specific to a
3681 * band shall be encapsulated in attribute with type value equals to one
3682 * of the NL80211_BAND_* defined in enum nl80211_band. For example, the
3683 * minimum rssi threshold value for 2.4GHZ band shall be encapsulated
3684 * within an attribute of type NL80211_BAND_2GHZ. And one or more of such
3685 * attributes will be nested within this attribute.
3641 * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter3686 * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter
3642 * attribute number currently defined3687 * attribute number currently defined
3643 * @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use3688 * @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use
@@ -3650,6 +3695,7 @@ enum nl80211_sched_scan_match_attr { · 6 unmodified lines
3650 NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI,3695 NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI,
3651 NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST,3696 NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST,
3652 NL80211_SCHED_SCAN_MATCH_ATTR_BSSID,3697 NL80211_SCHED_SCAN_MATCH_ATTR_BSSID,
3698 NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI,
3653 3699
3654 /* keep last */3700 /* keep last */
3655 __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST,3701 __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST,
@@ -4134,6 +4180,27 @@ enum nl80211_channel_type { · 478 unmodified lines
4134 NL80211_CHAN_HT40PLUS4180 NL80211_CHAN_HT40PLUS
4135};4181};
4136 4182
4183/**
4184 * enum nl80211_key_mode - Key mode
4185 *
4186 * @NL80211_KEY_RX_TX: (Default)
4187 * Key can be used for Rx and Tx immediately
4188 *
4189 * The following modes can only be selected for unicast keys and when the
4190 * driver supports @NL80211_EXT_FEATURE_EXT_KEY_ID:
4191 *
4192 * @NL80211_KEY_NO_TX: Only allowed in combination with @NL80211_CMD_NEW_KEY:
4193 * Unicast key can only be used for Rx, Tx not allowed, yet
4194 * @NL80211_KEY_SET_TX: Only allowed in combination with @NL80211_CMD_SET_KEY:
4195 * The unicast key identified by idx and mac is cleared for Tx and becomes
4196 * the preferred Tx key for the station.
4197 */
4198enum nl80211_key_mode {
4199 NL80211_KEY_RX_TX,
4200 NL80211_KEY_NO_TX,
4201 NL80211_KEY_SET_TX
4202};
4203
4137/**4204/**
4138 * enum nl80211_chan_width - channel width definitions4205 * enum nl80211_chan_width - channel width definitions
4139 *4206 *
@@ -4377,6 +4444,9 @@ enum nl80211_key_default_types { · 237 unmodified lines
4377 * @NL80211_KEY_DEFAULT_TYPES: A nested attribute containing flags4444 * @NL80211_KEY_DEFAULT_TYPES: A nested attribute containing flags
4378 * attributes, specifying what a key should be set as default as.4445 * attributes, specifying what a key should be set as default as.
4379 * See &enum nl80211_key_default_types.4446 * See &enum nl80211_key_default_types.
4447 * @NL80211_KEY_MODE: the mode from enum nl80211_key_mode.
4448 * Defaults to @NL80211_KEY_RX_TX.
4449 *
4380 * @__NL80211_KEY_AFTER_LAST: internal4450 * @__NL80211_KEY_AFTER_LAST: internal
4381 * @NL80211_KEY_MAX: highest key attribute4451 * @NL80211_KEY_MAX: highest key attribute
4382 */4452 */
@@ -4390,6 +4460,7 @@ enum nl80211_key_attributes { · 7 unmodified lines
4390 NL80211_KEY_DEFAULT_MGMT,4460 NL80211_KEY_DEFAULT_MGMT,
4391 NL80211_KEY_TYPE,4461 NL80211_KEY_TYPE,
4392 NL80211_KEY_DEFAULT_TYPES,4462 NL80211_KEY_DEFAULT_TYPES,
4463 NL80211_KEY_MODE,
4393 4464
4394 /* keep last */4465 /* keep last */
4395 __NL80211_KEY_AFTER_LAST,4466 __NL80211_KEY_AFTER_LAST,
@@ -5335,6 +5406,8 @@ enum nl80211_feature_flags { · 939 unmodified lines
5335 * able to rekey an in-use key correctly. Userspace must not rekey PTK keys5406 * able to rekey an in-use key correctly. Userspace must not rekey PTK keys
5336 * if this flag is not set. Ignoring this can leak clear text packets and/or5407 * if this flag is not set. Ignoring this can leak clear text packets and/or
5337 * freeze the connection.5408 * freeze the connection.
5409 * @NL80211_EXT_FEATURE_EXT_KEY_ID: Driver supports "Extended Key ID for
5410 * Individually Addressed Frames" from IEEE802.11-2016.
5338 *5411 *
5339 * @NL80211_EXT_FEATURE_AIRTIME_FAIRNESS: Driver supports getting airtime5412 * @NL80211_EXT_FEATURE_AIRTIME_FAIRNESS: Driver supports getting airtime
5340 * fairness for transmitted packets and has enabled airtime fairness5413 * fairness for transmitted packets and has enabled airtime fairness
@@ -5343,6 +5416,12 @@ enum nl80211_feature_flags { · 2 unmodified lines
5343 * @NL80211_EXT_FEATURE_AP_PMKSA_CACHING: Driver/device supports PMKSA caching5416 * @NL80211_EXT_FEATURE_AP_PMKSA_CACHING: Driver/device supports PMKSA caching
5344 * (set/del PMKSA operations) in AP mode.5417 * (set/del PMKSA operations) in AP mode.
5345 *5418 *
5419 * @NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD: Driver supports
5420 * filtering of sched scan results using band specific RSSI thresholds.
5421 *
5422 * @NL80211_EXT_FEATURE_STA_TX_PWR: This driver supports controlling tx power
5423 * to a station.
5424 *
5346 * @NUM_NL80211_EXT_FEATURES: number of extended features.5425 * @NUM_NL80211_EXT_FEATURES: number of extended features.
5347 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.5426 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
5348 */5427 */
@@ -5384,6 +5463,9 @@ enum nl80211_ext_feature_index { · 35 unmodified lines
5384 NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER,5463 NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER,
5385 NL80211_EXT_FEATURE_AIRTIME_FAIRNESS,5464 NL80211_EXT_FEATURE_AIRTIME_FAIRNESS,
5386 NL80211_EXT_FEATURE_AP_PMKSA_CACHING,5465 NL80211_EXT_FEATURE_AP_PMKSA_CACHING,
5466 NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD,
5467 NL80211_EXT_FEATURE_EXT_KEY_ID,
5468 NL80211_EXT_FEATURE_STA_TX_PWR,
5387 5469
5388 /* add new features before the definition below */5470 /* add new features before the definition below */
5389 NUM_NL80211_EXT_FEATURES,5471 NUM_NL80211_EXT_FEATURES,
include/uapi/linux/openvswitch.h+46−0
@@ -364,6 +364,7 @@ enum ovs_tunnel_key_attr { · 363 unmodified lines
364 OVS_TUNNEL_KEY_ATTR_IPV6_DST, /* struct in6_addr dst IPv6 address. */364 OVS_TUNNEL_KEY_ATTR_IPV6_DST, /* struct in6_addr dst IPv6 address. */
365 OVS_TUNNEL_KEY_ATTR_PAD,365 OVS_TUNNEL_KEY_ATTR_PAD,
366 OVS_TUNNEL_KEY_ATTR_ERSPAN_OPTS, /* struct erspan_metadata */366 OVS_TUNNEL_KEY_ATTR_ERSPAN_OPTS, /* struct erspan_metadata */
367 OVS_TUNNEL_KEY_ATTR_IPV4_INFO_BRIDGE, /* No argument. IPV4_INFO_BRIDGE mode.*/
367 __OVS_TUNNEL_KEY_ATTR_MAX368 __OVS_TUNNEL_KEY_ATTR_MAX
368};369};
369 370
@@ -734,6 +735,7 @@ struct ovs_action_hash { · 364 unmodified lines
734 * be received on NFNLGRP_CONNTRACK_NEW and NFNLGRP_CONNTRACK_DESTROY groups,735 * be received on NFNLGRP_CONNTRACK_NEW and NFNLGRP_CONNTRACK_DESTROY groups,
735 * respectively. Remaining bits control the changes for which an event is736 * respectively. Remaining bits control the changes for which an event is
736 * delivered on the NFNLGRP_CONNTRACK_UPDATE group.737 * delivered on the NFNLGRP_CONNTRACK_UPDATE group.
738 * @OVS_CT_ATTR_TIMEOUT: Variable length string defining conntrack timeout.
737 */739 */
738enum ovs_ct_attr {740enum ovs_ct_attr {
739 OVS_CT_ATTR_UNSPEC,741 OVS_CT_ATTR_UNSPEC,
@@ -746,6 +748,8 @@ enum ovs_ct_attr { · 6 unmodified lines
746 OVS_CT_ATTR_NAT, /* Nested OVS_NAT_ATTR_* */748 OVS_CT_ATTR_NAT, /* Nested OVS_NAT_ATTR_* */
747 OVS_CT_ATTR_FORCE_COMMIT, /* No argument */749 OVS_CT_ATTR_FORCE_COMMIT, /* No argument */
748 OVS_CT_ATTR_EVENTMASK, /* u32 mask of IPCT_* events. */750 OVS_CT_ATTR_EVENTMASK, /* u32 mask of IPCT_* events. */
751 OVS_CT_ATTR_TIMEOUT, /* Associate timeout with this connection for
752 * fine-grain timeout tuning. */
749 __OVS_CT_ATTR_MAX753 __OVS_CT_ATTR_MAX
750};754};
751 755
@@ -798,6 +802,44 @@ struct ovs_action_push_eth { · 46 unmodified lines
798 struct ovs_key_ethernet addresses;802 struct ovs_key_ethernet addresses;
799};803};
800 804
805/*
806 * enum ovs_check_pkt_len_attr - Attributes for %OVS_ACTION_ATTR_CHECK_PKT_LEN.
807 *
808 * @OVS_CHECK_PKT_LEN_ATTR_PKT_LEN: u16 Packet length to check for.
809 * @OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_GREATER: Nested OVS_ACTION_ATTR_*
810 * actions to apply if the packer length is greater than the specified
811 * length in the attr - OVS_CHECK_PKT_LEN_ATTR_PKT_LEN.
812 * @OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_LESS_EQUAL - Nested OVS_ACTION_ATTR_*
813 * actions to apply if the packer length is lesser or equal to the specified
814 * length in the attr - OVS_CHECK_PKT_LEN_ATTR_PKT_LEN.
815 */
816enum ovs_check_pkt_len_attr {
817 OVS_CHECK_PKT_LEN_ATTR_UNSPEC,
818 OVS_CHECK_PKT_LEN_ATTR_PKT_LEN,
819 OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_GREATER,
820 OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_LESS_EQUAL,
821 __OVS_CHECK_PKT_LEN_ATTR_MAX,
822
823#ifdef __KERNEL__
824 OVS_CHECK_PKT_LEN_ATTR_ARG /* struct check_pkt_len_arg */
825#endif
826};
827
828#define OVS_CHECK_PKT_LEN_ATTR_MAX (__OVS_CHECK_PKT_LEN_ATTR_MAX - 1)
829
830#ifdef __KERNEL__
831struct check_pkt_len_arg {
832 u16 pkt_len; /* Same value as OVS_CHECK_PKT_LEN_ATTR_PKT_LEN'. */
833 bool exec_for_greater; /* When true, actions in IF_GREATER will
834 * not change flow keys. False otherwise.
835 */
836 bool exec_for_lesser_equal; /* When true, actions in IF_LESS_EQUAL
837 * will not change flow keys. False
838 * otherwise.
839 */
840};
841#endif
842
801/**843/**
802 * enum ovs_action_attr - Action types.844 * enum ovs_action_attr - Action types.
803 *845 *
@@ -842,6 +884,9 @@ struct ovs_action_push_eth { · 38 unmodified lines
842 * packet, or modify the packet (e.g., change the DSCP field).884 * packet, or modify the packet (e.g., change the DSCP field).
843 * @OVS_ACTION_ATTR_CLONE: make a copy of the packet and execute a list of885 * @OVS_ACTION_ATTR_CLONE: make a copy of the packet and execute a list of
844 * actions without affecting the original packet and key.886 * actions without affecting the original packet and key.
887 * @OVS_ACTION_ATTR_CHECK_PKT_LEN: Check the packet length and execute a set
888 * of actions if greater than the specified packet length, else execute
889 * another set of actions.
845 *890 *
846 * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all891 * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all
847 * fields within a header are modifiable, e.g. the IPv4 protocol and fragment892 * fields within a header are modifiable, e.g. the IPv4 protocol and fragment
@@ -876,6 +921,7 @@ enum ovs_action_attr { · 28 unmodified lines
876 OVS_ACTION_ATTR_POP_NSH, /* No argument. */921 OVS_ACTION_ATTR_POP_NSH, /* No argument. */
877 OVS_ACTION_ATTR_METER, /* u32 meter ID. */922 OVS_ACTION_ATTR_METER, /* u32 meter ID. */
878 OVS_ACTION_ATTR_CLONE, /* Nested OVS_CLONE_ATTR_*. */923 OVS_ACTION_ATTR_CLONE, /* Nested OVS_CLONE_ATTR_*. */
924 OVS_ACTION_ATTR_CHECK_PKT_LEN, /* Nested OVS_CHECK_PKT_LEN_ATTR_*. */
879 925
880 __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted926 __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted
881 * from userspace. */927 * from userspace. */
include/uapi/linux/pkt_sched.h+13−0
@@ -1148,6 +1148,16 @@ enum { · 1147 unmodified lines
1148 1148
1149#define TCA_TAPRIO_SCHED_MAX (__TCA_TAPRIO_SCHED_MAX - 1)1149#define TCA_TAPRIO_SCHED_MAX (__TCA_TAPRIO_SCHED_MAX - 1)
1150 1150
1151/* The format for the admin sched (dump only):
1152 * [TCA_TAPRIO_SCHED_ADMIN_SCHED]
1153 * [TCA_TAPRIO_ATTR_SCHED_BASE_TIME]
1154 * [TCA_TAPRIO_ATTR_SCHED_ENTRY_LIST]
1155 * [TCA_TAPRIO_ATTR_SCHED_ENTRY]
1156 * [TCA_TAPRIO_ATTR_SCHED_ENTRY_CMD]
1157 * [TCA_TAPRIO_ATTR_SCHED_ENTRY_GATES]
1158 * [TCA_TAPRIO_ATTR_SCHED_ENTRY_INTERVAL]
1159 */
1160
1151enum {1161enum {
1152 TCA_TAPRIO_ATTR_UNSPEC,1162 TCA_TAPRIO_ATTR_UNSPEC,
1153 TCA_TAPRIO_ATTR_PRIOMAP, /* struct tc_mqprio_qopt */1163 TCA_TAPRIO_ATTR_PRIOMAP, /* struct tc_mqprio_qopt */
@@ -1156,6 +1166,9 @@ enum { · 2 unmodified lines
1156 TCA_TAPRIO_ATTR_SCHED_SINGLE_ENTRY, /* single entry */1166 TCA_TAPRIO_ATTR_SCHED_SINGLE_ENTRY, /* single entry */
1157 TCA_TAPRIO_ATTR_SCHED_CLOCKID, /* s32 */1167 TCA_TAPRIO_ATTR_SCHED_CLOCKID, /* s32 */
1158 TCA_TAPRIO_PAD,1168 TCA_TAPRIO_PAD,
1169 TCA_TAPRIO_ATTR_ADMIN_SCHED, /* The admin sched, only used in dump */
1170 TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME, /* s64 */
1171 TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME_EXTENSION, /* s64 */
1159 __TCA_TAPRIO_ATTR_MAX,1172 __TCA_TAPRIO_ATTR_MAX,
1160};1173};
1161 1174
include/uapi/linux/sockios.h+21−0
@@ -19,6 +19,7 @@ · 18 unmodified lines
19#ifndef _LINUX_SOCKIOS_H19#ifndef _LINUX_SOCKIOS_H
20#define _LINUX_SOCKIOS_H20#define _LINUX_SOCKIOS_H
21 21
22#include <asm/bitsperlong.h>
22#include <asm/sockios.h>23#include <asm/sockios.h>
23 24
24/* Linux-specific socket ioctls */25/* Linux-specific socket ioctls */
@@ -27,6 +28,26 @@ · 2 unmodified lines
27 28
28#define SOCK_IOC_TYPE 0x8929#define SOCK_IOC_TYPE 0x89
29 30
31/*
32 * the timeval/timespec data structure layout is defined by libc,
33 * so we need to cover both possible versions on 32-bit.
34 */
35/* Get stamp (timeval) */
36#define SIOCGSTAMP_NEW _IOR(SOCK_IOC_TYPE, 0x06, long long[2])
37/* Get stamp (timespec) */
38#define SIOCGSTAMPNS_NEW _IOR(SOCK_IOC_TYPE, 0x07, long long[2])
39
40#if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__))
41/* on 64-bit and x32, avoid the ?: operator */
42#define SIOCGSTAMP SIOCGSTAMP_OLD
43#define SIOCGSTAMPNS SIOCGSTAMPNS_OLD
44#else
45#define SIOCGSTAMP ((sizeof(struct timeval)) == 8 ? \
46 SIOCGSTAMP_OLD : SIOCGSTAMP_NEW)
47#define SIOCGSTAMPNS ((sizeof(struct timespec)) == 8 ? \
48 SIOCGSTAMPNS_OLD : SIOCGSTAMPNS_NEW)
49#endif
50
30/* Routing table calls. */51/* Routing table calls. */
31#define SIOCADDRT 0x890B /* add routing table entry */52#define SIOCADDRT 0x890B /* add routing table entry */
32#define SIOCDELRT 0x890C /* delete routing table entry */53#define SIOCDELRT 0x890C /* delete routing table entry */
include/uapi/linux/tcp.h+27−0
@@ -160,15 +160,42 @@ enum { · 159 unmodified lines
160#define TCPI_OPT_ECN_SEEN 16 /* we received at least one packet with ECT */160#define TCPI_OPT_ECN_SEEN 16 /* we received at least one packet with ECT */
161#define TCPI_OPT_SYN_DATA 32 /* SYN-ACK acked data in SYN sent or rcvd */161#define TCPI_OPT_SYN_DATA 32 /* SYN-ACK acked data in SYN sent or rcvd */
162 162
163/*
164 * Sender's congestion state indicating normal or abnormal situations
165 * in the last round of packets sent. The state is driven by the ACK
166 * information and timer events.
167 */
163enum tcp_ca_state {168enum tcp_ca_state {
169 /*
170 * Nothing bad has been observed recently.
171 * No apparent reordering, packet loss, or ECN marks.
172 */
164 TCP_CA_Open = 0,173 TCP_CA_Open = 0,
165#define TCPF_CA_Open (1<<TCP_CA_Open)174#define TCPF_CA_Open (1<<TCP_CA_Open)
175 /*
176 * The sender enters disordered state when it has received DUPACKs or
177 * SACKs in the last round of packets sent. This could be due to packet
178 * loss or reordering but needs further information to confirm packets
179 * have been lost.
180 */
166 TCP_CA_Disorder = 1,181 TCP_CA_Disorder = 1,
167#define TCPF_CA_Disorder (1<<TCP_CA_Disorder)182#define TCPF_CA_Disorder (1<<TCP_CA_Disorder)
183 /*
184 * The sender enters Congestion Window Reduction (CWR) state when it
185 * has received ACKs with ECN-ECE marks, or has experienced congestion
186 * or packet discard on the sender host (e.g. qdisc).
187 */
168 TCP_CA_CWR = 2,188 TCP_CA_CWR = 2,
169#define TCPF_CA_CWR (1<<TCP_CA_CWR)189#define TCPF_CA_CWR (1<<TCP_CA_CWR)
190 /*
191 * The sender is in fast recovery and retransmitting lost packets,
192 * typically triggered by ACK events.
193 */
170 TCP_CA_Recovery = 3,194 TCP_CA_Recovery = 3,
171#define TCPF_CA_Recovery (1<<TCP_CA_Recovery)195#define TCPF_CA_Recovery (1<<TCP_CA_Recovery)
196 /*
197 * The sender is in loss recovery triggered by retransmission timeout.
198 */
172 TCP_CA_Loss = 4199 TCP_CA_Loss = 4
173#define TCPF_CA_Loss (1<<TCP_CA_Loss)200#define TCPF_CA_Loss (1<<TCP_CA_Loss)
174};201};
include/uapi/linux/tipc.h+1−0
@@ -190,6 +190,7 @@ struct sockaddr_tipc { · 189 unmodified lines
190#define TIPC_MCAST_REPLICAST 134 /* Default: TIPC selects. No arg */190#define TIPC_MCAST_REPLICAST 134 /* Default: TIPC selects. No arg */
191#define TIPC_GROUP_JOIN 135 /* Takes struct tipc_group_req* */191#define TIPC_GROUP_JOIN 135 /* Takes struct tipc_group_req* */
192#define TIPC_GROUP_LEAVE 136 /* No argument */192#define TIPC_GROUP_LEAVE 136 /* No argument */
193#define TIPC_SOCK_RECVQ_USED 137 /* Default: none (read only) */
193 194
194/*195/*
195 * Flag values196 * Flag values
include/uapi/linux/tipc_netlink.h+2−0
@@ -281,6 +281,8 @@ enum { · 280 unmodified lines
281 TIPC_NLA_PROP_TOL, /* u32 */281 TIPC_NLA_PROP_TOL, /* u32 */
282 TIPC_NLA_PROP_WIN, /* u32 */282 TIPC_NLA_PROP_WIN, /* u32 */
283 TIPC_NLA_PROP_MTU, /* u32 */283 TIPC_NLA_PROP_MTU, /* u32 */
284 TIPC_NLA_PROP_BROADCAST, /* u32 */
285 TIPC_NLA_PROP_BROADCAST_RATIO, /* u32 */
284 286
285 __TIPC_NLA_PROP_MAX,287 __TIPC_NLA_PROP_MAX,
286 TIPC_NLA_PROP_MAX = __TIPC_NLA_PROP_MAX - 1288 TIPC_NLA_PROP_MAX = __TIPC_NLA_PROP_MAX - 1
include/uapi/linux/tls.h+15−0
@@ -70,6 +70,13 @@ · 69 unmodified lines
70#define TLS_CIPHER_AES_GCM_256_TAG_SIZE 1670#define TLS_CIPHER_AES_GCM_256_TAG_SIZE 16
71#define TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE 871#define TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE 8
72 72
73#define TLS_CIPHER_AES_CCM_128 53
74#define TLS_CIPHER_AES_CCM_128_IV_SIZE 8
75#define TLS_CIPHER_AES_CCM_128_KEY_SIZE 16
76#define TLS_CIPHER_AES_CCM_128_SALT_SIZE 4
77#define TLS_CIPHER_AES_CCM_128_TAG_SIZE 16
78#define TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE 8
79
73#define TLS_SET_RECORD_TYPE 180#define TLS_SET_RECORD_TYPE 1
74#define TLS_GET_RECORD_TYPE 281#define TLS_GET_RECORD_TYPE 2
75 82
@@ -94,4 +101,12 @@ struct tls12_crypto_info_aes_gcm_256 { · 18 unmodified lines
94 unsigned char rec_seq[TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE];101 unsigned char rec_seq[TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE];
95};102};
96 103
104struct tls12_crypto_info_aes_ccm_128 {
105 struct tls_crypto_info info;
106 unsigned char iv[TLS_CIPHER_AES_CCM_128_IV_SIZE];
107 unsigned char key[TLS_CIPHER_AES_CCM_128_KEY_SIZE];
108 unsigned char salt[TLS_CIPHER_AES_CCM_128_SALT_SIZE];
109 unsigned char rec_seq[TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE];
110};
111
97#endif /* _UAPI_LINUX_TLS_H */112#endif /* _UAPI_LINUX_TLS_H */