Pull networking updates from Paolo Abeni: "Core: - Allow live renaming when an interface is up - Add retpoline wrappers for tc, improving considerably the performances of complex queue discipline configurations - Add inet drop monitor support - A few GRO performance improvements - Add infrastructure for atomic dev stats, addressing long standing data races - De-duplicate common code between OVS and conntrack offloading infrastructure - A bunch of UBSAN_BOUNDS/FORTIFY_SOURCE improvements - Netfilter: introduce packet parser for tunneled packets - Replace IPVS timer-based estimators with kthreads to scale up the workload with the number of available CPUs - Add the helper support for connection-tracking OVS offload BPF: - Support for user defined BPF objects: the use case is to allocate own objects, build own object hierarchies and use the building blocks to build own data structures flexibly, for example, linked lists in BPF - Make cgroup local storage available to non-cgroup attached BPF programs - Avoid unnecessary deadlock detection and failures wrt BPF task storage helpers - A relevant bunch of BPF verifier fixes and improvements - Veristat tool improvements to support custom filtering, sorting, and replay of results - Add LLVM disassembler as default library for dumping JITed code - Lots of new BPF documentation for various BPF maps - Add bpf_rcu_read_{,un}lock() support for sleepable programs - Add RCU grace period chaining to BPF to wait for the completion of access from both sleepable and non-sleepable BPF programs - Add support storing struct task_struct objects as kptrs in maps - Improve helper UAPI by explicitly defining BPF_FUNC_xxx integer values - Add libbpf *_opts API-variants for bpf_*_get_fd_by_id() functions Protocols: - TCP: implement Protective Load Balancing across switch links - TCP: allow dynamically disabling TCP-MD5 static key, reverting back to fast[er]-path - UDP: Introduce optional per-netns hash lookup table - IPv6: simplify and cleanup sockets disposal - Netlink: support different type policies for each generic netlink operation - MPTCP: add MSG_FASTOPEN and FastOpen listener side support - MPTCP: add netlink notification support for listener sockets events - SCTP: add VRF support, allowing sctp sockets binding to VRF devices - Add bridging MAC Authentication Bypass (MAB) support - Extensions for Ethernet VPN bridging implementation to better support multicast scenarios - More work for Wi-Fi 7 support, comprising conversion of all the existing drivers to internal TX queue usage - IPSec: introduce a new offload type (packet offload) allowing complete header processing and crypto offloading - IPSec: extended ack support for more descriptive XFRM error reporting - RXRPC: increase SACK table size and move processing into a per-local endpoint kernel thread, reducing considerably the required locking - IEEE 802154: synchronous send frame and extended filtering support, initial support for scanning available 15.4 networks - Tun: bump the link speed from 10Mbps to 10Gbps - Tun/VirtioNet: implement UDP segmentation offload support Driver API: - PHY/SFP: improve power level switching between standard level 1 and the higher power levels - New API for netdev <-> devlink_port linkage - PTP: convert existing drivers to new frequency adjustment implementation - DSA: add support for rx offloading - Autoload DSA tagging driver when dynamically changing protocol - Add new PCP and APPTRUST attributes to Data Center Bridging - Add configuration support for 800Gbps link speed - Add devlink port function attribute to enable/disable RoCE and migratable - Extend devlink-rate to support strict prioriry and weighted fair queuing - Add devlink support to directly reading from region memory - New device tree helper to fetch MAC address from nvmem - New big TCP helper to simplify temporary header stripping New hardware / drivers: - Ethernet: - Marvel Octeon CNF95N and CN10KB Ethernet Switches - Marvel Prestera AC5X Ethernet Switch - WangXun 10 Gigabit NIC - Motorcomm yt8521 Gigabit Ethernet - Microchip ksz9563 Gigabit Ethernet Switch - Microsoft Azure Network Adapter - Linux Automation 10Base-T1L adapter - PHY: - Aquantia AQR112 and AQR412 - Motorcomm YT8531S - PTP: - Orolia ART-CARD - WiFi: - MediaTek Wi-Fi 7 (802.11be) devices - RealTek rtw8821cu, rtw8822bu, rtw8822cu and rtw8723du USB devices - Bluetooth: - Broadcom BCM4377/4378/4387 Bluetooth chipsets - Realtek RTL8852BE and RTL8723DS - Cypress.CYW4373A0 WiFi + Bluetooth combo device Drivers: - CAN: - gs_usb: bus error reporting support - kvaser_usb: listen only and bus error reporting support - Ethernet NICs: - Intel (100G): - extend action skbedit to RX queue mapping - implement devlink-rate support - support direct read from memory - nVidia/Mellanox (mlx5): - SW steering improvements, increasing rules update rate - Support for enhanced events compression - extend H/W offload packet manipulation capabilities - implement IPSec packet offload mode - nVidia/Mellanox (mlx4): - better big TCP support - Netronome Ethernet NICs (nfp): - IPsec offload support - add support for multicast filter - Broadcom: - RSS and PTP support improvements - AMD/SolarFlare: - netlink extened ack improvements - add basic flower matches to offload, and related stats - Virtual NICs: - ibmvnic: introduce affinity hint support - small / embedded: - FreeScale fec: add initial XDP support - Marvel mv643xx_eth: support MII/GMII/RGMII modes for Kirkwood - TI am65-cpsw: add suspend/resume support - Mediatek MT7986: add RX wireless wthernet dispatch support - Realtek 8169: enable GRO software interrupt coalescing per default - Ethernet high-speed switches: - Microchip (sparx5): - add support for Sparx5 TC/flower H/W offload via VCAP - Mellanox mlxsw: - add 802.1X and MAC Authentication Bypass offload support - add ip6gre support - Embedded Ethernet switches: - Mediatek (mtk_eth_soc): - improve PCS implementation, add DSA untag support - enable flow offload support - Renesas: - add rswitch R-Car Gen4 gPTP support - Microchip (lan966x): - add full XDP support - add TC H/W offload via VCAP - enable PTP on bridge interfaces - Microchip (ksz8): - add MTU support for KSZ8 series - Qualcomm 802.11ax WiFi (ath11k): - support configuring channel dwell time during scan - MediaTek WiFi (mt76): - enable Wireless Ethernet Dispatch (WED) offload support - add ack signal support - enable coredump support - remain_on_channel support - Intel WiFi (iwlwifi): - enable Wi-Fi 7 Extremely High Throughput (EHT) PHY capabilities - 320 MHz channels support - RealTek WiFi (rtw89): - new dynamic header firmware format support - wake-over-WLAN support" * tag 'net-next-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2002 commits) ipvs: fix type warning in do_div() on 32 bit net: lan966x: Remove a useless test in lan966x_ptp_add_trap() net: ipa: add IPA v4.7 support dt-bindings: net: qcom,ipa: Add SM6350 compatible bnxt: Use generic HBH removal helper in tx path IPv6/GRO: generic helper to remove temporary HBH/jumbo header in driver selftests: forwarding: Add bridge MDB test selftests: forwarding: Rename bridge_mdb test bridge: mcast: Support replacement of MDB port group entries bridge: mcast: Allow user space to specify MDB entry routing protocol bridge: mcast: Allow user space to add (*, G) with a source list and filter mode bridge: mcast: Add support for (*, G) with a source list and filter mode bridge: mcast: Avoid arming group timer when (S, G) corresponds to a source bridge: mcast: Add a flag for user installed source entries bridge: mcast: Expose __br_multicast_del_group_src() bridge: mcast: Expose br_multicast_new_group_src() bridge: mcast: Add a centralized error path bridge: mcast: Place netlink policy before validation functions bridge: mcast: Split (*, G) and (S, G) addition into different functions bridge: mcast: Do not derive entry type from its filter mode ...
Showing the changes to include/uapi (24 of 2013 files). Show all
Unified · Split
| @@ -922,7 +922,14 @@ enum bpf_map_type { · 921 unmodified lines | |||
| 922 | BPF_MAP_TYPE_CPUMAP, | 922 | BPF_MAP_TYPE_CPUMAP, |
| 923 | BPF_MAP_TYPE_XSKMAP, | 923 | BPF_MAP_TYPE_XSKMAP, |
| 924 | BPF_MAP_TYPE_SOCKHASH, | 924 | BPF_MAP_TYPE_SOCKHASH, |
| 925 | BPF_MAP_TYPE_CGROUP_STORAGE, | 925 | BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED, |
| 926 | /* BPF_MAP_TYPE_CGROUP_STORAGE is available to bpf programs attaching | ||
| 927 | * to a cgroup. The newer BPF_MAP_TYPE_CGRP_STORAGE is available to | ||
| 928 | * both cgroup-attached and other progs and supports all functionality | ||
| 929 | * provided by BPF_MAP_TYPE_CGROUP_STORAGE. So mark | ||
| 930 | * BPF_MAP_TYPE_CGROUP_STORAGE deprecated. | ||
| 931 | */ | ||
| 932 | BPF_MAP_TYPE_CGROUP_STORAGE = BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED, | ||
| 926 | BPF_MAP_TYPE_REUSEPORT_SOCKARRAY, | 933 | BPF_MAP_TYPE_REUSEPORT_SOCKARRAY, |
| 927 | BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE, | 934 | BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE, |
| 928 | BPF_MAP_TYPE_QUEUE, | 935 | BPF_MAP_TYPE_QUEUE, |
| @@ -935,6 +942,7 @@ enum bpf_map_type { · 6 unmodified lines | |||
| 935 | BPF_MAP_TYPE_TASK_STORAGE, | 942 | BPF_MAP_TYPE_TASK_STORAGE, |
| 936 | BPF_MAP_TYPE_BLOOM_FILTER, | 943 | BPF_MAP_TYPE_BLOOM_FILTER, |
| 937 | BPF_MAP_TYPE_USER_RINGBUF, | 944 | BPF_MAP_TYPE_USER_RINGBUF, |
| 945 | BPF_MAP_TYPE_CGRP_STORAGE, | ||
| 938 | }; | 946 | }; |
| 939 | 947 | ||
| 940 | /* Note that tracing related programs such as | 948 | /* Note that tracing related programs such as |
| @@ -2576,14 +2584,19 @@ union bpf_attr { · 1635 unmodified lines | |||
| 2576 | * * **SOL_SOCKET**, which supports the following *optname*\ s: | 2584 | * * **SOL_SOCKET**, which supports the following *optname*\ s: |
| 2577 | * **SO_RCVBUF**, **SO_SNDBUF**, **SO_MAX_PACING_RATE**, | 2585 | * **SO_RCVBUF**, **SO_SNDBUF**, **SO_MAX_PACING_RATE**, |
| 2578 | * **SO_PRIORITY**, **SO_RCVLOWAT**, **SO_MARK**, | 2586 | * **SO_PRIORITY**, **SO_RCVLOWAT**, **SO_MARK**, |
| 2579 | * **SO_BINDTODEVICE**, **SO_KEEPALIVE**. | 2587 | * **SO_BINDTODEVICE**, **SO_KEEPALIVE**, **SO_REUSEADDR**, |
| 2588 | * **SO_REUSEPORT**, **SO_BINDTOIFINDEX**, **SO_TXREHASH**. | ||
| 2580 | * * **IPPROTO_TCP**, which supports the following *optname*\ s: | 2589 | * * **IPPROTO_TCP**, which supports the following *optname*\ s: |
| 2581 | * **TCP_CONGESTION**, **TCP_BPF_IW**, | 2590 | * **TCP_CONGESTION**, **TCP_BPF_IW**, |
| 2582 | * **TCP_BPF_SNDCWND_CLAMP**, **TCP_SAVE_SYN**, | 2591 | * **TCP_BPF_SNDCWND_CLAMP**, **TCP_SAVE_SYN**, |
| 2583 | * **TCP_KEEPIDLE**, **TCP_KEEPINTVL**, **TCP_KEEPCNT**, | 2592 | * **TCP_KEEPIDLE**, **TCP_KEEPINTVL**, **TCP_KEEPCNT**, |
| 2584 | * **TCP_SYNCNT**, **TCP_USER_TIMEOUT**, **TCP_NOTSENT_LOWAT**. | 2593 | * **TCP_SYNCNT**, **TCP_USER_TIMEOUT**, **TCP_NOTSENT_LOWAT**, |
| 2594 | * **TCP_NODELAY**, **TCP_MAXSEG**, **TCP_WINDOW_CLAMP**, | ||
| 2595 | * **TCP_THIN_LINEAR_TIMEOUTS**, **TCP_BPF_DELACK_MAX**, | ||
| 2596 | * **TCP_BPF_RTO_MIN**. | ||
| 2585 | * * **IPPROTO_IP**, which supports *optname* **IP_TOS**. | 2597 | * * **IPPROTO_IP**, which supports *optname* **IP_TOS**. |
| 2586 | * * **IPPROTO_IPV6**, which supports *optname* **IPV6_TCLASS**. | 2598 | * * **IPPROTO_IPV6**, which supports the following *optname*\ s: |
| 2599 | * **IPV6_TCLASS**, **IPV6_AUTOFLOWLABEL**. | ||
| 2587 | * Return | 2600 | * Return |
| 2588 | * 0 on success, or a negative error in case of failure. | 2601 | * 0 on success, or a negative error in case of failure. |
| 2589 | * | 2602 | * |
| @@ -2639,7 +2652,7 @@ union bpf_attr { · 49 unmodified lines | |||
| 2639 | * Return | 2652 | * Return |
| 2640 | * 0 on success, or a negative error in case of failure. | 2653 | * 0 on success, or a negative error in case of failure. |
| 2641 | * | 2654 | * |
| 2642 | * long bpf_redirect_map(struct bpf_map *map, u32 key, u64 flags) | 2655 | * long bpf_redirect_map(struct bpf_map *map, u64 key, u64 flags) |
| 2643 | * Description | 2656 | * Description |
| 2644 | * Redirect the packet to the endpoint referenced by *map* at | 2657 | * Redirect the packet to the endpoint referenced by *map* at |
| 2645 | * index *key*. Depending on its type, this *map* can contain | 2658 | * index *key*. Depending on its type, this *map* can contain |
| @@ -2800,12 +2813,10 @@ union bpf_attr { · 154 unmodified lines | |||
| 2800 | * and **BPF_CGROUP_INET6_CONNECT**. | 2813 | * and **BPF_CGROUP_INET6_CONNECT**. |
| 2801 | * | 2814 | * |
| 2802 | * This helper actually implements a subset of **getsockopt()**. | 2815 | * This helper actually implements a subset of **getsockopt()**. |
| 2803 | * It supports the following *level*\ s: | 2816 | * It supports the same set of *optname*\ s that is supported by |
| 2804 | * | 2817 | * the **bpf_setsockopt**\ () helper. The exceptions are |
| 2805 | * * **IPPROTO_TCP**, which supports *optname* | 2818 | * **TCP_BPF_*** is **bpf_setsockopt**\ () only and |
| 2806 | * **TCP_CONGESTION**. | 2819 | * **TCP_SAVED_SYN** is **bpf_getsockopt**\ () only. |
| 2807 | * * **IPPROTO_IP**, which supports *optname* **IP_TOS**. | ||
| 2808 | * * **IPPROTO_IPV6**, which supports *optname* **IPV6_TCLASS**. | ||
| 2809 | * Return | 2820 | * Return |
| 2810 | * 0 on success, or a negative error in case of failure. | 2821 | * 0 on success, or a negative error in case of failure. |
| 2811 | * | 2822 | * |
| @@ -5282,7 +5293,7 @@ union bpf_attr { · 2470 unmodified lines | |||
| 5282 | * Return | 5293 | * Return |
| 5283 | * Nothing. Always succeeds. | 5294 | * Nothing. Always succeeds. |
| 5284 | * | 5295 | * |
| 5285 | * long bpf_dynptr_read(void *dst, u32 len, struct bpf_dynptr *src, u32 offset, u64 flags) | 5296 | * long bpf_dynptr_read(void *dst, u32 len, const struct bpf_dynptr *src, u32 offset, u64 flags) |
| 5286 | * Description | 5297 | * Description |
| 5287 | * Read *len* bytes from *src* into *dst*, starting from *offset* | 5298 | * Read *len* bytes from *src* into *dst*, starting from *offset* |
| 5288 | * into *src*. | 5299 | * into *src*. |
| @@ -5292,7 +5303,7 @@ union bpf_attr { · 3 unmodified lines | |||
| 5292 | * of *src*'s data, -EINVAL if *src* is an invalid dynptr or if | 5303 | * of *src*'s data, -EINVAL if *src* is an invalid dynptr or if |
| 5293 | * *flags* is not 0. | 5304 | * *flags* is not 0. |
| 5294 | * | 5305 | * |
| 5295 | * long bpf_dynptr_write(struct bpf_dynptr *dst, u32 offset, void *src, u32 len, u64 flags) | 5306 | * long bpf_dynptr_write(const struct bpf_dynptr *dst, u32 offset, void *src, u32 len, u64 flags) |
| 5296 | * Description | 5307 | * Description |
| 5297 | * Write *len* bytes from *src* into *dst*, starting from *offset* | 5308 | * Write *len* bytes from *src* into *dst*, starting from *offset* |
| 5298 | * into *dst*. | 5309 | * into *dst*. |
| @@ -5302,7 +5313,7 @@ union bpf_attr { · 3 unmodified lines | |||
| 5302 | * of *dst*'s data, -EINVAL if *dst* is an invalid dynptr or if *dst* | 5313 | * of *dst*'s data, -EINVAL if *dst* is an invalid dynptr or if *dst* |
| 5303 | * is a read-only dynptr or if *flags* is not 0. | 5314 | * is a read-only dynptr or if *flags* is not 0. |
| 5304 | * | 5315 | * |
| 5305 | * void *bpf_dynptr_data(struct bpf_dynptr *ptr, u32 offset, u32 len) | 5316 | * void *bpf_dynptr_data(const struct bpf_dynptr *ptr, u32 offset, u32 len) |
| 5306 | * Description | 5317 | * Description |
| 5307 | * Get a pointer to the underlying dynptr data. | 5318 | * Get a pointer to the underlying dynptr data. |
| 5308 | * | 5319 | * |
| @@ -5403,7 +5414,7 @@ union bpf_attr { · 94 unmodified lines | |||
| 5403 | * Drain samples from the specified user ring buffer, and invoke | 5414 | * Drain samples from the specified user ring buffer, and invoke |
| 5404 | * the provided callback for each such sample: | 5415 | * the provided callback for each such sample: |
| 5405 | * | 5416 | * |
| 5406 | * long (\*callback_fn)(struct bpf_dynptr \*dynptr, void \*ctx); | 5417 | * long (\*callback_fn)(const struct bpf_dynptr \*dynptr, void \*ctx); |
| 5407 | * | 5418 | * |
| 5408 | * If **callback_fn** returns 0, the helper will continue to try | 5419 | * If **callback_fn** returns 0, the helper will continue to try |
| 5409 | * and drain the next sample, up to a maximum of | 5420 | * and drain the next sample, up to a maximum of |
| @@ -5435,226 +5446,272 @@ union bpf_attr { · 25 unmodified lines | |||
| 5435 | * **-E2BIG** if user-space has tried to publish a sample which is | 5446 | * **-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 | 5447 | * larger than the size of the ring buffer, or which cannot fit |
| 5437 | * within a struct bpf_dynptr. | 5448 | * within a struct bpf_dynptr. |
| 5449 | * | ||
| 5450 | * void *bpf_cgrp_storage_get(struct bpf_map *map, struct cgroup *cgroup, void *value, u64 flags) | ||
| 5451 | * Description | ||
| 5452 | * Get a bpf_local_storage from the *cgroup*. | ||
| 5453 | * | ||
| 5454 | * Logically, it could be thought of as getting the value from | ||
| 5455 | * a *map* with *cgroup* as the **key**. From this | ||
| 5456 | * perspective, the usage is not much different from | ||
| 5457 | * **bpf_map_lookup_elem**\ (*map*, **&**\ *cgroup*) except this | ||
| 5458 | * helper enforces the key must be a cgroup struct and the map must also | ||
| 5459 | * be a **BPF_MAP_TYPE_CGRP_STORAGE**. | ||
| 5460 | * | ||
| 5461 | * In reality, the local-storage value is embedded directly inside of the | ||
| 5462 | * *cgroup* object itself, rather than being located in the | ||
| 5463 | * **BPF_MAP_TYPE_CGRP_STORAGE** map. When the local-storage value is | ||
| 5464 | * queried for some *map* on a *cgroup* object, the kernel will perform an | ||
| 5465 | * O(n) iteration over all of the live local-storage values for that | ||
| 5466 | * *cgroup* object until the local-storage value for the *map* is found. | ||
| 5467 | * | ||
| 5468 | * An optional *flags* (**BPF_LOCAL_STORAGE_GET_F_CREATE**) can be | ||
| 5469 | * used such that a new bpf_local_storage will be | ||
| 5470 | * created if one does not exist. *value* can be used | ||
| 5471 | * together with **BPF_LOCAL_STORAGE_GET_F_CREATE** to specify | ||
| 5472 | * the initial value of a bpf_local_storage. If *value* is | ||
| 5473 | * **NULL**, the new bpf_local_storage will be zero initialized. | ||
| 5474 | * Return | ||
| 5475 | * A bpf_local_storage pointer is returned on success. | ||
| 5476 | * | ||
| 5477 | * **NULL** if not found or there was an error in adding | ||
| 5478 | * a new bpf_local_storage. | ||
| 5479 | * | ||
| 5480 | * long bpf_cgrp_storage_delete(struct bpf_map *map, struct cgroup *cgroup) | ||
| 5481 | * Description | ||
| 5482 | * Delete a bpf_local_storage from a *cgroup*. | ||
| 5483 | * Return | ||
| 5484 | * 0 on success. | ||
| 5485 | * | ||
| 5486 | * **-ENOENT** if the bpf_local_storage cannot be found. | ||
| 5438 | */ | 5487 | */ |
| 5439 | #define __BPF_FUNC_MAPPER(FN) \ | 5488 | #define ___BPF_FUNC_MAPPER(FN, ctx...) \ |
| 5440 | FN(unspec), \ | 5489 | FN(unspec, 0, ##ctx) \ |
| 5441 | FN(map_lookup_elem), \ | 5490 | FN(map_lookup_elem, 1, ##ctx) \ |
| 5442 | FN(map_update_elem), \ | 5491 | FN(map_update_elem, 2, ##ctx) \ |
| 5443 | FN(map_delete_elem), \ | 5492 | FN(map_delete_elem, 3, ##ctx) \ |
| 5444 | FN(probe_read), \ | 5493 | FN(probe_read, 4, ##ctx) \ |
| 5445 | FN(ktime_get_ns), \ | 5494 | FN(ktime_get_ns, 5, ##ctx) \ |
| 5446 | FN(trace_printk), \ | 5495 | FN(trace_printk, 6, ##ctx) \ |
| 5447 | FN(get_prandom_u32), \ | 5496 | FN(get_prandom_u32, 7, ##ctx) \ |
| 5448 | FN(get_smp_processor_id), \ | 5497 | FN(get_smp_processor_id, 8, ##ctx) \ |
| 5449 | FN(skb_store_bytes), \ | 5498 | FN(skb_store_bytes, 9, ##ctx) \ |
| 5450 | FN(l3_csum_replace), \ | 5499 | FN(l3_csum_replace, 10, ##ctx) \ |
| 5451 | FN(l4_csum_replace), \ | 5500 | FN(l4_csum_replace, 11, ##ctx) \ |
| 5452 | FN(tail_call), \ | 5501 | FN(tail_call, 12, ##ctx) \ |
| 5453 | FN(clone_redirect), \ | 5502 | FN(clone_redirect, 13, ##ctx) \ |
| 5454 | FN(get_current_pid_tgid), \ | 5503 | FN(get_current_pid_tgid, 14, ##ctx) \ |
| 5455 | FN(get_current_uid_gid), \ | 5504 | FN(get_current_uid_gid, 15, ##ctx) \ |
| 5456 | FN(get_current_comm), \ | 5505 | FN(get_current_comm, 16, ##ctx) \ |
| 5457 | FN(get_cgroup_classid), \ | 5506 | FN(get_cgroup_classid, 17, ##ctx) \ |
| 5458 | FN(skb_vlan_push), \ | 5507 | FN(skb_vlan_push, 18, ##ctx) \ |
| 5459 | FN(skb_vlan_pop), \ | 5508 | FN(skb_vlan_pop, 19, ##ctx) \ |
| 5460 | FN(skb_get_tunnel_key), \ | 5509 | FN(skb_get_tunnel_key, 20, ##ctx) \ |
| 5461 | FN(skb_set_tunnel_key), \ | 5510 | FN(skb_set_tunnel_key, 21, ##ctx) \ |
| 5462 | FN(perf_event_read), \ | 5511 | FN(perf_event_read, 22, ##ctx) \ |
| 5463 | FN(redirect), \ | 5512 | FN(redirect, 23, ##ctx) \ |
| 5464 | FN(get_route_realm), \ | 5513 | FN(get_route_realm, 24, ##ctx) \ |
| 5465 | FN(perf_event_output), \ | 5514 | FN(perf_event_output, 25, ##ctx) \ |
| 5466 | FN(skb_load_bytes), \ | 5515 | FN(skb_load_bytes, 26, ##ctx) \ |
| 5467 | FN(get_stackid), \ | 5516 | FN(get_stackid, 27, ##ctx) \ |
| 5468 | FN(csum_diff), \ | 5517 | FN(csum_diff, 28, ##ctx) \ |
| 5469 | FN(skb_get_tunnel_opt), \ | 5518 | FN(skb_get_tunnel_opt, 29, ##ctx) \ |
| 5470 | FN(skb_set_tunnel_opt), \ | 5519 | FN(skb_set_tunnel_opt, 30, ##ctx) \ |
| 5471 | FN(skb_change_proto), \ | 5520 | FN(skb_change_proto, 31, ##ctx) \ |
| 5472 | FN(skb_change_type), \ | 5521 | FN(skb_change_type, 32, ##ctx) \ |
| 5473 | FN(skb_under_cgroup), \ | 5522 | FN(skb_under_cgroup, 33, ##ctx) \ |
| 5474 | FN(get_hash_recalc), \ | 5523 | FN(get_hash_recalc, 34, ##ctx) \ |
| 5475 | FN(get_current_task), \ | 5524 | FN(get_current_task, 35, ##ctx) \ |
| 5476 | FN(probe_write_user), \ | 5525 | FN(probe_write_user, 36, ##ctx) \ |
| 5477 | FN(current_task_under_cgroup), \ | 5526 | FN(current_task_under_cgroup, 37, ##ctx) \ |
| 5478 | FN(skb_change_tail), \ | 5527 | FN(skb_change_tail, 38, ##ctx) \ |
| 5479 | FN(skb_pull_data), \ | 5528 | FN(skb_pull_data, 39, ##ctx) \ |
| 5480 | FN(csum_update), \ | 5529 | FN(csum_update, 40, ##ctx) \ |
| 5481 | FN(set_hash_invalid), \ | 5530 | FN(set_hash_invalid, 41, ##ctx) \ |
| 5482 | FN(get_numa_node_id), \ | 5531 | FN(get_numa_node_id, 42, ##ctx) \ |
| 5483 | FN(skb_change_head), \ | 5532 | FN(skb_change_head, 43, ##ctx) \ |
| 5484 | FN(xdp_adjust_head), \ | 5533 | FN(xdp_adjust_head, 44, ##ctx) \ |
| 5485 | FN(probe_read_str), \ | 5534 | FN(probe_read_str, 45, ##ctx) \ |
| 5486 | FN(get_socket_cookie), \ | 5535 | FN(get_socket_cookie, 46, ##ctx) \ |
| 5487 | FN(get_socket_uid), \ | 5536 | FN(get_socket_uid, 47, ##ctx) \ |
| 5488 | FN(set_hash), \ | 5537 | FN(set_hash, 48, ##ctx) \ |
| 5489 | FN(setsockopt), \ | 5538 | FN(setsockopt, 49, ##ctx) \ |
| 5490 | FN(skb_adjust_room), \ | 5539 | FN(skb_adjust_room, 50, ##ctx) \ |
| 5491 | FN(redirect_map), \ | 5540 | FN(redirect_map, 51, ##ctx) \ |
| 5492 | FN(sk_redirect_map), \ | 5541 | FN(sk_redirect_map, 52, ##ctx) \ |
| 5493 | FN(sock_map_update), \ | 5542 | FN(sock_map_update, 53, ##ctx) \ |
| 5494 | FN(xdp_adjust_meta), \ | 5543 | FN(xdp_adjust_meta, 54, ##ctx) \ |
| 5495 | FN(perf_event_read_value), \ | 5544 | FN(perf_event_read_value, 55, ##ctx) \ |
| 5496 | FN(perf_prog_read_value), \ | 5545 | FN(perf_prog_read_value, 56, ##ctx) \ |
| 5497 | FN(getsockopt), \ | 5546 | FN(getsockopt, 57, ##ctx) \ |
| 5498 | FN(override_return), \ | 5547 | FN(override_return, 58, ##ctx) \ |
| 5499 | FN(sock_ops_cb_flags_set), \ | 5548 | FN(sock_ops_cb_flags_set, 59, ##ctx) \ |
| 5500 | FN(msg_redirect_map), \ | 5549 | FN(msg_redirect_map, 60, ##ctx) \ |
| 5501 | FN(msg_apply_bytes), \ | 5550 | FN(msg_apply_bytes, 61, ##ctx) \ |
| 5502 | FN(msg_cork_bytes), \ | 5551 | FN(msg_cork_bytes, 62, ##ctx) \ |
| 5503 | FN(msg_pull_data), \ | 5552 | FN(msg_pull_data, 63, ##ctx) \ |
| 5504 | FN(bind), \ | 5553 | FN(bind, 64, ##ctx) \ |
| 5505 | FN(xdp_adjust_tail), \ | 5554 | FN(xdp_adjust_tail, 65, ##ctx) \ |
| 5506 | FN(skb_get_xfrm_state), \ | 5555 | FN(skb_get_xfrm_state, 66, ##ctx) \ |
| 5507 | FN(get_stack), \ | 5556 | FN(get_stack, 67, ##ctx) \ |
| 5508 | FN(skb_load_bytes_relative), \ | 5557 | FN(skb_load_bytes_relative, 68, ##ctx) \ |
| 5509 | FN(fib_lookup), \ | 5558 | FN(fib_lookup, 69, ##ctx) \ |
| 5510 | FN(sock_hash_update), \ | 5559 | FN(sock_hash_update, 70, ##ctx) \ |
| 5511 | FN(msg_redirect_hash), \ | 5560 | FN(msg_redirect_hash, 71, ##ctx) \ |
| 5512 | FN(sk_redirect_hash), \ | 5561 | FN(sk_redirect_hash, 72, ##ctx) \ |
| 5513 | FN(lwt_push_encap), \ | 5562 | FN(lwt_push_encap, 73, ##ctx) \ |
| 5514 | FN(lwt_seg6_store_bytes), \ | 5563 | FN(lwt_seg6_store_bytes, 74, ##ctx) \ |
| 5515 | FN(lwt_seg6_adjust_srh), \ | 5564 | FN(lwt_seg6_adjust_srh, 75, ##ctx) \ |
| 5516 | FN(lwt_seg6_action), \ | 5565 | FN(lwt_seg6_action, 76, ##ctx) \ |
| 5517 | FN(rc_repeat), \ | 5566 | FN(rc_repeat, 77, ##ctx) \ |
| 5518 | FN(rc_keydown), \ | 5567 | FN(rc_keydown, 78, ##ctx) \ |
| 5519 | FN(skb_cgroup_id), \ | 5568 | FN(skb_cgroup_id, 79, ##ctx) \ |
| 5520 | FN(get_current_cgroup_id), \ | 5569 | FN(get_current_cgroup_id, 80, ##ctx) \ |
| 5521 | FN(get_local_storage), \ | 5570 | FN(get_local_storage, 81, ##ctx) \ |
| 5522 | FN(sk_select_reuseport), \ | 5571 | FN(sk_select_reuseport, 82, ##ctx) \ |
| 5523 | FN(skb_ancestor_cgroup_id), \ | 5572 | FN(skb_ancestor_cgroup_id, 83, ##ctx) \ |
| 5524 | FN(sk_lookup_tcp), \ | 5573 | FN(sk_lookup_tcp, 84, ##ctx) \ |
| 5525 | FN(sk_lookup_udp), \ | 5574 | FN(sk_lookup_udp, 85, ##ctx) \ |
| 5526 | FN(sk_release), \ | 5575 | FN(sk_release, 86, ##ctx) \ |
| 5527 | FN(map_push_elem), \ | 5576 | FN(map_push_elem, 87, ##ctx) \ |
| 5528 | FN(map_pop_elem), \ | 5577 | FN(map_pop_elem, 88, ##ctx) \ |
| 5529 | FN(map_peek_elem), \ | 5578 | FN(map_peek_elem, 89, ##ctx) \ |
| 5530 | FN(msg_push_data), \ | 5579 | FN(msg_push_data, 90, ##ctx) \ |
| 5531 | FN(msg_pop_data), \ | 5580 | FN(msg_pop_data, 91, ##ctx) \ |
| 5532 | FN(rc_pointer_rel), \ | 5581 | FN(rc_pointer_rel, 92, ##ctx) \ |
| 5533 | FN(spin_lock), \ | 5582 | FN(spin_lock, 93, ##ctx) \ |
| 5534 | FN(spin_unlock), \ | 5583 | FN(spin_unlock, 94, ##ctx) \ |
| 5535 | FN(sk_fullsock), \ | 5584 | FN(sk_fullsock, 95, ##ctx) \ |
| 5536 | FN(tcp_sock), \ | 5585 | FN(tcp_sock, 96, ##ctx) \ |
| 5537 | FN(skb_ecn_set_ce), \ | 5586 | FN(skb_ecn_set_ce, 97, ##ctx) \ |
| 5538 | FN(get_listener_sock), \ | 5587 | FN(get_listener_sock, 98, ##ctx) \ |
| 5539 | FN(skc_lookup_tcp), \ | 5588 | FN(skc_lookup_tcp, 99, ##ctx) \ |
| 5540 | FN(tcp_check_syncookie), \ | 5589 | FN(tcp_check_syncookie, 100, ##ctx) \ |
| 5541 | FN(sysctl_get_name), \ | 5590 | FN(sysctl_get_name, 101, ##ctx) \ |
| 5542 | FN(sysctl_get_current_value), \ | 5591 | FN(sysctl_get_current_value, 102, ##ctx) \ |
| 5543 | FN(sysctl_get_new_value), \ | 5592 | FN(sysctl_get_new_value, 103, ##ctx) \ |
| 5544 | FN(sysctl_set_new_value), \ | 5593 | FN(sysctl_set_new_value, 104, ##ctx) \ |
| 5545 | FN(strtol), \ | 5594 | FN(strtol, 105, ##ctx) \ |
| 5546 | FN(strtoul), \ | 5595 | FN(strtoul, 106, ##ctx) \ |
| 5547 | FN(sk_storage_get), \ | 5596 | FN(sk_storage_get, 107, ##ctx) \ |
| 5548 | FN(sk_storage_delete), \ | 5597 | FN(sk_storage_delete, 108, ##ctx) \ |
| 5549 | FN(send_signal), \ | 5598 | FN(send_signal, 109, ##ctx) \ |
| 5550 | FN(tcp_gen_syncookie), \ | 5599 | FN(tcp_gen_syncookie, 110, ##ctx) \ |
| 5551 | FN(skb_output), \ | 5600 | FN(skb_output, 111, ##ctx) \ |
| 5552 | FN(probe_read_user), \ | 5601 | FN(probe_read_user, 112, ##ctx) \ |
| 5553 | FN(probe_read_kernel), \ | 5602 | FN(probe_read_kernel, 113, ##ctx) \ |
| 5554 | FN(probe_read_user_str), \ | 5603 | FN(probe_read_user_str, 114, ##ctx) \ |
| 5555 | FN(probe_read_kernel_str), \ | 5604 | FN(probe_read_kernel_str, 115, ##ctx) \ |
| 5556 | FN(tcp_send_ack), \ | 5605 | FN(tcp_send_ack, 116, ##ctx) \ |
| 5557 | FN(send_signal_thread), \ | 5606 | FN(send_signal_thread, 117, ##ctx) \ |
| 5558 | FN(jiffies64), \ | 5607 | FN(jiffies64, 118, ##ctx) \ |
| 5559 | FN(read_branch_records), \ | 5608 | FN(read_branch_records, 119, ##ctx) \ |
| 5560 | FN(get_ns_current_pid_tgid), \ | 5609 | FN(get_ns_current_pid_tgid, 120, ##ctx) \ |
| 5561 | FN(xdp_output), \ | 5610 | FN(xdp_output, 121, ##ctx) \ |
| 5562 | FN(get_netns_cookie), \ | 5611 | FN(get_netns_cookie, 122, ##ctx) \ |
| 5563 | FN(get_current_ancestor_cgroup_id), \ | 5612 | FN(get_current_ancestor_cgroup_id, 123, ##ctx) \ |
| 5564 | FN(sk_assign), \ | 5613 | FN(sk_assign, 124, ##ctx) \ |
| 5565 | FN(ktime_get_boot_ns), \ | 5614 | FN(ktime_get_boot_ns, 125, ##ctx) \ |
| 5566 | FN(seq_printf), \ | 5615 | FN(seq_printf, 126, ##ctx) \ |
| 5567 | FN(seq_write), \ | 5616 | FN(seq_write, 127, ##ctx) \ |
| 5568 | FN(sk_cgroup_id), \ | 5617 | FN(sk_cgroup_id, 128, ##ctx) \ |
| 5569 | FN(sk_ancestor_cgroup_id), \ | 5618 | FN(sk_ancestor_cgroup_id, 129, ##ctx) \ |
| 5570 | FN(ringbuf_output), \ | 5619 | FN(ringbuf_output, 130, ##ctx) \ |
| 5571 | FN(ringbuf_reserve), \ | 5620 | FN(ringbuf_reserve, 131, ##ctx) \ |
| 5572 | FN(ringbuf_submit), \ | 5621 | FN(ringbuf_submit, 132, ##ctx) \ |
| 5573 | FN(ringbuf_discard), \ | 5622 | FN(ringbuf_discard, 133, ##ctx) \ |
| 5574 | FN(ringbuf_query), \ | 5623 | FN(ringbuf_query, 134, ##ctx) \ |
| 5575 | FN(csum_level), \ | 5624 | FN(csum_level, 135, ##ctx) \ |
| 5576 | FN(skc_to_tcp6_sock), \ | 5625 | FN(skc_to_tcp6_sock, 136, ##ctx) \ |
| 5577 | FN(skc_to_tcp_sock), \ | 5626 | FN(skc_to_tcp_sock, 137, ##ctx) \ |
| 5578 | FN(skc_to_tcp_timewait_sock), \ | 5627 | FN(skc_to_tcp_timewait_sock, 138, ##ctx) \ |
| 5579 | FN(skc_to_tcp_request_sock), \ | 5628 | FN(skc_to_tcp_request_sock, 139, ##ctx) \ |
| 5580 | FN(skc_to_udp6_sock), \ | 5629 | FN(skc_to_udp6_sock, 140, ##ctx) \ |
| 5581 | FN(get_task_stack), \ | 5630 | FN(get_task_stack, 141, ##ctx) \ |
| 5582 | FN(load_hdr_opt), \ | 5631 | FN(load_hdr_opt, 142, ##ctx) \ |
| 5583 | FN(store_hdr_opt), \ | 5632 | FN(store_hdr_opt, 143, ##ctx) \ |
| 5584 | FN(reserve_hdr_opt), \ | 5633 | FN(reserve_hdr_opt, 144, ##ctx) \ |
| 5585 | FN(inode_storage_get), \ | 5634 | FN(inode_storage_get, 145, ##ctx) \ |
| 5586 | FN(inode_storage_delete), \ | 5635 | FN(inode_storage_delete, 146, ##ctx) \ |
| 5587 | FN(d_path), \ | 5636 | FN(d_path, 147, ##ctx) \ |
| 5588 | FN(copy_from_user), \ | 5637 | FN(copy_from_user, 148, ##ctx) \ |
| 5589 | FN(snprintf_btf), \ | 5638 | FN(snprintf_btf, 149, ##ctx) \ |
| 5590 | FN(seq_printf_btf), \ | 5639 | FN(seq_printf_btf, 150, ##ctx) \ |
| 5591 | FN(skb_cgroup_classid), \ | 5640 | FN(skb_cgroup_classid, 151, ##ctx) \ |
| 5592 | FN(redirect_neigh), \ | 5641 | FN(redirect_neigh, 152, ##ctx) \ |
| 5593 | FN(per_cpu_ptr), \ | 5642 | FN(per_cpu_ptr, 153, ##ctx) \ |
| 5594 | FN(this_cpu_ptr), \ | 5643 | FN(this_cpu_ptr, 154, ##ctx) \ |
| 5595 | FN(redirect_peer), \ | 5644 | FN(redirect_peer, 155, ##ctx) \ |
| 5596 | FN(task_storage_get), \ | 5645 | FN(task_storage_get, 156, ##ctx) \ |
| 5597 | FN(task_storage_delete), \ | 5646 | FN(task_storage_delete, 157, ##ctx) \ |
| 5598 | FN(get_current_task_btf), \ | 5647 | FN(get_current_task_btf, 158, ##ctx) \ |
| 5599 | FN(bprm_opts_set), \ | 5648 | FN(bprm_opts_set, 159, ##ctx) \ |
| 5600 | FN(ktime_get_coarse_ns), \ | 5649 | FN(ktime_get_coarse_ns, 160, ##ctx) \ |
| 5601 | FN(ima_inode_hash), \ | 5650 | FN(ima_inode_hash, 161, ##ctx) \ |
| 5602 | FN(sock_from_file), \ | 5651 | FN(sock_from_file, 162, ##ctx) \ |
| 5603 | FN(check_mtu), \ | 5652 | FN(check_mtu, 163, ##ctx) \ |
| 5604 | FN(for_each_map_elem), \ | 5653 | FN(for_each_map_elem, 164, ##ctx) \ |
| 5605 | FN(snprintf), \ | 5654 | FN(snprintf, 165, ##ctx) \ |
| 5606 | FN(sys_bpf), \ | 5655 | FN(sys_bpf, 166, ##ctx) \ |
| 5607 | FN(btf_find_by_name_kind), \ | 5656 | FN(btf_find_by_name_kind, 167, ##ctx) \ |
| 5608 | FN(sys_close), \ | 5657 | FN(sys_close, 168, ##ctx) \ |
| 5609 | FN(timer_init), \ | 5658 | FN(timer_init, 169, ##ctx) \ |
| 5610 | FN(timer_set_callback), \ | 5659 | FN(timer_set_callback, 170, ##ctx) \ |
| 5611 | FN(timer_start), \ | 5660 | FN(timer_start, 171, ##ctx) \ |
| 5612 | FN(timer_cancel), \ | 5661 | FN(timer_cancel, 172, ##ctx) \ |
| 5613 | FN(get_func_ip), \ | 5662 | FN(get_func_ip, 173, ##ctx) \ |
| 5614 | FN(get_attach_cookie), \ | 5663 | FN(get_attach_cookie, 174, ##ctx) \ |
| 5615 | FN(task_pt_regs), \ | 5664 | FN(task_pt_regs, 175, ##ctx) \ |
| 5616 | FN(get_branch_snapshot), \ | 5665 | FN(get_branch_snapshot, 176, ##ctx) \ |
| 5617 | FN(trace_vprintk), \ | 5666 | FN(trace_vprintk, 177, ##ctx) \ |
| 5618 | FN(skc_to_unix_sock), \ | 5667 | FN(skc_to_unix_sock, 178, ##ctx) \ |
| 5619 | FN(kallsyms_lookup_name), \ | 5668 | FN(kallsyms_lookup_name, 179, ##ctx) \ |
| 5620 | FN(find_vma), \ | 5669 | FN(find_vma, 180, ##ctx) \ |
| 5621 | FN(loop), \ | 5670 | FN(loop, 181, ##ctx) \ |
| 5622 | FN(strncmp), \ | 5671 | FN(strncmp, 182, ##ctx) \ |
| 5623 | FN(get_func_arg), \ | 5672 | FN(get_func_arg, 183, ##ctx) \ |
| 5624 | FN(get_func_ret), \ | 5673 | FN(get_func_ret, 184, ##ctx) \ |
| 5625 | FN(get_func_arg_cnt), \ | 5674 | FN(get_func_arg_cnt, 185, ##ctx) \ |
| 5626 | FN(get_retval), \ | 5675 | FN(get_retval, 186, ##ctx) \ |
| 5627 | FN(set_retval), \ | 5676 | FN(set_retval, 187, ##ctx) \ |
| 5628 | FN(xdp_get_buff_len), \ | 5677 | FN(xdp_get_buff_len, 188, ##ctx) \ |
| 5629 | FN(xdp_load_bytes), \ | 5678 | FN(xdp_load_bytes, 189, ##ctx) \ |
| 5630 | FN(xdp_store_bytes), \ | 5679 | FN(xdp_store_bytes, 190, ##ctx) \ |
| 5631 | FN(copy_from_user_task), \ | 5680 | FN(copy_from_user_task, 191, ##ctx) \ |
| 5632 | FN(skb_set_tstamp), \ | 5681 | FN(skb_set_tstamp, 192, ##ctx) \ |
| 5633 | FN(ima_file_hash), \ | 5682 | FN(ima_file_hash, 193, ##ctx) \ |
| 5634 | FN(kptr_xchg), \ | 5683 | FN(kptr_xchg, 194, ##ctx) \ |
| 5635 | FN(map_lookup_percpu_elem), \ | 5684 | FN(map_lookup_percpu_elem, 195, ##ctx) \ |
| 5636 | FN(skc_to_mptcp_sock), \ | 5685 | FN(skc_to_mptcp_sock, 196, ##ctx) \ |
| 5637 | FN(dynptr_from_mem), \ | 5686 | FN(dynptr_from_mem, 197, ##ctx) \ |
| 5638 | FN(ringbuf_reserve_dynptr), \ | 5687 | FN(ringbuf_reserve_dynptr, 198, ##ctx) \ |
| 5639 | FN(ringbuf_submit_dynptr), \ | 5688 | FN(ringbuf_submit_dynptr, 199, ##ctx) \ |
| 5640 | FN(ringbuf_discard_dynptr), \ | 5689 | FN(ringbuf_discard_dynptr, 200, ##ctx) \ |
| 5641 | FN(dynptr_read), \ | 5690 | FN(dynptr_read, 201, ##ctx) \ |
| 5642 | FN(dynptr_write), \ | 5691 | FN(dynptr_write, 202, ##ctx) \ |
| 5643 | FN(dynptr_data), \ | 5692 | FN(dynptr_data, 203, ##ctx) \ |
| 5644 | FN(tcp_raw_gen_syncookie_ipv4), \ | 5693 | FN(tcp_raw_gen_syncookie_ipv4, 204, ##ctx) \ |
| 5645 | FN(tcp_raw_gen_syncookie_ipv6), \ | 5694 | FN(tcp_raw_gen_syncookie_ipv6, 205, ##ctx) \ |
| 5646 | FN(tcp_raw_check_syncookie_ipv4), \ | 5695 | FN(tcp_raw_check_syncookie_ipv4, 206, ##ctx) \ |
| 5647 | FN(tcp_raw_check_syncookie_ipv6), \ | 5696 | FN(tcp_raw_check_syncookie_ipv6, 207, ##ctx) \ |
| 5648 | FN(ktime_get_tai_ns), \ | 5697 | FN(ktime_get_tai_ns, 208, ##ctx) \ |
| 5649 | FN(user_ringbuf_drain), \ | 5698 | FN(user_ringbuf_drain, 209, ##ctx) \ |
| 5699 | FN(cgrp_storage_get, 210, ##ctx) \ | ||
| 5700 | FN(cgrp_storage_delete, 211, ##ctx) \ | ||
| 5650 | /* */ | 5701 | /* */ |
| 5651 | 5702 | ||
| 5703 | /* backwards-compatibility macros for users of __BPF_FUNC_MAPPER that don't | ||
| 5704 | * know or care about integer value that is now passed as second argument | ||
| 5705 | */ | ||
| 5706 | #define __BPF_FUNC_MAPPER_APPLY(name, value, FN) FN(name), | ||
| 5707 | #define __BPF_FUNC_MAPPER(FN) ___BPF_FUNC_MAPPER(__BPF_FUNC_MAPPER_APPLY, FN) | ||
| 5708 | |||
| 5652 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper | 5709 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper |
| 5653 | * function eBPF program intends to call | 5710 | * function eBPF program intends to call |
| 5654 | */ | 5711 | */ |
| 5655 | #define __BPF_ENUM_FN(x) BPF_FUNC_ ## x | 5712 | #define __BPF_ENUM_FN(x, y) BPF_FUNC_ ## x = y, |
| 5656 | enum bpf_func_id { | 5713 | enum bpf_func_id { |
| 5657 | __BPF_FUNC_MAPPER(__BPF_ENUM_FN) | 5714 | ___BPF_FUNC_MAPPER(__BPF_ENUM_FN) |
| 5658 | __BPF_FUNC_MAX_ID, | 5715 | __BPF_FUNC_MAX_ID, |
| 5659 | }; | 5716 | }; |
| 5660 | #undef __BPF_ENUM_FN | 5717 | #undef __BPF_ENUM_FN |
| @@ -6391,6 +6448,7 @@ struct bpf_sock_ops { · 730 unmodified lines | |||
| 6391 | * the outgoing header has not | 6448 | * the outgoing header has not |
| 6392 | * been written yet. | 6449 | * been written yet. |
| 6393 | */ | 6450 | */ |
| 6451 | __u64 skb_hwtstamp; | ||
| 6394 | }; | 6452 | }; |
| 6395 | 6453 | ||
| 6396 | /* Definitions for bpf_sock_ops_cb_flags */ | 6454 | /* Definitions for bpf_sock_ops_cb_flags */ |
| @@ -6833,6 +6891,16 @@ struct bpf_dynptr { · 436 unmodified lines | |||
| 6833 | __u64 :64; | 6891 | __u64 :64; |
| 6834 | } __attribute__((aligned(8))); | 6892 | } __attribute__((aligned(8))); |
| 6835 | 6893 | ||
| 6894 | struct bpf_list_head { | ||
| 6895 | __u64 :64; | ||
| 6896 | __u64 :64; | ||
| 6897 | } __attribute__((aligned(8))); | ||
| 6898 | |||
| 6899 | struct bpf_list_node { | ||
| 6900 | __u64 :64; | ||
| 6901 | __u64 :64; | ||
| 6902 | } __attribute__((aligned(8))); | ||
| 6903 | |||
| 6836 | struct bpf_sysctl { | 6904 | struct bpf_sysctl { |
| 6837 | __u32 write; /* Sysctl is being read (= 0) or written (= 1). | 6905 | __u32 write; /* Sysctl is being read (= 0) or written (= 1). |
| 6838 | * Allows 1,2,4-byte read, but no write. | 6906 | * Allows 1,2,4-byte read, but no write. |
| @@ -218,6 +218,9 @@ struct cee_pfc { · 217 unmodified lines | |||
| 218 | #define IEEE_8021QAZ_APP_SEL_ANY 4 | 218 | #define IEEE_8021QAZ_APP_SEL_ANY 4 |
| 219 | #define IEEE_8021QAZ_APP_SEL_DSCP 5 | 219 | #define IEEE_8021QAZ_APP_SEL_DSCP 5 |
| 220 | 220 | ||
| 221 | /* Non-std selector values */ | ||
| 222 | #define DCB_APP_SEL_PCP 255 | ||
| 223 | |||
| 221 | /* This structure contains the IEEE 802.1Qaz APP managed object. This | 224 | /* This structure contains the IEEE 802.1Qaz APP managed object. This |
| 222 | * object is also used for the CEE std as well. | 225 | * object is also used for the CEE std as well. |
| 223 | * | 226 | * |
| @@ -247,6 +250,8 @@ struct dcb_app { · 23 unmodified lines | |||
| 247 | __u16 protocol; | 250 | __u16 protocol; |
| 248 | }; | 251 | }; |
| 249 | 252 | ||
| 253 | #define IEEE_8021QAZ_APP_SEL_MAX 255 | ||
| 254 | |||
| 250 | /** | 255 | /** |
| 251 | * struct dcb_peer_app_info - APP feature information sent by the peer | 256 | * struct dcb_peer_app_info - APP feature information sent by the peer |
| 252 | * | 257 | * |
| @@ -405,6 +410,7 @@ enum dcbnl_attrs { · 152 unmodified lines | |||
| 405 | * @DCB_ATTR_IEEE_PEER_ETS: peer ETS configuration - get only | 410 | * @DCB_ATTR_IEEE_PEER_ETS: peer ETS configuration - get only |
| 406 | * @DCB_ATTR_IEEE_PEER_PFC: peer PFC configuration - get only | 411 | * @DCB_ATTR_IEEE_PEER_PFC: peer PFC configuration - get only |
| 407 | * @DCB_ATTR_IEEE_PEER_APP: peer APP tlv - get only | 412 | * @DCB_ATTR_IEEE_PEER_APP: peer APP tlv - get only |
| 413 | * @DCB_ATTR_DCB_APP_TRUST_TABLE: selector trust table | ||
| 408 | */ | 414 | */ |
| 409 | enum ieee_attrs { | 415 | enum ieee_attrs { |
| 410 | DCB_ATTR_IEEE_UNSPEC, | 416 | DCB_ATTR_IEEE_UNSPEC, |
| @@ -418,6 +424,7 @@ enum ieee_attrs { · 7 unmodified lines | |||
| 418 | DCB_ATTR_IEEE_QCN, | 424 | DCB_ATTR_IEEE_QCN, |
| 419 | DCB_ATTR_IEEE_QCN_STATS, | 425 | DCB_ATTR_IEEE_QCN_STATS, |
| 420 | DCB_ATTR_DCB_BUFFER, | 426 | DCB_ATTR_DCB_BUFFER, |
| 427 | DCB_ATTR_DCB_APP_TRUST_TABLE, | ||
| 421 | __DCB_ATTR_IEEE_MAX | 428 | __DCB_ATTR_IEEE_MAX |
| 422 | }; | 429 | }; |
| 423 | #define DCB_ATTR_IEEE_MAX (__DCB_ATTR_IEEE_MAX - 1) | 430 | #define DCB_ATTR_IEEE_MAX (__DCB_ATTR_IEEE_MAX - 1) |
| @@ -425,6 +432,7 @@ enum ieee_attrs { · 1 unmodified line | |||
| 425 | enum ieee_attrs_app { | 432 | enum ieee_attrs_app { |
| 426 | DCB_ATTR_IEEE_APP_UNSPEC, | 433 | DCB_ATTR_IEEE_APP_UNSPEC, |
| 427 | DCB_ATTR_IEEE_APP, | 434 | DCB_ATTR_IEEE_APP, |
| 435 | DCB_ATTR_DCB_APP, | ||
| 428 | __DCB_ATTR_IEEE_APP_MAX | 436 | __DCB_ATTR_IEEE_APP_MAX |
| 429 | }; | 437 | }; |
| 430 | #define DCB_ATTR_IEEE_APP_MAX (__DCB_ATTR_IEEE_APP_MAX - 1) | 438 | #define DCB_ATTR_IEEE_APP_MAX (__DCB_ATTR_IEEE_APP_MAX - 1) |
| @@ -607,6 +607,11 @@ enum devlink_attr { · 606 unmodified lines | |||
| 607 | 607 | ||
| 608 | DEVLINK_ATTR_SELFTESTS, /* nested */ | 608 | DEVLINK_ATTR_SELFTESTS, /* nested */ |
| 609 | 609 | ||
| 610 | DEVLINK_ATTR_RATE_TX_PRIORITY, /* u32 */ | ||
| 611 | DEVLINK_ATTR_RATE_TX_WEIGHT, /* u32 */ | ||
| 612 | |||
| 613 | DEVLINK_ATTR_REGION_DIRECT, /* flag */ | ||
| 614 | |||
| 610 | /* add new attributes above here, update the policy in devlink.c */ | 615 | /* add new attributes above here, update the policy in devlink.c */ |
| 611 | 616 | ||
| 612 | __DEVLINK_ATTR_MAX, | 617 | __DEVLINK_ATTR_MAX, |
| @@ -653,11 +658,24 @@ enum devlink_resource_unit { · 40 unmodified lines | |||
| 653 | DEVLINK_RESOURCE_UNIT_ENTRY, | 658 | DEVLINK_RESOURCE_UNIT_ENTRY, |
| 654 | }; | 659 | }; |
| 655 | 660 | ||
| 661 | enum devlink_port_fn_attr_cap { | ||
| 662 | DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT, | ||
| 663 | DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT, | ||
| 664 | |||
| 665 | /* Add new caps above */ | ||
| 666 | __DEVLINK_PORT_FN_ATTR_CAPS_MAX, | ||
| 667 | }; | ||
| 668 | |||
| 669 | #define DEVLINK_PORT_FN_CAP_ROCE _BITUL(DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT) | ||
| 670 | #define DEVLINK_PORT_FN_CAP_MIGRATABLE \ | ||
| 671 | _BITUL(DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT) | ||
| 672 | |||
| 656 | enum devlink_port_function_attr { | 673 | enum devlink_port_function_attr { |
| 657 | DEVLINK_PORT_FUNCTION_ATTR_UNSPEC, | 674 | DEVLINK_PORT_FUNCTION_ATTR_UNSPEC, |
| 658 | DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR, /* binary */ | 675 | DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR, /* binary */ |
| 659 | DEVLINK_PORT_FN_ATTR_STATE, /* u8 */ | 676 | DEVLINK_PORT_FN_ATTR_STATE, /* u8 */ |
| 660 | DEVLINK_PORT_FN_ATTR_OPSTATE, /* u8 */ | 677 | DEVLINK_PORT_FN_ATTR_OPSTATE, /* u8 */ |
| 678 | DEVLINK_PORT_FN_ATTR_CAPS, /* bitfield32 */ | ||
| 661 | 679 | ||
| 662 | __DEVLINK_PORT_FUNCTION_ATTR_MAX, | 680 | __DEVLINK_PORT_FUNCTION_ATTR_MAX, |
| 663 | DEVLINK_PORT_FUNCTION_ATTR_MAX = __DEVLINK_PORT_FUNCTION_ATTR_MAX - 1 | 681 | DEVLINK_PORT_FUNCTION_ATTR_MAX = __DEVLINK_PORT_FUNCTION_ATTR_MAX - 1 |
| @@ -159,8 +159,10 @@ static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep) · 158 unmodified lines | |||
| 159 | * in its bus driver structure (e.g. pci_driver::name). Must | 159 | * in its bus driver structure (e.g. pci_driver::name). Must |
| 160 | * not be an empty string. | 160 | * not be an empty string. |
| 161 | * @version: Driver version string; may be an empty string | 161 | * @version: Driver version string; may be an empty string |
| 162 | * @fw_version: Firmware version string; may be an empty string | 162 | * @fw_version: Firmware version string; driver defined; may be an |
| 163 | * @erom_version: Expansion ROM version string; may be an empty string | 163 | * empty string |
| 164 | * @erom_version: Expansion ROM version string; driver defined; may be | ||
| 165 | * an empty string | ||
| 164 | * @bus_info: Device bus address. This should match the dev_name() | 166 | * @bus_info: Device bus address. This should match the dev_name() |
| 165 | * string for the underlying bus device, if there is one. May be | 167 | * string for the underlying bus device, if there is one. May be |
| 166 | * an empty string. | 168 | * an empty string. |
| @@ -179,10 +181,6 @@ static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep) · 12 unmodified lines | |||
| 179 | * | 181 | * |
| 180 | * Users can use the %ETHTOOL_GSSET_INFO command to get the number of | 182 | * Users can use the %ETHTOOL_GSSET_INFO command to get the number of |
| 181 | * strings in any string set (from Linux 2.6.34). | 183 | * strings in any string set (from Linux 2.6.34). |
| 182 | * | ||
| 183 | * Drivers should set at most @driver, @version, @fw_version and | ||
| 184 | * @bus_info in their get_drvinfo() implementation. The ethtool | ||
| 185 | * core fills in the other fields using other driver operations. | ||
| 186 | */ | 184 | */ |
| 187 | struct ethtool_drvinfo { | 185 | struct ethtool_drvinfo { |
| 188 | __u32 cmd; | 186 | __u32 cmd; |
| @@ -1737,6 +1735,13 @@ enum ethtool_link_mode_bit_indices { · 1548 unmodified lines | |||
| 1737 | ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90, | 1735 | ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90, |
| 1738 | ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91, | 1736 | ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91, |
| 1739 | ETHTOOL_LINK_MODE_10baseT1L_Full_BIT = 92, | 1737 | ETHTOOL_LINK_MODE_10baseT1L_Full_BIT = 92, |
| 1738 | ETHTOOL_LINK_MODE_800000baseCR8_Full_BIT = 93, | ||
| 1739 | ETHTOOL_LINK_MODE_800000baseKR8_Full_BIT = 94, | ||
| 1740 | ETHTOOL_LINK_MODE_800000baseDR8_Full_BIT = 95, | ||
| 1741 | ETHTOOL_LINK_MODE_800000baseDR8_2_Full_BIT = 96, | ||
| 1742 | ETHTOOL_LINK_MODE_800000baseSR8_Full_BIT = 97, | ||
| 1743 | ETHTOOL_LINK_MODE_800000baseVR8_Full_BIT = 98, | ||
| 1744 | |||
| 1740 | /* must be last entry */ | 1745 | /* must be last entry */ |
| 1741 | __ETHTOOL_LINK_MODE_MASK_NBITS | 1746 | __ETHTOOL_LINK_MODE_MASK_NBITS |
| 1742 | }; | 1747 | }; |
| @@ -1848,6 +1853,7 @@ enum ethtool_link_mode_bit_indices { · 105 unmodified lines | |||
| 1848 | #define SPEED_100000 100000 | 1853 | #define SPEED_100000 100000 |
| 1849 | #define SPEED_200000 200000 | 1854 | #define SPEED_200000 200000 |
| 1850 | #define SPEED_400000 400000 | 1855 | #define SPEED_400000 400000 |
| 1856 | #define SPEED_800000 800000 | ||
| 1851 | 1857 | ||
| 1852 | #define SPEED_UNKNOWN -1 | 1858 | #define SPEED_UNKNOWN -1 |
| 1853 | 1859 | ||
| @@ -51,6 +51,7 @@ enum { · 50 unmodified lines | |||
| 51 | ETHTOOL_MSG_MODULE_SET, | 51 | ETHTOOL_MSG_MODULE_SET, |
| 52 | ETHTOOL_MSG_PSE_GET, | 52 | ETHTOOL_MSG_PSE_GET, |
| 53 | ETHTOOL_MSG_PSE_SET, | 53 | ETHTOOL_MSG_PSE_SET, |
| 54 | ETHTOOL_MSG_RSS_GET, | ||
| 54 | 55 | ||
| 55 | /* add new constants above here */ | 56 | /* add new constants above here */ |
| 56 | __ETHTOOL_MSG_USER_CNT, | 57 | __ETHTOOL_MSG_USER_CNT, |
| @@ -97,6 +98,7 @@ enum { · 40 unmodified lines | |||
| 97 | ETHTOOL_MSG_MODULE_GET_REPLY, | 98 | ETHTOOL_MSG_MODULE_GET_REPLY, |
| 98 | ETHTOOL_MSG_MODULE_NTF, | 99 | ETHTOOL_MSG_MODULE_NTF, |
| 99 | ETHTOOL_MSG_PSE_GET_REPLY, | 100 | ETHTOOL_MSG_PSE_GET_REPLY, |
| 101 | ETHTOOL_MSG_RSS_GET_REPLY, | ||
| 100 | 102 | ||
| 101 | /* add new constants above here */ | 103 | /* add new constants above here */ |
| 102 | __ETHTOOL_MSG_KERNEL_CNT, | 104 | __ETHTOOL_MSG_KERNEL_CNT, |
| @@ -262,6 +264,7 @@ enum { · 159 unmodified lines | |||
| 262 | ETHTOOL_A_LINKSTATE_SQI_MAX, /* u32 */ | 264 | ETHTOOL_A_LINKSTATE_SQI_MAX, /* u32 */ |
| 263 | ETHTOOL_A_LINKSTATE_EXT_STATE, /* u8 */ | 265 | ETHTOOL_A_LINKSTATE_EXT_STATE, /* u8 */ |
| 264 | ETHTOOL_A_LINKSTATE_EXT_SUBSTATE, /* u8 */ | 266 | ETHTOOL_A_LINKSTATE_EXT_SUBSTATE, /* u8 */ |
| 267 | ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT, /* u32 */ | ||
| 265 | 268 | ||
| 266 | /* add new constants above here */ | 269 | /* add new constants above here */ |
| 267 | __ETHTOOL_A_LINKSTATE_CNT, | 270 | __ETHTOOL_A_LINKSTATE_CNT, |
| @@ -879,6 +882,18 @@ enum { · 611 unmodified lines | |||
| 879 | ETHTOOL_A_PSE_MAX = (__ETHTOOL_A_PSE_CNT - 1) | 882 | ETHTOOL_A_PSE_MAX = (__ETHTOOL_A_PSE_CNT - 1) |
| 880 | }; | 883 | }; |
| 881 | 884 | ||
| 885 | enum { | ||
| 886 | ETHTOOL_A_RSS_UNSPEC, | ||
| 887 | ETHTOOL_A_RSS_HEADER, | ||
| 888 | ETHTOOL_A_RSS_CONTEXT, /* u32 */ | ||
| 889 | ETHTOOL_A_RSS_HFUNC, /* u32 */ | ||
| 890 | ETHTOOL_A_RSS_INDIR, /* binary */ | ||
| 891 | ETHTOOL_A_RSS_HKEY, /* binary */ | ||
| 892 | |||
| 893 | __ETHTOOL_A_RSS_CNT, | ||
| 894 | ETHTOOL_A_RSS_MAX = (__ETHTOOL_A_RSS_CNT - 1), | ||
| 895 | }; | ||
| 896 | |||
| 882 | /* generic netlink info */ | 897 | /* generic netlink info */ |
| 883 | #define ETHTOOL_GENL_NAME "ethtool" | 898 | #define ETHTOOL_GENL_NAME "ethtool" |
| 884 | #define ETHTOOL_GENL_VERSION 1 | 899 | #define ETHTOOL_GENL_VERSION 1 |
| @@ -723,10 +723,31 @@ enum { · 722 unmodified lines | |||
| 723 | enum { | 723 | enum { |
| 724 | MDBE_ATTR_UNSPEC, | 724 | MDBE_ATTR_UNSPEC, |
| 725 | MDBE_ATTR_SOURCE, | 725 | MDBE_ATTR_SOURCE, |
| 726 | MDBE_ATTR_SRC_LIST, | ||
| 727 | MDBE_ATTR_GROUP_MODE, | ||
| 728 | MDBE_ATTR_RTPROT, | ||
| 726 | __MDBE_ATTR_MAX, | 729 | __MDBE_ATTR_MAX, |
| 727 | }; | 730 | }; |
| 728 | #define MDBE_ATTR_MAX (__MDBE_ATTR_MAX - 1) | 731 | #define MDBE_ATTR_MAX (__MDBE_ATTR_MAX - 1) |
| 729 | 732 | ||
| 733 | /* per mdb entry source */ | ||
| 734 | enum { | ||
| 735 | MDBE_SRC_LIST_UNSPEC, | ||
| 736 | MDBE_SRC_LIST_ENTRY, | ||
| 737 | __MDBE_SRC_LIST_MAX, | ||
| 738 | }; | ||
| 739 | #define MDBE_SRC_LIST_MAX (__MDBE_SRC_LIST_MAX - 1) | ||
| 740 | |||
| 741 | /* per mdb entry per source attributes | ||
| 742 | * these are embedded in MDBE_SRC_LIST_ENTRY | ||
| 743 | */ | ||
| 744 | enum { | ||
| 745 | MDBE_SRCATTR_UNSPEC, | ||
| 746 | MDBE_SRCATTR_ADDRESS, | ||
| 747 | __MDBE_SRCATTR_MAX, | ||
| 748 | }; | ||
| 749 | #define MDBE_SRCATTR_MAX (__MDBE_SRCATTR_MAX - 1) | ||
| 750 | |||
| 730 | /* Embedded inside LINK_XSTATS_TYPE_BRIDGE */ | 751 | /* Embedded inside LINK_XSTATS_TYPE_BRIDGE */ |
| 731 | enum { | 752 | enum { |
| 732 | BRIDGE_XSTATS_UNSPEC, | 753 | BRIDGE_XSTATS_UNSPEC, |
| @@ -372,6 +372,8 @@ enum { · 371 unmodified lines | |||
| 372 | IFLA_TSO_MAX_SEGS, | 372 | IFLA_TSO_MAX_SEGS, |
| 373 | IFLA_ALLMULTI, /* Allmulti count: > 0 means acts ALLMULTI */ | 373 | IFLA_ALLMULTI, /* Allmulti count: > 0 means acts ALLMULTI */ |
| 374 | 374 | ||
| 375 | IFLA_DEVLINK_PORT, | ||
| 376 | |||
| 375 | __IFLA_MAX | 377 | __IFLA_MAX |
| 376 | }; | 378 | }; |
| 377 | 379 | ||
| @@ -561,6 +563,7 @@ enum { · 183 unmodified lines | |||
| 561 | IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT, | 563 | IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT, |
| 562 | IFLA_BRPORT_MCAST_EHT_HOSTS_CNT, | 564 | IFLA_BRPORT_MCAST_EHT_HOSTS_CNT, |
| 563 | IFLA_BRPORT_LOCKED, | 565 | IFLA_BRPORT_LOCKED, |
| 566 | IFLA_BRPORT_MAB, | ||
| 564 | __IFLA_BRPORT_MAX | 567 | __IFLA_BRPORT_MAX |
| 565 | }; | 568 | }; |
| 566 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) | 569 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) |
| @@ -70,6 +70,7 @@ struct sockaddr_ll { · 69 unmodified lines | |||
| 70 | #define PACKET_FANOUT_EBPF 7 | 70 | #define PACKET_FANOUT_EBPF 7 |
| 71 | #define PACKET_FANOUT_FLAG_ROLLOVER 0x1000 | 71 | #define PACKET_FANOUT_FLAG_ROLLOVER 0x1000 |
| 72 | #define PACKET_FANOUT_FLAG_UNIQUEID 0x2000 | 72 | #define PACKET_FANOUT_FLAG_UNIQUEID 0x2000 |
| 73 | #define PACKET_FANOUT_FLAG_IGNORE_OUTGOING 0x4000 | ||
| 73 | #define PACKET_FANOUT_FLAG_DEFRAG 0x8000 | 74 | #define PACKET_FANOUT_FLAG_DEFRAG 0x8000 |
| 74 | 75 | ||
| 75 | struct tpacket_stats { | 76 | struct tpacket_stats { |
| @@ -90,6 +90,8 @@ · 89 unmodified lines | |||
| 90 | #define TUN_F_TSO6 0x04 /* I can handle TSO for IPv6 packets */ | 90 | #define TUN_F_TSO6 0x04 /* I can handle TSO for IPv6 packets */ |
| 91 | #define TUN_F_TSO_ECN 0x08 /* I can handle TSO with ECN bits. */ | 91 | #define TUN_F_TSO_ECN 0x08 /* I can handle TSO with ECN bits. */ |
| 92 | #define TUN_F_UFO 0x10 /* I can handle UFO packets */ | 92 | #define TUN_F_UFO 0x10 /* I can handle UFO packets */ |
| 93 | #define TUN_F_USO4 0x20 /* I can handle USO for IPv4 packets */ | ||
| 94 | #define TUN_F_USO6 0x40 /* I can handle USO for IPv6 packets */ | ||
| 93 | 95 | ||
| 94 | /* Protocol info prepended to the packets (when IFF_NO_PI is not set) */ | 96 | /* Protocol info prepended to the packets (when IFF_NO_PI is not set) */ |
| 95 | #define TUN_PKT_STRIP 0x0001 | 97 | #define TUN_PKT_STRIP 0x0001 |
| @@ -160,6 +160,12 @@ struct mptcp_info { · 159 unmodified lines | |||
| 160 | * daddr4 | daddr6, sport, dport, backup, if_idx | 160 | * daddr4 | daddr6, sport, dport, backup, if_idx |
| 161 | * [, error] | 161 | * [, error] |
| 162 | * The priority of a subflow has changed. 'error' should not be set. | 162 | * The priority of a subflow has changed. 'error' should not be set. |
| 163 | * | ||
| 164 | * MPTCP_EVENT_LISTENER_CREATED: family, sport, saddr4 | saddr6 | ||
| 165 | * A new PM listener is created. | ||
| 166 | * | ||
| 167 | * MPTCP_EVENT_LISTENER_CLOSED: family, sport, saddr4 | saddr6 | ||
| 168 | * A PM listener is closed. | ||
| 163 | */ | 169 | */ |
| 164 | enum mptcp_event_type { | 170 | enum mptcp_event_type { |
| 165 | MPTCP_EVENT_UNSPEC = 0, | 171 | MPTCP_EVENT_UNSPEC = 0, |
| @@ -174,6 +180,9 @@ enum mptcp_event_type { · 8 unmodified lines | |||
| 174 | MPTCP_EVENT_SUB_CLOSED = 11, | 180 | MPTCP_EVENT_SUB_CLOSED = 11, |
| 175 | 181 | ||
| 176 | MPTCP_EVENT_SUB_PRIORITY = 13, | 182 | MPTCP_EVENT_SUB_PRIORITY = 13, |
| 183 | |||
| 184 | MPTCP_EVENT_LISTENER_CREATED = 15, | ||
| 185 | MPTCP_EVENT_LISTENER_CLOSED = 16, | ||
| 177 | }; | 186 | }; |
| 178 | 187 | ||
| 179 | enum mptcp_event_attr { | 188 | enum mptcp_event_attr { |
| @@ -52,7 +52,8 @@ enum { · 51 unmodified lines | |||
| 52 | #define NTF_STICKY (1 << 6) | 52 | #define NTF_STICKY (1 << 6) |
| 53 | #define NTF_ROUTER (1 << 7) | 53 | #define NTF_ROUTER (1 << 7) |
| 54 | /* Extended flags under NDA_FLAGS_EXT: */ | 54 | /* Extended flags under NDA_FLAGS_EXT: */ |
| 55 | #define NTF_EXT_MANAGED (1 << 0) | 55 | #define NTF_EXT_MANAGED (1 << 0) |
| 56 | #define NTF_EXT_LOCKED (1 << 1) | ||
| 56 | 57 | ||
| 57 | /* | 58 | /* |
| 58 | * Neighbor Cache Entry States. | 59 | * Neighbor Cache Entry States. |
| @@ -86,6 +87,11 @@ enum { · 27 unmodified lines | |||
| 86 | * NTF_EXT_MANAGED flagged neigbor entries are managed by the kernel on behalf | 87 | * NTF_EXT_MANAGED flagged neigbor entries are managed by the kernel on behalf |
| 87 | * of a user space control plane, and automatically refreshed so that (if | 88 | * of a user space control plane, and automatically refreshed so that (if |
| 88 | * possible) they remain in NUD_REACHABLE state. | 89 | * possible) they remain in NUD_REACHABLE state. |
| 90 | * | ||
| 91 | * NTF_EXT_LOCKED flagged bridge FDB entries are entries generated by the | ||
| 92 | * bridge in response to a host trying to communicate via a locked bridge port | ||
| 93 | * with MAB enabled. Their purpose is to notify user space that a host requires | ||
| 94 | * authentication. | ||
| 89 | */ | 95 | */ |
| 90 | 96 | ||
| 91 | struct nda_cacheinfo { | 97 | struct nda_cacheinfo { |
| @@ -31,8 +31,9 @@ enum { · 30 unmodified lines | |||
| 31 | SOF_TIMESTAMPING_OPT_PKTINFO = (1<<13), | 31 | SOF_TIMESTAMPING_OPT_PKTINFO = (1<<13), |
| 32 | SOF_TIMESTAMPING_OPT_TX_SWHW = (1<<14), | 32 | SOF_TIMESTAMPING_OPT_TX_SWHW = (1<<14), |
| 33 | SOF_TIMESTAMPING_BIND_PHC = (1 << 15), | 33 | SOF_TIMESTAMPING_BIND_PHC = (1 << 15), |
| 34 | SOF_TIMESTAMPING_OPT_ID_TCP = (1 << 16), | ||
| 34 | 35 | ||
| 35 | SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_BIND_PHC, | 36 | SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_ID_TCP, |
| 36 | SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | | 37 | SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | |
| 37 | SOF_TIMESTAMPING_LAST | 38 | SOF_TIMESTAMPING_LAST |
| 38 | }; | 39 | }; |
| @@ -85,6 +85,7 @@ enum { · 84 unmodified lines | |||
| 85 | IPSET_ATTR_CADT_LINENO = IPSET_ATTR_LINENO, /* 9 */ | 85 | IPSET_ATTR_CADT_LINENO = IPSET_ATTR_LINENO, /* 9 */ |
| 86 | IPSET_ATTR_MARK, /* 10 */ | 86 | IPSET_ATTR_MARK, /* 10 */ |
| 87 | IPSET_ATTR_MARKMASK, /* 11 */ | 87 | IPSET_ATTR_MARKMASK, /* 11 */ |
| 88 | IPSET_ATTR_BITMASK, /* 12 */ | ||
| 88 | /* Reserve empty slots */ | 89 | /* Reserve empty slots */ |
| 89 | IPSET_ATTR_CADT_MAX = 16, | 90 | IPSET_ATTR_CADT_MAX = 16, |
| 90 | /* Create-only specific attributes */ | 91 | /* Create-only specific attributes */ |
| @@ -153,6 +154,7 @@ enum ipset_errno { · 62 unmodified lines | |||
| 153 | IPSET_ERR_COMMENT, | 154 | IPSET_ERR_COMMENT, |
| 154 | IPSET_ERR_INVALID_MARKMASK, | 155 | IPSET_ERR_INVALID_MARKMASK, |
| 155 | IPSET_ERR_SKBINFO, | 156 | IPSET_ERR_SKBINFO, |
| 157 | IPSET_ERR_BITMASK_NETMASK_EXCL, | ||
| 156 | 158 | ||
| 157 | /* Type specific error codes */ | 159 | /* Type specific error codes */ |
| 158 | IPSET_ERR_TYPE_SPECIFIC = 4352, | 160 | IPSET_ERR_TYPE_SPECIFIC = 4352, |
| @@ -16,6 +16,7 @@ enum sctp_conntrack { · 15 unmodified lines | |||
| 16 | SCTP_CONNTRACK_SHUTDOWN_ACK_SENT, | 16 | SCTP_CONNTRACK_SHUTDOWN_ACK_SENT, |
| 17 | SCTP_CONNTRACK_HEARTBEAT_SENT, | 17 | SCTP_CONNTRACK_HEARTBEAT_SENT, |
| 18 | SCTP_CONNTRACK_HEARTBEAT_ACKED, | 18 | SCTP_CONNTRACK_HEARTBEAT_ACKED, |
| 19 | SCTP_CONNTRACK_DATA_SENT, | ||
| 19 | SCTP_CONNTRACK_MAX | 20 | SCTP_CONNTRACK_MAX |
| 20 | }; | 21 | }; |
| 21 | 22 | ||
| @@ -97,6 +97,7 @@ enum nft_verdicts { · 96 unmodified lines | |||
| 97 | * @NFT_MSG_NEWFLOWTABLE: add new flow table (enum nft_flowtable_attributes) | 97 | * @NFT_MSG_NEWFLOWTABLE: add new flow table (enum nft_flowtable_attributes) |
| 98 | * @NFT_MSG_GETFLOWTABLE: get flow table (enum nft_flowtable_attributes) | 98 | * @NFT_MSG_GETFLOWTABLE: get flow table (enum nft_flowtable_attributes) |
| 99 | * @NFT_MSG_DELFLOWTABLE: delete flow table (enum nft_flowtable_attributes) | 99 | * @NFT_MSG_DELFLOWTABLE: delete flow table (enum nft_flowtable_attributes) |
| 100 | * @NFT_MSG_GETRULE_RESET: get rules and reset stateful expressions (enum nft_obj_attributes) | ||
| 100 | */ | 101 | */ |
| 101 | enum nf_tables_msg_types { | 102 | enum nf_tables_msg_types { |
| 102 | NFT_MSG_NEWTABLE, | 103 | NFT_MSG_NEWTABLE, |
| @@ -124,6 +125,7 @@ enum nf_tables_msg_types { · 21 unmodified lines | |||
| 124 | NFT_MSG_NEWFLOWTABLE, | 125 | NFT_MSG_NEWFLOWTABLE, |
| 125 | NFT_MSG_GETFLOWTABLE, | 126 | NFT_MSG_GETFLOWTABLE, |
| 126 | NFT_MSG_DELFLOWTABLE, | 127 | NFT_MSG_DELFLOWTABLE, |
| 128 | NFT_MSG_GETRULE_RESET, | ||
| 127 | NFT_MSG_MAX, | 129 | NFT_MSG_MAX, |
| 128 | }; | 130 | }; |
| 129 | 131 | ||
| @@ -760,6 +762,7 @@ enum nft_payload_bases { · 630 unmodified lines | |||
| 760 | NFT_PAYLOAD_NETWORK_HEADER, | 762 | NFT_PAYLOAD_NETWORK_HEADER, |
| 761 | NFT_PAYLOAD_TRANSPORT_HEADER, | 763 | NFT_PAYLOAD_TRANSPORT_HEADER, |
| 762 | NFT_PAYLOAD_INNER_HEADER, | 764 | NFT_PAYLOAD_INNER_HEADER, |
| 765 | NFT_PAYLOAD_TUN_HEADER, | ||
| 763 | }; | 766 | }; |
| 764 | 767 | ||
| 765 | /** | 768 | /** |
| @@ -779,6 +782,32 @@ enum nft_payload_csum_flags { · 13 unmodified lines | |||
| 779 | NFT_PAYLOAD_L4CSUM_PSEUDOHDR = (1 << 0), | 782 | NFT_PAYLOAD_L4CSUM_PSEUDOHDR = (1 << 0), |
| 780 | }; | 783 | }; |
| 781 | 784 | ||
| 785 | enum nft_inner_type { | ||
| 786 | NFT_INNER_UNSPEC = 0, | ||
| 787 | NFT_INNER_VXLAN, | ||
| 788 | NFT_INNER_GENEVE, | ||
| 789 | }; | ||
| 790 | |||
| 791 | enum nft_inner_flags { | ||
| 792 | NFT_INNER_HDRSIZE = (1 << 0), | ||
| 793 | NFT_INNER_LL = (1 << 1), | ||
| 794 | NFT_INNER_NH = (1 << 2), | ||
| 795 | NFT_INNER_TH = (1 << 3), | ||
| 796 | }; | ||
| 797 | #define NFT_INNER_MASK (NFT_INNER_HDRSIZE | NFT_INNER_LL | \ | ||
| 798 | NFT_INNER_NH | NFT_INNER_TH) | ||
| 799 | |||
| 800 | enum nft_inner_attributes { | ||
| 801 | NFTA_INNER_UNSPEC, | ||
| 802 | NFTA_INNER_NUM, | ||
| 803 | NFTA_INNER_TYPE, | ||
| 804 | NFTA_INNER_FLAGS, | ||
| 805 | NFTA_INNER_HDRSIZE, | ||
| 806 | NFTA_INNER_EXPR, | ||
| 807 | __NFTA_INNER_MAX | ||
| 808 | }; | ||
| 809 | #define NFTA_INNER_MAX (__NFTA_INNER_MAX - 1) | ||
| 810 | |||
| 782 | /** | 811 | /** |
| 783 | * enum nft_payload_attributes - nf_tables payload expression netlink attributes | 812 | * enum nft_payload_attributes - nf_tables payload expression netlink attributes |
| 784 | * | 813 | * |
| @@ -95,6 +95,7 @@ enum ctattr_timeout_sctp { · 94 unmodified lines | |||
| 95 | CTA_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT, | 95 | CTA_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT, |
| 96 | CTA_TIMEOUT_SCTP_HEARTBEAT_SENT, | 96 | CTA_TIMEOUT_SCTP_HEARTBEAT_SENT, |
| 97 | CTA_TIMEOUT_SCTP_HEARTBEAT_ACKED, | 97 | CTA_TIMEOUT_SCTP_HEARTBEAT_ACKED, |
| 98 | CTA_TIMEOUT_SCTP_DATA_SENT, | ||
| 98 | __CTA_TIMEOUT_SCTP_MAX | 99 | __CTA_TIMEOUT_SCTP_MAX |
| 99 | }; | 100 | }; |
| 100 | #define CTA_TIMEOUT_SCTP_MAX (__CTA_TIMEOUT_SCTP_MAX - 1) | 101 | #define CTA_TIMEOUT_SCTP_MAX (__CTA_TIMEOUT_SCTP_MAX - 1) |
| @@ -2749,6 +2749,8 @@ enum nl80211_commands { · 2748 unmodified lines | |||
| 2749 | * When used with %NL80211_CMD_FRAME_TX_STATUS, indicates the ack RX | 2749 | * When used with %NL80211_CMD_FRAME_TX_STATUS, indicates the ack RX |
| 2750 | * timestamp. When used with %NL80211_CMD_FRAME RX notification, indicates | 2750 | * timestamp. When used with %NL80211_CMD_FRAME RX notification, indicates |
| 2751 | * the incoming frame RX timestamp. | 2751 | * the incoming frame RX timestamp. |
| 2752 | * @NL80211_ATTR_TD_BITMAP: Transition Disable bitmap, for subsequent | ||
| 2753 | * (re)associations. | ||
| 2752 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available | 2754 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 2753 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 2755 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 2754 | * @__NL80211_ATTR_AFTER_LAST: internal use | 2756 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| @@ -3276,6 +3278,7 @@ enum nl80211_attrs { · 521 unmodified lines | |||
| 3276 | 3278 | ||
| 3277 | NL80211_ATTR_TX_HW_TIMESTAMP, | 3279 | NL80211_ATTR_TX_HW_TIMESTAMP, |
| 3278 | NL80211_ATTR_RX_HW_TIMESTAMP, | 3280 | NL80211_ATTR_RX_HW_TIMESTAMP, |
| 3281 | NL80211_ATTR_TD_BITMAP, | ||
| 3279 | 3282 | ||
| 3280 | /* add attributes here, update the policy in nl80211.c */ | 3283 | /* add attributes here, update the policy in nl80211.c */ |
| 3281 | 3284 | ||
| @@ -277,11 +277,25 @@ enum ovs_vport_attr { · 276 unmodified lines | |||
| 277 | OVS_VPORT_ATTR_PAD, | 277 | OVS_VPORT_ATTR_PAD, |
| 278 | OVS_VPORT_ATTR_IFINDEX, | 278 | OVS_VPORT_ATTR_IFINDEX, |
| 279 | OVS_VPORT_ATTR_NETNSID, | 279 | OVS_VPORT_ATTR_NETNSID, |
| 280 | OVS_VPORT_ATTR_UPCALL_STATS, | ||
| 280 | __OVS_VPORT_ATTR_MAX | 281 | __OVS_VPORT_ATTR_MAX |
| 281 | }; | 282 | }; |
| 282 | 283 | ||
| 283 | #define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1) | 284 | #define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1) |
| 284 | 285 | ||
| 286 | /** | ||
| 287 | * enum ovs_vport_upcall_attr - attributes for %OVS_VPORT_UPCALL* commands | ||
| 288 | * @OVS_VPORT_UPCALL_SUCCESS: 64-bit upcall success packets. | ||
| 289 | * @OVS_VPORT_UPCALL_FAIL: 64-bit upcall fail packets. | ||
| 290 | */ | ||
| 291 | enum ovs_vport_upcall_attr { | ||
| 292 | OVS_VPORT_UPCALL_ATTR_SUCCESS, | ||
| 293 | OVS_VPORT_UPCALL_ATTR_FAIL, | ||
| 294 | __OVS_VPORT_UPCALL_ATTR_MAX | ||
| 295 | }; | ||
| 296 | |||
| 297 | #define OVS_VPORT_UPCALL_ATTR_MAX (__OVS_VPORT_UPCALL_ATTR_MAX - 1) | ||
| 298 | |||
| 285 | enum { | 299 | enum { |
| 286 | OVS_VXLAN_EXT_UNSPEC, | 300 | OVS_VXLAN_EXT_UNSPEC, |
| 287 | OVS_VXLAN_EXT_GBP, /* Flag or __u32 */ | 301 | OVS_VXLAN_EXT_GBP, /* Flag or __u32 */ |
| @@ -292,6 +292,7 @@ enum · 291 unmodified lines | |||
| 292 | LINUX_MIB_TCPDSACKIGNOREDDUBIOUS, /* TCPDSACKIgnoredDubious */ | 292 | LINUX_MIB_TCPDSACKIGNOREDDUBIOUS, /* TCPDSACKIgnoredDubious */ |
| 293 | LINUX_MIB_TCPMIGRATEREQSUCCESS, /* TCPMigrateReqSuccess */ | 293 | LINUX_MIB_TCPMIGRATEREQSUCCESS, /* TCPMigrateReqSuccess */ |
| 294 | LINUX_MIB_TCPMIGRATEREQFAILURE, /* TCPMigrateReqFailure */ | 294 | LINUX_MIB_TCPMIGRATEREQFAILURE, /* TCPMigrateReqFailure */ |
| 295 | LINUX_MIB_TCPPLBREHASH, /* TCPPLBRehash */ | ||
| 295 | __LINUX_MIB_MAX | 296 | __LINUX_MIB_MAX |
| 296 | }; | 297 | }; |
| 297 | 298 | ||
| @@ -22,6 +22,9 @@ enum { · 21 unmodified lines | |||
| 22 | TCA_CT_NAT_PORT_MIN, /* be16 */ | 22 | TCA_CT_NAT_PORT_MIN, /* be16 */ |
| 23 | TCA_CT_NAT_PORT_MAX, /* be16 */ | 23 | TCA_CT_NAT_PORT_MAX, /* be16 */ |
| 24 | TCA_CT_PAD, | 24 | TCA_CT_PAD, |
| 25 | TCA_CT_HELPER_NAME, /* string */ | ||
| 26 | TCA_CT_HELPER_FAMILY, /* u8 */ | ||
| 27 | TCA_CT_HELPER_PROTO, /* u8 */ | ||
| 25 | __TCA_CT_MAX | 28 | __TCA_CT_MAX |
| 26 | }; | 29 | }; |
| 27 | 30 | ||
| @@ -284,6 +284,11 @@ struct tcp_info { · 283 unmodified lines | |||
| 284 | __u32 tcpi_snd_wnd; /* peer's advertised receive window after | 284 | __u32 tcpi_snd_wnd; /* peer's advertised receive window after |
| 285 | * scaling (bytes) | 285 | * scaling (bytes) |
| 286 | */ | 286 | */ |
| 287 | __u32 tcpi_rcv_wnd; /* local advertised receive window after | ||
| 288 | * scaling (bytes) | ||
| 289 | */ | ||
| 290 | |||
| 291 | __u32 tcpi_rehash; /* PLB or timeout triggered rehash attempts */ | ||
| 287 | }; | 292 | }; |
| 288 | 293 | ||
| 289 | /* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */ | 294 | /* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */ |
| @@ -315,6 +320,7 @@ enum { · 25 unmodified lines | |||
| 315 | TCP_NLA_BYTES_NOTSENT, /* Bytes in write queue not yet sent */ | 320 | TCP_NLA_BYTES_NOTSENT, /* Bytes in write queue not yet sent */ |
| 316 | TCP_NLA_EDT, /* Earliest departure time (CLOCK_MONOTONIC) */ | 321 | TCP_NLA_EDT, /* Earliest departure time (CLOCK_MONOTONIC) */ |
| 317 | TCP_NLA_TTL, /* TTL or hop limit of a packet received */ | 322 | TCP_NLA_TTL, /* TTL or hop limit of a packet received */ |
| 323 | TCP_NLA_REHASH, /* PLB and timeout triggered rehash attempts */ | ||
| 318 | }; | 324 | }; |
| 319 | 325 | ||
| 320 | /* for TCP_MD5SIG socket option */ | 326 | /* for TCP_MD5SIG socket option */ |
| @@ -9,6 +9,7 @@ · 8 unmodified lines | |||
| 9 | #define VIRTIO_BT_F_VND_HCI 0 /* Indicates vendor command support */ | 9 | #define VIRTIO_BT_F_VND_HCI 0 /* Indicates vendor command support */ |
| 10 | #define VIRTIO_BT_F_MSFT_EXT 1 /* Indicates MSFT vendor support */ | 10 | #define VIRTIO_BT_F_MSFT_EXT 1 /* Indicates MSFT vendor support */ |
| 11 | #define VIRTIO_BT_F_AOSP_EXT 2 /* Indicates AOSP vendor support */ | 11 | #define VIRTIO_BT_F_AOSP_EXT 2 /* Indicates AOSP vendor support */ |
| 12 | #define VIRTIO_BT_F_CONFIG_V2 3 /* Use second version configuration */ | ||
| 12 | 13 | ||
| 13 | enum virtio_bt_config_type { | 14 | enum virtio_bt_config_type { |
| 14 | VIRTIO_BT_CONFIG_TYPE_PRIMARY = 0, | 15 | VIRTIO_BT_CONFIG_TYPE_PRIMARY = 0, |
| @@ -28,4 +29,11 @@ struct virtio_bt_config { · 13 unmodified lines | |||
| 28 | __u16 msft_opcode; | 29 | __u16 msft_opcode; |
| 29 | } __attribute__((packed)); | 30 | } __attribute__((packed)); |
| 30 | 31 | ||
| 32 | struct virtio_bt_config_v2 { | ||
| 33 | __u8 type; | ||
| 34 | __u8 alignment; | ||
| 35 | __u16 vendor; | ||
| 36 | __u16 msft_opcode; | ||
| 37 | }; | ||
| 38 | |||
| 31 | #endif /* _UAPI_LINUX_VIRTIO_BT_H */ | 39 | #endif /* _UAPI_LINUX_VIRTIO_BT_H */ |
| @@ -57,6 +57,9 @@ · 56 unmodified lines | |||
| 57 | * Steering */ | 57 | * Steering */ |
| 58 | #define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */ | 58 | #define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */ |
| 59 | #define VIRTIO_NET_F_NOTF_COAL 53 /* Device supports notifications coalescing */ | 59 | #define VIRTIO_NET_F_NOTF_COAL 53 /* Device supports notifications coalescing */ |
| 60 | #define VIRTIO_NET_F_GUEST_USO4 54 /* Guest can handle USOv4 in. */ | ||
| 61 | #define VIRTIO_NET_F_GUEST_USO6 55 /* Guest can handle USOv6 in. */ | ||
| 62 | #define VIRTIO_NET_F_HOST_USO 56 /* Host can handle USO in. */ | ||
| 60 | #define VIRTIO_NET_F_HASH_REPORT 57 /* Supports hash report */ | 63 | #define VIRTIO_NET_F_HASH_REPORT 57 /* Supports hash report */ |
| 61 | #define VIRTIO_NET_F_RSS 60 /* Supports RSS RX steering */ | 64 | #define VIRTIO_NET_F_RSS 60 /* Supports RSS RX steering */ |
| 62 | #define VIRTIO_NET_F_RSC_EXT 61 /* extended coalescing info */ | 65 | #define VIRTIO_NET_F_RSC_EXT 61 /* extended coalescing info */ |
| @@ -130,6 +133,7 @@ struct virtio_net_hdr_v1 { · 67 unmodified lines | |||
| 130 | #define VIRTIO_NET_HDR_GSO_TCPV4 1 /* GSO frame, IPv4 TCP (TSO) */ | 133 | #define VIRTIO_NET_HDR_GSO_TCPV4 1 /* GSO frame, IPv4 TCP (TSO) */ |
| 131 | #define VIRTIO_NET_HDR_GSO_UDP 3 /* GSO frame, IPv4 UDP (UFO) */ | 134 | #define VIRTIO_NET_HDR_GSO_UDP 3 /* GSO frame, IPv4 UDP (UFO) */ |
| 132 | #define VIRTIO_NET_HDR_GSO_TCPV6 4 /* GSO frame, IPv6 TCP */ | 135 | #define VIRTIO_NET_HDR_GSO_TCPV6 4 /* GSO frame, IPv6 TCP */ |
| 136 | #define VIRTIO_NET_HDR_GSO_UDP_L4 5 /* GSO frame, IPv4& IPv6 UDP (USO) */ | ||
| 133 | #define VIRTIO_NET_HDR_GSO_ECN 0x80 /* TCP has ECN set */ | 137 | #define VIRTIO_NET_HDR_GSO_ECN 0x80 /* TCP has ECN set */ |
| 134 | __u8 gso_type; | 138 | __u8 gso_type; |
| 135 | __virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */ | 139 | __virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */ |
| @@ -519,6 +519,12 @@ struct xfrm_user_offload { · 518 unmodified lines | |||
| 519 | */ | 519 | */ |
| 520 | #define XFRM_OFFLOAD_IPV6 1 | 520 | #define XFRM_OFFLOAD_IPV6 1 |
| 521 | #define XFRM_OFFLOAD_INBOUND 2 | 521 | #define XFRM_OFFLOAD_INBOUND 2 |
| 522 | /* Two bits above are relevant for state path only, while | ||
| 523 | * offload is used for both policy and state flows. | ||
| 524 | * | ||
| 525 | * In policy offload mode, they are free and can be safely reused. | ||
| 526 | */ | ||
| 527 | #define XFRM_OFFLOAD_PACKET 4 | ||
| 522 | 528 | ||
| 523 | struct xfrm_userpolicy_default { | 529 | struct xfrm_userpolicy_default { |
| 524 | #define XFRM_USERPOLICY_UNSPEC 0 | 530 | #define XFRM_USERPOLICY_UNSPEC 0 |