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 ...
Showing the changes to include/uapi/linux (30 of 2136 files). Show all
Unified · Split
| @@ -87,10 +87,35 @@ struct bpf_cgroup_storage_key { · 86 unmodified lines | ||
| 87 | 87 | __u32 attach_type; /* program attach type (enum bpf_attach_type) */ |
| 88 | 88 | }; |
| 89 | 89 | |
| 90 | +enum 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 | + | |
| 90 | 98 | union bpf_iter_link_info { |
| 91 | 99 | struct { |
| 92 | 100 | __u32 map_fd; |
| 93 | 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 | 121 | /* BPF syscall commands, see bpf(2) man-page for more details. */ |
| @@ -909,6 +934,7 @@ enum bpf_map_type { · 812 unmodified lines | ||
| 909 | 934 | BPF_MAP_TYPE_INODE_STORAGE, |
| 910 | 935 | BPF_MAP_TYPE_TASK_STORAGE, |
| 911 | 936 | BPF_MAP_TYPE_BLOOM_FILTER, |
| 937 | + BPF_MAP_TYPE_USER_RINGBUF, | |
| 912 | 938 | }; |
| 913 | 939 | |
| 914 | 940 | /* Note that tracing related programs such as |
| @@ -1233,7 +1259,7 @@ enum { · 318 unmodified lines | ||
| 1233 | 1259 | |
| 1234 | 1260 | /* Query effective (directly attached + inherited from ancestor cgroups) |
| 1235 | 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 | 1264 | #define BPF_F_QUERY_EFFECTIVE (1U << 0) |
| 1239 | 1265 | |
| @@ -1432,7 +1458,10 @@ union bpf_attr { · 192 unmodified lines | ||
| 1432 | 1458 | __u32 attach_flags; |
| 1433 | 1459 | __aligned_u64 prog_ids; |
| 1434 | 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 | 1465 | } query; |
| 1437 | 1466 | |
| 1438 | 1467 | struct { /* anonymous struct used by BPF_RAW_TRACEPOINT_OPEN command */ |
| @@ -2573,10 +2602,12 @@ union bpf_attr { · 1134 unmodified lines | ||
| 2573 | 2602 | * There are two supported modes at this time: |
| 2574 | 2603 | * |
| 2575 | 2604 | * * **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 | 2608 | * * **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 | 2612 | * The following flags are supported at this time: |
| 2582 | 2613 | * |
| @@ -3008,8 +3039,18 @@ union bpf_attr { · 425 unmodified lines | ||
| 3008 | 3039 | * **BPF_F_USER_STACK** |
| 3009 | 3040 | * Collect a user space stack instead of a kernel stack. |
| 3010 | 3041 | * **BPF_F_USER_BUILD_ID** |
| 3011 | − * Collect buildid+offset instead of ips for user stack, | |
| 3012 | − * only valid if **BPF_F_USER_STACK** is also specified. | |
| 3042 | + * Collect (build_id, file_offset) instead of ips for user | |
| 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 | 3055 | * **bpf_get_stack**\ () can collect up to |
| 3015 | 3056 | * **PERF_MAX_STACK_DEPTH** both kernel and user frames, subject |
| @@ -4425,7 +4466,7 @@ union bpf_attr { · 1409 unmodified lines | ||
| 4425 | 4466 | * |
| 4426 | 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 | 4471 | * **-EPERM** if the helper cannot be used under the current |
| 4431 | 4472 | * *skops*\ **->op**. |
| @@ -4634,7 +4675,7 @@ union bpf_attr { · 202 unmodified lines | ||
| 4634 | 4675 | * a *map* with *task* as the **key**. From this |
| 4635 | 4676 | * perspective, the usage is not much different from |
| 4636 | 4677 | * **bpf_map_lookup_elem**\ (*map*, **&**\ *task*) except this |
| 4637 | − * helper enforces the key must be an task_struct and the map must also | |
| 4678 | + * helper enforces the key must be a task_struct and the map must also | |
| 4638 | 4679 | * be a **BPF_MAP_TYPE_TASK_STORAGE**. |
| 4639 | 4680 | * |
| 4640 | 4681 | * Underneath, the value is stored locally at *task* instead of |
| @@ -4692,7 +4733,7 @@ union bpf_attr { · 51 unmodified lines | ||
| 4692 | 4733 | * |
| 4693 | 4734 | * long bpf_ima_inode_hash(struct inode *inode, void *dst, u32 size) |
| 4694 | 4735 | * 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 | 4737 | * If the hash is larger than *size*, then only *size* |
| 4697 | 4738 | * bytes will be copied to *dst* |
| 4698 | 4739 | * Return |
| @@ -4716,12 +4757,12 @@ union bpf_attr { · 17 unmodified lines | ||
| 4716 | 4757 | * |
| 4717 | 4758 | * The argument *len_diff* can be used for querying with a planned |
| 4718 | 4759 | * size change. This allows to check MTU prior to changing packet |
| 4719 | − * ctx. Providing an *len_diff* adjustment that is larger than the | |
| 4760 | + * ctx. Providing a *len_diff* adjustment that is larger than the | |
| 4720 | 4761 | * actual packet size (resulting in negative packet size) will in |
| 4721 | − * principle not exceed the MTU, why it is not considered a | |
| 4722 | − * failure. Other BPF-helpers are needed for performing the | |
| 4723 | − * planned size change, why the responsability for catch a negative | |
| 4724 | − * packet size belong in those helpers. | |
| 4762 | + * principle not exceed the MTU, which is why it is not considered | |
| 4763 | + * a failure. Other BPF helpers are needed for performing the | |
| 4764 | + * planned size change; therefore the responsibility for catching | |
| 4765 | + * a negative packet size belongs in those helpers. | |
| 4725 | 4766 | * |
| 4726 | 4767 | * Specifying *ifindex* zero means the MTU check is performed |
| 4727 | 4768 | * against the current net device. This is practical if this isn't |
| @@ -4919,6 +4960,7 @@ union bpf_attr { · 191 unmodified lines | ||
| 4919 | 4960 | * Get address of the traced function (for tracing and kprobe programs). |
| 4920 | 4961 | * Return |
| 4921 | 4962 | * Address of the traced function. |
| 4963 | + * 0 for kprobes placed within the function (not at the entry). | |
| 4922 | 4964 | * |
| 4923 | 4965 | * u64 bpf_get_attach_cookie(void *ctx) |
| 4924 | 4966 | * Description |
| @@ -5048,12 +5090,12 @@ union bpf_attr { · 123 unmodified lines | ||
| 5048 | 5090 | * |
| 5049 | 5091 | * long bpf_get_func_arg(void *ctx, u32 n, u64 *value) |
| 5050 | 5092 | * 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 | 5094 | * returned in **value**. |
| 5053 | 5095 | * |
| 5054 | 5096 | * Return |
| 5055 | 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 | 5100 | * long bpf_get_func_ret(void *ctx, u64 *value) |
| 5059 | 5101 | * Description |
| @@ -5066,24 +5108,37 @@ union bpf_attr { · 6 unmodified lines | ||
| 5066 | 5108 | * |
| 5067 | 5109 | * long bpf_get_func_arg_cnt(void *ctx) |
| 5068 | 5110 | * 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 | 5114 | * Return |
| 5072 | − * The number of arguments of the traced function. | |
| 5115 | + * The number of argument registers of the traced function. | |
| 5073 | 5116 | * |
| 5074 | 5117 | * int bpf_get_retval(void) |
| 5075 | 5118 | * 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 | 5123 | * Return |
| 5080 | − * The syscall's return value. | |
| 5124 | + * The BPF program's return value. | |
| 5081 | 5125 | * |
| 5082 | 5126 | * int bpf_set_retval(int retval) |
| 5083 | 5127 | * 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 | 5142 | * Return |
| 5088 | 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 | 5386 | * **-EACCES** if the SYN cookie is not valid. |
| 5332 | 5387 | * |
| 5333 | 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 | 5439 | #define __BPF_FUNC_MAPPER(FN) \ |
| 5336 | 5440 | FN(unspec), \ |
| @@ -5541,6 +5645,8 @@ union bpf_attr { · 204 unmodified lines | ||
| 5541 | 5645 | FN(tcp_raw_gen_syncookie_ipv6), \ |
| 5542 | 5646 | FN(tcp_raw_check_syncookie_ipv4), \ |
| 5543 | 5647 | FN(tcp_raw_check_syncookie_ipv6), \ |
| 5648 | + FN(ktime_get_tai_ns), \ | |
| 5649 | + FN(user_ringbuf_drain), \ | |
| 5544 | 5650 | /* */ |
| 5545 | 5651 | |
| 5546 | 5652 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper |
| @@ -5603,6 +5709,11 @@ enum { · 56 unmodified lines | ||
| 5603 | 5709 | BPF_F_SEQ_NUMBER = (1ULL << 3), |
| 5604 | 5710 | }; |
| 5605 | 5711 | |
| 5712 | +/* BPF_FUNC_skb_get_tunnel_key flags. */ | |
| 5713 | +enum { | |
| 5714 | + BPF_F_TUNINFO_FLAGS = (1ULL << 4), | |
| 5715 | +}; | |
| 5716 | + | |
| 5606 | 5717 | /* BPF_FUNC_perf_event_output, BPF_FUNC_perf_event_read and |
| 5607 | 5718 | * BPF_FUNC_perf_event_read_value flags. |
| 5608 | 5719 | */ |
| @@ -5792,7 +5903,10 @@ struct bpf_tunnel_key { · 183 unmodified lines | ||
| 5792 | 5903 | }; |
| 5793 | 5904 | __u8 tunnel_tos; |
| 5794 | 5905 | __u8 tunnel_ttl; |
| 5795 | − __u16 tunnel_ext; /* Padding, future use. */ | |
| 5906 | + union { | |
| 5907 | + __u16 tunnel_ext; /* compat */ | |
| 5908 | + __be16 tunnel_flags; | |
| 5909 | + }; | |
| 5796 | 5910 | __u32 tunnel_label; |
| 5797 | 5911 | union { |
| 5798 | 5912 | __u32 local_ipv4; |
| @@ -5836,6 +5950,11 @@ enum bpf_ret_code { · 37 unmodified lines | ||
| 5836 | 5950 | * represented by BPF_REDIRECT above). |
| 5837 | 5951 | */ |
| 5838 | 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 | |
| 5841 | 5960 | struct bpf_sock { |
| @@ -6134,11 +6253,26 @@ struct bpf_link_info { · 292 unmodified lines | ||
| 6134 | 6253 | struct { |
| 6135 | 6254 | __aligned_u64 target_name; /* in/out: target_name buffer ptr */ |
| 6136 | 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 | 6261 | union { |
| 6138 | 6262 | struct { |
| 6139 | 6263 | __u32 map_id; |
| 6140 | 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 | 6276 | } iter; |
| 6143 | 6277 | struct { |
| 6144 | 6278 | __u32 netns_ino; |
| @@ -48,6 +48,7 @@ · 47 unmodified lines | ||
| 48 | 48 | |
| 49 | 49 | #include <linux/types.h> |
| 50 | 50 | #include <linux/socket.h> |
| 51 | +#include <linux/stddef.h> /* for offsetof */ | |
| 51 | 52 | |
| 52 | 53 | /* controller area network (CAN) kernel definitions */ |
| 53 | 54 | |
| @@ -60,6 +61,7 @@ · 6 unmodified lines | ||
| 60 | 61 | #define CAN_SFF_MASK 0x000007FFU /* standard frame format (SFF) */ |
| 61 | 62 | #define CAN_EFF_MASK 0x1FFFFFFFU /* extended frame format (EFF) */ |
| 62 | 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 | 67 | * Controller Area Network Identifier structure |
| @@ -73,6 +75,7 @@ typedef __u32 canid_t; · 7 unmodified lines | ||
| 73 | 75 | |
| 74 | 76 | #define CAN_SFF_ID_BITS 11 |
| 75 | 77 | #define CAN_EFF_ID_BITS 29 |
| 78 | +#define CANXL_PRIO_BITS CAN_SFF_ID_BITS | |
| 76 | 79 | |
| 77 | 80 | /* |
| 78 | 81 | * Controller Area Network Error Message Frame Mask structure |
| @@ -91,6 +94,16 @@ typedef __u32 can_err_mask_t; · 12 unmodified lines | ||
| 91 | 94 | #define CANFD_MAX_DLC 15 |
| 92 | 95 | #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 | 108 | * struct can_frame - Classical CAN frame structure (aka CAN 2.0B) |
| 96 | 109 | * @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 | 154 | * When this is done the former differentiation via CAN_MTU / CANFD_MTU gets |
| 142 | 155 | * lost. CANFD_FDF allows programmers to mark CAN FD frames in the case of |
| 143 | 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 of | |
| 145 | − * struct canfd_frame therefore the CANFD_FDF flag is disregarded by Linux. | |
| 157 | + * Since the introduction of CAN XL the CANFD_FDF flag is set in all CAN FD | |
| 158 | + * frame structures provided by the CAN subsystem of the Linux kernel. | |
| 146 | 159 | */ |
| 147 | 160 | #define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */ |
| 148 | 161 | #define CANFD_ESI 0x02 /* error state indicator of the transmitting node */ |
| @@ -166,8 +179,46 @@ struct canfd_frame { · 17 unmodified lines | ||
| 166 | 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 | + */ | |
| 207 | +struct 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 | 216 | #define CAN_MTU (sizeof(struct can_frame)) |
| 170 | 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 | 223 | /* particular protocols of the protocol family PF_CAN */ |
| 173 | 224 | #define CAN_RAW 1 /* RAW sockets */ |
| @@ -62,6 +62,7 @@ enum { · 61 unmodified lines | ||
| 62 | 62 | CAN_RAW_RECV_OWN_MSGS, /* receive my own msgs (default:off) */ |
| 63 | 63 | CAN_RAW_FD_FRAMES, /* allow CAN FD frames (default:off) */ |
| 64 | 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 | 68 | #endif /* !_UAPI_CAN_RAW_H */ |
| @@ -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 | − | |
| 77 | −struct dn_naddr { | |
| 78 | − __le16 a_len; | |
| 79 | − __u8 a_addr[DN_MAXADDL]; /* Two bytes little endian */ | |
| 80 | −}; | |
| 81 | − | |
| 82 | −struct 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 | − */ | |
| 98 | −struct 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 | − | |
| 105 | −struct 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 | − */ | |
| 117 | −struct 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 | − */ | |
| 125 | −union 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 | − */ | |
| 137 | −struct 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 */ | |
| @@ -736,6 +736,51 @@ enum ethtool_module_power_mode { · 735 unmodified lines | ||
| 736 | 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 | + */ | |
| 747 | +enum 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 | + */ | |
| 774 | +enum 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 | 785 | * struct ethtool_gstrings - string set for data tagging |
| 741 | 786 | * @cmd: Command number = %ETHTOOL_GSTRINGS |
| @@ -1840,6 +1885,20 @@ static inline int ethtool_validate_duplex(__u8 duplex) · 1098 unmodified lines | ||
| 1840 | 1885 | #define MASTER_SLAVE_STATE_SLAVE 3 |
| 1841 | 1886 | #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 | 1902 | /* Which connector port. */ |
| 1844 | 1903 | #define PORT_TP 0x00 |
| 1845 | 1904 | #define PORT_AUI 0x01 |
| @@ -2033,8 +2092,8 @@ enum ethtool_reset_flags { · 187 unmodified lines | ||
| 2033 | 2092 | * reported consistently by PHYLIB. Read-only. |
| 2034 | 2093 | * @master_slave_cfg: Master/slave port mode. |
| 2035 | 2094 | * @master_slave_state: Master/slave port state. |
| 2095 | + * @rate_matching: Rate adaptation performed by the PHY | |
| 2036 | 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 | 2097 | * @link_mode_masks: Variable length bitmaps. |
| 2039 | 2098 | * |
| 2040 | 2099 | * If autonegotiation is disabled, the speed and @duplex represent the |
| @@ -2085,7 +2144,7 @@ struct ethtool_link_settings { · 44 unmodified lines | ||
| 2085 | 2144 | __u8 transceiver; |
| 2086 | 2145 | __u8 master_slave_cfg; |
| 2087 | 2146 | __u8 master_slave_state; |
| 2088 | − __u8 reserved1[1]; | |
| 2147 | + __u8 rate_matching; | |
| 2089 | 2148 | __u32 reserved[7]; |
| 2090 | 2149 | __u32 link_mode_masks[]; |
| 2091 | 2150 | /* layout of link_mode_masks fields: |
| @@ -49,6 +49,8 @@ enum { · 48 unmodified lines | ||
| 49 | 49 | ETHTOOL_MSG_PHC_VCLOCKS_GET, |
| 50 | 50 | ETHTOOL_MSG_MODULE_GET, |
| 51 | 51 | ETHTOOL_MSG_MODULE_SET, |
| 52 | + ETHTOOL_MSG_PSE_GET, | |
| 53 | + ETHTOOL_MSG_PSE_SET, | |
| 52 | 54 | |
| 53 | 55 | /* add new constants above here */ |
| 54 | 56 | __ETHTOOL_MSG_USER_CNT, |
| @@ -94,6 +96,7 @@ enum { · 39 unmodified lines | ||
| 94 | 96 | ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY, |
| 95 | 97 | ETHTOOL_MSG_MODULE_GET_REPLY, |
| 96 | 98 | ETHTOOL_MSG_MODULE_NTF, |
| 99 | + ETHTOOL_MSG_PSE_GET_REPLY, | |
| 97 | 100 | |
| 98 | 101 | /* add new constants above here */ |
| 99 | 102 | __ETHTOOL_MSG_KERNEL_CNT, |
| @@ -242,6 +245,7 @@ enum { · 142 unmodified lines | ||
| 242 | 245 | ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG, /* u8 */ |
| 243 | 246 | ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, /* u8 */ |
| 244 | 247 | ETHTOOL_A_LINKMODES_LANES, /* u32 */ |
| 248 | + ETHTOOL_A_LINKMODES_RATE_MATCHING, /* u8 */ | |
| 245 | 249 | |
| 246 | 250 | /* add new constants above here */ |
| 247 | 251 | __ETHTOOL_A_LINKMODES_CNT, |
| @@ -862,6 +866,19 @@ enum { · 614 unmodified lines | ||
| 862 | 866 | ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1) |
| 863 | 867 | }; |
| 864 | 868 | |
| 869 | +/* Power Sourcing Equipment */ | |
| 870 | +enum { | |
| 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 | 882 | /* generic netlink info */ |
| 866 | 883 | #define ETHTOOL_GENL_NAME "ethtool" |
| 867 | 884 | #define ETHTOOL_GENL_VERSION 1 |
| @@ -138,6 +138,7 @@ · 137 unmodified lines | ||
| 138 | 138 | #define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */ |
| 139 | 139 | #define ETH_P_CAN 0x000C /* CAN: Controller Area Network */ |
| 140 | 140 | #define ETH_P_CANFD 0x000D /* CANFD: CAN flexible data rate*/ |
| 141 | +#define ETH_P_CANXL 0x000E /* CANXL: eXtended frame Length */ | |
| 141 | 142 | #define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/ |
| 142 | 143 | #define ETH_P_TR_802_2 0x0011 /* 802.2 frames */ |
| 143 | 144 | #define ETH_P_MOBITEX 0x0015 /* Mobitex (kaz@cafe.net) */ |
| @@ -370,6 +370,7 @@ enum { · 369 unmodified lines | ||
| 370 | 370 | IFLA_GRO_MAX_SIZE, |
| 371 | 371 | IFLA_TSO_MAX_SIZE, |
| 372 | 372 | IFLA_TSO_MAX_SEGS, |
| 373 | + IFLA_ALLMULTI, /* Allmulti count: > 0 means acts ALLMULTI */ | |
| 373 | 374 | |
| 374 | 375 | __IFLA_MAX |
| 375 | 376 | }; |
| @@ -694,6 +695,7 @@ enum { · 318 unmodified lines | ||
| 694 | 695 | IFLA_XFRM_UNSPEC, |
| 695 | 696 | IFLA_XFRM_LINK, |
| 696 | 697 | IFLA_XFRM_IF_ID, |
| 698 | + IFLA_XFRM_COLLECT_METADATA, | |
| 697 | 699 | __IFLA_XFRM_MAX |
| 698 | 700 | }; |
| 699 | 701 | |
| @@ -1374,4 +1376,14 @@ enum { · 674 unmodified lines | ||
| 1374 | 1376 | |
| 1375 | 1377 | #define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1) |
| 1376 | 1378 | |
| 1379 | +/* DSA section */ | |
| 1380 | + | |
| 1381 | +enum { | |
| 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 | 1389 | #endif /* _UAPI_LINUX_IF_LINK_H */ |
| @@ -22,6 +22,8 @@ · 21 unmodified lines | ||
| 22 | 22 | |
| 23 | 23 | #define MACSEC_KEYID_LEN 16 |
| 24 | 24 | |
| 25 | +#define MACSEC_SALT_LEN 12 | |
| 26 | + | |
| 25 | 27 | /* cipher IDs as per IEEE802.1AE-2018 (Table 14-1) */ |
| 26 | 28 | #define MACSEC_CIPHER_ID_GCM_AES_128 0x0080C20001000001ULL |
| 27 | 29 | #define MACSEC_CIPHER_ID_GCM_AES_256 0x0080C20001000002ULL |
| @@ -68,6 +68,8 @@ enum { · 67 unmodified lines | ||
| 68 | 68 | #define IPPROTO_PIM IPPROTO_PIM |
| 69 | 69 | IPPROTO_COMP = 108, /* Compression Header Protocol */ |
| 70 | 70 | #define IPPROTO_COMP IPPROTO_COMP |
| 71 | + IPPROTO_L2TP = 115, /* Layer 2 Tunnelling Protocol */ | |
| 72 | +#define IPPROTO_L2TP IPPROTO_L2TP | |
| 71 | 73 | IPPROTO_SCTP = 132, /* Stream Control Transport Protocol */ |
| 72 | 74 | #define IPPROTO_SCTP IPPROTO_SCTP |
| 73 | 75 | IPPROTO_UDPLITE = 136, /* UDP-Lite (RFC 3828) */ |
| @@ -188,21 +190,13 @@ struct ip_mreq_source { · 114 unmodified lines | ||
| 188 | 190 | }; |
| 189 | 191 | |
| 190 | 192 | struct ip_msfilter { |
| 193 | + __be32 imsf_multiaddr; | |
| 194 | + __be32 imsf_interface; | |
| 195 | + __u32 imsf_fmode; | |
| 196 | + __u32 imsf_numsrc; | |
| 191 | 197 | union { |
| 192 | − struct { | |
| 193 | − __be32 imsf_multiaddr_aux; | |
| 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 | − }; | |
| 198 | + __be32 imsf_slist[1]; | |
| 199 | + __DECLARE_FLEX_ARRAY(__be32, imsf_slist_flex); | |
| 206 | 200 | }; |
| 207 | 201 | }; |
| 208 | 202 | |
| @@ -13,8 +13,6 @@ · 12 unmodified lines | ||
| 13 | 13 | #include <linux/in.h> |
| 14 | 14 | #include <linux/in6.h> |
| 15 | 15 | |
| 16 | −#define IPPROTO_L2TP 115 | |
| 17 | − | |
| 18 | 16 | /** |
| 19 | 17 | * struct sockaddr_l2tpip - the sockaddr structure for L2TP-over-IP sockets |
| 20 | 18 | * @l2tp_family: address family number AF_L2TPIP. |
| @@ -15,6 +15,7 @@ enum lwtunnel_encap_types { · 14 unmodified lines | ||
| 15 | 15 | LWTUNNEL_ENCAP_SEG6_LOCAL, |
| 16 | 16 | LWTUNNEL_ENCAP_RPL, |
| 17 | 17 | LWTUNNEL_ENCAP_IOAM6, |
| 18 | + LWTUNNEL_ENCAP_XFRM, | |
| 18 | 19 | __LWTUNNEL_ENCAP_MAX, |
| 19 | 20 | }; |
| 20 | 21 | |
| @@ -111,4 +112,13 @@ enum { · 90 unmodified lines | ||
| 111 | 112 | |
| 112 | 113 | #define LWT_BPF_MAX_HEADROOM 256 |
| 113 | 114 | |
| 115 | +enum { | |
| 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 | 124 | #endif /* _UAPI_LWTUNNEL_H_ */ |
| @@ -63,7 +63,9 @@ enum { · 62 unmodified lines | ||
| 63 | 63 | NFPROTO_NETDEV = 5, |
| 64 | 64 | NFPROTO_BRIDGE = 7, |
| 65 | 65 | NFPROTO_IPV6 = 10, |
| 66 | +#ifndef __KERNEL__ /* no longer supported by kernel */ | |
| 66 | 67 | NFPROTO_DECNET = 12, |
| 68 | +#endif | |
| 67 | 69 | NFPROTO_NUMPROTO, |
| 68 | 70 | }; |
| 69 | 71 | |
| @@ -3,10 +3,6 @@ · 2 unmodified lines | ||
| 3 | 3 | * Patrick Schaaf <bof@bof.de> |
| 4 | 4 | * Martin Josefsson <gandalf@wlug.westbo.se> |
| 5 | 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 | 7 | #ifndef _UAPI_IP_SET_H |
| 12 | 8 | #define _UAPI_IP_SET_H |
| @@ -4,10 +4,6 @@ · 3 unmodified lines | ||
| 4 | 4 | * |
| 5 | 5 | * (C) 2010-2011 Thomas Graf <tgraf@redhat.com> |
| 6 | 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 | 9 | #ifndef _XT_AUDIT_TARGET_H |
| @@ -1,18 +1,13 @@ | ||
| 1 | 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 | 6 | #ifndef _XT_CONNMARK_H |
| 3 | 7 | #define _XT_CONNMARK_H |
| 4 | 8 | |
| 5 | 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 | − | |
| 16 | 11 | enum { |
| 17 | 12 | XT_CONNMARK_SET = 0, |
| 18 | 13 | XT_CONNMARK_SAVE, |
| @@ -1,20 +1,6 @@ | ||
| 1 | 1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ |
| 2 | 2 | /* |
| 3 | 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 | 6 | #ifndef _XT_OSF_H |
| @@ -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 | − | |
| 38 | −enum 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 | − | |
| 49 | −struct 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 | − | |
| 61 | −enum { | |
| 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*/ | |
| @@ -20,7 +20,7 @@ · 19 unmodified lines | ||
| 20 | 20 | #define NETLINK_CONNECTOR 11 |
| 21 | 21 | #define NETLINK_NETFILTER 12 /* netfilter subsystem */ |
| 22 | 22 | #define NETLINK_IP6_FW 13 |
| 23 | −#define NETLINK_DNRTMSG 14 /* DECnet routing messages */ | |
| 23 | +#define NETLINK_DNRTMSG 14 /* DECnet routing messages (obsolete) */ | |
| 24 | 24 | #define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */ |
| 25 | 25 | #define NETLINK_GENERIC 16 |
| 26 | 26 | /* leave room for NETLINK_DM (DM Events) */ |
| @@ -41,12 +41,20 @@ struct sockaddr_nl { · 14 unmodified lines | ||
| 41 | 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 | + */ | |
| 44 | 52 | struct nlmsghdr { |
| 45 | − __u32 nlmsg_len; /* Length of message including header */ | |
| 46 | − __u16 nlmsg_type; /* Message content */ | |
| 47 | − __u16 nlmsg_flags; /* Additional flags */ | |
| 48 | − __u32 nlmsg_seq; /* Sequence number */ | |
| 49 | − __u32 nlmsg_pid; /* Sending process port ID */ | |
| 53 | + __u32 nlmsg_len; | |
| 54 | + __u16 nlmsg_type; | |
| 55 | + __u16 nlmsg_flags; | |
| 56 | + __u32 nlmsg_seq; | |
| 57 | + __u32 nlmsg_pid; | |
| 50 | 58 | }; |
| 51 | 59 | |
| 52 | 60 | /* Flags values */ |
| @@ -54,7 +62,7 @@ struct nlmsghdr { · 1 unmodified line | ||
| 54 | 62 | #define NLM_F_REQUEST 0x01 /* It is request message. */ |
| 55 | 63 | #define NLM_F_MULTI 0x02 /* Multipart message, terminated by NLMSG_DONE */ |
| 56 | 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 | 66 | #define NLM_F_DUMP_INTR 0x10 /* Dump was inconsistent due to sequence change */ |
| 59 | 67 | #define NLM_F_DUMP_FILTERED 0x20 /* Dump was filtered as requested */ |
| 60 | 68 | |
| @@ -132,6 +140,10 @@ struct nlmsgerr { · 71 unmodified lines | ||
| 132 | 140 | * be used - in the success case - to identify a created |
| 133 | 141 | * object or operation or similar (binary) |
| 134 | 142 | * @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 | 147 | * @__NLMSGERR_ATTR_MAX: number of attributes |
| 136 | 148 | * @NLMSGERR_ATTR_MAX: highest attribute number |
| 137 | 149 | */ |
| @@ -141,6 +153,8 @@ enum nlmsgerr_attrs { · 3 unmodified lines | ||
| 141 | 153 | NLMSGERR_ATTR_OFFS, |
| 142 | 154 | NLMSGERR_ATTR_COOKIE, |
| 143 | 155 | NLMSGERR_ATTR_POLICY, |
| 156 | + NLMSGERR_ATTR_MISS_TYPE, | |
| 157 | + NLMSGERR_ATTR_MISS_NEST, | |
| 144 | 158 | |
| 145 | 159 | __NLMSGERR_ATTR_MAX, |
| 146 | 160 | NLMSGERR_ATTR_MAX = __NLMSGERR_ATTR_MAX - 1 |
| @@ -337,6 +351,9 @@ enum netlink_attribute_type { · 190 unmodified lines | ||
| 337 | 351 | * bitfield32 type (U32) |
| 338 | 352 | * @NL_POLICY_TYPE_ATTR_MASK: mask of valid bits for unsigned integers (U64) |
| 339 | 353 | * @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 | */ |
| 341 | 358 | enum netlink_policy_type_attr { |
| 342 | 359 | NL_POLICY_TYPE_ATTR_UNSPEC, |
| @@ -377,14 +377,22 @@ · 376 unmodified lines | ||
| 377 | 377 | * the non-transmitting interfaces are deleted as well. |
| 378 | 378 | * |
| 379 | 379 | * @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 | 383 | * @NL80211_CMD_SET_KEY: Set key attributes %NL80211_ATTR_KEY_DEFAULT, |
| 382 | 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 | 387 | * @NL80211_CMD_NEW_KEY: add a key with given %NL80211_ATTR_KEY_DATA, |
| 384 | 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 | 392 | * @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 | 397 | * @NL80211_CMD_GET_BEACON: (not used) |
| 390 | 398 | * @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 | 4959 | * using the nesting index as the antenna number. |
| 4952 | 4960 | * @NL80211_BSS_FREQUENCY_OFFSET: frequency offset in KHz |
| 4953 | 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 | 4963 | * @__NL80211_BSS_AFTER_LAST: internal |
| 4955 | 4964 | * @NL80211_BSS_MAX: highest BSS attribute |
| 4956 | 4965 | */ |
| @@ -4977,6 +4986,7 @@ enum nl80211_bss { · 20 unmodified lines | ||
| 4977 | 4986 | NL80211_BSS_CHAIN_SIGNAL, |
| 4978 | 4987 | NL80211_BSS_FREQUENCY_OFFSET, |
| 4979 | 4988 | NL80211_BSS_MLO_LINK_ID, |
| 4989 | + NL80211_BSS_MLD_ADDR, | |
| 4980 | 4990 | |
| 4981 | 4991 | /* keep last */ |
| 4982 | 4992 | __NL80211_BSS_AFTER_LAST, |
| @@ -6273,6 +6283,14 @@ enum nl80211_feature_flags { · 1290 unmodified lines | ||
| 6273 | 6283 | * @NL80211_EXT_FEATURE_RADAR_BACKGROUND: Device supports background radar/CAC |
| 6274 | 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 | 6294 | * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| 6277 | 6295 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. |
| 6278 | 6296 | */ |
| @@ -6340,6 +6358,7 @@ enum nl80211_ext_feature_index { · 61 unmodified lines | ||
| 6340 | 6358 | NL80211_EXT_FEATURE_BSS_COLOR, |
| 6341 | 6359 | NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD, |
| 6342 | 6360 | NL80211_EXT_FEATURE_RADAR_BACKGROUND, |
| 6361 | + NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE, | |
| 6343 | 6362 | |
| 6344 | 6363 | /* add new features before the definition below */ |
| 6345 | 6364 | NUM_NL80211_EXT_FEATURES, |
| @@ -76,6 +76,8 @@ enum ovs_datapath_cmd { · 75 unmodified lines | ||
| 76 | 76 | * datapath. Always present in notifications. |
| 77 | 77 | * @OVS_DP_ATTR_MEGAFLOW_STATS: Statistics about mega flow masks usage for the |
| 78 | 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 | 82 | * These attributes follow the &struct ovs_header within the Generic Netlink |
| 81 | 83 | * payload for %OVS_DP_* commands. |
| @@ -92,6 +94,7 @@ enum ovs_datapath_attr { · 10 unmodified lines | ||
| 92 | 94 | OVS_DP_ATTR_PER_CPU_PIDS, /* Netlink PIDS to receive upcalls in |
| 93 | 95 | * per-cpu dispatch mode |
| 94 | 96 | */ |
| 97 | + OVS_DP_ATTR_IFINDEX, | |
| 95 | 98 | __OVS_DP_ATTR_MAX |
| 96 | 99 | }; |
| 97 | 100 | |
| @@ -592,6 +592,8 @@ enum { · 591 unmodified lines | ||
| 592 | 592 | TCA_FLOWER_KEY_PPPOE_SID, /* be16 */ |
| 593 | 593 | TCA_FLOWER_KEY_PPP_PROTO, /* be16 */ |
| 594 | 594 | |
| 595 | + TCA_FLOWER_KEY_L2TPV3_SID, /* be32 */ | |
| 596 | + | |
| 595 | 597 | __TCA_FLOWER_MAX, |
| 596 | 598 | }; |
| 597 | 599 | |
| @@ -1232,6 +1232,16 @@ enum { · 1231 unmodified lines | ||
| 1232 | 1232 | #define TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST _BITUL(0) |
| 1233 | 1233 | #define TCA_TAPRIO_ATTR_FLAG_FULL_OFFLOAD _BITUL(1) |
| 1234 | 1234 | |
| 1235 | +enum { | |
| 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 | + | |
| 1235 | 1245 | enum { |
| 1236 | 1246 | TCA_TAPRIO_ATTR_UNSPEC, |
| 1237 | 1247 | TCA_TAPRIO_ATTR_PRIOMAP, /* struct tc_mqprio_qopt */ |
| @@ -1245,6 +1255,7 @@ enum { · 7 unmodified lines | ||
| 1245 | 1255 | TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME_EXTENSION, /* s64 */ |
| 1246 | 1256 | TCA_TAPRIO_ATTR_FLAGS, /* u32 */ |
| 1247 | 1257 | TCA_TAPRIO_ATTR_TXTIME_DELAY, /* u32 */ |
| 1258 | + TCA_TAPRIO_ATTR_TC_ENTRY, /* nest */ | |
| 1248 | 1259 | __TCA_TAPRIO_ATTR_MAX, |
| 1249 | 1260 | }; |
| 1250 | 1261 | |
| @@ -28,6 +28,7 @@ enum { · 27 unmodified lines | ||
| 28 | 28 | SEG6_LOCAL_BPF, |
| 29 | 29 | SEG6_LOCAL_VRFTABLE, |
| 30 | 30 | SEG6_LOCAL_COUNTERS, |
| 31 | + SEG6_LOCAL_FLAVORS, | |
| 31 | 32 | __SEG6_LOCAL_MAX, |
| 32 | 33 | }; |
| 33 | 34 | #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1) |
| @@ -110,4 +111,27 @@ enum { · 76 unmodified lines | ||
| 110 | 111 | |
| 111 | 112 | #define SEG6_LOCAL_CNT_MAX (__SEG6_LOCAL_CNT_MAX - 1) |
| 112 | 113 | |
| 114 | +/* SRv6 End* Flavor attributes */ | |
| 115 | +enum { | |
| 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 */ | |
| 126 | +enum { | |
| 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 | 137 | #endif |
| @@ -1,11 +1,6 @@ | ||
| 1 | 1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ |
| 2 | 2 | /* |
| 3 | 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 | 6 | #ifndef __LINUX_TC_BPF_H |
| @@ -2,19 +2,6 @@ · 1 unmodified line | ||
| 2 | 2 | /* |
| 3 | 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 | 5 | * Author: Alexander Duyck <alexander.h.duyck@intel.com> |
| 19 | 6 | */ |
| 20 | 7 | |
| @@ -1,12 +1,7 @@ | ||
| 1 | 1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ |
| 2 | 2 | /* |
| 3 | 3 | * Copyright (c) 2016, Jamal Hadi Salim |
| 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 | 6 | #ifndef __LINUX_TC_SKBMOD_H |
| 12 | 7 | #define __LINUX_TC_SKBMOD_H |
| @@ -2,11 +2,6 @@ · 1 unmodified line | ||
| 2 | 2 | /* |
| 3 | 3 | * Copyright (c) 2016, Amir Vadai <amir@vadai.me> |
| 4 | 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 | 7 | #ifndef __LINUX_TC_TUNNEL_KEY_H |
| @@ -1,11 +1,6 @@ | ||
| 1 | 1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ |
| 2 | 2 | /* |
| 3 | 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 | 6 | #ifndef __LINUX_TC_VLAN_H |
| @@ -100,6 +100,20 @@ · 99 unmodified lines | ||
| 100 | 100 | #define TLS_CIPHER_SM4_CCM_TAG_SIZE 16 |
| 101 | 101 | #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 | 117 | #define TLS_SET_RECORD_TYPE 1 |
| 104 | 118 | #define TLS_GET_RECORD_TYPE 2 |
| 105 | 119 | |
| @@ -156,6 +170,22 @@ struct tls12_crypto_info_sm4_ccm { · 50 unmodified lines | ||
| 156 | 170 | unsigned char rec_seq[TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE]; |
| 157 | 171 | }; |
| 158 | 172 | |
| 173 | +struct 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 | + | |
| 181 | +struct 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 | + | |
| 159 | 189 | enum { |
| 160 | 190 | TLS_INFO_UNSPEC, |
| 161 | 191 | TLS_INFO_VERSION, |