History

Merge tag 'net-next-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next

Pull networking updates from Jakub Kicinski: "Core: - Introduce and use a single page frag cache for allocating small skb heads, clawing back the 10-20% performance regression in UDP flood test from previous fixes. - Run packets which already went thru HW coalescing thru SW GRO. This significantly improves TCP segment coalescing and simplifies deployments as different workloads benefit from HW or SW GRO. - Shrink the size of the base zero-copy send structure. - Move TCP init under a new slow / sleepable version of DO_ONCE(). BPF: - Add BPF-specific, any-context-safe memory allocator. - Add helpers/kfuncs for PKCS#7 signature verification from BPF programs. - Define a new map type and related helpers for user space -> kernel communication over a ring buffer (BPF_MAP_TYPE_USER_RINGBUF). - Allow targeting BPF iterators to loop through resources of one task/thread. - Add ability to call selected destructive functions. Expose crash_kexec() to allow BPF to trigger a kernel dump. Use CAP_SYS_BOOT check on the loading process to judge permissions. - Enable BPF to collect custom hierarchical cgroup stats efficiently by integrating with the rstat framework. - Support struct arguments for trampoline based programs. Only structs with size <= 16B and x86 are supported. - Invoke cgroup/connect{4,6} programs for unprivileged ICMP ping sockets (instead of just TCP and UDP sockets). - Add a helper for accessing CLOCK_TAI for time sensitive network related programs. - Support accessing network tunnel metadata's flags. - Make TCP SYN ACK RTO tunable by BPF programs with TCP Fast Open. - Add support for writing to Netfilter's nf_conn:mark. Protocols: - WiFi: more Extremely High Throughput (EHT) and Multi-Link Operation (MLO) work (802.11be, WiFi 7). - vsock: improve support for SO_RCVLOWAT. - SMC: support SO_REUSEPORT. - Netlink: define and document how to use netlink in a "modern" way. Support reporting missing attributes via extended ACK. - IPSec: support collect metadata mode for xfrm interfaces. - TCPv6: send consistent autoflowlabel in SYN_RECV state and RST packets. - TCP: introduce optional per-netns connection hash table to allow better isolation between namespaces (opt-in, at the cost of memory and cache pressure). - MPTCP: support TCP_FASTOPEN_CONNECT. - Add NEXT-C-SID support in Segment Routing (SRv6) End behavior. - Adjust IP_UNICAST_IF sockopt behavior for connected UDP sockets. - Open vSwitch: - Allow specifying ifindex of new interfaces. - Allow conntrack and metering in non-initial user namespace. - TLS: support the Korean ARIA-GCM crypto algorithm. - Remove DECnet support. Driver API: - Allow selecting the conduit interface used by each port in DSA switches, at runtime. - Ethernet Power Sourcing Equipment and Power Device support. - Add tc-taprio support for queueMaxSDU parameter, i.e. setting per traffic class max frame size for time-based packet schedules. - Support PHY rate matching - adapting between differing host-side and link-side speeds. - Introduce QUSGMII PHY mode and 1000BASE-KX interface mode. - Validate OF (device tree) nodes for DSA shared ports; make phylink-related properties mandatory on DSA and CPU ports. Enforcing more uniformity should allow transitioning to phylink. - Require that flash component name used during update matches one of the components for which version is reported by info_get(). - Remove "weight" argument from driver-facing NAPI API as much as possible. It's one of those magic knobs which seemed like a good idea at the time but is too indirect to use in practice. - Support offload of TLS connections with 256 bit keys. New hardware / drivers: - Ethernet: - Microchip KSZ9896 6-port Gigabit Ethernet Switch - Renesas Ethernet AVB (EtherAVB-IF) Gen4 SoCs - Analog Devices ADIN1110 and ADIN2111 industrial single pair Ethernet (10BASE-T1L) MAC+PHY. - Rockchip RV1126 Gigabit Ethernet (a version of stmmac IP). - Ethernet SFPs / modules: - RollBall / Hilink / Turris 10G copper SFPs - HALNy GPON module - WiFi: - CYW43439 SDIO chipset (brcmfmac) - CYW89459 PCIe chipset (brcmfmac) - BCM4378 on Apple platforms (brcmfmac) Drivers: - CAN: - gs_usb: HW timestamp support - Ethernet PHYs: - lan8814: cable diagnostics - Ethernet NICs: - Intel (100G): - implement control of FCS/CRC stripping - port splitting via devlink - L2TPv3 filtering offload - nVidia/Mellanox: - tunnel offload for sub-functions - MACSec offload, w/ Extended packet number and replay window offload - significantly restructure, and optimize the AF_XDP support, align the behavior with other vendors - Huawei: - configuring DSCP map for traffic class selection - querying standard FEC statistics - querying SerDes lane number via ethtool - Marvell/Cavium: - egress priority flow control - MACSec offload - AMD/SolarFlare: - PTP over IPv6 and raw Ethernet - small / embedded: - ax88772: convert to phylink (to support SFP cages) - altera: tse: convert to phylink - ftgmac100: support fixed link - enetc: standard Ethtool counters - macb: ZynqMP SGMII dynamic configuration support - tsnep: support multi-queue and use page pool - lan743x: Rx IP & TCP checksum offload - igc: add xdp frags support to ndo_xdp_xmit - Ethernet high-speed switches: - Marvell (prestera): - support SPAN port features (traffic mirroring) - nexthop object offloading - Microchip (sparx5): - multicast forwarding offload - QoS queuing offload (tc-mqprio, tc-tbf, tc-ets) - Ethernet embedded switches: - Marvell (mv88e6xxx): - support RGMII cmode - NXP (felix): - standardized ethtool counters - Microchip (lan966x): - QoS queuing offload (tc-mqprio, tc-tbf, tc-cbs, tc-ets) - traffic policing and mirroring - link aggregation / bonding offload - QUSGMII PHY mode support - Qualcomm 802.11ax WiFi (ath11k): - cold boot calibration support on WCN6750 - support to connect to a non-transmit MBSSID AP profile - enable remain-on-channel support on WCN6750 - Wake-on-WLAN support for WCN6750 - support to provide transmit power from firmware via nl80211 - support to get power save duration for each client - spectral scan support for 160 MHz - MediaTek WiFi (mt76): - WiFi-to-Ethernet bridging offload for MT7986 chips - RealTek WiFi (rtw89): - P2P support" * tag 'net-next-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1864 commits) eth: pse: add missing static inlines once: rename _SLOW to _SLEEPABLE net: pse-pd: add regulator based PSE driver dt-bindings: net: pse-dt: add bindings for regulator based PoDL PSE controller ethtool: add interface to interact with Ethernet Power Equipment net: mdiobus: search for PSE nodes by parsing PHY nodes. net: mdiobus: fwnode_mdiobus_register_phy() rework error handling net: add framework to support Ethernet PSE and PDs devices dt-bindings: net: phy: add PoDL PSE property net: marvell: prestera: Propagate nh state from hw to kernel net: marvell: prestera: Add neighbour cache accounting net: marvell: prestera: add stub handler neighbour events net: marvell: prestera: Add heplers to interact with fib_notifier_info net: marvell: prestera: Add length macros for prestera_ip_addr net: marvell: prestera: add delayed wq and flush wq on deinit net: marvell: prestera: Add strict cleanup of fib arbiter net: marvell: prestera: Add cleanup of allocated fib_nodes net: marvell: prestera: Add router nexthops ABI eth: octeon: fix build after netif_napi_add() changes net/mlx5: E-Switch, Return EBUSY if can't get mode lock ...

Linus Torvalds committed 4 years ago

Commit 03260742 parents 522667b 681bf012136 files · +127127 −50379Browse files

Showing the changes to include/uapi/linux (30 of 2136 files). Show all

Unified · Split

30 files
  1. include/uapi/linux/bpf.h +158 −24
  2. include/uapi/linux/can.h +53 −2
  3. include/uapi/linux/can/raw.h +1 −0
  4. include/uapi/linux/dn.h +0 −149
  5. include/uapi/linux/ethtool.h +61 −2
  6. include/uapi/linux/ethtool_netlink.h +17 −0
  7. include/uapi/linux/if_ether.h +1 −0
  8. include/uapi/linux/if_link.h +12 −0
  9. include/uapi/linux/if_macsec.h +2 −0
  10. include/uapi/linux/in.h +8 −14
  11. include/uapi/linux/l2tp.h +0 −2
  12. include/uapi/linux/lwtunnel.h +10 −0
  13. include/uapi/linux/netfilter.h +2 −0
  14. include/uapi/linux/netfilter/ipset/ip_set.h +0 −4
  15. include/uapi/linux/netfilter/xt_AUDIT.h +0 −4
  16. include/uapi/linux/netfilter/xt_connmark.h +4 −9
  17. include/uapi/linux/netfilter/xt_osf.h +0 −14
  18. include/uapi/linux/netfilter_decnet.h +0 −72
  19. include/uapi/linux/netlink.h +24 −7
  20. include/uapi/linux/nl80211.h +22 −3
  21. include/uapi/linux/openvswitch.h +3 −0
  22. include/uapi/linux/pkt_cls.h +2 −0
  23. include/uapi/linux/pkt_sched.h +11 −0
  24. include/uapi/linux/seg6_local.h +24 −0
  25. include/uapi/linux/tc_act/tc_bpf.h +0 −5
  26. include/uapi/linux/tc_act/tc_skbedit.h +0 −13
  27. include/uapi/linux/tc_act/tc_skbmod.h +1 −6
  28. include/uapi/linux/tc_act/tc_tunnel_key.h +0 −5
  29. include/uapi/linux/tc_act/tc_vlan.h +0 −5
  30. include/uapi/linux/tls.h +30 −0
