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
8787 __u32 attach_type; /* program attach type (enum bpf_attach_type) */
8888 };
8989
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+
9098 union bpf_iter_link_info {
9199 struct {
92100 __u32 map_fd;
93101 } 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;
94119 };
95120
96121 /* BPF syscall commands, see bpf(2) man-page for more details. */
@@ -909,6 +934,7 @@ enum bpf_map_type { · 812 unmodified lines
909934 BPF_MAP_TYPE_INODE_STORAGE,
910935 BPF_MAP_TYPE_TASK_STORAGE,
911936 BPF_MAP_TYPE_BLOOM_FILTER,
937+ BPF_MAP_TYPE_USER_RINGBUF,
912938 };
913939
914940 /* Note that tracing related programs such as
@@ -1233,7 +1259,7 @@ enum { · 318 unmodified lines
12331259
12341260 /* Query effective (directly attached + inherited from ancestor cgroups)
12351261 * 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.
12371263 */
12381264 #define BPF_F_QUERY_EFFECTIVE (1U << 0)
12391265
@@ -1432,7 +1458,10 @@ union bpf_attr { · 192 unmodified lines
14321458 __u32 attach_flags;
14331459 __aligned_u64 prog_ids;
14341460 __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;
14361465 } query;
14371466
14381467 struct { /* anonymous struct used by BPF_RAW_TRACEPOINT_OPEN command */
@@ -2573,10 +2602,12 @@ union bpf_attr { · 1134 unmodified lines
25732602 * There are two supported modes at this time:
25742603 *
25752604 * * **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).
25772607 *
25782608 * * **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).
25802611 *
25812612 * The following flags are supported at this time:
25822613 *
@@ -3008,8 +3039,18 @@ union bpf_attr { · 425 unmodified lines
30083039 * **BPF_F_USER_STACK**
30093040 * Collect a user space stack instead of a kernel stack.
30103041 * **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.
30133054 *
30143055 * **bpf_get_stack**\ () can collect up to
30153056 * **PERF_MAX_STACK_DEPTH** both kernel and user frames, subject
@@ -4425,7 +4466,7 @@ union bpf_attr { · 1409 unmodified lines
44254466 *
44264467 * **-EEXIST** if the option already exists.
44274468 *
4428− * **-EFAULT** on failrue to parse the existing header options.
4469+ * **-EFAULT** on failure to parse the existing header options.
44294470 *
44304471 * **-EPERM** if the helper cannot be used under the current
44314472 * *skops*\ **->op**.
@@ -4634,7 +4675,7 @@ union bpf_attr { · 202 unmodified lines
46344675 * a *map* with *task* as the **key**. From this
46354676 * perspective, the usage is not much different from
46364677 * **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
46384679 * be a **BPF_MAP_TYPE_TASK_STORAGE**.
46394680 *
46404681 * Underneath, the value is stored locally at *task* instead of
@@ -4692,7 +4733,7 @@ union bpf_attr { · 51 unmodified lines
46924733 *
46934734 * long bpf_ima_inode_hash(struct inode *inode, void *dst, u32 size)
46944735 * 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).
46964737 * If the hash is larger than *size*, then only *size*
46974738 * bytes will be copied to *dst*
46984739 * Return
@@ -4716,12 +4757,12 @@ union bpf_attr { · 17 unmodified lines
47164757 *
47174758 * The argument *len_diff* can be used for querying with a planned
47184759 * 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
47204761 * 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.
47254766 *
47264767 * Specifying *ifindex* zero means the MTU check is performed
47274768 * against the current net device. This is practical if this isn't
@@ -4919,6 +4960,7 @@ union bpf_attr { · 191 unmodified lines
49194960 * Get address of the traced function (for tracing and kprobe programs).
49204961 * Return
49214962 * Address of the traced function.
4963+ * 0 for kprobes placed within the function (not at the entry).
49224964 *
49234965 * u64 bpf_get_attach_cookie(void *ctx)
49244966 * Description
@@ -5048,12 +5090,12 @@ union bpf_attr { · 123 unmodified lines
50485090 *
50495091 * long bpf_get_func_arg(void *ctx, u32 n, u64 *value)
50505092 * 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)
50525094 * returned in **value**.
50535095 *
50545096 * Return
50555097 * 0 on success.
5056− * **-EINVAL** if n >= arguments count of traced function.
5098+ * **-EINVAL** if n >= argument register count of traced function.
50575099 *
50585100 * long bpf_get_func_ret(void *ctx, u64 *value)
50595101 * Description
@@ -5066,24 +5108,37 @@ union bpf_attr { · 6 unmodified lines
50665108 *
50675109 * long bpf_get_func_arg_cnt(void *ctx)
50685110 * 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.
50705113 *
50715114 * Return
5072− * The number of arguments of the traced function.
5115+ * The number of argument registers of the traced function.
50735116 *
50745117 * int bpf_get_retval(void)
50755118 * 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.
50775120 *
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.
50795123 * Return
5080− * The syscall's return value.
5124+ * The BPF program's return value.
50815125 *
50825126 * int bpf_set_retval(int retval)
50835127 * 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.
50855141 *
5086− * This helper is currently supported by cgroup programs only.
50875142 * Return
50885143 * 0 on success, or a negative error in case of failure.
50895144 *
@@ -5331,6 +5386,55 @@ union bpf_attr { · 241 unmodified lines
53315386 * **-EACCES** if the SYN cookie is not valid.
53325387 *
53335388 * **-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.
53345438 */
53355439 #define __BPF_FUNC_MAPPER(FN) \
53365440 FN(unspec), \
@@ -5541,6 +5645,8 @@ union bpf_attr { · 204 unmodified lines
55415645 FN(tcp_raw_gen_syncookie_ipv6), \
55425646 FN(tcp_raw_check_syncookie_ipv4), \
55435647 FN(tcp_raw_check_syncookie_ipv6), \
5648+ FN(ktime_get_tai_ns), \
5649+ FN(user_ringbuf_drain), \
55445650 /* */
55455651
55465652 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
@@ -5603,6 +5709,11 @@ enum { · 56 unmodified lines
56035709 BPF_F_SEQ_NUMBER = (1ULL << 3),
56045710 };
56055711
5712+/* BPF_FUNC_skb_get_tunnel_key flags. */
5713+enum {
5714+ BPF_F_TUNINFO_FLAGS = (1ULL << 4),
5715+};
5716+
56065717 /* BPF_FUNC_perf_event_output, BPF_FUNC_perf_event_read and
56075718 * BPF_FUNC_perf_event_read_value flags.
56085719 */
@@ -5792,7 +5903,10 @@ struct bpf_tunnel_key { · 183 unmodified lines
57925903 };
57935904 __u8 tunnel_tos;
57945905 __u8 tunnel_ttl;
5795− __u16 tunnel_ext; /* Padding, future use. */
5906+ union {
5907+ __u16 tunnel_ext; /* compat */
5908+ __be16 tunnel_flags;
5909+ };
57965910 __u32 tunnel_label;
57975911 union {
57985912 __u32 local_ipv4;
@@ -5836,6 +5950,11 @@ enum bpf_ret_code { · 37 unmodified lines
58365950 * represented by BPF_REDIRECT above).
58375951 */
58385952 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,
58395958 };
58405959
58415960 struct bpf_sock {
@@ -6134,11 +6253,26 @@ struct bpf_link_info { · 292 unmodified lines
61346253 struct {
61356254 __aligned_u64 target_name; /* in/out: target_name buffer ptr */
61366255 __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+ */
61376261 union {
61386262 struct {
61396263 __u32 map_id;
61406264 } map;
61416265 };
6266+ union {
6267+ struct {
6268+ __u64 cgroup_id;
6269+ __u32 order;
6270+ } cgroup;
6271+ struct {
6272+ __u32 tid;
6273+ __u32 pid;
6274+ } task;
6275+ };
61426276 } iter;
61436277 struct {
61446278 __u32 netns_ino;
include/uapi/linux/can.h+53−2
@@ -48,6 +48,7 @@ · 47 unmodified lines
4848
4949 #include <linux/types.h>
5050 #include <linux/socket.h>
51+#include <linux/stddef.h> /* for offsetof */
5152
5253 /* controller area network (CAN) kernel definitions */
5354
@@ -60,6 +61,7 @@ · 6 unmodified lines
6061 #define CAN_SFF_MASK 0x000007FFU /* standard frame format (SFF) */
6162 #define CAN_EFF_MASK 0x1FFFFFFFU /* extended frame format (EFF) */
6263 #define CAN_ERR_MASK 0x1FFFFFFFU /* omit EFF, RTR, ERR flags */
64+#define CANXL_PRIO_MASK CAN_SFF_MASK /* 11 bit priority mask */
6365
6466 /*
6567 * Controller Area Network Identifier structure
@@ -73,6 +75,7 @@ typedef __u32 canid_t; · 7 unmodified lines
7375
7476 #define CAN_SFF_ID_BITS 11
7577 #define CAN_EFF_ID_BITS 29
78+#define CANXL_PRIO_BITS CAN_SFF_ID_BITS
7679
7780 /*
7881 * Controller Area Network Error Message Frame Mask structure
@@ -91,6 +94,16 @@ typedef __u32 can_err_mask_t; · 12 unmodified lines
9194 #define CANFD_MAX_DLC 15
9295 #define CANFD_MAX_DLEN 64
9396
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+
94107 /**
95108 * struct can_frame - Classical CAN frame structure (aka CAN 2.0B)
96109 * @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
141154 * When this is done the former differentiation via CAN_MTU / CANFD_MTU gets
142155 * lost. CANFD_FDF allows programmers to mark CAN FD frames in the case of
143156 * 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.
146159 */
147160 #define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */
148161 #define CANFD_ESI 0x02 /* error state indicator of the transmitting node */
@@ -166,8 +179,46 @@ struct canfd_frame { · 17 unmodified lines
166179 __u8 data[CANFD_MAX_DLEN] __attribute__((aligned(8)));
167180 };
168181
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+
169216 #define CAN_MTU (sizeof(struct can_frame))
170217 #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
171222
172223 /* particular protocols of the protocol family PF_CAN */
173224 #define CAN_RAW 1 /* RAW sockets */
include/uapi/linux/can/raw.h+1−0
@@ -62,6 +62,7 @@ enum { · 61 unmodified lines
6262 CAN_RAW_RECV_OWN_MSGS, /* receive my own msgs (default:off) */
6363 CAN_RAW_FD_FRAMES, /* allow CAN FD frames (default:off) */
6464 CAN_RAW_JOIN_FILTERS, /* all filters must match to trigger */
65+ CAN_RAW_XL_FRAMES, /* allow CAN XL frames (default:off) */
6566 };
6667
6768 #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−
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 */
include/uapi/linux/ethtool.h+61−2
@@ -736,6 +736,51 @@ enum ethtool_module_power_mode { · 735 unmodified lines
736736 ETHTOOL_MODULE_POWER_MODE_HIGH,
737737 };
738738
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+
739784 /**
740785 * struct ethtool_gstrings - string set for data tagging
741786 * @cmd: Command number = %ETHTOOL_GSTRINGS
@@ -1840,6 +1885,20 @@ static inline int ethtool_validate_duplex(__u8 duplex) · 1098 unmodified lines
18401885 #define MASTER_SLAVE_STATE_SLAVE 3
18411886 #define MASTER_SLAVE_STATE_ERR 4
18421887
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+
18431902 /* Which connector port. */
18441903 #define PORT_TP 0x00
18451904 #define PORT_AUI 0x01
@@ -2033,8 +2092,8 @@ enum ethtool_reset_flags { · 187 unmodified lines
20332092 * reported consistently by PHYLIB. Read-only.
20342093 * @master_slave_cfg: Master/slave port mode.
20352094 * @master_slave_state: Master/slave port state.
2095+ * @rate_matching: Rate adaptation performed by the PHY
20362096 * @reserved: Reserved for future use; see the note on reserved space.
2037− * @reserved1: Reserved for future use; see the note on reserved space.
20382097 * @link_mode_masks: Variable length bitmaps.
20392098 *
20402099 * If autonegotiation is disabled, the speed and @duplex represent the
@@ -2085,7 +2144,7 @@ struct ethtool_link_settings { · 44 unmodified lines
20852144 __u8 transceiver;
20862145 __u8 master_slave_cfg;
20872146 __u8 master_slave_state;
2088− __u8 reserved1[1];
2147+ __u8 rate_matching;
20892148 __u32 reserved[7];
20902149 __u32 link_mode_masks[];
20912150 /* layout of link_mode_masks fields:
include/uapi/linux/ethtool_netlink.h+17−0
@@ -49,6 +49,8 @@ enum { · 48 unmodified lines
4949 ETHTOOL_MSG_PHC_VCLOCKS_GET,
5050 ETHTOOL_MSG_MODULE_GET,
5151 ETHTOOL_MSG_MODULE_SET,
52+ ETHTOOL_MSG_PSE_GET,
53+ ETHTOOL_MSG_PSE_SET,
5254
5355 /* add new constants above here */
5456 __ETHTOOL_MSG_USER_CNT,
@@ -94,6 +96,7 @@ enum { · 39 unmodified lines
9496 ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY,
9597 ETHTOOL_MSG_MODULE_GET_REPLY,
9698 ETHTOOL_MSG_MODULE_NTF,
99+ ETHTOOL_MSG_PSE_GET_REPLY,
97100
98101 /* add new constants above here */
99102 __ETHTOOL_MSG_KERNEL_CNT,
@@ -242,6 +245,7 @@ enum { · 142 unmodified lines
242245 ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG, /* u8 */
243246 ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, /* u8 */
244247 ETHTOOL_A_LINKMODES_LANES, /* u32 */
248+ ETHTOOL_A_LINKMODES_RATE_MATCHING, /* u8 */
245249
246250 /* add new constants above here */
247251 __ETHTOOL_A_LINKMODES_CNT,
@@ -862,6 +866,19 @@ enum { · 614 unmodified lines
862866 ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1)
863867 };
864868
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+
865882 /* generic netlink info */
866883 #define ETHTOOL_GENL_NAME "ethtool"
867884 #define ETHTOOL_GENL_VERSION 1
include/uapi/linux/if_ether.h+1−0
@@ -138,6 +138,7 @@ · 137 unmodified lines
138138 #define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */
139139 #define ETH_P_CAN 0x000C /* CAN: Controller Area Network */
140140 #define ETH_P_CANFD 0x000D /* CANFD: CAN flexible data rate*/
141+#define ETH_P_CANXL 0x000E /* CANXL: eXtended frame Length */
141142 #define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/
142143 #define ETH_P_TR_802_2 0x0011 /* 802.2 frames */
143144 #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
370370 IFLA_GRO_MAX_SIZE,
371371 IFLA_TSO_MAX_SIZE,
372372 IFLA_TSO_MAX_SEGS,
373+ IFLA_ALLMULTI, /* Allmulti count: > 0 means acts ALLMULTI */
373374
374375 __IFLA_MAX
375376 };
@@ -694,6 +695,7 @@ enum { · 318 unmodified lines
694695 IFLA_XFRM_UNSPEC,
695696 IFLA_XFRM_LINK,
696697 IFLA_XFRM_IF_ID,
698+ IFLA_XFRM_COLLECT_METADATA,
697699 __IFLA_XFRM_MAX
698700 };
699701
@@ -1374,4 +1376,14 @@ enum { · 674 unmodified lines
13741376
13751377 #define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1)
13761378
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+
13771389 #endif /* _UAPI_LINUX_IF_LINK_H */
include/uapi/linux/if_macsec.h+2−0
@@ -22,6 +22,8 @@ · 21 unmodified lines
2222
2323 #define MACSEC_KEYID_LEN 16
2424
25+#define MACSEC_SALT_LEN 12
26+
2527 /* cipher IDs as per IEEE802.1AE-2018 (Table 14-1) */
2628 #define MACSEC_CIPHER_ID_GCM_AES_128 0x0080C20001000001ULL
2729 #define MACSEC_CIPHER_ID_GCM_AES_256 0x0080C20001000002ULL
include/uapi/linux/in.h+8−14
@@ -68,6 +68,8 @@ enum { · 67 unmodified lines
6868 #define IPPROTO_PIM IPPROTO_PIM
6969 IPPROTO_COMP = 108, /* Compression Header Protocol */
7070 #define IPPROTO_COMP IPPROTO_COMP
71+ IPPROTO_L2TP = 115, /* Layer 2 Tunnelling Protocol */
72+#define IPPROTO_L2TP IPPROTO_L2TP
7173 IPPROTO_SCTP = 132, /* Stream Control Transport Protocol */
7274 #define IPPROTO_SCTP IPPROTO_SCTP
7375 IPPROTO_UDPLITE = 136, /* UDP-Lite (RFC 3828) */
@@ -188,21 +190,13 @@ struct ip_mreq_source { · 114 unmodified lines
188190 };
189191
190192 struct ip_msfilter {
193+ __be32 imsf_multiaddr;
194+ __be32 imsf_interface;
195+ __u32 imsf_fmode;
196+ __u32 imsf_numsrc;
191197 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);
206200 };
207201 };
208202
include/uapi/linux/l2tp.h+0−2
@@ -13,8 +13,6 @@ · 12 unmodified lines
1313 #include <linux/in.h>
1414 #include <linux/in6.h>
1515
16−#define IPPROTO_L2TP 115
17−
1816 /**
1917 * struct sockaddr_l2tpip - the sockaddr structure for L2TP-over-IP sockets
2018 * @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
1515 LWTUNNEL_ENCAP_SEG6_LOCAL,
1616 LWTUNNEL_ENCAP_RPL,
1717 LWTUNNEL_ENCAP_IOAM6,
18+ LWTUNNEL_ENCAP_XFRM,
1819 __LWTUNNEL_ENCAP_MAX,
1920 };
2021
@@ -111,4 +112,13 @@ enum { · 90 unmodified lines
111112
112113 #define LWT_BPF_MAX_HEADROOM 256
113114
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+
114124 #endif /* _UAPI_LWTUNNEL_H_ */
include/uapi/linux/netfilter.h+2−0
@@ -63,7 +63,9 @@ enum { · 62 unmodified lines
6363 NFPROTO_NETDEV = 5,
6464 NFPROTO_BRIDGE = 7,
6565 NFPROTO_IPV6 = 10,
66+#ifndef __KERNEL__ /* no longer supported by kernel */
6667 NFPROTO_DECNET = 12,
68+#endif
6769 NFPROTO_NUMPROTO,
6870 };
6971
include/uapi/linux/netfilter/ipset/ip_set.h+0−4
@@ -3,10 +3,6 @@ · 2 unmodified lines
33 * Patrick Schaaf <bof@bof.de>
44 * Martin Josefsson <gandalf@wlug.westbo.se>
55 * 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.
106 */
117 #ifndef _UAPI_IP_SET_H
128 #define _UAPI_IP_SET_H
include/uapi/linux/netfilter/xt_AUDIT.h+0−4
@@ -4,10 +4,6 @@ · 3 unmodified lines
44 *
55 * (C) 2010-2011 Thomas Graf <tgraf@redhat.com>
66 * (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.
117 */
128
139 #ifndef _XT_AUDIT_TARGET_H
include/uapi/linux/netfilter/xt_connmark.h+4−9
@@ -1,18 +1,13 @@
11 /* 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+
26 #ifndef _XT_CONNMARK_H
37 #define _XT_CONNMARK_H
48
59 #include <linux/types.h>
610
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−
1611 enum {
1712 XT_CONNMARK_SET = 0,
1813 XT_CONNMARK_SAVE,
include/uapi/linux/netfilter/xt_osf.h+0−14
@@ -1,20 +1,6 @@
11 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
22 /*
33 * 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/>.
184 */
195
206 #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−
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*/
include/uapi/linux/netlink.h+24−7
@@ -20,7 +20,7 @@ · 19 unmodified lines
2020 #define NETLINK_CONNECTOR 11
2121 #define NETLINK_NETFILTER 12 /* netfilter subsystem */
2222 #define NETLINK_IP6_FW 13
23−#define NETLINK_DNRTMSG 14 /* DECnet routing messages */
23+#define NETLINK_DNRTMSG 14 /* DECnet routing messages (obsolete) */
2424 #define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */
2525 #define NETLINK_GENERIC 16
2626 /* leave room for NETLINK_DM (DM Events) */
@@ -41,12 +41,20 @@ struct sockaddr_nl { · 14 unmodified lines
4141 __u32 nl_groups; /* multicast groups mask */
4242 };
4343
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+ */
4452 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;
5058 };
5159
5260 /* Flags values */
@@ -54,7 +62,7 @@ struct nlmsghdr { · 1 unmodified line
5462 #define NLM_F_REQUEST 0x01 /* It is request message. */
5563 #define NLM_F_MULTI 0x02 /* Multipart message, terminated by NLMSG_DONE */
5664 #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 */
5866 #define NLM_F_DUMP_INTR 0x10 /* Dump was inconsistent due to sequence change */
5967 #define NLM_F_DUMP_FILTERED 0x20 /* Dump was filtered as requested */
6068
@@ -132,6 +140,10 @@ struct nlmsgerr { · 71 unmodified lines
132140 * be used - in the success case - to identify a created
133141 * object or operation or similar (binary)
134142 * @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
135147 * @__NLMSGERR_ATTR_MAX: number of attributes
136148 * @NLMSGERR_ATTR_MAX: highest attribute number
137149 */
@@ -141,6 +153,8 @@ enum nlmsgerr_attrs { · 3 unmodified lines
141153 NLMSGERR_ATTR_OFFS,
142154 NLMSGERR_ATTR_COOKIE,
143155 NLMSGERR_ATTR_POLICY,
156+ NLMSGERR_ATTR_MISS_TYPE,
157+ NLMSGERR_ATTR_MISS_NEST,
144158
145159 __NLMSGERR_ATTR_MAX,
146160 NLMSGERR_ATTR_MAX = __NLMSGERR_ATTR_MAX - 1
@@ -337,6 +351,9 @@ enum netlink_attribute_type { · 190 unmodified lines
337351 * bitfield32 type (U32)
338352 * @NL_POLICY_TYPE_ATTR_MASK: mask of valid bits for unsigned integers (U64)
339353 * @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
340357 */
341358 enum netlink_policy_type_attr {
342359 NL_POLICY_TYPE_ATTR_UNSPEC,
include/uapi/linux/nl80211.h+22−3
@@ -377,14 +377,22 @@ · 376 unmodified lines
377377 * the non-transmitting interfaces are deleted as well.
378378 *
379379 * @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.
381383 * @NL80211_CMD_SET_KEY: Set key attributes %NL80211_ATTR_KEY_DEFAULT,
382384 * %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.
383387 * @NL80211_CMD_NEW_KEY: add a key with given %NL80211_ATTR_KEY_DATA,
384388 * %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.
386392 * @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.
388396 *
389397 * @NL80211_CMD_GET_BEACON: (not used)
390398 * @NL80211_CMD_SET_BEACON: change the beacon on an access point interface
@@ -4951,6 +4959,7 @@ enum nl80211_bss_scan_width { · 4560 unmodified lines
49514959 * using the nesting index as the antenna number.
49524960 * @NL80211_BSS_FREQUENCY_OFFSET: frequency offset in KHz
49534961 * @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.
49544963 * @__NL80211_BSS_AFTER_LAST: internal
49554964 * @NL80211_BSS_MAX: highest BSS attribute
49564965 */
@@ -4977,6 +4986,7 @@ enum nl80211_bss { · 20 unmodified lines
49774986 NL80211_BSS_CHAIN_SIGNAL,
49784987 NL80211_BSS_FREQUENCY_OFFSET,
49794988 NL80211_BSS_MLO_LINK_ID,
4989+ NL80211_BSS_MLD_ADDR,
49804990
49814991 /* keep last */
49824992 __NL80211_BSS_AFTER_LAST,
@@ -6273,6 +6283,14 @@ enum nl80211_feature_flags { · 1290 unmodified lines
62736283 * @NL80211_EXT_FEATURE_RADAR_BACKGROUND: Device supports background radar/CAC
62746284 * detection.
62756285 *
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+ *
62766294 * @NUM_NL80211_EXT_FEATURES: number of extended features.
62776295 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
62786296 */
@@ -6340,6 +6358,7 @@ enum nl80211_ext_feature_index { · 61 unmodified lines
63406358 NL80211_EXT_FEATURE_BSS_COLOR,
63416359 NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
63426360 NL80211_EXT_FEATURE_RADAR_BACKGROUND,
6361+ NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE,
63436362
63446363 /* add new features before the definition below */
63456364 NUM_NL80211_EXT_FEATURES,
include/uapi/linux/openvswitch.h+3−0
@@ -76,6 +76,8 @@ enum ovs_datapath_cmd { · 75 unmodified lines
7676 * datapath. Always present in notifications.
7777 * @OVS_DP_ATTR_MEGAFLOW_STATS: Statistics about mega flow masks usage for the
7878 * 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.
7981 *
8082 * These attributes follow the &struct ovs_header within the Generic Netlink
8183 * payload for %OVS_DP_* commands.
@@ -92,6 +94,7 @@ enum ovs_datapath_attr { · 10 unmodified lines
9294 OVS_DP_ATTR_PER_CPU_PIDS, /* Netlink PIDS to receive upcalls in
9395 * per-cpu dispatch mode
9496 */
97+ OVS_DP_ATTR_IFINDEX,
9598 __OVS_DP_ATTR_MAX
9699 };
97100
include/uapi/linux/pkt_cls.h+2−0
@@ -592,6 +592,8 @@ enum { · 591 unmodified lines
592592 TCA_FLOWER_KEY_PPPOE_SID, /* be16 */
593593 TCA_FLOWER_KEY_PPP_PROTO, /* be16 */
594594
595+ TCA_FLOWER_KEY_L2TPV3_SID, /* be32 */
596+
595597 __TCA_FLOWER_MAX,
596598 };
597599
include/uapi/linux/pkt_sched.h+11−0
@@ -1232,6 +1232,16 @@ enum { · 1231 unmodified lines
12321232 #define TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST _BITUL(0)
12331233 #define TCA_TAPRIO_ATTR_FLAG_FULL_OFFLOAD _BITUL(1)
12341234
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+
12351245 enum {
12361246 TCA_TAPRIO_ATTR_UNSPEC,
12371247 TCA_TAPRIO_ATTR_PRIOMAP, /* struct tc_mqprio_qopt */
@@ -1245,6 +1255,7 @@ enum { · 7 unmodified lines
12451255 TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME_EXTENSION, /* s64 */
12461256 TCA_TAPRIO_ATTR_FLAGS, /* u32 */
12471257 TCA_TAPRIO_ATTR_TXTIME_DELAY, /* u32 */
1258+ TCA_TAPRIO_ATTR_TC_ENTRY, /* nest */
12481259 __TCA_TAPRIO_ATTR_MAX,
12491260 };
12501261
include/uapi/linux/seg6_local.h+24−0
@@ -28,6 +28,7 @@ enum { · 27 unmodified lines
2828 SEG6_LOCAL_BPF,
2929 SEG6_LOCAL_VRFTABLE,
3030 SEG6_LOCAL_COUNTERS,
31+ SEG6_LOCAL_FLAVORS,
3132 __SEG6_LOCAL_MAX,
3233 };
3334 #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1)
@@ -110,4 +111,27 @@ enum { · 76 unmodified lines
110111
111112 #define SEG6_LOCAL_CNT_MAX (__SEG6_LOCAL_CNT_MAX - 1)
112113
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+
113137 #endif
include/uapi/linux/tc_act/tc_bpf.h+0−5
@@ -1,11 +1,6 @@
11 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
22 /*
33 * 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.
94 */
105
116 #ifndef __LINUX_TC_BPF_H
include/uapi/linux/tc_act/tc_skbedit.h+0−13
@@ -2,19 +2,6 @@ · 1 unmodified line
22 /*
33 * Copyright (c) 2008, Intel Corporation.
44 *
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− *
185 * Author: Alexander Duyck <alexander.h.duyck@intel.com>
196 */
207
include/uapi/linux/tc_act/tc_skbmod.h+1−6
@@ -1,12 +1,7 @@
11 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
22 /*
33 * 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+ */
105
116 #ifndef __LINUX_TC_SKBMOD_H
127 #define __LINUX_TC_SKBMOD_H
include/uapi/linux/tc_act/tc_tunnel_key.h+0−5
@@ -2,11 +2,6 @@ · 1 unmodified line
22 /*
33 * Copyright (c) 2016, Amir Vadai <amir@vadai.me>
44 * 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.
105 */
116
127 #ifndef __LINUX_TC_TUNNEL_KEY_H
include/uapi/linux/tc_act/tc_vlan.h+0−5
@@ -1,11 +1,6 @@
11 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
22 /*
33 * 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.
94 */
105
116 #ifndef __LINUX_TC_VLAN_H
include/uapi/linux/tls.h+30−0
@@ -100,6 +100,20 @@ · 99 unmodified lines
100100 #define TLS_CIPHER_SM4_CCM_TAG_SIZE 16
101101 #define TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE 8
102102
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+
103117 #define TLS_SET_RECORD_TYPE 1
104118 #define TLS_GET_RECORD_TYPE 2
105119
@@ -156,6 +170,22 @@ struct tls12_crypto_info_sm4_ccm { · 50 unmodified lines
156170 unsigned char rec_seq[TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE];
157171 };
158172
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+
159189 enum {
160190 TLS_INFO_UNSPEC,
161191 TLS_INFO_VERSION,