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 | __u32 attach_type; /* program attach type (enum bpf_attach_type) */ | 87 | __u32 attach_type; /* program attach type (enum bpf_attach_type) */ |
| 88 | }; | 88 | }; |
| 89 | 89 | ||
| 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 | union bpf_iter_link_info { | 98 | union bpf_iter_link_info { |
| 91 | struct { | 99 | struct { |
| 92 | __u32 map_fd; | 100 | __u32 map_fd; |
| 93 | } map; | 101 | } map; |
| 102 | struct { | ||
| 103 | enum bpf_cgroup_iter_order order; | ||
| 104 | |||
| 105 | /* At most one of cgroup_fd and cgroup_id can be non-zero. If | ||
| 106 | * both are zero, the walk starts from the default cgroup v2 | ||
| 107 | * root. For walking v1 hierarchy, one should always explicitly | ||
| 108 | * specify cgroup_fd. | ||
| 109 | */ | ||
| 110 | __u32 cgroup_fd; | ||
| 111 | __u64 cgroup_id; | ||
| 112 | } cgroup; | ||
| 113 | /* Parameters of task iterators. */ | ||
| 114 | struct { | ||
| 115 | __u32 tid; | ||
| 116 | __u32 pid; | ||
| 117 | __u32 pid_fd; | ||
| 118 | } task; | ||
| 94 | }; | 119 | }; |
| 95 | 120 | ||
| 96 | /* BPF syscall commands, see bpf(2) man-page for more details. */ | 121 | /* BPF syscall commands, see bpf(2) man-page for more details. */ |
| @@ -909,6 +934,7 @@ enum bpf_map_type { · 812 unmodified lines | |||
| 909 | BPF_MAP_TYPE_INODE_STORAGE, | 934 | BPF_MAP_TYPE_INODE_STORAGE, |
| 910 | BPF_MAP_TYPE_TASK_STORAGE, | 935 | BPF_MAP_TYPE_TASK_STORAGE, |
| 911 | BPF_MAP_TYPE_BLOOM_FILTER, | 936 | BPF_MAP_TYPE_BLOOM_FILTER, |
| 937 | BPF_MAP_TYPE_USER_RINGBUF, | ||
| 912 | }; | 938 | }; |
| 913 | 939 | ||
| 914 | /* Note that tracing related programs such as | 940 | /* Note that tracing related programs such as |
| @@ -1233,7 +1259,7 @@ enum { · 318 unmodified lines | |||
| 1233 | 1259 | ||
| 1234 | /* Query effective (directly attached + inherited from ancestor cgroups) | 1260 | /* Query effective (directly attached + inherited from ancestor cgroups) |
| 1235 | * programs that will be executed for events within a cgroup. | 1261 | * programs that will be executed for events within a cgroup. |
| 1236 | * attach_flags with this flag are returned only for directly attached programs. | 1262 | * attach_flags with this flag are always returned 0. |
| 1237 | */ | 1263 | */ |
| 1238 | #define BPF_F_QUERY_EFFECTIVE (1U << 0) | 1264 | #define BPF_F_QUERY_EFFECTIVE (1U << 0) |
| 1239 | 1265 | ||
| @@ -1432,7 +1458,10 @@ union bpf_attr { · 192 unmodified lines | |||
| 1432 | __u32 attach_flags; | 1458 | __u32 attach_flags; |
| 1433 | __aligned_u64 prog_ids; | 1459 | __aligned_u64 prog_ids; |
| 1434 | __u32 prog_cnt; | 1460 | __u32 prog_cnt; |
| 1435 | __aligned_u64 prog_attach_flags; /* output: per-program attach_flags */ | 1461 | /* output: per-program attach_flags. |
| 1462 | * not allowed to be set during effective query. | ||
| 1463 | */ | ||
| 1464 | __aligned_u64 prog_attach_flags; | ||
| 1436 | } query; | 1465 | } query; |
| 1437 | 1466 | ||
| 1438 | struct { /* anonymous struct used by BPF_RAW_TRACEPOINT_OPEN command */ | 1467 | struct { /* anonymous struct used by BPF_RAW_TRACEPOINT_OPEN command */ |
| @@ -2573,10 +2602,12 @@ union bpf_attr { · 1134 unmodified lines | |||
| 2573 | * There are two supported modes at this time: | 2602 | * There are two supported modes at this time: |
| 2574 | * | 2603 | * |
| 2575 | * * **BPF_ADJ_ROOM_MAC**: Adjust room at the mac layer | 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 | * * **BPF_ADJ_ROOM_NET**: Adjust room at the network layer | 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 | * The following flags are supported at this time: | 2612 | * The following flags are supported at this time: |
| 2582 | * | 2613 | * |
| @@ -3008,8 +3039,18 @@ union bpf_attr { · 425 unmodified lines | |||
| 3008 | * **BPF_F_USER_STACK** | 3039 | * **BPF_F_USER_STACK** |
| 3009 | * Collect a user space stack instead of a kernel stack. | 3040 | * Collect a user space stack instead of a kernel stack. |
| 3010 | * **BPF_F_USER_BUILD_ID** | 3041 | * **BPF_F_USER_BUILD_ID** |
| 3011 | * Collect buildid+offset instead of ips for user stack, | 3042 | * Collect (build_id, file_offset) instead of ips for user |
| 3012 | * only valid if **BPF_F_USER_STACK** is also specified. | 3043 | * stack, only valid if **BPF_F_USER_STACK** is also |
| 3044 | * specified. | ||
| 3045 | * | ||
| 3046 | * *file_offset* is an offset relative to the beginning | ||
| 3047 | * of the executable or shared object file backing the vma | ||
| 3048 | * which the *ip* falls in. It is *not* an offset relative | ||
| 3049 | * to that object's base address. Accordingly, it must be | ||
| 3050 | * adjusted by adding (sh_addr - sh_offset), where | ||
| 3051 | * sh_{addr,offset} correspond to the executable section | ||
| 3052 | * containing *file_offset* in the object, for comparisons | ||
| 3053 | * to symbols' st_value to be valid. | ||
| 3013 | * | 3054 | * |
| 3014 | * **bpf_get_stack**\ () can collect up to | 3055 | * **bpf_get_stack**\ () can collect up to |
| 3015 | * **PERF_MAX_STACK_DEPTH** both kernel and user frames, subject | 3056 | * **PERF_MAX_STACK_DEPTH** both kernel and user frames, subject |
| @@ -4425,7 +4466,7 @@ union bpf_attr { · 1409 unmodified lines | |||
| 4425 | * | 4466 | * |
| 4426 | * **-EEXIST** if the option already exists. | 4467 | * **-EEXIST** if the option already exists. |
| 4427 | * | 4468 | * |
| 4428 | * **-EFAULT** on failrue to parse the existing header options. | 4469 | * **-EFAULT** on failure to parse the existing header options. |
| 4429 | * | 4470 | * |
| 4430 | * **-EPERM** if the helper cannot be used under the current | 4471 | * **-EPERM** if the helper cannot be used under the current |
| 4431 | * *skops*\ **->op**. | 4472 | * *skops*\ **->op**. |
| @@ -4634,7 +4675,7 @@ union bpf_attr { · 202 unmodified lines | |||
| 4634 | * a *map* with *task* as the **key**. From this | 4675 | * a *map* with *task* as the **key**. From this |
| 4635 | * perspective, the usage is not much different from | 4676 | * perspective, the usage is not much different from |
| 4636 | * **bpf_map_lookup_elem**\ (*map*, **&**\ *task*) except this | 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 | * be a **BPF_MAP_TYPE_TASK_STORAGE**. | 4679 | * be a **BPF_MAP_TYPE_TASK_STORAGE**. |
| 4639 | * | 4680 | * |
| 4640 | * Underneath, the value is stored locally at *task* instead of | 4681 | * Underneath, the value is stored locally at *task* instead of |
| @@ -4692,7 +4733,7 @@ union bpf_attr { · 51 unmodified lines | |||
| 4692 | * | 4733 | * |
| 4693 | * long bpf_ima_inode_hash(struct inode *inode, void *dst, u32 size) | 4734 | * long bpf_ima_inode_hash(struct inode *inode, void *dst, u32 size) |
| 4694 | * Description | 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 | * If the hash is larger than *size*, then only *size* | 4737 | * If the hash is larger than *size*, then only *size* |
| 4697 | * bytes will be copied to *dst* | 4738 | * bytes will be copied to *dst* |
| 4698 | * Return | 4739 | * Return |
| @@ -4716,12 +4757,12 @@ union bpf_attr { · 17 unmodified lines | |||
| 4716 | * | 4757 | * |
| 4717 | * The argument *len_diff* can be used for querying with a planned | 4758 | * The argument *len_diff* can be used for querying with a planned |
| 4718 | * size change. This allows to check MTU prior to changing packet | 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 | * actual packet size (resulting in negative packet size) will in | 4761 | * actual packet size (resulting in negative packet size) will in |
| 4721 | * principle not exceed the MTU, why it is not considered a | 4762 | * principle not exceed the MTU, which is why it is not considered |
| 4722 | * failure. Other BPF-helpers are needed for performing the | 4763 | * a failure. Other BPF helpers are needed for performing the |
| 4723 | * planned size change, why the responsability for catch a negative | 4764 | * planned size change; therefore the responsibility for catching |
| 4724 | * packet size belong in those helpers. | 4765 | * a negative packet size belongs in those helpers. |
| 4725 | * | 4766 | * |
| 4726 | * Specifying *ifindex* zero means the MTU check is performed | 4767 | * Specifying *ifindex* zero means the MTU check is performed |
| 4727 | * against the current net device. This is practical if this isn't | 4768 | * against the current net device. This is practical if this isn't |
| @@ -4919,6 +4960,7 @@ union bpf_attr { · 191 unmodified lines | |||
| 4919 | * Get address of the traced function (for tracing and kprobe programs). | 4960 | * Get address of the traced function (for tracing and kprobe programs). |
| 4920 | * Return | 4961 | * Return |
| 4921 | * Address of the traced function. | 4962 | * Address of the traced function. |
| 4963 | * 0 for kprobes placed within the function (not at the entry). | ||
| 4922 | * | 4964 | * |
| 4923 | * u64 bpf_get_attach_cookie(void *ctx) | 4965 | * u64 bpf_get_attach_cookie(void *ctx) |
| 4924 | * Description | 4966 | * Description |
| @@ -5048,12 +5090,12 @@ union bpf_attr { · 123 unmodified lines | |||
| 5048 | * | 5090 | * |
| 5049 | * long bpf_get_func_arg(void *ctx, u32 n, u64 *value) | 5091 | * long bpf_get_func_arg(void *ctx, u32 n, u64 *value) |
| 5050 | * Description | 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 | * returned in **value**. | 5094 | * returned in **value**. |
| 5053 | * | 5095 | * |
| 5054 | * Return | 5096 | * Return |
| 5055 | * 0 on success. | 5097 | * 0 on success. |
| 5056 | * **-EINVAL** if n >= arguments count of traced function. | 5098 | * **-EINVAL** if n >= argument register count of traced function. |
| 5057 | * | 5099 | * |
| 5058 | * long bpf_get_func_ret(void *ctx, u64 *value) | 5100 | * long bpf_get_func_ret(void *ctx, u64 *value) |
| 5059 | * Description | 5101 | * Description |
| @@ -5066,24 +5108,37 @@ union bpf_attr { · 6 unmodified lines | |||
| 5066 | * | 5108 | * |
| 5067 | * long bpf_get_func_arg_cnt(void *ctx) | 5109 | * long bpf_get_func_arg_cnt(void *ctx) |
| 5068 | * Description | 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 | * Return | 5114 | * Return |
| 5072 | * The number of arguments of the traced function. | 5115 | * The number of argument registers of the traced function. |
| 5073 | * | 5116 | * |
| 5074 | * int bpf_get_retval(void) | 5117 | * int bpf_get_retval(void) |
| 5075 | * Description | 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 | * Return | 5123 | * Return |
| 5080 | * The syscall's return value. | 5124 | * The BPF program's return value. |
| 5081 | * | 5125 | * |
| 5082 | * int bpf_set_retval(int retval) | 5126 | * int bpf_set_retval(int retval) |
| 5083 | * Description | 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 | * Return | 5142 | * Return |
| 5088 | * 0 on success, or a negative error in case of failure. | 5143 | * 0 on success, or a negative error in case of failure. |
| 5089 | * | 5144 | * |
| @@ -5331,6 +5386,55 @@ union bpf_attr { · 241 unmodified lines | |||
| 5331 | * **-EACCES** if the SYN cookie is not valid. | 5386 | * **-EACCES** if the SYN cookie is not valid. |
| 5332 | * | 5387 | * |
| 5333 | * **-EPROTONOSUPPORT** if CONFIG_IPV6 is not builtin. | 5388 | * **-EPROTONOSUPPORT** if CONFIG_IPV6 is not builtin. |
| 5389 | * | ||
| 5390 | * u64 bpf_ktime_get_tai_ns(void) | ||
| 5391 | * Description | ||
| 5392 | * A nonsettable system-wide clock derived from wall-clock time but | ||
| 5393 | * ignoring leap seconds. This clock does not experience | ||
| 5394 | * discontinuities and backwards jumps caused by NTP inserting leap | ||
| 5395 | * seconds as CLOCK_REALTIME does. | ||
| 5396 | * | ||
| 5397 | * See: **clock_gettime**\ (**CLOCK_TAI**) | ||
| 5398 | * Return | ||
| 5399 | * Current *ktime*. | ||
| 5400 | * | ||
| 5401 | * long bpf_user_ringbuf_drain(struct bpf_map *map, void *callback_fn, void *ctx, u64 flags) | ||
| 5402 | * Description | ||
| 5403 | * Drain samples from the specified user ring buffer, and invoke | ||
| 5404 | * the provided callback for each such sample: | ||
| 5405 | * | ||
| 5406 | * long (\*callback_fn)(struct bpf_dynptr \*dynptr, void \*ctx); | ||
| 5407 | * | ||
| 5408 | * If **callback_fn** returns 0, the helper will continue to try | ||
| 5409 | * and drain the next sample, up to a maximum of | ||
| 5410 | * BPF_MAX_USER_RINGBUF_SAMPLES samples. If the return value is 1, | ||
| 5411 | * the helper will skip the rest of the samples and return. Other | ||
| 5412 | * return values are not used now, and will be rejected by the | ||
| 5413 | * verifier. | ||
| 5414 | * Return | ||
| 5415 | * The number of drained samples if no error was encountered while | ||
| 5416 | * draining samples, or 0 if no samples were present in the ring | ||
| 5417 | * buffer. If a user-space producer was epoll-waiting on this map, | ||
| 5418 | * and at least one sample was drained, they will receive an event | ||
| 5419 | * notification notifying them of available space in the ring | ||
| 5420 | * buffer. If the BPF_RB_NO_WAKEUP flag is passed to this | ||
| 5421 | * function, no wakeup notification will be sent. If the | ||
| 5422 | * BPF_RB_FORCE_WAKEUP flag is passed, a wakeup notification will | ||
| 5423 | * be sent even if no sample was drained. | ||
| 5424 | * | ||
| 5425 | * On failure, the returned value is one of the following: | ||
| 5426 | * | ||
| 5427 | * **-EBUSY** if the ring buffer is contended, and another calling | ||
| 5428 | * context was concurrently draining the ring buffer. | ||
| 5429 | * | ||
| 5430 | * **-EINVAL** if user-space is not properly tracking the ring | ||
| 5431 | * buffer due to the producer position not being aligned to 8 | ||
| 5432 | * bytes, a sample not being aligned to 8 bytes, or the producer | ||
| 5433 | * position not matching the advertised length of a sample. | ||
| 5434 | * | ||
| 5435 | * **-E2BIG** if user-space has tried to publish a sample which is | ||
| 5436 | * larger than the size of the ring buffer, or which cannot fit | ||
| 5437 | * within a struct bpf_dynptr. | ||
| 5334 | */ | 5438 | */ |
| 5335 | #define __BPF_FUNC_MAPPER(FN) \ | 5439 | #define __BPF_FUNC_MAPPER(FN) \ |
| 5336 | FN(unspec), \ | 5440 | FN(unspec), \ |
| @@ -5541,6 +5645,8 @@ union bpf_attr { · 204 unmodified lines | |||
| 5541 | FN(tcp_raw_gen_syncookie_ipv6), \ | 5645 | FN(tcp_raw_gen_syncookie_ipv6), \ |
| 5542 | FN(tcp_raw_check_syncookie_ipv4), \ | 5646 | FN(tcp_raw_check_syncookie_ipv4), \ |
| 5543 | FN(tcp_raw_check_syncookie_ipv6), \ | 5647 | FN(tcp_raw_check_syncookie_ipv6), \ |
| 5648 | FN(ktime_get_tai_ns), \ | ||
| 5649 | FN(user_ringbuf_drain), \ | ||
| 5544 | /* */ | 5650 | /* */ |
| 5545 | 5651 | ||
| 5546 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper | 5652 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper |
| @@ -5603,6 +5709,11 @@ enum { · 56 unmodified lines | |||
| 5603 | BPF_F_SEQ_NUMBER = (1ULL << 3), | 5709 | BPF_F_SEQ_NUMBER = (1ULL << 3), |
| 5604 | }; | 5710 | }; |
| 5605 | 5711 | ||
| 5712 | /* BPF_FUNC_skb_get_tunnel_key flags. */ | ||
| 5713 | enum { | ||
| 5714 | BPF_F_TUNINFO_FLAGS = (1ULL << 4), | ||
| 5715 | }; | ||
| 5716 | |||
| 5606 | /* BPF_FUNC_perf_event_output, BPF_FUNC_perf_event_read and | 5717 | /* BPF_FUNC_perf_event_output, BPF_FUNC_perf_event_read and |
| 5607 | * BPF_FUNC_perf_event_read_value flags. | 5718 | * BPF_FUNC_perf_event_read_value flags. |
| 5608 | */ | 5719 | */ |
| @@ -5792,7 +5903,10 @@ struct bpf_tunnel_key { · 183 unmodified lines | |||
| 5792 | }; | 5903 | }; |
| 5793 | __u8 tunnel_tos; | 5904 | __u8 tunnel_tos; |
| 5794 | __u8 tunnel_ttl; | 5905 | __u8 tunnel_ttl; |
| 5795 | __u16 tunnel_ext; /* Padding, future use. */ | 5906 | union { |
| 5907 | __u16 tunnel_ext; /* compat */ | ||
| 5908 | __be16 tunnel_flags; | ||
| 5909 | }; | ||
| 5796 | __u32 tunnel_label; | 5910 | __u32 tunnel_label; |
| 5797 | union { | 5911 | union { |
| 5798 | __u32 local_ipv4; | 5912 | __u32 local_ipv4; |
| @@ -5836,6 +5950,11 @@ enum bpf_ret_code { · 37 unmodified lines | |||
| 5836 | * represented by BPF_REDIRECT above). | 5950 | * represented by BPF_REDIRECT above). |
| 5837 | */ | 5951 | */ |
| 5838 | BPF_LWT_REROUTE = 128, | 5952 | BPF_LWT_REROUTE = 128, |
| 5953 | /* BPF_FLOW_DISSECTOR_CONTINUE: used by BPF_PROG_TYPE_FLOW_DISSECTOR | ||
| 5954 | * to indicate that no custom dissection was performed, and | ||
| 5955 | * fallback to standard dissector is requested. | ||
| 5956 | */ | ||
| 5957 | BPF_FLOW_DISSECTOR_CONTINUE = 129, | ||
| 5839 | }; | 5958 | }; |
| 5840 | 5959 | ||
| 5841 | struct bpf_sock { | 5960 | struct bpf_sock { |
| @@ -6134,11 +6253,26 @@ struct bpf_link_info { · 292 unmodified lines | |||
| 6134 | struct { | 6253 | struct { |
| 6135 | __aligned_u64 target_name; /* in/out: target_name buffer ptr */ | 6254 | __aligned_u64 target_name; /* in/out: target_name buffer ptr */ |
| 6136 | __u32 target_name_len; /* in/out: target_name buffer len */ | 6255 | __u32 target_name_len; /* in/out: target_name buffer len */ |
| 6256 | |||
| 6257 | /* If the iter specific field is 32 bits, it can be put | ||
| 6258 | * in the first or second union. Otherwise it should be | ||
| 6259 | * put in the second union. | ||
| 6260 | */ | ||
| 6137 | union { | 6261 | union { |
| 6138 | struct { | 6262 | struct { |
| 6139 | __u32 map_id; | 6263 | __u32 map_id; |
| 6140 | } map; | 6264 | } map; |
| 6141 | }; | 6265 | }; |
| 6266 | union { | ||
| 6267 | struct { | ||
| 6268 | __u64 cgroup_id; | ||
| 6269 | __u32 order; | ||
| 6270 | } cgroup; | ||
| 6271 | struct { | ||
| 6272 | __u32 tid; | ||
| 6273 | __u32 pid; | ||
| 6274 | } task; | ||
| 6275 | }; | ||
| 6142 | } iter; | 6276 | } iter; |
| 6143 | struct { | 6277 | struct { |
| 6144 | __u32 netns_ino; | 6278 | __u32 netns_ino; |
| @@ -48,6 +48,7 @@ · 47 unmodified lines | |||
| 48 | 48 | ||
| 49 | #include <linux/types.h> | 49 | #include <linux/types.h> |
| 50 | #include <linux/socket.h> | 50 | #include <linux/socket.h> |
| 51 | #include <linux/stddef.h> /* for offsetof */ | ||
| 51 | 52 | ||
| 52 | /* controller area network (CAN) kernel definitions */ | 53 | /* controller area network (CAN) kernel definitions */ |
| 53 | 54 | ||
| @@ -60,6 +61,7 @@ · 6 unmodified lines | |||
| 60 | #define CAN_SFF_MASK 0x000007FFU /* standard frame format (SFF) */ | 61 | #define CAN_SFF_MASK 0x000007FFU /* standard frame format (SFF) */ |
| 61 | #define CAN_EFF_MASK 0x1FFFFFFFU /* extended frame format (EFF) */ | 62 | #define CAN_EFF_MASK 0x1FFFFFFFU /* extended frame format (EFF) */ |
| 62 | #define CAN_ERR_MASK 0x1FFFFFFFU /* omit EFF, RTR, ERR flags */ | 63 | #define CAN_ERR_MASK 0x1FFFFFFFU /* omit EFF, RTR, ERR flags */ |
| 64 | #define CANXL_PRIO_MASK CAN_SFF_MASK /* 11 bit priority mask */ | ||
| 63 | 65 | ||
| 64 | /* | 66 | /* |
| 65 | * Controller Area Network Identifier structure | 67 | * Controller Area Network Identifier structure |
| @@ -73,6 +75,7 @@ typedef __u32 canid_t; · 7 unmodified lines | |||
| 73 | 75 | ||
| 74 | #define CAN_SFF_ID_BITS 11 | 76 | #define CAN_SFF_ID_BITS 11 |
| 75 | #define CAN_EFF_ID_BITS 29 | 77 | #define CAN_EFF_ID_BITS 29 |
| 78 | #define CANXL_PRIO_BITS CAN_SFF_ID_BITS | ||
| 76 | 79 | ||
| 77 | /* | 80 | /* |
| 78 | * Controller Area Network Error Message Frame Mask structure | 81 | * Controller Area Network Error Message Frame Mask structure |
| @@ -91,6 +94,16 @@ typedef __u32 can_err_mask_t; · 12 unmodified lines | |||
| 91 | #define CANFD_MAX_DLC 15 | 94 | #define CANFD_MAX_DLC 15 |
| 92 | #define CANFD_MAX_DLEN 64 | 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 | * struct can_frame - Classical CAN frame structure (aka CAN 2.0B) | 108 | * struct can_frame - Classical CAN frame structure (aka CAN 2.0B) |
| 96 | * @can_id: CAN ID of the frame and CAN_*_FLAG flags, see canid_t definition | 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 | * When this is done the former differentiation via CAN_MTU / CANFD_MTU gets | 154 | * When this is done the former differentiation via CAN_MTU / CANFD_MTU gets |
| 142 | * lost. CANFD_FDF allows programmers to mark CAN FD frames in the case of | 155 | * lost. CANFD_FDF allows programmers to mark CAN FD frames in the case of |
| 143 | * using struct canfd_frame for mixed CAN / CAN FD content (dual use). | 156 | * using struct canfd_frame for mixed CAN / CAN FD content (dual use). |
| 144 | * N.B. the Kernel APIs do NOT provide mixed CAN / CAN FD content inside of | 157 | * Since the introduction of CAN XL the CANFD_FDF flag is set in all CAN FD |
| 145 | * struct canfd_frame therefore the CANFD_FDF flag is disregarded by Linux. | 158 | * frame structures provided by the CAN subsystem of the Linux kernel. |
| 146 | */ | 159 | */ |
| 147 | #define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */ | 160 | #define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */ |
| 148 | #define CANFD_ESI 0x02 /* error state indicator of the transmitting node */ | 161 | #define CANFD_ESI 0x02 /* error state indicator of the transmitting node */ |
| @@ -166,8 +179,46 @@ struct canfd_frame { · 17 unmodified lines | |||
| 166 | __u8 data[CANFD_MAX_DLEN] __attribute__((aligned(8))); | 179 | __u8 data[CANFD_MAX_DLEN] __attribute__((aligned(8))); |
| 167 | }; | 180 | }; |
| 168 | 181 | ||
| 182 | /* | ||
| 183 | * defined bits for canxl_frame.flags | ||
| 184 | * | ||
| 185 | * The canxl_frame.flags element contains two bits CANXL_XLF and CANXL_SEC | ||
| 186 | * and shares the relative position of the struct can[fd]_frame.len element. | ||
| 187 | * The CANXL_XLF bit ALWAYS needs to be set to indicate a valid CAN XL frame. | ||
| 188 | * As a side effect setting this bit intentionally breaks the length checks | ||
| 189 | * for Classical CAN and CAN FD frames. | ||
| 190 | * | ||
| 191 | * Undefined bits in canxl_frame.flags are reserved and shall be set to zero. | ||
| 192 | */ | ||
| 193 | #define CANXL_XLF 0x80 /* mandatory CAN XL frame flag (must always be set!) */ | ||
| 194 | #define CANXL_SEC 0x01 /* Simple Extended Content (security/segmentation) */ | ||
| 195 | |||
| 196 | /** | ||
| 197 | * struct canxl_frame - CAN with e'X'tended frame 'L'ength frame structure | ||
| 198 | * @prio: 11 bit arbitration priority with zero'ed CAN_*_FLAG flags | ||
| 199 | * @flags: additional flags for CAN XL | ||
| 200 | * @sdt: SDU (service data unit) type | ||
| 201 | * @len: frame payload length in byte (CANXL_MIN_DLEN .. CANXL_MAX_DLEN) | ||
| 202 | * @af: acceptance field | ||
| 203 | * @data: CAN XL frame payload (CANXL_MIN_DLEN .. CANXL_MAX_DLEN byte) | ||
| 204 | * | ||
| 205 | * @prio shares the same position as @can_id from struct can[fd]_frame. | ||
| 206 | */ | ||
| 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 | #define CAN_MTU (sizeof(struct can_frame)) | 216 | #define CAN_MTU (sizeof(struct can_frame)) |
| 170 | #define CANFD_MTU (sizeof(struct canfd_frame)) | 217 | #define CANFD_MTU (sizeof(struct canfd_frame)) |
| 218 | #define CANXL_MTU (sizeof(struct canxl_frame)) | ||
| 219 | #define CANXL_HDR_SIZE (offsetof(struct canxl_frame, data)) | ||
| 220 | #define CANXL_MIN_MTU (CANXL_HDR_SIZE + 64) | ||
| 221 | #define CANXL_MAX_MTU CANXL_MTU | ||
| 171 | 222 | ||
| 172 | /* particular protocols of the protocol family PF_CAN */ | 223 | /* particular protocols of the protocol family PF_CAN */ |
| 173 | #define CAN_RAW 1 /* RAW sockets */ | 224 | #define CAN_RAW 1 /* RAW sockets */ |
| @@ -62,6 +62,7 @@ enum { · 61 unmodified lines | |||
| 62 | CAN_RAW_RECV_OWN_MSGS, /* receive my own msgs (default:off) */ | 62 | CAN_RAW_RECV_OWN_MSGS, /* receive my own msgs (default:off) */ |
| 63 | CAN_RAW_FD_FRAMES, /* allow CAN FD frames (default:off) */ | 63 | CAN_RAW_FD_FRAMES, /* allow CAN FD frames (default:off) */ |
| 64 | CAN_RAW_JOIN_FILTERS, /* all filters must match to trigger */ | 64 | CAN_RAW_JOIN_FILTERS, /* all filters must match to trigger */ |
| 65 | CAN_RAW_XL_FRAMES, /* allow CAN XL frames (default:off) */ | ||
| 65 | }; | 66 | }; |
| 66 | 67 | ||
| 67 | #endif /* !_UAPI_CAN_RAW_H */ | 68 | #endif /* !_UAPI_CAN_RAW_H */ |
| @@ -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 | ETHTOOL_MODULE_POWER_MODE_HIGH, | 736 | ETHTOOL_MODULE_POWER_MODE_HIGH, |
| 737 | }; | 737 | }; |
| 738 | 738 | ||
| 739 | /** | ||
| 740 | * enum ethtool_podl_pse_admin_state - operational state of the PoDL PSE | ||
| 741 | * functions. IEEE 802.3-2018 30.15.1.1.2 aPoDLPSEAdminState | ||
| 742 | * @ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN: state of PoDL PSE functions are | ||
| 743 | * unknown | ||
| 744 | * @ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED: PoDL PSE functions are disabled | ||
| 745 | * @ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED: PoDL PSE functions are enabled | ||
| 746 | */ | ||
| 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 | * struct ethtool_gstrings - string set for data tagging | 785 | * struct ethtool_gstrings - string set for data tagging |
| 741 | * @cmd: Command number = %ETHTOOL_GSTRINGS | 786 | * @cmd: Command number = %ETHTOOL_GSTRINGS |
| @@ -1840,6 +1885,20 @@ static inline int ethtool_validate_duplex(__u8 duplex) · 1098 unmodified lines | |||
| 1840 | #define MASTER_SLAVE_STATE_SLAVE 3 | 1885 | #define MASTER_SLAVE_STATE_SLAVE 3 |
| 1841 | #define MASTER_SLAVE_STATE_ERR 4 | 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 | /* Which connector port. */ | 1902 | /* Which connector port. */ |
| 1844 | #define PORT_TP 0x00 | 1903 | #define PORT_TP 0x00 |
| 1845 | #define PORT_AUI 0x01 | 1904 | #define PORT_AUI 0x01 |
| @@ -2033,8 +2092,8 @@ enum ethtool_reset_flags { · 187 unmodified lines | |||
| 2033 | * reported consistently by PHYLIB. Read-only. | 2092 | * reported consistently by PHYLIB. Read-only. |
| 2034 | * @master_slave_cfg: Master/slave port mode. | 2093 | * @master_slave_cfg: Master/slave port mode. |
| 2035 | * @master_slave_state: Master/slave port state. | 2094 | * @master_slave_state: Master/slave port state. |
| 2095 | * @rate_matching: Rate adaptation performed by the PHY | ||
| 2036 | * @reserved: Reserved for future use; see the note on reserved space. | 2096 | * @reserved: Reserved for future use; see the note on reserved space. |
| 2037 | * @reserved1: Reserved for future use; see the note on reserved space. | ||
| 2038 | * @link_mode_masks: Variable length bitmaps. | 2097 | * @link_mode_masks: Variable length bitmaps. |
| 2039 | * | 2098 | * |
| 2040 | * If autonegotiation is disabled, the speed and @duplex represent the | 2099 | * If autonegotiation is disabled, the speed and @duplex represent the |
| @@ -2085,7 +2144,7 @@ struct ethtool_link_settings { · 44 unmodified lines | |||
| 2085 | __u8 transceiver; | 2144 | __u8 transceiver; |
| 2086 | __u8 master_slave_cfg; | 2145 | __u8 master_slave_cfg; |
| 2087 | __u8 master_slave_state; | 2146 | __u8 master_slave_state; |
| 2088 | __u8 reserved1[1]; | 2147 | __u8 rate_matching; |
| 2089 | __u32 reserved[7]; | 2148 | __u32 reserved[7]; |
| 2090 | __u32 link_mode_masks[]; | 2149 | __u32 link_mode_masks[]; |
| 2091 | /* layout of link_mode_masks fields: | 2150 | /* layout of link_mode_masks fields: |
| @@ -49,6 +49,8 @@ enum { · 48 unmodified lines | |||
| 49 | ETHTOOL_MSG_PHC_VCLOCKS_GET, | 49 | ETHTOOL_MSG_PHC_VCLOCKS_GET, |
| 50 | ETHTOOL_MSG_MODULE_GET, | 50 | ETHTOOL_MSG_MODULE_GET, |
| 51 | ETHTOOL_MSG_MODULE_SET, | 51 | ETHTOOL_MSG_MODULE_SET, |
| 52 | ETHTOOL_MSG_PSE_GET, | ||
| 53 | ETHTOOL_MSG_PSE_SET, | ||
| 52 | 54 | ||
| 53 | /* add new constants above here */ | 55 | /* add new constants above here */ |
| 54 | __ETHTOOL_MSG_USER_CNT, | 56 | __ETHTOOL_MSG_USER_CNT, |
| @@ -94,6 +96,7 @@ enum { · 39 unmodified lines | |||
| 94 | ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY, | 96 | ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY, |
| 95 | ETHTOOL_MSG_MODULE_GET_REPLY, | 97 | ETHTOOL_MSG_MODULE_GET_REPLY, |
| 96 | ETHTOOL_MSG_MODULE_NTF, | 98 | ETHTOOL_MSG_MODULE_NTF, |
| 99 | ETHTOOL_MSG_PSE_GET_REPLY, | ||
| 97 | 100 | ||
| 98 | /* add new constants above here */ | 101 | /* add new constants above here */ |
| 99 | __ETHTOOL_MSG_KERNEL_CNT, | 102 | __ETHTOOL_MSG_KERNEL_CNT, |
| @@ -242,6 +245,7 @@ enum { · 142 unmodified lines | |||
| 242 | ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG, /* u8 */ | 245 | ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG, /* u8 */ |
| 243 | ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, /* u8 */ | 246 | ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, /* u8 */ |
| 244 | ETHTOOL_A_LINKMODES_LANES, /* u32 */ | 247 | ETHTOOL_A_LINKMODES_LANES, /* u32 */ |
| 248 | ETHTOOL_A_LINKMODES_RATE_MATCHING, /* u8 */ | ||
| 245 | 249 | ||
| 246 | /* add new constants above here */ | 250 | /* add new constants above here */ |
| 247 | __ETHTOOL_A_LINKMODES_CNT, | 251 | __ETHTOOL_A_LINKMODES_CNT, |
| @@ -862,6 +866,19 @@ enum { · 614 unmodified lines | |||
| 862 | ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1) | 866 | ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1) |
| 863 | }; | 867 | }; |
| 864 | 868 | ||
| 869 | /* Power Sourcing Equipment */ | ||
| 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 | /* generic netlink info */ | 882 | /* generic netlink info */ |
| 866 | #define ETHTOOL_GENL_NAME "ethtool" | 883 | #define ETHTOOL_GENL_NAME "ethtool" |
| 867 | #define ETHTOOL_GENL_VERSION 1 | 884 | #define ETHTOOL_GENL_VERSION 1 |
| @@ -138,6 +138,7 @@ · 137 unmodified lines | |||
| 138 | #define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */ | 138 | #define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */ |
| 139 | #define ETH_P_CAN 0x000C /* CAN: Controller Area Network */ | 139 | #define ETH_P_CAN 0x000C /* CAN: Controller Area Network */ |
| 140 | #define ETH_P_CANFD 0x000D /* CANFD: CAN flexible data rate*/ | 140 | #define ETH_P_CANFD 0x000D /* CANFD: CAN flexible data rate*/ |
| 141 | #define ETH_P_CANXL 0x000E /* CANXL: eXtended frame Length */ | ||
| 141 | #define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/ | 142 | #define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/ |
| 142 | #define ETH_P_TR_802_2 0x0011 /* 802.2 frames */ | 143 | #define ETH_P_TR_802_2 0x0011 /* 802.2 frames */ |
| 143 | #define ETH_P_MOBITEX 0x0015 /* Mobitex (kaz@cafe.net) */ | 144 | #define ETH_P_MOBITEX 0x0015 /* Mobitex (kaz@cafe.net) */ |
| @@ -370,6 +370,7 @@ enum { · 369 unmodified lines | |||
| 370 | IFLA_GRO_MAX_SIZE, | 370 | IFLA_GRO_MAX_SIZE, |
| 371 | IFLA_TSO_MAX_SIZE, | 371 | IFLA_TSO_MAX_SIZE, |
| 372 | IFLA_TSO_MAX_SEGS, | 372 | IFLA_TSO_MAX_SEGS, |
| 373 | IFLA_ALLMULTI, /* Allmulti count: > 0 means acts ALLMULTI */ | ||
| 373 | 374 | ||
| 374 | __IFLA_MAX | 375 | __IFLA_MAX |
| 375 | }; | 376 | }; |
| @@ -694,6 +695,7 @@ enum { · 318 unmodified lines | |||
| 694 | IFLA_XFRM_UNSPEC, | 695 | IFLA_XFRM_UNSPEC, |
| 695 | IFLA_XFRM_LINK, | 696 | IFLA_XFRM_LINK, |
| 696 | IFLA_XFRM_IF_ID, | 697 | IFLA_XFRM_IF_ID, |
| 698 | IFLA_XFRM_COLLECT_METADATA, | ||
| 697 | __IFLA_XFRM_MAX | 699 | __IFLA_XFRM_MAX |
| 698 | }; | 700 | }; |
| 699 | 701 | ||
| @@ -1374,4 +1376,14 @@ enum { · 674 unmodified lines | |||
| 1374 | 1376 | ||
| 1375 | #define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1) | 1377 | #define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1) |
| 1376 | 1378 | ||
| 1379 | /* DSA section */ | ||
| 1380 | |||
| 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 | #endif /* _UAPI_LINUX_IF_LINK_H */ | 1389 | #endif /* _UAPI_LINUX_IF_LINK_H */ |
| @@ -22,6 +22,8 @@ · 21 unmodified lines | |||
| 22 | 22 | ||
| 23 | #define MACSEC_KEYID_LEN 16 | 23 | #define MACSEC_KEYID_LEN 16 |
| 24 | 24 | ||
| 25 | #define MACSEC_SALT_LEN 12 | ||
| 26 | |||
| 25 | /* cipher IDs as per IEEE802.1AE-2018 (Table 14-1) */ | 27 | /* cipher IDs as per IEEE802.1AE-2018 (Table 14-1) */ |
| 26 | #define MACSEC_CIPHER_ID_GCM_AES_128 0x0080C20001000001ULL | 28 | #define MACSEC_CIPHER_ID_GCM_AES_128 0x0080C20001000001ULL |
| 27 | #define MACSEC_CIPHER_ID_GCM_AES_256 0x0080C20001000002ULL | 29 | #define MACSEC_CIPHER_ID_GCM_AES_256 0x0080C20001000002ULL |
| @@ -68,6 +68,8 @@ enum { · 67 unmodified lines | |||
| 68 | #define IPPROTO_PIM IPPROTO_PIM | 68 | #define IPPROTO_PIM IPPROTO_PIM |
| 69 | IPPROTO_COMP = 108, /* Compression Header Protocol */ | 69 | IPPROTO_COMP = 108, /* Compression Header Protocol */ |
| 70 | #define IPPROTO_COMP IPPROTO_COMP | 70 | #define IPPROTO_COMP IPPROTO_COMP |
| 71 | IPPROTO_L2TP = 115, /* Layer 2 Tunnelling Protocol */ | ||
| 72 | #define IPPROTO_L2TP IPPROTO_L2TP | ||
| 71 | IPPROTO_SCTP = 132, /* Stream Control Transport Protocol */ | 73 | IPPROTO_SCTP = 132, /* Stream Control Transport Protocol */ |
| 72 | #define IPPROTO_SCTP IPPROTO_SCTP | 74 | #define IPPROTO_SCTP IPPROTO_SCTP |
| 73 | IPPROTO_UDPLITE = 136, /* UDP-Lite (RFC 3828) */ | 75 | IPPROTO_UDPLITE = 136, /* UDP-Lite (RFC 3828) */ |
| @@ -188,21 +190,13 @@ struct ip_mreq_source { · 114 unmodified lines | |||
| 188 | }; | 190 | }; |
| 189 | 191 | ||
| 190 | struct ip_msfilter { | 192 | struct ip_msfilter { |
| 193 | __be32 imsf_multiaddr; | ||
| 194 | __be32 imsf_interface; | ||
| 195 | __u32 imsf_fmode; | ||
| 196 | __u32 imsf_numsrc; | ||
| 191 | union { | 197 | union { |
| 192 | struct { | 198 | __be32 imsf_slist[1]; |
| 193 | __be32 imsf_multiaddr_aux; | 199 | __DECLARE_FLEX_ARRAY(__be32, imsf_slist_flex); |
| 194 | __be32 imsf_interface_aux; | ||
| 195 | __u32 imsf_fmode_aux; | ||
| 196 | __u32 imsf_numsrc_aux; | ||
| 197 | __be32 imsf_slist[1]; | ||
| 198 | }; | ||
| 199 | struct { | ||
| 200 | __be32 imsf_multiaddr; | ||
| 201 | __be32 imsf_interface; | ||
| 202 | __u32 imsf_fmode; | ||
| 203 | __u32 imsf_numsrc; | ||
| 204 | __be32 imsf_slist_flex[]; | ||
| 205 | }; | ||
| 206 | }; | 200 | }; |
| 207 | }; | 201 | }; |
| 208 | 202 | ||
| @@ -13,8 +13,6 @@ · 12 unmodified lines | |||
| 13 | #include <linux/in.h> | 13 | #include <linux/in.h> |
| 14 | #include <linux/in6.h> | 14 | #include <linux/in6.h> |
| 15 | 15 | ||
| 16 | #define IPPROTO_L2TP 115 | ||
| 17 | |||
| 18 | /** | 16 | /** |
| 19 | * struct sockaddr_l2tpip - the sockaddr structure for L2TP-over-IP sockets | 17 | * struct sockaddr_l2tpip - the sockaddr structure for L2TP-over-IP sockets |
| 20 | * @l2tp_family: address family number AF_L2TPIP. | 18 | * @l2tp_family: address family number AF_L2TPIP. |
| @@ -15,6 +15,7 @@ enum lwtunnel_encap_types { · 14 unmodified lines | |||
| 15 | LWTUNNEL_ENCAP_SEG6_LOCAL, | 15 | LWTUNNEL_ENCAP_SEG6_LOCAL, |
| 16 | LWTUNNEL_ENCAP_RPL, | 16 | LWTUNNEL_ENCAP_RPL, |
| 17 | LWTUNNEL_ENCAP_IOAM6, | 17 | LWTUNNEL_ENCAP_IOAM6, |
| 18 | LWTUNNEL_ENCAP_XFRM, | ||
| 18 | __LWTUNNEL_ENCAP_MAX, | 19 | __LWTUNNEL_ENCAP_MAX, |
| 19 | }; | 20 | }; |
| 20 | 21 | ||
| @@ -111,4 +112,13 @@ enum { · 90 unmodified lines | |||
| 111 | 112 | ||
| 112 | #define LWT_BPF_MAX_HEADROOM 256 | 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 | #endif /* _UAPI_LWTUNNEL_H_ */ | 124 | #endif /* _UAPI_LWTUNNEL_H_ */ |
| @@ -63,7 +63,9 @@ enum { · 62 unmodified lines | |||
| 63 | NFPROTO_NETDEV = 5, | 63 | NFPROTO_NETDEV = 5, |
| 64 | NFPROTO_BRIDGE = 7, | 64 | NFPROTO_BRIDGE = 7, |
| 65 | NFPROTO_IPV6 = 10, | 65 | NFPROTO_IPV6 = 10, |
| 66 | #ifndef __KERNEL__ /* no longer supported by kernel */ | ||
| 66 | NFPROTO_DECNET = 12, | 67 | NFPROTO_DECNET = 12, |
| 68 | #endif | ||
| 67 | NFPROTO_NUMPROTO, | 69 | NFPROTO_NUMPROTO, |
| 68 | }; | 70 | }; |
| 69 | 71 | ||
| @@ -3,10 +3,6 @@ · 2 unmodified lines | |||
| 3 | * Patrick Schaaf <bof@bof.de> | 3 | * Patrick Schaaf <bof@bof.de> |
| 4 | * Martin Josefsson <gandalf@wlug.westbo.se> | 4 | * Martin Josefsson <gandalf@wlug.westbo.se> |
| 5 | * Copyright (C) 2003-2011 Jozsef Kadlecsik <kadlec@netfilter.org> | 5 | * Copyright (C) 2003-2011 Jozsef Kadlecsik <kadlec@netfilter.org> |
| 6 | * | ||
| 7 | * This program is free software; you can redistribute it and/or modify | ||
| 8 | * it under the terms of the GNU General Public License version 2 as | ||
| 9 | * published by the Free Software Foundation. | ||
| 10 | */ | 6 | */ |
| 11 | #ifndef _UAPI_IP_SET_H | 7 | #ifndef _UAPI_IP_SET_H |
| 12 | #define _UAPI_IP_SET_H | 8 | #define _UAPI_IP_SET_H |
| @@ -4,10 +4,6 @@ · 3 unmodified lines | |||
| 4 | * | 4 | * |
| 5 | * (C) 2010-2011 Thomas Graf <tgraf@redhat.com> | 5 | * (C) 2010-2011 Thomas Graf <tgraf@redhat.com> |
| 6 | * (C) 2010-2011 Red Hat, Inc. | 6 | * (C) 2010-2011 Red Hat, Inc. |
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License version 2 as | ||
| 10 | * published by the Free Software Foundation. | ||
| 11 | */ | 7 | */ |
| 12 | 8 | ||
| 13 | #ifndef _XT_AUDIT_TARGET_H | 9 | #ifndef _XT_AUDIT_TARGET_H |
| @@ -1,18 +1,13 @@ | |||
| 1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ | 1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ |
| 2 | /* Copyright (C) 2002,2004 MARA Systems AB <https://www.marasystems.com> | ||
| 3 | * by Henrik Nordstrom <hno@marasystems.com> | ||
| 4 | */ | ||
| 5 | |||
| 2 | #ifndef _XT_CONNMARK_H | 6 | #ifndef _XT_CONNMARK_H |
| 3 | #define _XT_CONNMARK_H | 7 | #define _XT_CONNMARK_H |
| 4 | 8 | ||
| 5 | #include <linux/types.h> | 9 | #include <linux/types.h> |
| 6 | 10 | ||
| 7 | /* Copyright (C) 2002,2004 MARA Systems AB <https://www.marasystems.com> | ||
| 8 | * by Henrik Nordstrom <hno@marasystems.com> | ||
| 9 | * | ||
| 10 | * This program is free software; you can redistribute it and/or modify | ||
| 11 | * it under the terms of the GNU General Public License as published by | ||
| 12 | * the Free Software Foundation; either version 2 of the License, or | ||
| 13 | * (at your option) any later version. | ||
| 14 | */ | ||
| 15 | |||
| 16 | enum { | 11 | enum { |
| 17 | XT_CONNMARK_SET = 0, | 12 | XT_CONNMARK_SET = 0, |
| 18 | XT_CONNMARK_SAVE, | 13 | XT_CONNMARK_SAVE, |
| @@ -1,20 +1,6 @@ | |||
| 1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ | 1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2003+ Evgeniy Polyakov <johnpol@2ka.mxt.ru> | 3 | * Copyright (c) 2003+ Evgeniy Polyakov <johnpol@2ka.mxt.ru> |
| 4 | * | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License as published by | ||
| 8 | * the Free Software Foundation; either version 2 of the License, or | ||
| 9 | * (at your option) any later version. | ||
| 10 | * | ||
| 11 | * This program is distributed in the hope that it will be useful, | ||
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | * GNU General Public License for more details. | ||
| 15 | * | ||
| 16 | * You should have received a copy of the GNU General Public License | ||
| 17 | * along with this program; if not, see <http://www.gnu.org/licenses/>. | ||
| 18 | */ | 4 | */ |
| 19 | 5 | ||
| 20 | #ifndef _XT_OSF_H | 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 | #define NETLINK_CONNECTOR 11 | 20 | #define NETLINK_CONNECTOR 11 |
| 21 | #define NETLINK_NETFILTER 12 /* netfilter subsystem */ | 21 | #define NETLINK_NETFILTER 12 /* netfilter subsystem */ |
| 22 | #define NETLINK_IP6_FW 13 | 22 | #define NETLINK_IP6_FW 13 |
| 23 | #define NETLINK_DNRTMSG 14 /* DECnet routing messages */ | 23 | #define NETLINK_DNRTMSG 14 /* DECnet routing messages (obsolete) */ |
| 24 | #define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */ | 24 | #define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */ |
| 25 | #define NETLINK_GENERIC 16 | 25 | #define NETLINK_GENERIC 16 |
| 26 | /* leave room for NETLINK_DM (DM Events) */ | 26 | /* leave room for NETLINK_DM (DM Events) */ |
| @@ -41,12 +41,20 @@ struct sockaddr_nl { · 14 unmodified lines | |||
| 41 | __u32 nl_groups; /* multicast groups mask */ | 41 | __u32 nl_groups; /* multicast groups mask */ |
| 42 | }; | 42 | }; |
| 43 | 43 | ||
| 44 | /** | ||
| 45 | * struct nlmsghdr - fixed format metadata header of Netlink messages | ||
| 46 | * @nlmsg_len: Length of message including header | ||
| 47 | * @nlmsg_type: Message content type | ||
| 48 | * @nlmsg_flags: Additional flags | ||
| 49 | * @nlmsg_seq: Sequence number | ||
| 50 | * @nlmsg_pid: Sending process port ID | ||
| 51 | */ | ||
| 44 | struct nlmsghdr { | 52 | struct nlmsghdr { |
| 45 | __u32 nlmsg_len; /* Length of message including header */ | 53 | __u32 nlmsg_len; |
| 46 | __u16 nlmsg_type; /* Message content */ | 54 | __u16 nlmsg_type; |
| 47 | __u16 nlmsg_flags; /* Additional flags */ | 55 | __u16 nlmsg_flags; |
| 48 | __u32 nlmsg_seq; /* Sequence number */ | 56 | __u32 nlmsg_seq; |
| 49 | __u32 nlmsg_pid; /* Sending process port ID */ | 57 | __u32 nlmsg_pid; |
| 50 | }; | 58 | }; |
| 51 | 59 | ||
| 52 | /* Flags values */ | 60 | /* Flags values */ |
| @@ -54,7 +62,7 @@ struct nlmsghdr { · 1 unmodified line | |||
| 54 | #define NLM_F_REQUEST 0x01 /* It is request message. */ | 62 | #define NLM_F_REQUEST 0x01 /* It is request message. */ |
| 55 | #define NLM_F_MULTI 0x02 /* Multipart message, terminated by NLMSG_DONE */ | 63 | #define NLM_F_MULTI 0x02 /* Multipart message, terminated by NLMSG_DONE */ |
| 56 | #define NLM_F_ACK 0x04 /* Reply with ack, with zero or error code */ | 64 | #define NLM_F_ACK 0x04 /* Reply with ack, with zero or error code */ |
| 57 | #define NLM_F_ECHO 0x08 /* Echo this request */ | 65 | #define NLM_F_ECHO 0x08 /* Receive resulting notifications */ |
| 58 | #define NLM_F_DUMP_INTR 0x10 /* Dump was inconsistent due to sequence change */ | 66 | #define NLM_F_DUMP_INTR 0x10 /* Dump was inconsistent due to sequence change */ |
| 59 | #define NLM_F_DUMP_FILTERED 0x20 /* Dump was filtered as requested */ | 67 | #define NLM_F_DUMP_FILTERED 0x20 /* Dump was filtered as requested */ |
| 60 | 68 | ||
| @@ -132,6 +140,10 @@ struct nlmsgerr { · 71 unmodified lines | |||
| 132 | * be used - in the success case - to identify a created | 140 | * be used - in the success case - to identify a created |
| 133 | * object or operation or similar (binary) | 141 | * object or operation or similar (binary) |
| 134 | * @NLMSGERR_ATTR_POLICY: policy for a rejected attribute | 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 | * @__NLMSGERR_ATTR_MAX: number of attributes | 147 | * @__NLMSGERR_ATTR_MAX: number of attributes |
| 136 | * @NLMSGERR_ATTR_MAX: highest attribute number | 148 | * @NLMSGERR_ATTR_MAX: highest attribute number |
| 137 | */ | 149 | */ |
| @@ -141,6 +153,8 @@ enum nlmsgerr_attrs { · 3 unmodified lines | |||
| 141 | NLMSGERR_ATTR_OFFS, | 153 | NLMSGERR_ATTR_OFFS, |
| 142 | NLMSGERR_ATTR_COOKIE, | 154 | NLMSGERR_ATTR_COOKIE, |
| 143 | NLMSGERR_ATTR_POLICY, | 155 | NLMSGERR_ATTR_POLICY, |
| 156 | NLMSGERR_ATTR_MISS_TYPE, | ||
| 157 | NLMSGERR_ATTR_MISS_NEST, | ||
| 144 | 158 | ||
| 145 | __NLMSGERR_ATTR_MAX, | 159 | __NLMSGERR_ATTR_MAX, |
| 146 | NLMSGERR_ATTR_MAX = __NLMSGERR_ATTR_MAX - 1 | 160 | NLMSGERR_ATTR_MAX = __NLMSGERR_ATTR_MAX - 1 |
| @@ -337,6 +351,9 @@ enum netlink_attribute_type { · 190 unmodified lines | |||
| 337 | * bitfield32 type (U32) | 351 | * bitfield32 type (U32) |
| 338 | * @NL_POLICY_TYPE_ATTR_MASK: mask of valid bits for unsigned integers (U64) | 352 | * @NL_POLICY_TYPE_ATTR_MASK: mask of valid bits for unsigned integers (U64) |
| 339 | * @NL_POLICY_TYPE_ATTR_PAD: pad attribute for 64-bit alignment | 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 | enum netlink_policy_type_attr { | 358 | enum netlink_policy_type_attr { |
| 342 | NL_POLICY_TYPE_ATTR_UNSPEC, | 359 | NL_POLICY_TYPE_ATTR_UNSPEC, |
| @@ -377,14 +377,22 @@ · 376 unmodified lines | |||
| 377 | * the non-transmitting interfaces are deleted as well. | 377 | * the non-transmitting interfaces are deleted as well. |
| 378 | * | 378 | * |
| 379 | * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified | 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 | * @NL80211_CMD_SET_KEY: Set key attributes %NL80211_ATTR_KEY_DEFAULT, | 383 | * @NL80211_CMD_SET_KEY: Set key attributes %NL80211_ATTR_KEY_DEFAULT, |
| 382 | * %NL80211_ATTR_KEY_DEFAULT_MGMT, or %NL80211_ATTR_KEY_THRESHOLD. | 384 | * %NL80211_ATTR_KEY_DEFAULT_MGMT, or %NL80211_ATTR_KEY_THRESHOLD. |
| 385 | * For MLO connection, the link to set default key is identified by | ||
| 386 | * %NL80211_ATTR_MLO_LINK_ID. | ||
| 383 | * @NL80211_CMD_NEW_KEY: add a key with given %NL80211_ATTR_KEY_DATA, | 387 | * @NL80211_CMD_NEW_KEY: add a key with given %NL80211_ATTR_KEY_DATA, |
| 384 | * %NL80211_ATTR_KEY_IDX, %NL80211_ATTR_MAC, %NL80211_ATTR_KEY_CIPHER, | 388 | * %NL80211_ATTR_KEY_IDX, %NL80211_ATTR_MAC, %NL80211_ATTR_KEY_CIPHER, |
| 385 | * and %NL80211_ATTR_KEY_SEQ attributes. | 389 | * and %NL80211_ATTR_KEY_SEQ attributes. %NL80211_ATTR_MAC represents |
| 390 | * peer's MLD address for MLO pairwise key. The link to add MLO | ||
| 391 | * group key is identified by %NL80211_ATTR_MLO_LINK_ID. | ||
| 386 | * @NL80211_CMD_DEL_KEY: delete a key identified by %NL80211_ATTR_KEY_IDX | 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 | * @NL80211_CMD_GET_BEACON: (not used) | 397 | * @NL80211_CMD_GET_BEACON: (not used) |
| 390 | * @NL80211_CMD_SET_BEACON: change the beacon on an access point interface | 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 | * using the nesting index as the antenna number. | 4959 | * using the nesting index as the antenna number. |
| 4952 | * @NL80211_BSS_FREQUENCY_OFFSET: frequency offset in KHz | 4960 | * @NL80211_BSS_FREQUENCY_OFFSET: frequency offset in KHz |
| 4953 | * @NL80211_BSS_MLO_LINK_ID: MLO link ID of the BSS (u8). | 4961 | * @NL80211_BSS_MLO_LINK_ID: MLO link ID of the BSS (u8). |
| 4962 | * @NL80211_BSS_MLD_ADDR: MLD address of this BSS if connected to it. | ||
| 4954 | * @__NL80211_BSS_AFTER_LAST: internal | 4963 | * @__NL80211_BSS_AFTER_LAST: internal |
| 4955 | * @NL80211_BSS_MAX: highest BSS attribute | 4964 | * @NL80211_BSS_MAX: highest BSS attribute |
| 4956 | */ | 4965 | */ |
| @@ -4977,6 +4986,7 @@ enum nl80211_bss { · 20 unmodified lines | |||
| 4977 | NL80211_BSS_CHAIN_SIGNAL, | 4986 | NL80211_BSS_CHAIN_SIGNAL, |
| 4978 | NL80211_BSS_FREQUENCY_OFFSET, | 4987 | NL80211_BSS_FREQUENCY_OFFSET, |
| 4979 | NL80211_BSS_MLO_LINK_ID, | 4988 | NL80211_BSS_MLO_LINK_ID, |
| 4989 | NL80211_BSS_MLD_ADDR, | ||
| 4980 | 4990 | ||
| 4981 | /* keep last */ | 4991 | /* keep last */ |
| 4982 | __NL80211_BSS_AFTER_LAST, | 4992 | __NL80211_BSS_AFTER_LAST, |
| @@ -6273,6 +6283,14 @@ enum nl80211_feature_flags { · 1290 unmodified lines | |||
| 6273 | * @NL80211_EXT_FEATURE_RADAR_BACKGROUND: Device supports background radar/CAC | 6283 | * @NL80211_EXT_FEATURE_RADAR_BACKGROUND: Device supports background radar/CAC |
| 6274 | * detection. | 6284 | * detection. |
| 6275 | * | 6285 | * |
| 6286 | * @NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE: Device can perform a MAC address | ||
| 6287 | * change without having to bring the underlying network device down | ||
| 6288 | * first. For example, in station mode this can be used to vary the | ||
| 6289 | * origin MAC address prior to a connection to a new AP for privacy | ||
| 6290 | * or other reasons. Note that certain driver specific restrictions | ||
| 6291 | * might apply, e.g. no scans in progress, no offchannel operations | ||
| 6292 | * in progress, and no active connections. | ||
| 6293 | * | ||
| 6276 | * @NUM_NL80211_EXT_FEATURES: number of extended features. | 6294 | * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| 6277 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. | 6295 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. |
| 6278 | */ | 6296 | */ |
| @@ -6340,6 +6358,7 @@ enum nl80211_ext_feature_index { · 61 unmodified lines | |||
| 6340 | NL80211_EXT_FEATURE_BSS_COLOR, | 6358 | NL80211_EXT_FEATURE_BSS_COLOR, |
| 6341 | NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD, | 6359 | NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD, |
| 6342 | NL80211_EXT_FEATURE_RADAR_BACKGROUND, | 6360 | NL80211_EXT_FEATURE_RADAR_BACKGROUND, |
| 6361 | NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE, | ||
| 6343 | 6362 | ||
| 6344 | /* add new features before the definition below */ | 6363 | /* add new features before the definition below */ |
| 6345 | NUM_NL80211_EXT_FEATURES, | 6364 | NUM_NL80211_EXT_FEATURES, |
| @@ -76,6 +76,8 @@ enum ovs_datapath_cmd { · 75 unmodified lines | |||
| 76 | * datapath. Always present in notifications. | 76 | * datapath. Always present in notifications. |
| 77 | * @OVS_DP_ATTR_MEGAFLOW_STATS: Statistics about mega flow masks usage for the | 77 | * @OVS_DP_ATTR_MEGAFLOW_STATS: Statistics about mega flow masks usage for the |
| 78 | * datapath. Always present in notifications. | 78 | * datapath. Always present in notifications. |
| 79 | * @OVS_DP_ATTR_IFINDEX: Interface index for a new datapath netdev. Only | ||
| 80 | * valid for %OVS_DP_CMD_NEW requests. | ||
| 79 | * | 81 | * |
| 80 | * These attributes follow the &struct ovs_header within the Generic Netlink | 82 | * These attributes follow the &struct ovs_header within the Generic Netlink |
| 81 | * payload for %OVS_DP_* commands. | 83 | * payload for %OVS_DP_* commands. |
| @@ -92,6 +94,7 @@ enum ovs_datapath_attr { · 10 unmodified lines | |||
| 92 | OVS_DP_ATTR_PER_CPU_PIDS, /* Netlink PIDS to receive upcalls in | 94 | OVS_DP_ATTR_PER_CPU_PIDS, /* Netlink PIDS to receive upcalls in |
| 93 | * per-cpu dispatch mode | 95 | * per-cpu dispatch mode |
| 94 | */ | 96 | */ |
| 97 | OVS_DP_ATTR_IFINDEX, | ||
| 95 | __OVS_DP_ATTR_MAX | 98 | __OVS_DP_ATTR_MAX |
| 96 | }; | 99 | }; |
| 97 | 100 | ||
| @@ -592,6 +592,8 @@ enum { · 591 unmodified lines | |||
| 592 | TCA_FLOWER_KEY_PPPOE_SID, /* be16 */ | 592 | TCA_FLOWER_KEY_PPPOE_SID, /* be16 */ |
| 593 | TCA_FLOWER_KEY_PPP_PROTO, /* be16 */ | 593 | TCA_FLOWER_KEY_PPP_PROTO, /* be16 */ |
| 594 | 594 | ||
| 595 | TCA_FLOWER_KEY_L2TPV3_SID, /* be32 */ | ||
| 596 | |||
| 595 | __TCA_FLOWER_MAX, | 597 | __TCA_FLOWER_MAX, |
| 596 | }; | 598 | }; |
| 597 | 599 | ||
| @@ -1232,6 +1232,16 @@ enum { · 1231 unmodified lines | |||
| 1232 | #define TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST _BITUL(0) | 1232 | #define TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST _BITUL(0) |
| 1233 | #define TCA_TAPRIO_ATTR_FLAG_FULL_OFFLOAD _BITUL(1) | 1233 | #define TCA_TAPRIO_ATTR_FLAG_FULL_OFFLOAD _BITUL(1) |
| 1234 | 1234 | ||
| 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 | enum { | 1245 | enum { |
| 1236 | TCA_TAPRIO_ATTR_UNSPEC, | 1246 | TCA_TAPRIO_ATTR_UNSPEC, |
| 1237 | TCA_TAPRIO_ATTR_PRIOMAP, /* struct tc_mqprio_qopt */ | 1247 | TCA_TAPRIO_ATTR_PRIOMAP, /* struct tc_mqprio_qopt */ |
| @@ -1245,6 +1255,7 @@ enum { · 7 unmodified lines | |||
| 1245 | TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME_EXTENSION, /* s64 */ | 1255 | TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME_EXTENSION, /* s64 */ |
| 1246 | TCA_TAPRIO_ATTR_FLAGS, /* u32 */ | 1256 | TCA_TAPRIO_ATTR_FLAGS, /* u32 */ |
| 1247 | TCA_TAPRIO_ATTR_TXTIME_DELAY, /* u32 */ | 1257 | TCA_TAPRIO_ATTR_TXTIME_DELAY, /* u32 */ |
| 1258 | TCA_TAPRIO_ATTR_TC_ENTRY, /* nest */ | ||
| 1248 | __TCA_TAPRIO_ATTR_MAX, | 1259 | __TCA_TAPRIO_ATTR_MAX, |
| 1249 | }; | 1260 | }; |
| 1250 | 1261 | ||
| @@ -28,6 +28,7 @@ enum { · 27 unmodified lines | |||
| 28 | SEG6_LOCAL_BPF, | 28 | SEG6_LOCAL_BPF, |
| 29 | SEG6_LOCAL_VRFTABLE, | 29 | SEG6_LOCAL_VRFTABLE, |
| 30 | SEG6_LOCAL_COUNTERS, | 30 | SEG6_LOCAL_COUNTERS, |
| 31 | SEG6_LOCAL_FLAVORS, | ||
| 31 | __SEG6_LOCAL_MAX, | 32 | __SEG6_LOCAL_MAX, |
| 32 | }; | 33 | }; |
| 33 | #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1) | 34 | #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1) |
| @@ -110,4 +111,27 @@ enum { · 76 unmodified lines | |||
| 110 | 111 | ||
| 111 | #define SEG6_LOCAL_CNT_MAX (__SEG6_LOCAL_CNT_MAX - 1) | 112 | #define SEG6_LOCAL_CNT_MAX (__SEG6_LOCAL_CNT_MAX - 1) |
| 112 | 113 | ||
| 114 | /* SRv6 End* Flavor attributes */ | ||
| 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 | #endif | 137 | #endif |
| @@ -1,11 +1,6 @@ | |||
| 1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ | 1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2015 Jiri Pirko <jiri@resnulli.us> | 3 | * Copyright (c) 2015 Jiri Pirko <jiri@resnulli.us> |
| 4 | * | ||
| 5 | * This program is free software; you can redistribute it and/or modify | ||
| 6 | * it under the terms of the GNU General Public License as published by | ||
| 7 | * the Free Software Foundation; either version 2 of the License, or | ||
| 8 | * (at your option) any later version. | ||
| 9 | */ | 4 | */ |
| 10 | 5 | ||
| 11 | #ifndef __LINUX_TC_BPF_H | 6 | #ifndef __LINUX_TC_BPF_H |
| @@ -2,19 +2,6 @@ · 1 unmodified line | |||
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2008, Intel Corporation. | 3 | * Copyright (c) 2008, Intel Corporation. |
| 4 | * | 4 | * |
| 5 | * This program is free software; you can redistribute it and/or modify it | ||
| 6 | * under the terms and conditions of the GNU General Public License, | ||
| 7 | * version 2, as published by the Free Software Foundation. | ||
| 8 | * | ||
| 9 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
| 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
| 11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
| 12 | * more details. | ||
| 13 | * | ||
| 14 | * You should have received a copy of the GNU General Public License along with | ||
| 15 | * this program; if not, write to the Free Software Foundation, Inc., 59 Temple | ||
| 16 | * Place - Suite 330, Boston, MA 02111-1307 USA. | ||
| 17 | * | ||
| 18 | * Author: Alexander Duyck <alexander.h.duyck@intel.com> | 5 | * Author: Alexander Duyck <alexander.h.duyck@intel.com> |
| 19 | */ | 6 | */ |
| 20 | 7 | ||
| @@ -1,12 +1,7 @@ | |||
| 1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ | 1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2016, Jamal Hadi Salim | 3 | * Copyright (c) 2016, Jamal Hadi Salim |
| 4 | * | 4 | */ |
| 5 | * This program is free software; you can redistribute it and/or modify | ||
| 6 | * it under the terms of the GNU General Public License as published by | ||
| 7 | * the Free Software Foundation; either version 2 of the License, or | ||
| 8 | * (at your option) any later version. | ||
| 9 | */ | ||
| 10 | 5 | ||
| 11 | #ifndef __LINUX_TC_SKBMOD_H | 6 | #ifndef __LINUX_TC_SKBMOD_H |
| 12 | #define __LINUX_TC_SKBMOD_H | 7 | #define __LINUX_TC_SKBMOD_H |
| @@ -2,11 +2,6 @@ · 1 unmodified line | |||
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2016, Amir Vadai <amir@vadai.me> | 3 | * Copyright (c) 2016, Amir Vadai <amir@vadai.me> |
| 4 | * Copyright (c) 2016, Mellanox Technologies. All rights reserved. | 4 | * Copyright (c) 2016, Mellanox Technologies. All rights reserved. |
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License as published by | ||
| 8 | * the Free Software Foundation; either version 2 of the License, or | ||
| 9 | * (at your option) any later version. | ||
| 10 | */ | 5 | */ |
| 11 | 6 | ||
| 12 | #ifndef __LINUX_TC_TUNNEL_KEY_H | 7 | #ifndef __LINUX_TC_TUNNEL_KEY_H |
| @@ -1,11 +1,6 @@ | |||
| 1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ | 1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2014 Jiri Pirko <jiri@resnulli.us> | 3 | * Copyright (c) 2014 Jiri Pirko <jiri@resnulli.us> |
| 4 | * | ||
| 5 | * This program is free software; you can redistribute it and/or modify | ||
| 6 | * it under the terms of the GNU General Public License as published by | ||
| 7 | * the Free Software Foundation; either version 2 of the License, or | ||
| 8 | * (at your option) any later version. | ||
| 9 | */ | 4 | */ |
| 10 | 5 | ||
| 11 | #ifndef __LINUX_TC_VLAN_H | 6 | #ifndef __LINUX_TC_VLAN_H |
| @@ -100,6 +100,20 @@ · 99 unmodified lines | |||
| 100 | #define TLS_CIPHER_SM4_CCM_TAG_SIZE 16 | 100 | #define TLS_CIPHER_SM4_CCM_TAG_SIZE 16 |
| 101 | #define TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE 8 | 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 | #define TLS_SET_RECORD_TYPE 1 | 117 | #define TLS_SET_RECORD_TYPE 1 |
| 104 | #define TLS_GET_RECORD_TYPE 2 | 118 | #define TLS_GET_RECORD_TYPE 2 |
| 105 | 119 | ||
| @@ -156,6 +170,22 @@ struct tls12_crypto_info_sm4_ccm { · 50 unmodified lines | |||
| 156 | unsigned char rec_seq[TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE]; | 170 | unsigned char rec_seq[TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE]; |
| 157 | }; | 171 | }; |
| 158 | 172 | ||
| 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 | enum { | 189 | enum { |
| 160 | TLS_INFO_UNSPEC, | 190 | TLS_INFO_UNSPEC, |
| 161 | TLS_INFO_VERSION, | 191 | TLS_INFO_VERSION, |