include/uapi/linux/bpf.h+158−24
@@ -87,10 +87,35 @@ struct bpf_cgroup_storage_key { · 86 unmodified lines
87 __u32 attach_type; /* program attach type (enum bpf_attach_type) */87 __u32 attach_type; /* program attach type (enum bpf_attach_type) */
88};88};
89 89
90enum bpf_cgroup_iter_order {
91 BPF_CGROUP_ITER_ORDER_UNSPEC = 0,
92 BPF_CGROUP_ITER_SELF_ONLY, /* process only a single object. */
93 BPF_CGROUP_ITER_DESCENDANTS_PRE, /* walk descendants in pre-order. */
94 BPF_CGROUP_ITER_DESCENDANTS_POST, /* walk descendants in post-order. */
95 BPF_CGROUP_ITER_ANCESTORS_UP, /* walk ancestors upward. */
96};
97
90union bpf_iter_link_info {98union bpf_iter_link_info {
91 struct {99 struct {
92 __u32 map_fd;100 __u32 map_fd;
93 } map;101 } map;
102 struct {
103 enum bpf_cgroup_iter_order order;
104
105 /* At most one of cgroup_fd and cgroup_id can be non-zero. If
106 * both are zero, the walk starts from the default cgroup v2
107 * root. For walking v1 hierarchy, one should always explicitly
108 * specify cgroup_fd.
109 */
110 __u32 cgroup_fd;
111 __u64 cgroup_id;
112 } cgroup;
113 /* Parameters of task iterators. */
114 struct {
115 __u32 tid;
116 __u32 pid;
117 __u32 pid_fd;
118 } task;
94};119};
95 120
96/* BPF syscall commands, see bpf(2) man-page for more details. */121/* BPF syscall commands, see bpf(2) man-page for more details. */
@@ -909,6 +934,7 @@ enum bpf_map_type { · 812 unmodified lines
909 BPF_MAP_TYPE_INODE_STORAGE,934 BPF_MAP_TYPE_INODE_STORAGE,
910 BPF_MAP_TYPE_TASK_STORAGE,935 BPF_MAP_TYPE_TASK_STORAGE,
911 BPF_MAP_TYPE_BLOOM_FILTER,936 BPF_MAP_TYPE_BLOOM_FILTER,
937 BPF_MAP_TYPE_USER_RINGBUF,
912};938};
913 939
914/* Note that tracing related programs such as940/* Note that tracing related programs such as
@@ -1233,7 +1259,7 @@ enum { · 318 unmodified lines
1233 1259
1234/* Query effective (directly attached + inherited from ancestor cgroups)1260/* Query effective (directly attached + inherited from ancestor cgroups)
1235 * programs that will be executed for events within a cgroup.1261 * programs that will be executed for events within a cgroup.
1236 * attach_flags with this flag are returned only for directly attached programs.1262 * attach_flags with this flag are always returned 0.
1237 */1263 */
1238#define BPF_F_QUERY_EFFECTIVE (1U << 0)1264#define BPF_F_QUERY_EFFECTIVE (1U << 0)
1239 1265
@@ -1432,7 +1458,10 @@ union bpf_attr { · 192 unmodified lines
1432 __u32 attach_flags;1458 __u32 attach_flags;
1433 __aligned_u64 prog_ids;1459 __aligned_u64 prog_ids;
1434 __u32 prog_cnt;1460 __u32 prog_cnt;
1435 __aligned_u64 prog_attach_flags; /* output: per-program attach_flags */1461 /* output: per-program attach_flags.
1462 * not allowed to be set during effective query.
1463 */
1464 __aligned_u64 prog_attach_flags;
1436 } query;1465 } query;
1437 1466
1438 struct { /* anonymous struct used by BPF_RAW_TRACEPOINT_OPEN command */1467 struct { /* anonymous struct used by BPF_RAW_TRACEPOINT_OPEN command */
@@ -2573,10 +2602,12 @@ union bpf_attr { · 1134 unmodified lines
2573 * There are two supported modes at this time:2602 * There are two supported modes at this time:
2574 *2603 *
2575 * * **BPF_ADJ_ROOM_MAC**: Adjust room at the mac layer2604 * * **BPF_ADJ_ROOM_MAC**: Adjust room at the mac layer
2576 * (room space is added or removed below the layer 2 header).2605 * (room space is added or removed between the layer 2 and
2606 * layer 3 headers).
2577 *2607 *
2578 * * **BPF_ADJ_ROOM_NET**: Adjust room at the network layer2608 * * **BPF_ADJ_ROOM_NET**: Adjust room at the network layer
2579 * (room space is added or removed below the layer 3 header).2609 * (room space is added or removed between the layer 3 and
2610 * layer 4 headers).
2580 *2611 *
2581 * The following flags are supported at this time:2612 * The following flags are supported at this time:
2582 *2613 *
@@ -3008,8 +3039,18 @@ union bpf_attr { · 425 unmodified lines
3008 * **BPF_F_USER_STACK**3039 * **BPF_F_USER_STACK**
3009 * Collect a user space stack instead of a kernel stack.3040 * Collect a user space stack instead of a kernel stack.
3010 * **BPF_F_USER_BUILD_ID**3041 * **BPF_F_USER_BUILD_ID**
3011 * Collect buildid+offset instead of ips for user stack,3042 * Collect (build_id, file_offset) instead of ips for user
3012 * only valid if **BPF_F_USER_STACK** is also specified.3043 * stack, only valid if **BPF_F_USER_STACK** is also
3044 * specified.
3045 *
3046 * *file_offset* is an offset relative to the beginning
3047 * of the executable or shared object file backing the vma
3048 * which the *ip* falls in. It is *not* an offset relative
3049 * to that object's base address. Accordingly, it must be
3050 * adjusted by adding (sh_addr - sh_offset), where
3051 * sh_{addr,offset} correspond to the executable section
3052 * containing *file_offset* in the object, for comparisons
3053 * to symbols' st_value to be valid.
3013 *3054 *
3014 * **bpf_get_stack**\ () can collect up to3055 * **bpf_get_stack**\ () can collect up to
3015 * **PERF_MAX_STACK_DEPTH** both kernel and user frames, subject3056 * **PERF_MAX_STACK_DEPTH** both kernel and user frames, subject
@@ -4425,7 +4466,7 @@ union bpf_attr { · 1409 unmodified lines
4425 *4466 *
4426 * **-EEXIST** if the option already exists.4467 * **-EEXIST** if the option already exists.
4427 *4468 *
4428 * **-EFAULT** on failrue to parse the existing header options.4469 * **-EFAULT** on failure to parse the existing header options.
4429 *4470 *
4430 * **-EPERM** if the helper cannot be used under the current4471 * **-EPERM** if the helper cannot be used under the current
4431 * *skops*\ **->op**.4472 * *skops*\ **->op**.
@@ -4634,7 +4675,7 @@ union bpf_attr { · 202 unmodified lines
4634 * a *map* with *task* as the **key**. From this4675 * a *map* with *task* as the **key**. From this
4635 * perspective, the usage is not much different from4676 * perspective, the usage is not much different from
4636 * **bpf_map_lookup_elem**\ (*map*, **&**\ *task*) except this4677 * **bpf_map_lookup_elem**\ (*map*, **&**\ *task*) except this
4637 * helper enforces the key must be an task_struct and the map must also4678 * helper enforces the key must be a task_struct and the map must also
4638 * be a **BPF_MAP_TYPE_TASK_STORAGE**.4679 * be a **BPF_MAP_TYPE_TASK_STORAGE**.
4639 *4680 *
4640 * Underneath, the value is stored locally at *task* instead of4681 * Underneath, the value is stored locally at *task* instead of
@@ -4692,7 +4733,7 @@ union bpf_attr { · 51 unmodified lines
4692 *4733 *
4693 * long bpf_ima_inode_hash(struct inode *inode, void *dst, u32 size)4734 * long bpf_ima_inode_hash(struct inode *inode, void *dst, u32 size)
4694 * Description4735 * Description
4695 * Returns the stored IMA hash of the *inode* (if it's avaialable).4736 * Returns the stored IMA hash of the *inode* (if it's available).
4696 * If the hash is larger than *size*, then only *size*4737 * If the hash is larger than *size*, then only *size*
4697 * bytes will be copied to *dst*4738 * bytes will be copied to *dst*
4698 * Return4739 * Return
@@ -4716,12 +4757,12 @@ union bpf_attr { · 17 unmodified lines
4716 *4757 *
4717 * The argument *len_diff* can be used for querying with a planned4758 * The argument *len_diff* can be used for querying with a planned
4718 * size change. This allows to check MTU prior to changing packet4759 * size change. This allows to check MTU prior to changing packet
4719 * ctx. Providing an *len_diff* adjustment that is larger than the4760 * ctx. Providing a *len_diff* adjustment that is larger than the
4720 * actual packet size (resulting in negative packet size) will in4761 * actual packet size (resulting in negative packet size) will in
4721 * principle not exceed the MTU, why it is not considered a4762 * principle not exceed the MTU, which is why it is not considered
4722 * failure. Other BPF-helpers are needed for performing the4763 * a failure. Other BPF helpers are needed for performing the
4723 * planned size change, why the responsability for catch a negative4764 * planned size change; therefore the responsibility for catching
4724 * packet size belong in those helpers.4765 * a negative packet size belongs in those helpers.
4725 *4766 *
4726 * Specifying *ifindex* zero means the MTU check is performed4767 * Specifying *ifindex* zero means the MTU check is performed
4727 * against the current net device. This is practical if this isn't4768 * against the current net device. This is practical if this isn't
@@ -4919,6 +4960,7 @@ union bpf_attr { · 191 unmodified lines
4919 * Get address of the traced function (for tracing and kprobe programs).4960 * Get address of the traced function (for tracing and kprobe programs).
4920 * Return4961 * Return
4921 * Address of the traced function.4962 * Address of the traced function.
4963 * 0 for kprobes placed within the function (not at the entry).
4922 *4964 *
4923 * u64 bpf_get_attach_cookie(void *ctx)4965 * u64 bpf_get_attach_cookie(void *ctx)
4924 * Description4966 * Description
@@ -5048,12 +5090,12 @@ union bpf_attr { · 123 unmodified lines
5048 *5090 *
5049 * long bpf_get_func_arg(void *ctx, u32 n, u64 *value)5091 * long bpf_get_func_arg(void *ctx, u32 n, u64 *value)
5050 * Description5092 * Description
5051 * Get **n**-th argument (zero based) of the traced function (for tracing programs)5093 * Get **n**-th argument register (zero based) of the traced function (for tracing programs)
5052 * returned in **value**.5094 * returned in **value**.
5053 *5095 *
5054 * Return5096 * Return
5055 * 0 on success.5097 * 0 on success.
5056 * **-EINVAL** if n >= arguments count of traced function.5098 * **-EINVAL** if n >= argument register count of traced function.
5057 *5099 *
5058 * long bpf_get_func_ret(void *ctx, u64 *value)5100 * long bpf_get_func_ret(void *ctx, u64 *value)
5059 * Description5101 * Description
@@ -5066,24 +5108,37 @@ union bpf_attr { · 6 unmodified lines
5066 *5108 *
5067 * long bpf_get_func_arg_cnt(void *ctx)5109 * long bpf_get_func_arg_cnt(void *ctx)
5068 * Description5110 * Description
5069 * Get number of arguments of the traced function (for tracing programs).5111 * Get number of registers of the traced function (for tracing programs) where
5112 * function arguments are stored in these registers.
5070 *5113 *
5071 * Return5114 * Return
5072 * The number of arguments of the traced function.5115 * The number of argument registers of the traced function.
5073 *5116 *
5074 * int bpf_get_retval(void)5117 * int bpf_get_retval(void)
5075 * Description5118 * Description
5076 * Get the syscall's return value that will be returned to userspace.5119 * Get the BPF program's return value that will be returned to the upper layers.
5077 *5120 *
5078 * This helper is currently supported by cgroup programs only.5121 * This helper is currently supported by cgroup programs and only by the hooks
5122 * where BPF program's return value is returned to the userspace via errno.
5079 * Return5123 * Return
5080 * The syscall's return value.5124 * The BPF program's return value.
5081 *5125 *
5082 * int bpf_set_retval(int retval)5126 * int bpf_set_retval(int retval)
5083 * Description5127 * Description
5084 * Set the syscall's return value that will be returned to userspace.5128 * Set the BPF program's return value that will be returned to the upper layers.
5129 *
5130 * This helper is currently supported by cgroup programs and only by the hooks
5131 * where BPF program's return value is returned to the userspace via errno.
5132 *
5133 * Note that there is the following corner case where the program exports an error
5134 * via bpf_set_retval but signals success via 'return 1':
5135 *
5136 * bpf_set_retval(-EPERM);
5137 * return 1;
5138 *
5139 * In this case, the BPF program's return value will use helper's -EPERM. This
5140 * still holds true for cgroup/bind{4,6} which supports extra 'return 3' success case.
5085 *5141 *
5086 * This helper is currently supported by cgroup programs only.
5087 * Return5142 * Return
5088 * 0 on success, or a negative error in case of failure.5143 * 0 on success, or a negative error in case of failure.
5089 *5144 *
@@ -5331,6 +5386,55 @@ union bpf_attr { · 241 unmodified lines
5331 * **-EACCES** if the SYN cookie is not valid.5386 * **-EACCES** if the SYN cookie is not valid.
5332 *5387 *
5333 * **-EPROTONOSUPPORT** if CONFIG_IPV6 is not builtin.5388 * **-EPROTONOSUPPORT** if CONFIG_IPV6 is not builtin.
5389 *
5390 * u64 bpf_ktime_get_tai_ns(void)
5391 * Description
5392 * A nonsettable system-wide clock derived from wall-clock time but
5393 * ignoring leap seconds. This clock does not experience
5394 * discontinuities and backwards jumps caused by NTP inserting leap
5395 * seconds as CLOCK_REALTIME does.
5396 *
5397 * See: **clock_gettime**\ (**CLOCK_TAI**)
5398 * Return
5399 * Current *ktime*.
5400 *
5401 * long bpf_user_ringbuf_drain(struct bpf_map *map, void *callback_fn, void *ctx, u64 flags)
5402 * Description
5403 * Drain samples from the specified user ring buffer, and invoke
5404 * the provided callback for each such sample:
5405 *
5406 * long (\*callback_fn)(struct bpf_dynptr \*dynptr, void \*ctx);
5407 *
5408 * If **callback_fn** returns 0, the helper will continue to try
5409 * and drain the next sample, up to a maximum of
5410 * BPF_MAX_USER_RINGBUF_SAMPLES samples. If the return value is 1,
5411 * the helper will skip the rest of the samples and return. Other
5412 * return values are not used now, and will be rejected by the
5413 * verifier.
5414 * Return
5415 * The number of drained samples if no error was encountered while
5416 * draining samples, or 0 if no samples were present in the ring
5417 * buffer. If a user-space producer was epoll-waiting on this map,
5418 * and at least one sample was drained, they will receive an event
5419 * notification notifying them of available space in the ring
5420 * buffer. If the BPF_RB_NO_WAKEUP flag is passed to this
5421 * function, no wakeup notification will be sent. If the
5422 * BPF_RB_FORCE_WAKEUP flag is passed, a wakeup notification will
5423 * be sent even if no sample was drained.
5424 *
5425 * On failure, the returned value is one of the following:
5426 *
5427 * **-EBUSY** if the ring buffer is contended, and another calling
5428 * context was concurrently draining the ring buffer.
5429 *
5430 * **-EINVAL** if user-space is not properly tracking the ring
5431 * buffer due to the producer position not being aligned to 8
5432 * bytes, a sample not being aligned to 8 bytes, or the producer
5433 * position not matching the advertised length of a sample.
5434 *
5435 * **-E2BIG** if user-space has tried to publish a sample which is
5436 * larger than the size of the ring buffer, or which cannot fit
5437 * within a struct bpf_dynptr.
5334 */5438 */
5335#define __BPF_FUNC_MAPPER(FN) \5439#define __BPF_FUNC_MAPPER(FN) \
5336 FN(unspec), \5440 FN(unspec), \
@@ -5541,6 +5645,8 @@ union bpf_attr { · 204 unmodified lines
5541 FN(tcp_raw_gen_syncookie_ipv6), \5645 FN(tcp_raw_gen_syncookie_ipv6), \
5542 FN(tcp_raw_check_syncookie_ipv4), \5646 FN(tcp_raw_check_syncookie_ipv4), \
5543 FN(tcp_raw_check_syncookie_ipv6), \5647 FN(tcp_raw_check_syncookie_ipv6), \
5648 FN(ktime_get_tai_ns), \
5649 FN(user_ringbuf_drain), \
5544 /* */5650 /* */
5545 5651
5546/* integer value in 'imm' field of BPF_CALL instruction selects which helper5652/* integer value in 'imm' field of BPF_CALL instruction selects which helper
@@ -5603,6 +5709,11 @@ enum { · 56 unmodified lines
5603 BPF_F_SEQ_NUMBER = (1ULL << 3),5709 BPF_F_SEQ_NUMBER = (1ULL << 3),
5604};5710};
5605 5711
5712/* BPF_FUNC_skb_get_tunnel_key flags. */
5713enum {
5714 BPF_F_TUNINFO_FLAGS = (1ULL << 4),
5715};
5716
5606/* BPF_FUNC_perf_event_output, BPF_FUNC_perf_event_read and5717/* BPF_FUNC_perf_event_output, BPF_FUNC_perf_event_read and
5607 * BPF_FUNC_perf_event_read_value flags.5718 * BPF_FUNC_perf_event_read_value flags.
5608 */5719 */
@@ -5792,7 +5903,10 @@ struct bpf_tunnel_key { · 183 unmodified lines
5792 };5903 };
5793 __u8 tunnel_tos;5904 __u8 tunnel_tos;
5794 __u8 tunnel_ttl;5905 __u8 tunnel_ttl;
5795 __u16 tunnel_ext; /* Padding, future use. */5906 union {
5907 __u16 tunnel_ext; /* compat */
5908 __be16 tunnel_flags;
5909 };
5796 __u32 tunnel_label;5910 __u32 tunnel_label;
5797 union {5911 union {
5798 __u32 local_ipv4;5912 __u32 local_ipv4;
@@ -5836,6 +5950,11 @@ enum bpf_ret_code { · 37 unmodified lines
5836 * represented by BPF_REDIRECT above).5950 * represented by BPF_REDIRECT above).
5837 */5951 */
5838 BPF_LWT_REROUTE = 128,5952 BPF_LWT_REROUTE = 128,
5953 /* BPF_FLOW_DISSECTOR_CONTINUE: used by BPF_PROG_TYPE_FLOW_DISSECTOR
5954 * to indicate that no custom dissection was performed, and
5955 * fallback to standard dissector is requested.
5956 */
5957 BPF_FLOW_DISSECTOR_CONTINUE = 129,
5839};5958};
5840 5959
5841struct bpf_sock {5960struct bpf_sock {
@@ -6134,11 +6253,26 @@ struct bpf_link_info { · 292 unmodified lines
6134 struct {6253 struct {
6135 __aligned_u64 target_name; /* in/out: target_name buffer ptr */6254 __aligned_u64 target_name; /* in/out: target_name buffer ptr */
6136 __u32 target_name_len; /* in/out: target_name buffer len */6255 __u32 target_name_len; /* in/out: target_name buffer len */
6256
6257 /* If the iter specific field is 32 bits, it can be put
6258 * in the first or second union. Otherwise it should be
6259 * put in the second union.
6260 */
6137 union {6261 union {
6138 struct {6262 struct {
6139 __u32 map_id;6263 __u32 map_id;
6140 } map;6264 } map;
6141 };6265 };
6266 union {
6267 struct {
6268 __u64 cgroup_id;
6269 __u32 order;
6270 } cgroup;
6271 struct {
6272 __u32 tid;
6273 __u32 pid;
6274 } task;
6275 };
6142 } iter;6276 } iter;
6143 struct {6277 struct {
6144 __u32 netns_ino;6278 __u32 netns_ino;
include/uapi/linux/can.h+53−2
@@ -48,6 +48,7 @@ · 47 unmodified lines
48 48
49#include <linux/types.h>49#include <linux/types.h>
50#include <linux/socket.h>50#include <linux/socket.h>
51#include <linux/stddef.h> /* for offsetof */
51 52
52/* controller area network (CAN) kernel definitions */53/* controller area network (CAN) kernel definitions */
53 54
@@ -60,6 +61,7 @@ · 6 unmodified lines
60#define CAN_SFF_MASK 0x000007FFU /* standard frame format (SFF) */61#define CAN_SFF_MASK 0x000007FFU /* standard frame format (SFF) */
61#define CAN_EFF_MASK 0x1FFFFFFFU /* extended frame format (EFF) */62#define CAN_EFF_MASK 0x1FFFFFFFU /* extended frame format (EFF) */
62#define CAN_ERR_MASK 0x1FFFFFFFU /* omit EFF, RTR, ERR flags */63#define CAN_ERR_MASK 0x1FFFFFFFU /* omit EFF, RTR, ERR flags */
64#define CANXL_PRIO_MASK CAN_SFF_MASK /* 11 bit priority mask */
63 65
64/*66/*
65 * Controller Area Network Identifier structure67 * Controller Area Network Identifier structure
@@ -73,6 +75,7 @@ typedef __u32 canid_t; · 7 unmodified lines
73 75
74#define CAN_SFF_ID_BITS 1176#define CAN_SFF_ID_BITS 11
75#define CAN_EFF_ID_BITS 2977#define CAN_EFF_ID_BITS 29
78#define CANXL_PRIO_BITS CAN_SFF_ID_BITS
76 79
77/*80/*
78 * Controller Area Network Error Message Frame Mask structure81 * Controller Area Network Error Message Frame Mask structure
@@ -91,6 +94,16 @@ typedef __u32 can_err_mask_t; · 12 unmodified lines
91#define CANFD_MAX_DLC 1594#define CANFD_MAX_DLC 15
92#define CANFD_MAX_DLEN 6495#define CANFD_MAX_DLEN 64
93 96
97/*
98 * CAN XL payload length and DLC definitions according to ISO 11898-1
99 * CAN XL DLC ranges from 0 .. 2047 => data length from 1 .. 2048 byte
100 */
101#define CANXL_MIN_DLC 0
102#define CANXL_MAX_DLC 2047
103#define CANXL_MAX_DLC_MASK 0x07FF
104#define CANXL_MIN_DLEN 1
105#define CANXL_MAX_DLEN 2048
106
94/**107/**
95 * struct can_frame - Classical CAN frame structure (aka CAN 2.0B)108 * struct can_frame - Classical CAN frame structure (aka CAN 2.0B)
96 * @can_id: CAN ID of the frame and CAN_*_FLAG flags, see canid_t definition109 * @can_id: CAN ID of the frame and CAN_*_FLAG flags, see canid_t definition
@@ -141,8 +154,8 @@ struct can_frame { · 44 unmodified lines
141 * When this is done the former differentiation via CAN_MTU / CANFD_MTU gets154 * When this is done the former differentiation via CAN_MTU / CANFD_MTU gets
142 * lost. CANFD_FDF allows programmers to mark CAN FD frames in the case of155 * lost. CANFD_FDF allows programmers to mark CAN FD frames in the case of
143 * using struct canfd_frame for mixed CAN / CAN FD content (dual use).156 * using struct canfd_frame for mixed CAN / CAN FD content (dual use).
144 * N.B. the Kernel APIs do NOT provide mixed CAN / CAN FD content inside of157 * Since the introduction of CAN XL the CANFD_FDF flag is set in all CAN FD
145 * struct canfd_frame therefore the CANFD_FDF flag is disregarded by Linux.158 * frame structures provided by the CAN subsystem of the Linux kernel.
146 */159 */
147#define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */160#define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */
148#define CANFD_ESI 0x02 /* error state indicator of the transmitting node */161#define CANFD_ESI 0x02 /* error state indicator of the transmitting node */
@@ -166,8 +179,46 @@ struct canfd_frame { · 17 unmodified lines
166 __u8 data[CANFD_MAX_DLEN] __attribute__((aligned(8)));179 __u8 data[CANFD_MAX_DLEN] __attribute__((aligned(8)));
167};180};
168 181
182/*
183 * defined bits for canxl_frame.flags
184 *
185 * The canxl_frame.flags element contains two bits CANXL_XLF and CANXL_SEC
186 * and shares the relative position of the struct can[fd]_frame.len element.
187 * The CANXL_XLF bit ALWAYS needs to be set to indicate a valid CAN XL frame.
188 * As a side effect setting this bit intentionally breaks the length checks
189 * for Classical CAN and CAN FD frames.
190 *
191 * Undefined bits in canxl_frame.flags are reserved and shall be set to zero.
192 */
193#define CANXL_XLF 0x80 /* mandatory CAN XL frame flag (must always be set!) */
194#define CANXL_SEC 0x01 /* Simple Extended Content (security/segmentation) */
195
196/**
197 * struct canxl_frame - CAN with e'X'tended frame 'L'ength frame structure
198 * @prio: 11 bit arbitration priority with zero'ed CAN_*_FLAG flags
199 * @flags: additional flags for CAN XL
200 * @sdt: SDU (service data unit) type
201 * @len: frame payload length in byte (CANXL_MIN_DLEN .. CANXL_MAX_DLEN)
202 * @af: acceptance field
203 * @data: CAN XL frame payload (CANXL_MIN_DLEN .. CANXL_MAX_DLEN byte)
204 *
205 * @prio shares the same position as @can_id from struct can[fd]_frame.
206 */
207struct canxl_frame {
208 canid_t prio; /* 11 bit priority for arbitration (canid_t) */
209 __u8 flags; /* additional flags for CAN XL */
210 __u8 sdt; /* SDU (service data unit) type */
211 __u16 len; /* frame payload length in byte */
212 __u32 af; /* acceptance field */
213 __u8 data[CANXL_MAX_DLEN];
214};
215
169#define CAN_MTU (sizeof(struct can_frame))216#define CAN_MTU (sizeof(struct can_frame))
170#define CANFD_MTU (sizeof(struct canfd_frame))217#define CANFD_MTU (sizeof(struct canfd_frame))
218#define CANXL_MTU (sizeof(struct canxl_frame))
219#define CANXL_HDR_SIZE (offsetof(struct canxl_frame, data))
220#define CANXL_MIN_MTU (CANXL_HDR_SIZE + 64)
221#define CANXL_MAX_MTU CANXL_MTU
171 222
172/* particular protocols of the protocol family PF_CAN */223/* particular protocols of the protocol family PF_CAN */
173#define CAN_RAW 1 /* RAW sockets */224#define CAN_RAW 1 /* RAW sockets */
include/uapi/linux/can/raw.h+1−0
@@ -62,6 +62,7 @@ enum { · 61 unmodified lines
62 CAN_RAW_RECV_OWN_MSGS, /* receive my own msgs (default:off) */62 CAN_RAW_RECV_OWN_MSGS, /* receive my own msgs (default:off) */
63 CAN_RAW_FD_FRAMES, /* allow CAN FD frames (default:off) */63 CAN_RAW_FD_FRAMES, /* allow CAN FD frames (default:off) */
64 CAN_RAW_JOIN_FILTERS, /* all filters must match to trigger */64 CAN_RAW_JOIN_FILTERS, /* all filters must match to trigger */
65 CAN_RAW_XL_FRAMES, /* allow CAN XL frames (default:off) */
65};66};
66 67
67#endif /* !_UAPI_CAN_RAW_H */68#endif /* !_UAPI_CAN_RAW_H */
include/uapi/linux/dn.h+0−149
@@ -1,149 +0,0 @@
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2#ifndef _LINUX_DN_H
3#define _LINUX_DN_H
4
5#include <linux/ioctl.h>
6#include <linux/types.h>
7#include <linux/if_ether.h>
8
9/*
10
11 DECnet Data Structures and Constants
12
13*/
14
15/*
16 * DNPROTO_NSP can't be the same as SOL_SOCKET,
17 * so increment each by one (compared to ULTRIX)
18 */
19#define DNPROTO_NSP 2 /* NSP protocol number */
20#define DNPROTO_ROU 3 /* Routing protocol number */
21#define DNPROTO_NML 4 /* Net mgt protocol number */
22#define DNPROTO_EVL 5 /* Evl protocol number (usr) */
23#define DNPROTO_EVR 6 /* Evl protocol number (evl) */
24#define DNPROTO_NSPT 7 /* NSP trace protocol number */
25
26
27#define DN_ADDL 2
28#define DN_MAXADDL 2 /* ULTRIX headers have 20 here, but pathworks has 2 */
29#define DN_MAXOPTL 16
30#define DN_MAXOBJL 16
31#define DN_MAXACCL 40
32#define DN_MAXALIASL 128
33#define DN_MAXNODEL 256
34#define DNBUFSIZE 65023
35
36/*
37 * SET/GET Socket options - must match the DSO_ numbers below
38 */
39#define SO_CONDATA 1
40#define SO_CONACCESS 2
41#define SO_PROXYUSR 3
42#define SO_LINKINFO 7
43
44#define DSO_CONDATA 1 /* Set/Get connect data */
45#define DSO_DISDATA 10 /* Set/Get disconnect data */
46#define DSO_CONACCESS 2 /* Set/Get connect access data */
47#define DSO_ACCEPTMODE 4 /* Set/Get accept mode */
48#define DSO_CONACCEPT 5 /* Accept deferred connection */
49#define DSO_CONREJECT 6 /* Reject deferred connection */
50#define DSO_LINKINFO 7 /* Set/Get link information */
51#define DSO_STREAM 8 /* Set socket type to stream */
52#define DSO_SEQPACKET 9 /* Set socket type to sequenced packet */
53#define DSO_MAXWINDOW 11 /* Maximum window size allowed */
54#define DSO_NODELAY 12 /* Turn off nagle */
55#define DSO_CORK 13 /* Wait for more data! */
56#define DSO_SERVICES 14 /* NSP Services field */
57#define DSO_INFO 15 /* NSP Info field */
58#define DSO_MAX 15 /* Maximum option number */
59
60
61/* LINK States */
62#define LL_INACTIVE 0
63#define LL_CONNECTING 1
64#define LL_RUNNING 2
65#define LL_DISCONNECTING 3
66
67#define ACC_IMMED 0
68#define ACC_DEFER 1
69
70#define SDF_WILD 1 /* Wild card object */
71#define SDF_PROXY 2 /* Addr eligible for proxy */
72#define SDF_UICPROXY 4 /* Use uic-based proxy */
73
74/* Structures */
75
76
77struct dn_naddr {
78 __le16 a_len;
79 __u8 a_addr[DN_MAXADDL]; /* Two bytes little endian */
80};
81
82struct sockaddr_dn {
83 __u16 sdn_family;
84 __u8 sdn_flags;
85 __u8 sdn_objnum;
86 __le16 sdn_objnamel;
87 __u8 sdn_objname[DN_MAXOBJL];
88 struct dn_naddr sdn_add;
89};
90#define sdn_nodeaddrl sdn_add.a_len /* Node address length */
91#define sdn_nodeaddr sdn_add.a_addr /* Node address */
92
93
94
95/*
96 * DECnet set/get DSO_CONDATA, DSO_DISDATA (optional data) structure
97 */
98struct optdata_dn {
99 __le16 opt_status; /* Extended status return */
100#define opt_sts opt_status
101 __le16 opt_optl; /* Length of user data */
102 __u8 opt_data[16]; /* User data */
103};
104
105struct accessdata_dn {
106 __u8 acc_accl;
107 __u8 acc_acc[DN_MAXACCL];
108 __u8 acc_passl;
109 __u8 acc_pass[DN_MAXACCL];
110 __u8 acc_userl;
111 __u8 acc_user[DN_MAXACCL];
112};
113
114/*
115 * DECnet logical link information structure
116 */
117struct linkinfo_dn {
118 __u16 idn_segsize; /* Segment size for link */
119 __u8 idn_linkstate; /* Logical link state */
120};
121
122/*
123 * Ethernet address format (for DECnet)
124 */
125union etheraddress {
126 __u8 dne_addr[ETH_ALEN]; /* Full ethernet address */
127 struct {
128 __u8 dne_hiord[4]; /* DECnet HIORD prefix */
129 __u8 dne_nodeaddr[2]; /* DECnet node address */
130 } dne_remote;
131};
132
133
134/*
135 * DECnet physical socket address format
136 */
137struct dn_addr {
138 __le16 dna_family; /* AF_DECnet */
139 union etheraddress dna_netaddr; /* DECnet ethernet address */
140};
141
142#define DECNET_IOCTL_BASE 0x89 /* PROTOPRIVATE range */
143
144#define SIOCSNETADDR _IOW(DECNET_IOCTL_BASE, 0xe0, struct dn_naddr)
145#define SIOCGNETADDR _IOR(DECNET_IOCTL_BASE, 0xe1, struct dn_naddr)
146#define OSIOCSNETADDR _IOW(DECNET_IOCTL_BASE, 0xe0, int)
147#define OSIOCGNETADDR _IOR(DECNET_IOCTL_BASE, 0xe1, int)
148
149#endif /* _LINUX_DN_H */
include/uapi/linux/ethtool.h+61−2
@@ -736,6 +736,51 @@ enum ethtool_module_power_mode { · 735 unmodified lines
736 ETHTOOL_MODULE_POWER_MODE_HIGH,736 ETHTOOL_MODULE_POWER_MODE_HIGH,
737};737};
738 738
739/**
740 * enum ethtool_podl_pse_admin_state - operational state of the PoDL PSE
741 * functions. IEEE 802.3-2018 30.15.1.1.2 aPoDLPSEAdminState
742 * @ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN: state of PoDL PSE functions are
743 * unknown
744 * @ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED: PoDL PSE functions are disabled
745 * @ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED: PoDL PSE functions are enabled
746 */
747enum ethtool_podl_pse_admin_state {
748 ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN = 1,
749 ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED,
750 ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED,
751};
752
753/**
754 * enum ethtool_podl_pse_pw_d_status - power detection status of the PoDL PSE.
755 * IEEE 802.3-2018 30.15.1.1.3 aPoDLPSEPowerDetectionStatus:
756 * @ETHTOOL_PODL_PSE_PW_D_STATUS_UNKNOWN: PoDL PSE
757 * @ETHTOOL_PODL_PSE_PW_D_STATUS_DISABLED: "The enumeration “disabled” is
758 * asserted true when the PoDL PSE state diagram variable mr_pse_enable is
759 * false"
760 * @ETHTOOL_PODL_PSE_PW_D_STATUS_SEARCHING: "The enumeration “searching” is
761 * asserted true when either of the PSE state diagram variables
762 * pi_detecting or pi_classifying is true."
763 * @ETHTOOL_PODL_PSE_PW_D_STATUS_DELIVERING: "The enumeration “deliveringPower”
764 * is asserted true when the PoDL PSE state diagram variable pi_powered is
765 * true."
766 * @ETHTOOL_PODL_PSE_PW_D_STATUS_SLEEP: "The enumeration “sleep” is asserted
767 * true when the PoDL PSE state diagram variable pi_sleeping is true."
768 * @ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE: "The enumeration “idle” is asserted true
769 * when the logical combination of the PoDL PSE state diagram variables
770 * pi_prebiased*!pi_sleeping is true."
771 * @ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR: "The enumeration “error” is asserted
772 * true when the PoDL PSE state diagram variable overload_held is true."
773 */
774enum ethtool_podl_pse_pw_d_status {
775 ETHTOOL_PODL_PSE_PW_D_STATUS_UNKNOWN = 1,
776 ETHTOOL_PODL_PSE_PW_D_STATUS_DISABLED,
777 ETHTOOL_PODL_PSE_PW_D_STATUS_SEARCHING,
778 ETHTOOL_PODL_PSE_PW_D_STATUS_DELIVERING,
779 ETHTOOL_PODL_PSE_PW_D_STATUS_SLEEP,
780 ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE,
781 ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR,
782};
783
739/**784/**
740 * struct ethtool_gstrings - string set for data tagging785 * struct ethtool_gstrings - string set for data tagging
741 * @cmd: Command number = %ETHTOOL_GSTRINGS786 * @cmd: Command number = %ETHTOOL_GSTRINGS
@@ -1840,6 +1885,20 @@ static inline int ethtool_validate_duplex(__u8 duplex) · 1098 unmodified lines
1840#define MASTER_SLAVE_STATE_SLAVE 31885#define MASTER_SLAVE_STATE_SLAVE 3
1841#define MASTER_SLAVE_STATE_ERR 41886#define MASTER_SLAVE_STATE_ERR 4
1842 1887
1888/* These are used to throttle the rate of data on the phy interface when the
1889 * native speed of the interface is higher than the link speed. These should
1890 * not be used for phy interfaces which natively support multiple speeds (e.g.
1891 * MII or SGMII).
1892 */
1893/* No rate matching performed. */
1894#define RATE_MATCH_NONE 0
1895/* The phy sends pause frames to throttle the MAC. */
1896#define RATE_MATCH_PAUSE 1
1897/* The phy asserts CRS to prevent the MAC from transmitting. */
1898#define RATE_MATCH_CRS 2
1899/* The MAC is programmed with a sufficiently-large IPG. */
1900#define RATE_MATCH_OPEN_LOOP 3
1901
1843/* Which connector port. */1902/* Which connector port. */
1844#define PORT_TP 0x001903#define PORT_TP 0x00
1845#define PORT_AUI 0x011904#define PORT_AUI 0x01
@@ -2033,8 +2092,8 @@ enum ethtool_reset_flags { · 187 unmodified lines
2033 * reported consistently by PHYLIB. Read-only.2092 * reported consistently by PHYLIB. Read-only.
2034 * @master_slave_cfg: Master/slave port mode.2093 * @master_slave_cfg: Master/slave port mode.
2035 * @master_slave_state: Master/slave port state.2094 * @master_slave_state: Master/slave port state.
2095 * @rate_matching: Rate adaptation performed by the PHY
2036 * @reserved: Reserved for future use; see the note on reserved space.2096 * @reserved: Reserved for future use; see the note on reserved space.
2037 * @reserved1: Reserved for future use; see the note on reserved space.
2038 * @link_mode_masks: Variable length bitmaps.2097 * @link_mode_masks: Variable length bitmaps.
2039 *2098 *
2040 * If autonegotiation is disabled, the speed and @duplex represent the2099 * If autonegotiation is disabled, the speed and @duplex represent the
@@ -2085,7 +2144,7 @@ struct ethtool_link_settings { · 44 unmodified lines
2085 __u8 transceiver;2144 __u8 transceiver;
2086 __u8 master_slave_cfg;2145 __u8 master_slave_cfg;
2087 __u8 master_slave_state;2146 __u8 master_slave_state;
2088 __u8 reserved1[1];2147 __u8 rate_matching;
2089 __u32 reserved[7];2148 __u32 reserved[7];
2090 __u32 link_mode_masks[];2149 __u32 link_mode_masks[];
2091 /* layout of link_mode_masks fields:2150 /* layout of link_mode_masks fields:
include/uapi/linux/ethtool_netlink.h+17−0
@@ -49,6 +49,8 @@ enum { · 48 unmodified lines
49 ETHTOOL_MSG_PHC_VCLOCKS_GET,49 ETHTOOL_MSG_PHC_VCLOCKS_GET,
50 ETHTOOL_MSG_MODULE_GET,50 ETHTOOL_MSG_MODULE_GET,
51 ETHTOOL_MSG_MODULE_SET,51 ETHTOOL_MSG_MODULE_SET,
52 ETHTOOL_MSG_PSE_GET,
53 ETHTOOL_MSG_PSE_SET,
52 54
53 /* add new constants above here */55 /* add new constants above here */
54 __ETHTOOL_MSG_USER_CNT,56 __ETHTOOL_MSG_USER_CNT,
@@ -94,6 +96,7 @@ enum { · 39 unmodified lines
94 ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY,96 ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY,
95 ETHTOOL_MSG_MODULE_GET_REPLY,97 ETHTOOL_MSG_MODULE_GET_REPLY,
96 ETHTOOL_MSG_MODULE_NTF,98 ETHTOOL_MSG_MODULE_NTF,
99 ETHTOOL_MSG_PSE_GET_REPLY,
97 100
98 /* add new constants above here */101 /* add new constants above here */
99 __ETHTOOL_MSG_KERNEL_CNT,102 __ETHTOOL_MSG_KERNEL_CNT,
@@ -242,6 +245,7 @@ enum { · 142 unmodified lines
242 ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG, /* u8 */245 ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG, /* u8 */
243 ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, /* u8 */246 ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, /* u8 */
244 ETHTOOL_A_LINKMODES_LANES, /* u32 */247 ETHTOOL_A_LINKMODES_LANES, /* u32 */
248 ETHTOOL_A_LINKMODES_RATE_MATCHING, /* u8 */
245 249
246 /* add new constants above here */250 /* add new constants above here */
247 __ETHTOOL_A_LINKMODES_CNT,251 __ETHTOOL_A_LINKMODES_CNT,
@@ -862,6 +866,19 @@ enum { · 614 unmodified lines
862 ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1)866 ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1)
863};867};
864 868
869/* Power Sourcing Equipment */
870enum {
871 ETHTOOL_A_PSE_UNSPEC,
872 ETHTOOL_A_PSE_HEADER, /* nest - _A_HEADER_* */
873 ETHTOOL_A_PODL_PSE_ADMIN_STATE, /* u32 */
874 ETHTOOL_A_PODL_PSE_ADMIN_CONTROL, /* u32 */
875 ETHTOOL_A_PODL_PSE_PW_D_STATUS, /* u32 */
876
877 /* add new constants above here */
878 __ETHTOOL_A_PSE_CNT,
879 ETHTOOL_A_PSE_MAX = (__ETHTOOL_A_PSE_CNT - 1)
880};
881
865/* generic netlink info */882/* generic netlink info */
866#define ETHTOOL_GENL_NAME "ethtool"883#define ETHTOOL_GENL_NAME "ethtool"
867#define ETHTOOL_GENL_VERSION 1884#define ETHTOOL_GENL_VERSION 1
include/uapi/linux/if_ether.h+1−0
@@ -138,6 +138,7 @@ · 137 unmodified lines
138#define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */138#define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */
139#define ETH_P_CAN 0x000C /* CAN: Controller Area Network */139#define ETH_P_CAN 0x000C /* CAN: Controller Area Network */
140#define ETH_P_CANFD 0x000D /* CANFD: CAN flexible data rate*/140#define ETH_P_CANFD 0x000D /* CANFD: CAN flexible data rate*/
141#define ETH_P_CANXL 0x000E /* CANXL: eXtended frame Length */
141#define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/142#define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/
142#define ETH_P_TR_802_2 0x0011 /* 802.2 frames */143#define ETH_P_TR_802_2 0x0011 /* 802.2 frames */
143#define ETH_P_MOBITEX 0x0015 /* Mobitex (kaz@cafe.net) */144#define ETH_P_MOBITEX 0x0015 /* Mobitex (kaz@cafe.net) */
include/uapi/linux/if_link.h+12−0
@@ -370,6 +370,7 @@ enum { · 369 unmodified lines
370 IFLA_GRO_MAX_SIZE,370 IFLA_GRO_MAX_SIZE,
371 IFLA_TSO_MAX_SIZE,371 IFLA_TSO_MAX_SIZE,
372 IFLA_TSO_MAX_SEGS,372 IFLA_TSO_MAX_SEGS,
373 IFLA_ALLMULTI, /* Allmulti count: > 0 means acts ALLMULTI */
373 374
374 __IFLA_MAX375 __IFLA_MAX
375};376};
@@ -694,6 +695,7 @@ enum { · 318 unmodified lines
694 IFLA_XFRM_UNSPEC,695 IFLA_XFRM_UNSPEC,
695 IFLA_XFRM_LINK,696 IFLA_XFRM_LINK,
696 IFLA_XFRM_IF_ID,697 IFLA_XFRM_IF_ID,
698 IFLA_XFRM_COLLECT_METADATA,
697 __IFLA_XFRM_MAX699 __IFLA_XFRM_MAX
698};700};
699 701
@@ -1374,4 +1376,14 @@ enum { · 674 unmodified lines
1374 1376
1375#define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1)1377#define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1)
1376 1378
1379/* DSA section */
1380
1381enum {
1382 IFLA_DSA_UNSPEC,
1383 IFLA_DSA_MASTER,
1384 __IFLA_DSA_MAX,
1385};
1386
1387#define IFLA_DSA_MAX (__IFLA_DSA_MAX - 1)
1388
1377#endif /* _UAPI_LINUX_IF_LINK_H */1389#endif /* _UAPI_LINUX_IF_LINK_H */
include/uapi/linux/if_macsec.h+2−0
@@ -22,6 +22,8 @@ · 21 unmodified lines
22 22
23#define MACSEC_KEYID_LEN 1623#define MACSEC_KEYID_LEN 16
24 24
25#define MACSEC_SALT_LEN 12
26
25/* cipher IDs as per IEEE802.1AE-2018 (Table 14-1) */27/* cipher IDs as per IEEE802.1AE-2018 (Table 14-1) */
26#define MACSEC_CIPHER_ID_GCM_AES_128 0x0080C20001000001ULL28#define MACSEC_CIPHER_ID_GCM_AES_128 0x0080C20001000001ULL
27#define MACSEC_CIPHER_ID_GCM_AES_256 0x0080C20001000002ULL29#define MACSEC_CIPHER_ID_GCM_AES_256 0x0080C20001000002ULL
include/uapi/linux/in.h+8−14
@@ -68,6 +68,8 @@ enum { · 67 unmodified lines
68#define IPPROTO_PIM IPPROTO_PIM68#define IPPROTO_PIM IPPROTO_PIM
69 IPPROTO_COMP = 108, /* Compression Header Protocol */69 IPPROTO_COMP = 108, /* Compression Header Protocol */
70#define IPPROTO_COMP IPPROTO_COMP70#define IPPROTO_COMP IPPROTO_COMP
71 IPPROTO_L2TP = 115, /* Layer 2 Tunnelling Protocol */
72#define IPPROTO_L2TP IPPROTO_L2TP
71 IPPROTO_SCTP = 132, /* Stream Control Transport Protocol */73 IPPROTO_SCTP = 132, /* Stream Control Transport Protocol */
72#define IPPROTO_SCTP IPPROTO_SCTP74#define IPPROTO_SCTP IPPROTO_SCTP
73 IPPROTO_UDPLITE = 136, /* UDP-Lite (RFC 3828) */75 IPPROTO_UDPLITE = 136, /* UDP-Lite (RFC 3828) */
@@ -188,21 +190,13 @@ struct ip_mreq_source { · 114 unmodified lines
188};190};
189 191
190struct ip_msfilter {192struct ip_msfilter {
193 __be32 imsf_multiaddr;
194 __be32 imsf_interface;
195 __u32 imsf_fmode;
196 __u32 imsf_numsrc;
191 union {197 union {
192 struct {198 __be32 imsf_slist[1];
193 __be32 imsf_multiaddr_aux;199 __DECLARE_FLEX_ARRAY(__be32, imsf_slist_flex);
194 __be32 imsf_interface_aux;
195 __u32 imsf_fmode_aux;
196 __u32 imsf_numsrc_aux;
197 __be32 imsf_slist[1];
198 };
199 struct {
200 __be32 imsf_multiaddr;
201 __be32 imsf_interface;
202 __u32 imsf_fmode;
203 __u32 imsf_numsrc;
204 __be32 imsf_slist_flex[];
205 };
206 };200 };
207};201};
208 202
include/uapi/linux/l2tp.h+0−2
@@ -13,8 +13,6 @@ · 12 unmodified lines
13#include <linux/in.h>13#include <linux/in.h>
14#include <linux/in6.h>14#include <linux/in6.h>
15 15
16#define IPPROTO_L2TP 115
17
18/**16/**
19 * struct sockaddr_l2tpip - the sockaddr structure for L2TP-over-IP sockets17 * struct sockaddr_l2tpip - the sockaddr structure for L2TP-over-IP sockets
20 * @l2tp_family: address family number AF_L2TPIP.18 * @l2tp_family: address family number AF_L2TPIP.
include/uapi/linux/lwtunnel.h+10−0
@@ -15,6 +15,7 @@ enum lwtunnel_encap_types { · 14 unmodified lines
15 LWTUNNEL_ENCAP_SEG6_LOCAL,15 LWTUNNEL_ENCAP_SEG6_LOCAL,
16 LWTUNNEL_ENCAP_RPL,16 LWTUNNEL_ENCAP_RPL,
17 LWTUNNEL_ENCAP_IOAM6,17 LWTUNNEL_ENCAP_IOAM6,
18 LWTUNNEL_ENCAP_XFRM,
18 __LWTUNNEL_ENCAP_MAX,19 __LWTUNNEL_ENCAP_MAX,
19};20};
20 21
@@ -111,4 +112,13 @@ enum { · 90 unmodified lines
111 112
112#define LWT_BPF_MAX_HEADROOM 256113#define LWT_BPF_MAX_HEADROOM 256
113 114
115enum {
116 LWT_XFRM_UNSPEC,
117 LWT_XFRM_IF_ID,
118 LWT_XFRM_LINK,
119 __LWT_XFRM_MAX,
120};
121
122#define LWT_XFRM_MAX (__LWT_XFRM_MAX - 1)
123
114#endif /* _UAPI_LWTUNNEL_H_ */124#endif /* _UAPI_LWTUNNEL_H_ */
include/uapi/linux/netfilter.h+2−0
@@ -63,7 +63,9 @@ enum { · 62 unmodified lines
63 NFPROTO_NETDEV = 5,63 NFPROTO_NETDEV = 5,
64 NFPROTO_BRIDGE = 7,64 NFPROTO_BRIDGE = 7,
65 NFPROTO_IPV6 = 10,65 NFPROTO_IPV6 = 10,
66#ifndef __KERNEL__ /* no longer supported by kernel */
66 NFPROTO_DECNET = 12,67 NFPROTO_DECNET = 12,
68#endif
67 NFPROTO_NUMPROTO,69 NFPROTO_NUMPROTO,
68};70};
69 71
include/uapi/linux/netfilter/ipset/ip_set.h+0−4
@@ -3,10 +3,6 @@ · 2 unmodified lines
3 * Patrick Schaaf <bof@bof.de>3 * Patrick Schaaf <bof@bof.de>
4 * Martin Josefsson <gandalf@wlug.westbo.se>4 * Martin Josefsson <gandalf@wlug.westbo.se>
5 * Copyright (C) 2003-2011 Jozsef Kadlecsik <kadlec@netfilter.org>5 * Copyright (C) 2003-2011 Jozsef Kadlecsik <kadlec@netfilter.org>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */6 */
11#ifndef _UAPI_IP_SET_H7#ifndef _UAPI_IP_SET_H
12#define _UAPI_IP_SET_H8#define _UAPI_IP_SET_H
include/uapi/linux/netfilter/xt_AUDIT.h+0−4
@@ -4,10 +4,6 @@ · 3 unmodified lines
4 *4 *
5 * (C) 2010-2011 Thomas Graf <tgraf@redhat.com>5 * (C) 2010-2011 Thomas Graf <tgraf@redhat.com>
6 * (C) 2010-2011 Red Hat, Inc.6 * (C) 2010-2011 Red Hat, Inc.
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 */7 */
12 8
13#ifndef _XT_AUDIT_TARGET_H9#ifndef _XT_AUDIT_TARGET_H
include/uapi/linux/netfilter/xt_connmark.h+4−9
@@ -1,18 +1,13 @@
1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2/* Copyright (C) 2002,2004 MARA Systems AB <https://www.marasystems.com>
3 * by Henrik Nordstrom <hno@marasystems.com>
4 */
5
2#ifndef _XT_CONNMARK_H6#ifndef _XT_CONNMARK_H
3#define _XT_CONNMARK_H7#define _XT_CONNMARK_H
4 8
5#include <linux/types.h>9#include <linux/types.h>
6 10
7/* Copyright (C) 2002,2004 MARA Systems AB <https://www.marasystems.com>
8 * by Henrik Nordstrom <hno@marasystems.com>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 */
15
16enum {11enum {
17 XT_CONNMARK_SET = 0,12 XT_CONNMARK_SET = 0,
18 XT_CONNMARK_SAVE,13 XT_CONNMARK_SAVE,
include/uapi/linux/netfilter/xt_osf.h+0−14
@@ -1,20 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2/*2/*
3 * Copyright (c) 2003+ Evgeniy Polyakov <johnpol@2ka.mxt.ru>3 * Copyright (c) 2003+ Evgeniy Polyakov <johnpol@2ka.mxt.ru>
4 *
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, see <http://www.gnu.org/licenses/>.
18 */4 */
19 5
20#ifndef _XT_OSF_H6#ifndef _XT_OSF_H
include/uapi/linux/netfilter_decnet.h+0−72
@@ -1,72 +0,0 @@
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2#ifndef __LINUX_DECNET_NETFILTER_H
3#define __LINUX_DECNET_NETFILTER_H
4
5/* DECnet-specific defines for netfilter.
6 * This file (C) Steve Whitehouse 1999 derived from the
7 * ipv4 netfilter header file which is
8 * (C)1998 Rusty Russell -- This code is GPL.
9 */
10
11#include <linux/netfilter.h>
12
13/* only for userspace compatibility */
14#ifndef __KERNEL__
15
16#include <limits.h> /* for INT_MIN, INT_MAX */
17
18/* kernel define is in netfilter_defs.h */
19#define NF_DN_NUMHOOKS 7
20#endif /* ! __KERNEL__ */
21
22/* DECnet Hooks */
23/* After promisc drops, checksum checks. */
24#define NF_DN_PRE_ROUTING 0
25/* If the packet is destined for this box. */
26#define NF_DN_LOCAL_IN 1
27/* If the packet is destined for another interface. */
28#define NF_DN_FORWARD 2
29/* Packets coming from a local process. */
30#define NF_DN_LOCAL_OUT 3
31/* Packets about to hit the wire. */
32#define NF_DN_POST_ROUTING 4
33/* Input Hello Packets */
34#define NF_DN_HELLO 5
35/* Input Routing Packets */
36#define NF_DN_ROUTE 6
37
38enum nf_dn_hook_priorities {
39 NF_DN_PRI_FIRST = INT_MIN,
40 NF_DN_PRI_CONNTRACK = -200,
41 NF_DN_PRI_MANGLE = -150,
42 NF_DN_PRI_NAT_DST = -100,
43 NF_DN_PRI_FILTER = 0,
44 NF_DN_PRI_NAT_SRC = 100,
45 NF_DN_PRI_DNRTMSG = 200,
46 NF_DN_PRI_LAST = INT_MAX,
47};
48
49struct nf_dn_rtmsg {
50 int nfdn_ifindex;
51};
52
53#define NFDN_RTMSG(r) ((unsigned char *)(r) + NLMSG_ALIGN(sizeof(struct nf_dn_rtmsg)))
54
55#ifndef __KERNEL__
56/* backwards compatibility for userspace */
57#define DNRMG_L1_GROUP 0x01
58#define DNRMG_L2_GROUP 0x02
59#endif
60
61enum {
62 DNRNG_NLGRP_NONE,
63#define DNRNG_NLGRP_NONE DNRNG_NLGRP_NONE
64 DNRNG_NLGRP_L1,
65#define DNRNG_NLGRP_L1 DNRNG_NLGRP_L1
66 DNRNG_NLGRP_L2,
67#define DNRNG_NLGRP_L2 DNRNG_NLGRP_L2
68 __DNRNG_NLGRP_MAX
69};
70#define DNRNG_NLGRP_MAX (__DNRNG_NLGRP_MAX - 1)
71
72#endif /*__LINUX_DECNET_NETFILTER_H*/
include/uapi/linux/netlink.h+24−7
@@ -20,7 +20,7 @@ · 19 unmodified lines
20#define NETLINK_CONNECTOR 1120#define NETLINK_CONNECTOR 11
21#define NETLINK_NETFILTER 12 /* netfilter subsystem */21#define NETLINK_NETFILTER 12 /* netfilter subsystem */
22#define NETLINK_IP6_FW 1322#define NETLINK_IP6_FW 13
23#define NETLINK_DNRTMSG 14 /* DECnet routing messages */23#define NETLINK_DNRTMSG 14 /* DECnet routing messages (obsolete) */
24#define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */24#define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */
25#define NETLINK_GENERIC 1625#define NETLINK_GENERIC 16
26/* leave room for NETLINK_DM (DM Events) */26/* leave room for NETLINK_DM (DM Events) */
@@ -41,12 +41,20 @@ struct sockaddr_nl { · 14 unmodified lines
41 __u32 nl_groups; /* multicast groups mask */41 __u32 nl_groups; /* multicast groups mask */
42};42};
43 43
44/**
45 * struct nlmsghdr - fixed format metadata header of Netlink messages
46 * @nlmsg_len: Length of message including header
47 * @nlmsg_type: Message content type
48 * @nlmsg_flags: Additional flags
49 * @nlmsg_seq: Sequence number
50 * @nlmsg_pid: Sending process port ID
51 */
44struct nlmsghdr {52struct nlmsghdr {
45 __u32 nlmsg_len; /* Length of message including header */53 __u32 nlmsg_len;
46 __u16 nlmsg_type; /* Message content */54 __u16 nlmsg_type;
47 __u16 nlmsg_flags; /* Additional flags */55 __u16 nlmsg_flags;
48 __u32 nlmsg_seq; /* Sequence number */56 __u32 nlmsg_seq;
49 __u32 nlmsg_pid; /* Sending process port ID */57 __u32 nlmsg_pid;
50};58};
51 59
52/* Flags values */60/* Flags values */
@@ -54,7 +62,7 @@ struct nlmsghdr { · 1 unmodified line
54#define NLM_F_REQUEST 0x01 /* It is request message. */62#define NLM_F_REQUEST 0x01 /* It is request message. */
55#define NLM_F_MULTI 0x02 /* Multipart message, terminated by NLMSG_DONE */63#define NLM_F_MULTI 0x02 /* Multipart message, terminated by NLMSG_DONE */
56#define NLM_F_ACK 0x04 /* Reply with ack, with zero or error code */64#define NLM_F_ACK 0x04 /* Reply with ack, with zero or error code */
57#define NLM_F_ECHO 0x08 /* Echo this request */65#define NLM_F_ECHO 0x08 /* Receive resulting notifications */
58#define NLM_F_DUMP_INTR 0x10 /* Dump was inconsistent due to sequence change */66#define NLM_F_DUMP_INTR 0x10 /* Dump was inconsistent due to sequence change */
59#define NLM_F_DUMP_FILTERED 0x20 /* Dump was filtered as requested */67#define NLM_F_DUMP_FILTERED 0x20 /* Dump was filtered as requested */
60 68
@@ -132,6 +140,10 @@ struct nlmsgerr { · 71 unmodified lines
132 * be used - in the success case - to identify a created140 * be used - in the success case - to identify a created
133 * object or operation or similar (binary)141 * object or operation or similar (binary)
134 * @NLMSGERR_ATTR_POLICY: policy for a rejected attribute142 * @NLMSGERR_ATTR_POLICY: policy for a rejected attribute
143 * @NLMSGERR_ATTR_MISS_TYPE: type of a missing required attribute,
144 * %NLMSGERR_ATTR_MISS_NEST will not be present if the attribute was
145 * missing at the message level
146 * @NLMSGERR_ATTR_MISS_NEST: offset of the nest where attribute was missing
135 * @__NLMSGERR_ATTR_MAX: number of attributes147 * @__NLMSGERR_ATTR_MAX: number of attributes
136 * @NLMSGERR_ATTR_MAX: highest attribute number148 * @NLMSGERR_ATTR_MAX: highest attribute number
137 */149 */
@@ -141,6 +153,8 @@ enum nlmsgerr_attrs { · 3 unmodified lines
141 NLMSGERR_ATTR_OFFS,153 NLMSGERR_ATTR_OFFS,
142 NLMSGERR_ATTR_COOKIE,154 NLMSGERR_ATTR_COOKIE,
143 NLMSGERR_ATTR_POLICY,155 NLMSGERR_ATTR_POLICY,
156 NLMSGERR_ATTR_MISS_TYPE,
157 NLMSGERR_ATTR_MISS_NEST,
144 158
145 __NLMSGERR_ATTR_MAX,159 __NLMSGERR_ATTR_MAX,
146 NLMSGERR_ATTR_MAX = __NLMSGERR_ATTR_MAX - 1160 NLMSGERR_ATTR_MAX = __NLMSGERR_ATTR_MAX - 1
@@ -337,6 +351,9 @@ enum netlink_attribute_type { · 190 unmodified lines
337 * bitfield32 type (U32)351 * bitfield32 type (U32)
338 * @NL_POLICY_TYPE_ATTR_MASK: mask of valid bits for unsigned integers (U64)352 * @NL_POLICY_TYPE_ATTR_MASK: mask of valid bits for unsigned integers (U64)
339 * @NL_POLICY_TYPE_ATTR_PAD: pad attribute for 64-bit alignment353 * @NL_POLICY_TYPE_ATTR_PAD: pad attribute for 64-bit alignment
354 *
355 * @__NL_POLICY_TYPE_ATTR_MAX: number of attributes
356 * @NL_POLICY_TYPE_ATTR_MAX: highest attribute number
340 */357 */
341enum netlink_policy_type_attr {358enum netlink_policy_type_attr {
342 NL_POLICY_TYPE_ATTR_UNSPEC,359 NL_POLICY_TYPE_ATTR_UNSPEC,
include/uapi/linux/nl80211.h+22−3
@@ -377,14 +377,22 @@ · 376 unmodified lines
377 * the non-transmitting interfaces are deleted as well.377 * the non-transmitting interfaces are deleted as well.
378 *378 *
379 * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified379 * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified
380 * by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC.380 * by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC. %NL80211_ATTR_MAC
381 * represents peer's MLD address for MLO pairwise key. For MLO group key,
382 * the link is identified by %NL80211_ATTR_MLO_LINK_ID.
381 * @NL80211_CMD_SET_KEY: Set key attributes %NL80211_ATTR_KEY_DEFAULT,383 * @NL80211_CMD_SET_KEY: Set key attributes %NL80211_ATTR_KEY_DEFAULT,
382 * %NL80211_ATTR_KEY_DEFAULT_MGMT, or %NL80211_ATTR_KEY_THRESHOLD.384 * %NL80211_ATTR_KEY_DEFAULT_MGMT, or %NL80211_ATTR_KEY_THRESHOLD.
385 * For MLO connection, the link to set default key is identified by
386 * %NL80211_ATTR_MLO_LINK_ID.
383 * @NL80211_CMD_NEW_KEY: add a key with given %NL80211_ATTR_KEY_DATA,387 * @NL80211_CMD_NEW_KEY: add a key with given %NL80211_ATTR_KEY_DATA,
384 * %NL80211_ATTR_KEY_IDX, %NL80211_ATTR_MAC, %NL80211_ATTR_KEY_CIPHER,388 * %NL80211_ATTR_KEY_IDX, %NL80211_ATTR_MAC, %NL80211_ATTR_KEY_CIPHER,
385 * and %NL80211_ATTR_KEY_SEQ attributes.389 * and %NL80211_ATTR_KEY_SEQ attributes. %NL80211_ATTR_MAC represents
390 * peer's MLD address for MLO pairwise key. The link to add MLO
391 * group key is identified by %NL80211_ATTR_MLO_LINK_ID.
386 * @NL80211_CMD_DEL_KEY: delete a key identified by %NL80211_ATTR_KEY_IDX392 * @NL80211_CMD_DEL_KEY: delete a key identified by %NL80211_ATTR_KEY_IDX
387 * or %NL80211_ATTR_MAC.393 * or %NL80211_ATTR_MAC. %NL80211_ATTR_MAC represents peer's MLD address
394 * for MLO pairwise key. The link to delete group key is identified by
395 * %NL80211_ATTR_MLO_LINK_ID.
388 *396 *
389 * @NL80211_CMD_GET_BEACON: (not used)397 * @NL80211_CMD_GET_BEACON: (not used)
390 * @NL80211_CMD_SET_BEACON: change the beacon on an access point interface398 * @NL80211_CMD_SET_BEACON: change the beacon on an access point interface
@@ -4951,6 +4959,7 @@ enum nl80211_bss_scan_width { · 4560 unmodified lines
4951 * using the nesting index as the antenna number.4959 * using the nesting index as the antenna number.
4952 * @NL80211_BSS_FREQUENCY_OFFSET: frequency offset in KHz4960 * @NL80211_BSS_FREQUENCY_OFFSET: frequency offset in KHz
4953 * @NL80211_BSS_MLO_LINK_ID: MLO link ID of the BSS (u8).4961 * @NL80211_BSS_MLO_LINK_ID: MLO link ID of the BSS (u8).
4962 * @NL80211_BSS_MLD_ADDR: MLD address of this BSS if connected to it.
4954 * @__NL80211_BSS_AFTER_LAST: internal4963 * @__NL80211_BSS_AFTER_LAST: internal
4955 * @NL80211_BSS_MAX: highest BSS attribute4964 * @NL80211_BSS_MAX: highest BSS attribute
4956 */4965 */
@@ -4977,6 +4986,7 @@ enum nl80211_bss { · 20 unmodified lines
4977 NL80211_BSS_CHAIN_SIGNAL,4986 NL80211_BSS_CHAIN_SIGNAL,
4978 NL80211_BSS_FREQUENCY_OFFSET,4987 NL80211_BSS_FREQUENCY_OFFSET,
4979 NL80211_BSS_MLO_LINK_ID,4988 NL80211_BSS_MLO_LINK_ID,
4989 NL80211_BSS_MLD_ADDR,
4980 4990
4981 /* keep last */4991 /* keep last */
4982 __NL80211_BSS_AFTER_LAST,4992 __NL80211_BSS_AFTER_LAST,
@@ -6273,6 +6283,14 @@ enum nl80211_feature_flags { · 1290 unmodified lines
6273 * @NL80211_EXT_FEATURE_RADAR_BACKGROUND: Device supports background radar/CAC6283 * @NL80211_EXT_FEATURE_RADAR_BACKGROUND: Device supports background radar/CAC
6274 * detection.6284 * detection.
6275 *6285 *
6286 * @NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE: Device can perform a MAC address
6287 * change without having to bring the underlying network device down
6288 * first. For example, in station mode this can be used to vary the
6289 * origin MAC address prior to a connection to a new AP for privacy
6290 * or other reasons. Note that certain driver specific restrictions
6291 * might apply, e.g. no scans in progress, no offchannel operations
6292 * in progress, and no active connections.
6293 *
6276 * @NUM_NL80211_EXT_FEATURES: number of extended features.6294 * @NUM_NL80211_EXT_FEATURES: number of extended features.
6277 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.6295 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
6278 */6296 */
@@ -6340,6 +6358,7 @@ enum nl80211_ext_feature_index { · 61 unmodified lines
6340 NL80211_EXT_FEATURE_BSS_COLOR,6358 NL80211_EXT_FEATURE_BSS_COLOR,
6341 NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,6359 NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
6342 NL80211_EXT_FEATURE_RADAR_BACKGROUND,6360 NL80211_EXT_FEATURE_RADAR_BACKGROUND,
6361 NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE,
6343 6362
6344 /* add new features before the definition below */6363 /* add new features before the definition below */
6345 NUM_NL80211_EXT_FEATURES,6364 NUM_NL80211_EXT_FEATURES,
include/uapi/linux/openvswitch.h+3−0
@@ -76,6 +76,8 @@ enum ovs_datapath_cmd { · 75 unmodified lines
76 * datapath. Always present in notifications.76 * datapath. Always present in notifications.
77 * @OVS_DP_ATTR_MEGAFLOW_STATS: Statistics about mega flow masks usage for the77 * @OVS_DP_ATTR_MEGAFLOW_STATS: Statistics about mega flow masks usage for the
78 * datapath. Always present in notifications.78 * datapath. Always present in notifications.
79 * @OVS_DP_ATTR_IFINDEX: Interface index for a new datapath netdev. Only
80 * valid for %OVS_DP_CMD_NEW requests.
79 *81 *
80 * These attributes follow the &struct ovs_header within the Generic Netlink82 * These attributes follow the &struct ovs_header within the Generic Netlink
81 * payload for %OVS_DP_* commands.83 * payload for %OVS_DP_* commands.
@@ -92,6 +94,7 @@ enum ovs_datapath_attr { · 10 unmodified lines
92 OVS_DP_ATTR_PER_CPU_PIDS, /* Netlink PIDS to receive upcalls in94 OVS_DP_ATTR_PER_CPU_PIDS, /* Netlink PIDS to receive upcalls in
93 * per-cpu dispatch mode95 * per-cpu dispatch mode
94 */96 */
97 OVS_DP_ATTR_IFINDEX,
95 __OVS_DP_ATTR_MAX98 __OVS_DP_ATTR_MAX
96};99};
97 100
include/uapi/linux/pkt_cls.h+2−0
@@ -592,6 +592,8 @@ enum { · 591 unmodified lines
592 TCA_FLOWER_KEY_PPPOE_SID, /* be16 */592 TCA_FLOWER_KEY_PPPOE_SID, /* be16 */
593 TCA_FLOWER_KEY_PPP_PROTO, /* be16 */593 TCA_FLOWER_KEY_PPP_PROTO, /* be16 */
594 594
595 TCA_FLOWER_KEY_L2TPV3_SID, /* be32 */
596
595 __TCA_FLOWER_MAX,597 __TCA_FLOWER_MAX,
596};598};
597 599
include/uapi/linux/pkt_sched.h+11−0
@@ -1232,6 +1232,16 @@ enum { · 1231 unmodified lines
1232#define TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST _BITUL(0)1232#define TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST _BITUL(0)
1233#define TCA_TAPRIO_ATTR_FLAG_FULL_OFFLOAD _BITUL(1)1233#define TCA_TAPRIO_ATTR_FLAG_FULL_OFFLOAD _BITUL(1)
1234 1234
1235enum {
1236 TCA_TAPRIO_TC_ENTRY_UNSPEC,
1237 TCA_TAPRIO_TC_ENTRY_INDEX, /* u32 */
1238 TCA_TAPRIO_TC_ENTRY_MAX_SDU, /* u32 */
1239
1240 /* add new constants above here */
1241 __TCA_TAPRIO_TC_ENTRY_CNT,
1242 TCA_TAPRIO_TC_ENTRY_MAX = (__TCA_TAPRIO_TC_ENTRY_CNT - 1)
1243};
1244
1235enum {1245enum {
1236 TCA_TAPRIO_ATTR_UNSPEC,1246 TCA_TAPRIO_ATTR_UNSPEC,
1237 TCA_TAPRIO_ATTR_PRIOMAP, /* struct tc_mqprio_qopt */1247 TCA_TAPRIO_ATTR_PRIOMAP, /* struct tc_mqprio_qopt */
@@ -1245,6 +1255,7 @@ enum { · 7 unmodified lines
1245 TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME_EXTENSION, /* s64 */1255 TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME_EXTENSION, /* s64 */
1246 TCA_TAPRIO_ATTR_FLAGS, /* u32 */1256 TCA_TAPRIO_ATTR_FLAGS, /* u32 */
1247 TCA_TAPRIO_ATTR_TXTIME_DELAY, /* u32 */1257 TCA_TAPRIO_ATTR_TXTIME_DELAY, /* u32 */
1258 TCA_TAPRIO_ATTR_TC_ENTRY, /* nest */
1248 __TCA_TAPRIO_ATTR_MAX,1259 __TCA_TAPRIO_ATTR_MAX,
1249};1260};
1250 1261
include/uapi/linux/seg6_local.h+24−0
@@ -28,6 +28,7 @@ enum { · 27 unmodified lines
28 SEG6_LOCAL_BPF,28 SEG6_LOCAL_BPF,
29 SEG6_LOCAL_VRFTABLE,29 SEG6_LOCAL_VRFTABLE,
30 SEG6_LOCAL_COUNTERS,30 SEG6_LOCAL_COUNTERS,
31 SEG6_LOCAL_FLAVORS,
31 __SEG6_LOCAL_MAX,32 __SEG6_LOCAL_MAX,
32};33};
33#define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1)34#define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1)
@@ -110,4 +111,27 @@ enum { · 76 unmodified lines
110 111
111#define SEG6_LOCAL_CNT_MAX (__SEG6_LOCAL_CNT_MAX - 1)112#define SEG6_LOCAL_CNT_MAX (__SEG6_LOCAL_CNT_MAX - 1)
112 113
114/* SRv6 End* Flavor attributes */
115enum {
116 SEG6_LOCAL_FLV_UNSPEC,
117 SEG6_LOCAL_FLV_OPERATION,
118 SEG6_LOCAL_FLV_LCBLOCK_BITS,
119 SEG6_LOCAL_FLV_LCNODE_FN_BITS,
120 __SEG6_LOCAL_FLV_MAX,
121};
122
123#define SEG6_LOCAL_FLV_MAX (__SEG6_LOCAL_FLV_MAX - 1)
124
125/* Designed flavor operations for SRv6 End* Behavior */
126enum {
127 SEG6_LOCAL_FLV_OP_UNSPEC,
128 SEG6_LOCAL_FLV_OP_PSP,
129 SEG6_LOCAL_FLV_OP_USP,
130 SEG6_LOCAL_FLV_OP_USD,
131 SEG6_LOCAL_FLV_OP_NEXT_CSID,
132 __SEG6_LOCAL_FLV_OP_MAX
133};
134
135#define SEG6_LOCAL_FLV_OP_MAX (__SEG6_LOCAL_FLV_OP_MAX - 1)
136
113#endif137#endif
include/uapi/linux/tc_act/tc_bpf.h+0−5
@@ -1,11 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2/*2/*
3 * Copyright (c) 2015 Jiri Pirko <jiri@resnulli.us>3 * Copyright (c) 2015 Jiri Pirko <jiri@resnulli.us>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 */4 */
10 5
11#ifndef __LINUX_TC_BPF_H6#ifndef __LINUX_TC_BPF_H
include/uapi/linux/tc_act/tc_skbedit.h+0−13
@@ -2,19 +2,6 @@ · 1 unmodified line
2/*2/*
3 * Copyright (c) 2008, Intel Corporation.3 * Copyright (c) 2008, Intel Corporation.
4 *4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along with
15 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
16 * Place - Suite 330, Boston, MA 02111-1307 USA.
17 *
18 * Author: Alexander Duyck <alexander.h.duyck@intel.com>5 * Author: Alexander Duyck <alexander.h.duyck@intel.com>
19 */6 */
20 7
include/uapi/linux/tc_act/tc_skbmod.h+1−6
@@ -1,12 +1,7 @@
1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2/*2/*
3 * Copyright (c) 2016, Jamal Hadi Salim3 * Copyright (c) 2016, Jamal Hadi Salim
4 *4 */
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9*/
10 5
11#ifndef __LINUX_TC_SKBMOD_H6#ifndef __LINUX_TC_SKBMOD_H
12#define __LINUX_TC_SKBMOD_H7#define __LINUX_TC_SKBMOD_H
include/uapi/linux/tc_act/tc_tunnel_key.h+0−5
@@ -2,11 +2,6 @@ · 1 unmodified line
2/*2/*
3 * Copyright (c) 2016, Amir Vadai <amir@vadai.me>3 * Copyright (c) 2016, Amir Vadai <amir@vadai.me>
4 * Copyright (c) 2016, Mellanox Technologies. All rights reserved.4 * Copyright (c) 2016, Mellanox Technologies. All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 */5 */
11 6
12#ifndef __LINUX_TC_TUNNEL_KEY_H7#ifndef __LINUX_TC_TUNNEL_KEY_H
include/uapi/linux/tc_act/tc_vlan.h+0−5
@@ -1,11 +1,6 @@
1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2/*2/*
3 * Copyright (c) 2014 Jiri Pirko <jiri@resnulli.us>3 * Copyright (c) 2014 Jiri Pirko <jiri@resnulli.us>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 */4 */
10 5
11#ifndef __LINUX_TC_VLAN_H6#ifndef __LINUX_TC_VLAN_H
include/uapi/linux/tls.h+30−0
@@ -100,6 +100,20 @@ · 99 unmodified lines
100#define TLS_CIPHER_SM4_CCM_TAG_SIZE 16100#define TLS_CIPHER_SM4_CCM_TAG_SIZE 16
101#define TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE 8101#define TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE 8
102 102
103#define TLS_CIPHER_ARIA_GCM_128 57
104#define TLS_CIPHER_ARIA_GCM_128_IV_SIZE 8
105#define TLS_CIPHER_ARIA_GCM_128_KEY_SIZE 16
106#define TLS_CIPHER_ARIA_GCM_128_SALT_SIZE 4
107#define TLS_CIPHER_ARIA_GCM_128_TAG_SIZE 16
108#define TLS_CIPHER_ARIA_GCM_128_REC_SEQ_SIZE 8
109
110#define TLS_CIPHER_ARIA_GCM_256 58
111#define TLS_CIPHER_ARIA_GCM_256_IV_SIZE 8
112#define TLS_CIPHER_ARIA_GCM_256_KEY_SIZE 32
113#define TLS_CIPHER_ARIA_GCM_256_SALT_SIZE 4
114#define TLS_CIPHER_ARIA_GCM_256_TAG_SIZE 16
115#define TLS_CIPHER_ARIA_GCM_256_REC_SEQ_SIZE 8
116
103#define TLS_SET_RECORD_TYPE 1117#define TLS_SET_RECORD_TYPE 1
104#define TLS_GET_RECORD_TYPE 2118#define TLS_GET_RECORD_TYPE 2
105 119
@@ -156,6 +170,22 @@ struct tls12_crypto_info_sm4_ccm { · 50 unmodified lines
156 unsigned char rec_seq[TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE];170 unsigned char rec_seq[TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE];
157};171};
158 172
173struct tls12_crypto_info_aria_gcm_128 {
174 struct tls_crypto_info info;
175 unsigned char iv[TLS_CIPHER_ARIA_GCM_128_IV_SIZE];
176 unsigned char key[TLS_CIPHER_ARIA_GCM_128_KEY_SIZE];
177 unsigned char salt[TLS_CIPHER_ARIA_GCM_128_SALT_SIZE];
178 unsigned char rec_seq[TLS_CIPHER_ARIA_GCM_128_REC_SEQ_SIZE];
179};
180
181struct tls12_crypto_info_aria_gcm_256 {
182 struct tls_crypto_info info;
183 unsigned char iv[TLS_CIPHER_ARIA_GCM_256_IV_SIZE];
184 unsigned char key[TLS_CIPHER_ARIA_GCM_256_KEY_SIZE];
185 unsigned char salt[TLS_CIPHER_ARIA_GCM_256_SALT_SIZE];
186 unsigned char rec_seq[TLS_CIPHER_ARIA_GCM_256_REC_SEQ_SIZE];
187};
188
159enum {189enum {
160 TLS_INFO_UNSPEC,190 TLS_INFO_UNSPEC,
161 TLS_INFO_VERSION,191 TLS_INFO_VERSION,