mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-22 17:52:09 +00:00
Merge tag 'net-next-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
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
...
This commit is contained in:
@@ -922,7 +922,14 @@ enum bpf_map_type {
|
||||
BPF_MAP_TYPE_CPUMAP,
|
||||
BPF_MAP_TYPE_XSKMAP,
|
||||
BPF_MAP_TYPE_SOCKHASH,
|
||||
BPF_MAP_TYPE_CGROUP_STORAGE,
|
||||
BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED,
|
||||
/* BPF_MAP_TYPE_CGROUP_STORAGE is available to bpf programs attaching
|
||||
* to a cgroup. The newer BPF_MAP_TYPE_CGRP_STORAGE is available to
|
||||
* both cgroup-attached and other progs and supports all functionality
|
||||
* provided by BPF_MAP_TYPE_CGROUP_STORAGE. So mark
|
||||
* BPF_MAP_TYPE_CGROUP_STORAGE deprecated.
|
||||
*/
|
||||
BPF_MAP_TYPE_CGROUP_STORAGE = BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED,
|
||||
BPF_MAP_TYPE_REUSEPORT_SOCKARRAY,
|
||||
BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE,
|
||||
BPF_MAP_TYPE_QUEUE,
|
||||
@@ -935,6 +942,7 @@ enum bpf_map_type {
|
||||
BPF_MAP_TYPE_TASK_STORAGE,
|
||||
BPF_MAP_TYPE_BLOOM_FILTER,
|
||||
BPF_MAP_TYPE_USER_RINGBUF,
|
||||
BPF_MAP_TYPE_CGRP_STORAGE,
|
||||
};
|
||||
|
||||
/* Note that tracing related programs such as
|
||||
@@ -2576,14 +2584,19 @@ union bpf_attr {
|
||||
* * **SOL_SOCKET**, which supports the following *optname*\ s:
|
||||
* **SO_RCVBUF**, **SO_SNDBUF**, **SO_MAX_PACING_RATE**,
|
||||
* **SO_PRIORITY**, **SO_RCVLOWAT**, **SO_MARK**,
|
||||
* **SO_BINDTODEVICE**, **SO_KEEPALIVE**.
|
||||
* **SO_BINDTODEVICE**, **SO_KEEPALIVE**, **SO_REUSEADDR**,
|
||||
* **SO_REUSEPORT**, **SO_BINDTOIFINDEX**, **SO_TXREHASH**.
|
||||
* * **IPPROTO_TCP**, which supports the following *optname*\ s:
|
||||
* **TCP_CONGESTION**, **TCP_BPF_IW**,
|
||||
* **TCP_BPF_SNDCWND_CLAMP**, **TCP_SAVE_SYN**,
|
||||
* **TCP_KEEPIDLE**, **TCP_KEEPINTVL**, **TCP_KEEPCNT**,
|
||||
* **TCP_SYNCNT**, **TCP_USER_TIMEOUT**, **TCP_NOTSENT_LOWAT**.
|
||||
* **TCP_SYNCNT**, **TCP_USER_TIMEOUT**, **TCP_NOTSENT_LOWAT**,
|
||||
* **TCP_NODELAY**, **TCP_MAXSEG**, **TCP_WINDOW_CLAMP**,
|
||||
* **TCP_THIN_LINEAR_TIMEOUTS**, **TCP_BPF_DELACK_MAX**,
|
||||
* **TCP_BPF_RTO_MIN**.
|
||||
* * **IPPROTO_IP**, which supports *optname* **IP_TOS**.
|
||||
* * **IPPROTO_IPV6**, which supports *optname* **IPV6_TCLASS**.
|
||||
* * **IPPROTO_IPV6**, which supports the following *optname*\ s:
|
||||
* **IPV6_TCLASS**, **IPV6_AUTOFLOWLABEL**.
|
||||
* Return
|
||||
* 0 on success, or a negative error in case of failure.
|
||||
*
|
||||
@@ -2639,7 +2652,7 @@ union bpf_attr {
|
||||
* Return
|
||||
* 0 on success, or a negative error in case of failure.
|
||||
*
|
||||
* long bpf_redirect_map(struct bpf_map *map, u32 key, u64 flags)
|
||||
* long bpf_redirect_map(struct bpf_map *map, u64 key, u64 flags)
|
||||
* Description
|
||||
* Redirect the packet to the endpoint referenced by *map* at
|
||||
* index *key*. Depending on its type, this *map* can contain
|
||||
@@ -2800,12 +2813,10 @@ union bpf_attr {
|
||||
* and **BPF_CGROUP_INET6_CONNECT**.
|
||||
*
|
||||
* This helper actually implements a subset of **getsockopt()**.
|
||||
* It supports the following *level*\ s:
|
||||
*
|
||||
* * **IPPROTO_TCP**, which supports *optname*
|
||||
* **TCP_CONGESTION**.
|
||||
* * **IPPROTO_IP**, which supports *optname* **IP_TOS**.
|
||||
* * **IPPROTO_IPV6**, which supports *optname* **IPV6_TCLASS**.
|
||||
* It supports the same set of *optname*\ s that is supported by
|
||||
* the **bpf_setsockopt**\ () helper. The exceptions are
|
||||
* **TCP_BPF_*** is **bpf_setsockopt**\ () only and
|
||||
* **TCP_SAVED_SYN** is **bpf_getsockopt**\ () only.
|
||||
* Return
|
||||
* 0 on success, or a negative error in case of failure.
|
||||
*
|
||||
@@ -5282,7 +5293,7 @@ union bpf_attr {
|
||||
* Return
|
||||
* Nothing. Always succeeds.
|
||||
*
|
||||
* long bpf_dynptr_read(void *dst, u32 len, struct bpf_dynptr *src, u32 offset, u64 flags)
|
||||
* long bpf_dynptr_read(void *dst, u32 len, const struct bpf_dynptr *src, u32 offset, u64 flags)
|
||||
* Description
|
||||
* Read *len* bytes from *src* into *dst*, starting from *offset*
|
||||
* into *src*.
|
||||
@@ -5292,7 +5303,7 @@ union bpf_attr {
|
||||
* of *src*'s data, -EINVAL if *src* is an invalid dynptr or if
|
||||
* *flags* is not 0.
|
||||
*
|
||||
* long bpf_dynptr_write(struct bpf_dynptr *dst, u32 offset, void *src, u32 len, u64 flags)
|
||||
* long bpf_dynptr_write(const struct bpf_dynptr *dst, u32 offset, void *src, u32 len, u64 flags)
|
||||
* Description
|
||||
* Write *len* bytes from *src* into *dst*, starting from *offset*
|
||||
* into *dst*.
|
||||
@@ -5302,7 +5313,7 @@ union bpf_attr {
|
||||
* of *dst*'s data, -EINVAL if *dst* is an invalid dynptr or if *dst*
|
||||
* is a read-only dynptr or if *flags* is not 0.
|
||||
*
|
||||
* void *bpf_dynptr_data(struct bpf_dynptr *ptr, u32 offset, u32 len)
|
||||
* void *bpf_dynptr_data(const struct bpf_dynptr *ptr, u32 offset, u32 len)
|
||||
* Description
|
||||
* Get a pointer to the underlying dynptr data.
|
||||
*
|
||||
@@ -5403,7 +5414,7 @@ union bpf_attr {
|
||||
* Drain samples from the specified user ring buffer, and invoke
|
||||
* the provided callback for each such sample:
|
||||
*
|
||||
* long (\*callback_fn)(struct bpf_dynptr \*dynptr, void \*ctx);
|
||||
* long (\*callback_fn)(const struct bpf_dynptr \*dynptr, void \*ctx);
|
||||
*
|
||||
* If **callback_fn** returns 0, the helper will continue to try
|
||||
* and drain the next sample, up to a maximum of
|
||||
@@ -5435,226 +5446,272 @@ union bpf_attr {
|
||||
* **-E2BIG** if user-space has tried to publish a sample which is
|
||||
* larger than the size of the ring buffer, or which cannot fit
|
||||
* within a struct bpf_dynptr.
|
||||
*
|
||||
* void *bpf_cgrp_storage_get(struct bpf_map *map, struct cgroup *cgroup, void *value, u64 flags)
|
||||
* Description
|
||||
* Get a bpf_local_storage from the *cgroup*.
|
||||
*
|
||||
* Logically, it could be thought of as getting the value from
|
||||
* a *map* with *cgroup* as the **key**. From this
|
||||
* perspective, the usage is not much different from
|
||||
* **bpf_map_lookup_elem**\ (*map*, **&**\ *cgroup*) except this
|
||||
* helper enforces the key must be a cgroup struct and the map must also
|
||||
* be a **BPF_MAP_TYPE_CGRP_STORAGE**.
|
||||
*
|
||||
* In reality, the local-storage value is embedded directly inside of the
|
||||
* *cgroup* object itself, rather than being located in the
|
||||
* **BPF_MAP_TYPE_CGRP_STORAGE** map. When the local-storage value is
|
||||
* queried for some *map* on a *cgroup* object, the kernel will perform an
|
||||
* O(n) iteration over all of the live local-storage values for that
|
||||
* *cgroup* object until the local-storage value for the *map* is found.
|
||||
*
|
||||
* An optional *flags* (**BPF_LOCAL_STORAGE_GET_F_CREATE**) can be
|
||||
* used such that a new bpf_local_storage will be
|
||||
* created if one does not exist. *value* can be used
|
||||
* together with **BPF_LOCAL_STORAGE_GET_F_CREATE** to specify
|
||||
* the initial value of a bpf_local_storage. If *value* is
|
||||
* **NULL**, the new bpf_local_storage will be zero initialized.
|
||||
* Return
|
||||
* A bpf_local_storage pointer is returned on success.
|
||||
*
|
||||
* **NULL** if not found or there was an error in adding
|
||||
* a new bpf_local_storage.
|
||||
*
|
||||
* long bpf_cgrp_storage_delete(struct bpf_map *map, struct cgroup *cgroup)
|
||||
* Description
|
||||
* Delete a bpf_local_storage from a *cgroup*.
|
||||
* Return
|
||||
* 0 on success.
|
||||
*
|
||||
* **-ENOENT** if the bpf_local_storage cannot be found.
|
||||
*/
|
||||
#define __BPF_FUNC_MAPPER(FN) \
|
||||
FN(unspec), \
|
||||
FN(map_lookup_elem), \
|
||||
FN(map_update_elem), \
|
||||
FN(map_delete_elem), \
|
||||
FN(probe_read), \
|
||||
FN(ktime_get_ns), \
|
||||
FN(trace_printk), \
|
||||
FN(get_prandom_u32), \
|
||||
FN(get_smp_processor_id), \
|
||||
FN(skb_store_bytes), \
|
||||
FN(l3_csum_replace), \
|
||||
FN(l4_csum_replace), \
|
||||
FN(tail_call), \
|
||||
FN(clone_redirect), \
|
||||
FN(get_current_pid_tgid), \
|
||||
FN(get_current_uid_gid), \
|
||||
FN(get_current_comm), \
|
||||
FN(get_cgroup_classid), \
|
||||
FN(skb_vlan_push), \
|
||||
FN(skb_vlan_pop), \
|
||||
FN(skb_get_tunnel_key), \
|
||||
FN(skb_set_tunnel_key), \
|
||||
FN(perf_event_read), \
|
||||
FN(redirect), \
|
||||
FN(get_route_realm), \
|
||||
FN(perf_event_output), \
|
||||
FN(skb_load_bytes), \
|
||||
FN(get_stackid), \
|
||||
FN(csum_diff), \
|
||||
FN(skb_get_tunnel_opt), \
|
||||
FN(skb_set_tunnel_opt), \
|
||||
FN(skb_change_proto), \
|
||||
FN(skb_change_type), \
|
||||
FN(skb_under_cgroup), \
|
||||
FN(get_hash_recalc), \
|
||||
FN(get_current_task), \
|
||||
FN(probe_write_user), \
|
||||
FN(current_task_under_cgroup), \
|
||||
FN(skb_change_tail), \
|
||||
FN(skb_pull_data), \
|
||||
FN(csum_update), \
|
||||
FN(set_hash_invalid), \
|
||||
FN(get_numa_node_id), \
|
||||
FN(skb_change_head), \
|
||||
FN(xdp_adjust_head), \
|
||||
FN(probe_read_str), \
|
||||
FN(get_socket_cookie), \
|
||||
FN(get_socket_uid), \
|
||||
FN(set_hash), \
|
||||
FN(setsockopt), \
|
||||
FN(skb_adjust_room), \
|
||||
FN(redirect_map), \
|
||||
FN(sk_redirect_map), \
|
||||
FN(sock_map_update), \
|
||||
FN(xdp_adjust_meta), \
|
||||
FN(perf_event_read_value), \
|
||||
FN(perf_prog_read_value), \
|
||||
FN(getsockopt), \
|
||||
FN(override_return), \
|
||||
FN(sock_ops_cb_flags_set), \
|
||||
FN(msg_redirect_map), \
|
||||
FN(msg_apply_bytes), \
|
||||
FN(msg_cork_bytes), \
|
||||
FN(msg_pull_data), \
|
||||
FN(bind), \
|
||||
FN(xdp_adjust_tail), \
|
||||
FN(skb_get_xfrm_state), \
|
||||
FN(get_stack), \
|
||||
FN(skb_load_bytes_relative), \
|
||||
FN(fib_lookup), \
|
||||
FN(sock_hash_update), \
|
||||
FN(msg_redirect_hash), \
|
||||
FN(sk_redirect_hash), \
|
||||
FN(lwt_push_encap), \
|
||||
FN(lwt_seg6_store_bytes), \
|
||||
FN(lwt_seg6_adjust_srh), \
|
||||
FN(lwt_seg6_action), \
|
||||
FN(rc_repeat), \
|
||||
FN(rc_keydown), \
|
||||
FN(skb_cgroup_id), \
|
||||
FN(get_current_cgroup_id), \
|
||||
FN(get_local_storage), \
|
||||
FN(sk_select_reuseport), \
|
||||
FN(skb_ancestor_cgroup_id), \
|
||||
FN(sk_lookup_tcp), \
|
||||
FN(sk_lookup_udp), \
|
||||
FN(sk_release), \
|
||||
FN(map_push_elem), \
|
||||
FN(map_pop_elem), \
|
||||
FN(map_peek_elem), \
|
||||
FN(msg_push_data), \
|
||||
FN(msg_pop_data), \
|
||||
FN(rc_pointer_rel), \
|
||||
FN(spin_lock), \
|
||||
FN(spin_unlock), \
|
||||
FN(sk_fullsock), \
|
||||
FN(tcp_sock), \
|
||||
FN(skb_ecn_set_ce), \
|
||||
FN(get_listener_sock), \
|
||||
FN(skc_lookup_tcp), \
|
||||
FN(tcp_check_syncookie), \
|
||||
FN(sysctl_get_name), \
|
||||
FN(sysctl_get_current_value), \
|
||||
FN(sysctl_get_new_value), \
|
||||
FN(sysctl_set_new_value), \
|
||||
FN(strtol), \
|
||||
FN(strtoul), \
|
||||
FN(sk_storage_get), \
|
||||
FN(sk_storage_delete), \
|
||||
FN(send_signal), \
|
||||
FN(tcp_gen_syncookie), \
|
||||
FN(skb_output), \
|
||||
FN(probe_read_user), \
|
||||
FN(probe_read_kernel), \
|
||||
FN(probe_read_user_str), \
|
||||
FN(probe_read_kernel_str), \
|
||||
FN(tcp_send_ack), \
|
||||
FN(send_signal_thread), \
|
||||
FN(jiffies64), \
|
||||
FN(read_branch_records), \
|
||||
FN(get_ns_current_pid_tgid), \
|
||||
FN(xdp_output), \
|
||||
FN(get_netns_cookie), \
|
||||
FN(get_current_ancestor_cgroup_id), \
|
||||
FN(sk_assign), \
|
||||
FN(ktime_get_boot_ns), \
|
||||
FN(seq_printf), \
|
||||
FN(seq_write), \
|
||||
FN(sk_cgroup_id), \
|
||||
FN(sk_ancestor_cgroup_id), \
|
||||
FN(ringbuf_output), \
|
||||
FN(ringbuf_reserve), \
|
||||
FN(ringbuf_submit), \
|
||||
FN(ringbuf_discard), \
|
||||
FN(ringbuf_query), \
|
||||
FN(csum_level), \
|
||||
FN(skc_to_tcp6_sock), \
|
||||
FN(skc_to_tcp_sock), \
|
||||
FN(skc_to_tcp_timewait_sock), \
|
||||
FN(skc_to_tcp_request_sock), \
|
||||
FN(skc_to_udp6_sock), \
|
||||
FN(get_task_stack), \
|
||||
FN(load_hdr_opt), \
|
||||
FN(store_hdr_opt), \
|
||||
FN(reserve_hdr_opt), \
|
||||
FN(inode_storage_get), \
|
||||
FN(inode_storage_delete), \
|
||||
FN(d_path), \
|
||||
FN(copy_from_user), \
|
||||
FN(snprintf_btf), \
|
||||
FN(seq_printf_btf), \
|
||||
FN(skb_cgroup_classid), \
|
||||
FN(redirect_neigh), \
|
||||
FN(per_cpu_ptr), \
|
||||
FN(this_cpu_ptr), \
|
||||
FN(redirect_peer), \
|
||||
FN(task_storage_get), \
|
||||
FN(task_storage_delete), \
|
||||
FN(get_current_task_btf), \
|
||||
FN(bprm_opts_set), \
|
||||
FN(ktime_get_coarse_ns), \
|
||||
FN(ima_inode_hash), \
|
||||
FN(sock_from_file), \
|
||||
FN(check_mtu), \
|
||||
FN(for_each_map_elem), \
|
||||
FN(snprintf), \
|
||||
FN(sys_bpf), \
|
||||
FN(btf_find_by_name_kind), \
|
||||
FN(sys_close), \
|
||||
FN(timer_init), \
|
||||
FN(timer_set_callback), \
|
||||
FN(timer_start), \
|
||||
FN(timer_cancel), \
|
||||
FN(get_func_ip), \
|
||||
FN(get_attach_cookie), \
|
||||
FN(task_pt_regs), \
|
||||
FN(get_branch_snapshot), \
|
||||
FN(trace_vprintk), \
|
||||
FN(skc_to_unix_sock), \
|
||||
FN(kallsyms_lookup_name), \
|
||||
FN(find_vma), \
|
||||
FN(loop), \
|
||||
FN(strncmp), \
|
||||
FN(get_func_arg), \
|
||||
FN(get_func_ret), \
|
||||
FN(get_func_arg_cnt), \
|
||||
FN(get_retval), \
|
||||
FN(set_retval), \
|
||||
FN(xdp_get_buff_len), \
|
||||
FN(xdp_load_bytes), \
|
||||
FN(xdp_store_bytes), \
|
||||
FN(copy_from_user_task), \
|
||||
FN(skb_set_tstamp), \
|
||||
FN(ima_file_hash), \
|
||||
FN(kptr_xchg), \
|
||||
FN(map_lookup_percpu_elem), \
|
||||
FN(skc_to_mptcp_sock), \
|
||||
FN(dynptr_from_mem), \
|
||||
FN(ringbuf_reserve_dynptr), \
|
||||
FN(ringbuf_submit_dynptr), \
|
||||
FN(ringbuf_discard_dynptr), \
|
||||
FN(dynptr_read), \
|
||||
FN(dynptr_write), \
|
||||
FN(dynptr_data), \
|
||||
FN(tcp_raw_gen_syncookie_ipv4), \
|
||||
FN(tcp_raw_gen_syncookie_ipv6), \
|
||||
FN(tcp_raw_check_syncookie_ipv4), \
|
||||
FN(tcp_raw_check_syncookie_ipv6), \
|
||||
FN(ktime_get_tai_ns), \
|
||||
FN(user_ringbuf_drain), \
|
||||
#define ___BPF_FUNC_MAPPER(FN, ctx...) \
|
||||
FN(unspec, 0, ##ctx) \
|
||||
FN(map_lookup_elem, 1, ##ctx) \
|
||||
FN(map_update_elem, 2, ##ctx) \
|
||||
FN(map_delete_elem, 3, ##ctx) \
|
||||
FN(probe_read, 4, ##ctx) \
|
||||
FN(ktime_get_ns, 5, ##ctx) \
|
||||
FN(trace_printk, 6, ##ctx) \
|
||||
FN(get_prandom_u32, 7, ##ctx) \
|
||||
FN(get_smp_processor_id, 8, ##ctx) \
|
||||
FN(skb_store_bytes, 9, ##ctx) \
|
||||
FN(l3_csum_replace, 10, ##ctx) \
|
||||
FN(l4_csum_replace, 11, ##ctx) \
|
||||
FN(tail_call, 12, ##ctx) \
|
||||
FN(clone_redirect, 13, ##ctx) \
|
||||
FN(get_current_pid_tgid, 14, ##ctx) \
|
||||
FN(get_current_uid_gid, 15, ##ctx) \
|
||||
FN(get_current_comm, 16, ##ctx) \
|
||||
FN(get_cgroup_classid, 17, ##ctx) \
|
||||
FN(skb_vlan_push, 18, ##ctx) \
|
||||
FN(skb_vlan_pop, 19, ##ctx) \
|
||||
FN(skb_get_tunnel_key, 20, ##ctx) \
|
||||
FN(skb_set_tunnel_key, 21, ##ctx) \
|
||||
FN(perf_event_read, 22, ##ctx) \
|
||||
FN(redirect, 23, ##ctx) \
|
||||
FN(get_route_realm, 24, ##ctx) \
|
||||
FN(perf_event_output, 25, ##ctx) \
|
||||
FN(skb_load_bytes, 26, ##ctx) \
|
||||
FN(get_stackid, 27, ##ctx) \
|
||||
FN(csum_diff, 28, ##ctx) \
|
||||
FN(skb_get_tunnel_opt, 29, ##ctx) \
|
||||
FN(skb_set_tunnel_opt, 30, ##ctx) \
|
||||
FN(skb_change_proto, 31, ##ctx) \
|
||||
FN(skb_change_type, 32, ##ctx) \
|
||||
FN(skb_under_cgroup, 33, ##ctx) \
|
||||
FN(get_hash_recalc, 34, ##ctx) \
|
||||
FN(get_current_task, 35, ##ctx) \
|
||||
FN(probe_write_user, 36, ##ctx) \
|
||||
FN(current_task_under_cgroup, 37, ##ctx) \
|
||||
FN(skb_change_tail, 38, ##ctx) \
|
||||
FN(skb_pull_data, 39, ##ctx) \
|
||||
FN(csum_update, 40, ##ctx) \
|
||||
FN(set_hash_invalid, 41, ##ctx) \
|
||||
FN(get_numa_node_id, 42, ##ctx) \
|
||||
FN(skb_change_head, 43, ##ctx) \
|
||||
FN(xdp_adjust_head, 44, ##ctx) \
|
||||
FN(probe_read_str, 45, ##ctx) \
|
||||
FN(get_socket_cookie, 46, ##ctx) \
|
||||
FN(get_socket_uid, 47, ##ctx) \
|
||||
FN(set_hash, 48, ##ctx) \
|
||||
FN(setsockopt, 49, ##ctx) \
|
||||
FN(skb_adjust_room, 50, ##ctx) \
|
||||
FN(redirect_map, 51, ##ctx) \
|
||||
FN(sk_redirect_map, 52, ##ctx) \
|
||||
FN(sock_map_update, 53, ##ctx) \
|
||||
FN(xdp_adjust_meta, 54, ##ctx) \
|
||||
FN(perf_event_read_value, 55, ##ctx) \
|
||||
FN(perf_prog_read_value, 56, ##ctx) \
|
||||
FN(getsockopt, 57, ##ctx) \
|
||||
FN(override_return, 58, ##ctx) \
|
||||
FN(sock_ops_cb_flags_set, 59, ##ctx) \
|
||||
FN(msg_redirect_map, 60, ##ctx) \
|
||||
FN(msg_apply_bytes, 61, ##ctx) \
|
||||
FN(msg_cork_bytes, 62, ##ctx) \
|
||||
FN(msg_pull_data, 63, ##ctx) \
|
||||
FN(bind, 64, ##ctx) \
|
||||
FN(xdp_adjust_tail, 65, ##ctx) \
|
||||
FN(skb_get_xfrm_state, 66, ##ctx) \
|
||||
FN(get_stack, 67, ##ctx) \
|
||||
FN(skb_load_bytes_relative, 68, ##ctx) \
|
||||
FN(fib_lookup, 69, ##ctx) \
|
||||
FN(sock_hash_update, 70, ##ctx) \
|
||||
FN(msg_redirect_hash, 71, ##ctx) \
|
||||
FN(sk_redirect_hash, 72, ##ctx) \
|
||||
FN(lwt_push_encap, 73, ##ctx) \
|
||||
FN(lwt_seg6_store_bytes, 74, ##ctx) \
|
||||
FN(lwt_seg6_adjust_srh, 75, ##ctx) \
|
||||
FN(lwt_seg6_action, 76, ##ctx) \
|
||||
FN(rc_repeat, 77, ##ctx) \
|
||||
FN(rc_keydown, 78, ##ctx) \
|
||||
FN(skb_cgroup_id, 79, ##ctx) \
|
||||
FN(get_current_cgroup_id, 80, ##ctx) \
|
||||
FN(get_local_storage, 81, ##ctx) \
|
||||
FN(sk_select_reuseport, 82, ##ctx) \
|
||||
FN(skb_ancestor_cgroup_id, 83, ##ctx) \
|
||||
FN(sk_lookup_tcp, 84, ##ctx) \
|
||||
FN(sk_lookup_udp, 85, ##ctx) \
|
||||
FN(sk_release, 86, ##ctx) \
|
||||
FN(map_push_elem, 87, ##ctx) \
|
||||
FN(map_pop_elem, 88, ##ctx) \
|
||||
FN(map_peek_elem, 89, ##ctx) \
|
||||
FN(msg_push_data, 90, ##ctx) \
|
||||
FN(msg_pop_data, 91, ##ctx) \
|
||||
FN(rc_pointer_rel, 92, ##ctx) \
|
||||
FN(spin_lock, 93, ##ctx) \
|
||||
FN(spin_unlock, 94, ##ctx) \
|
||||
FN(sk_fullsock, 95, ##ctx) \
|
||||
FN(tcp_sock, 96, ##ctx) \
|
||||
FN(skb_ecn_set_ce, 97, ##ctx) \
|
||||
FN(get_listener_sock, 98, ##ctx) \
|
||||
FN(skc_lookup_tcp, 99, ##ctx) \
|
||||
FN(tcp_check_syncookie, 100, ##ctx) \
|
||||
FN(sysctl_get_name, 101, ##ctx) \
|
||||
FN(sysctl_get_current_value, 102, ##ctx) \
|
||||
FN(sysctl_get_new_value, 103, ##ctx) \
|
||||
FN(sysctl_set_new_value, 104, ##ctx) \
|
||||
FN(strtol, 105, ##ctx) \
|
||||
FN(strtoul, 106, ##ctx) \
|
||||
FN(sk_storage_get, 107, ##ctx) \
|
||||
FN(sk_storage_delete, 108, ##ctx) \
|
||||
FN(send_signal, 109, ##ctx) \
|
||||
FN(tcp_gen_syncookie, 110, ##ctx) \
|
||||
FN(skb_output, 111, ##ctx) \
|
||||
FN(probe_read_user, 112, ##ctx) \
|
||||
FN(probe_read_kernel, 113, ##ctx) \
|
||||
FN(probe_read_user_str, 114, ##ctx) \
|
||||
FN(probe_read_kernel_str, 115, ##ctx) \
|
||||
FN(tcp_send_ack, 116, ##ctx) \
|
||||
FN(send_signal_thread, 117, ##ctx) \
|
||||
FN(jiffies64, 118, ##ctx) \
|
||||
FN(read_branch_records, 119, ##ctx) \
|
||||
FN(get_ns_current_pid_tgid, 120, ##ctx) \
|
||||
FN(xdp_output, 121, ##ctx) \
|
||||
FN(get_netns_cookie, 122, ##ctx) \
|
||||
FN(get_current_ancestor_cgroup_id, 123, ##ctx) \
|
||||
FN(sk_assign, 124, ##ctx) \
|
||||
FN(ktime_get_boot_ns, 125, ##ctx) \
|
||||
FN(seq_printf, 126, ##ctx) \
|
||||
FN(seq_write, 127, ##ctx) \
|
||||
FN(sk_cgroup_id, 128, ##ctx) \
|
||||
FN(sk_ancestor_cgroup_id, 129, ##ctx) \
|
||||
FN(ringbuf_output, 130, ##ctx) \
|
||||
FN(ringbuf_reserve, 131, ##ctx) \
|
||||
FN(ringbuf_submit, 132, ##ctx) \
|
||||
FN(ringbuf_discard, 133, ##ctx) \
|
||||
FN(ringbuf_query, 134, ##ctx) \
|
||||
FN(csum_level, 135, ##ctx) \
|
||||
FN(skc_to_tcp6_sock, 136, ##ctx) \
|
||||
FN(skc_to_tcp_sock, 137, ##ctx) \
|
||||
FN(skc_to_tcp_timewait_sock, 138, ##ctx) \
|
||||
FN(skc_to_tcp_request_sock, 139, ##ctx) \
|
||||
FN(skc_to_udp6_sock, 140, ##ctx) \
|
||||
FN(get_task_stack, 141, ##ctx) \
|
||||
FN(load_hdr_opt, 142, ##ctx) \
|
||||
FN(store_hdr_opt, 143, ##ctx) \
|
||||
FN(reserve_hdr_opt, 144, ##ctx) \
|
||||
FN(inode_storage_get, 145, ##ctx) \
|
||||
FN(inode_storage_delete, 146, ##ctx) \
|
||||
FN(d_path, 147, ##ctx) \
|
||||
FN(copy_from_user, 148, ##ctx) \
|
||||
FN(snprintf_btf, 149, ##ctx) \
|
||||
FN(seq_printf_btf, 150, ##ctx) \
|
||||
FN(skb_cgroup_classid, 151, ##ctx) \
|
||||
FN(redirect_neigh, 152, ##ctx) \
|
||||
FN(per_cpu_ptr, 153, ##ctx) \
|
||||
FN(this_cpu_ptr, 154, ##ctx) \
|
||||
FN(redirect_peer, 155, ##ctx) \
|
||||
FN(task_storage_get, 156, ##ctx) \
|
||||
FN(task_storage_delete, 157, ##ctx) \
|
||||
FN(get_current_task_btf, 158, ##ctx) \
|
||||
FN(bprm_opts_set, 159, ##ctx) \
|
||||
FN(ktime_get_coarse_ns, 160, ##ctx) \
|
||||
FN(ima_inode_hash, 161, ##ctx) \
|
||||
FN(sock_from_file, 162, ##ctx) \
|
||||
FN(check_mtu, 163, ##ctx) \
|
||||
FN(for_each_map_elem, 164, ##ctx) \
|
||||
FN(snprintf, 165, ##ctx) \
|
||||
FN(sys_bpf, 166, ##ctx) \
|
||||
FN(btf_find_by_name_kind, 167, ##ctx) \
|
||||
FN(sys_close, 168, ##ctx) \
|
||||
FN(timer_init, 169, ##ctx) \
|
||||
FN(timer_set_callback, 170, ##ctx) \
|
||||
FN(timer_start, 171, ##ctx) \
|
||||
FN(timer_cancel, 172, ##ctx) \
|
||||
FN(get_func_ip, 173, ##ctx) \
|
||||
FN(get_attach_cookie, 174, ##ctx) \
|
||||
FN(task_pt_regs, 175, ##ctx) \
|
||||
FN(get_branch_snapshot, 176, ##ctx) \
|
||||
FN(trace_vprintk, 177, ##ctx) \
|
||||
FN(skc_to_unix_sock, 178, ##ctx) \
|
||||
FN(kallsyms_lookup_name, 179, ##ctx) \
|
||||
FN(find_vma, 180, ##ctx) \
|
||||
FN(loop, 181, ##ctx) \
|
||||
FN(strncmp, 182, ##ctx) \
|
||||
FN(get_func_arg, 183, ##ctx) \
|
||||
FN(get_func_ret, 184, ##ctx) \
|
||||
FN(get_func_arg_cnt, 185, ##ctx) \
|
||||
FN(get_retval, 186, ##ctx) \
|
||||
FN(set_retval, 187, ##ctx) \
|
||||
FN(xdp_get_buff_len, 188, ##ctx) \
|
||||
FN(xdp_load_bytes, 189, ##ctx) \
|
||||
FN(xdp_store_bytes, 190, ##ctx) \
|
||||
FN(copy_from_user_task, 191, ##ctx) \
|
||||
FN(skb_set_tstamp, 192, ##ctx) \
|
||||
FN(ima_file_hash, 193, ##ctx) \
|
||||
FN(kptr_xchg, 194, ##ctx) \
|
||||
FN(map_lookup_percpu_elem, 195, ##ctx) \
|
||||
FN(skc_to_mptcp_sock, 196, ##ctx) \
|
||||
FN(dynptr_from_mem, 197, ##ctx) \
|
||||
FN(ringbuf_reserve_dynptr, 198, ##ctx) \
|
||||
FN(ringbuf_submit_dynptr, 199, ##ctx) \
|
||||
FN(ringbuf_discard_dynptr, 200, ##ctx) \
|
||||
FN(dynptr_read, 201, ##ctx) \
|
||||
FN(dynptr_write, 202, ##ctx) \
|
||||
FN(dynptr_data, 203, ##ctx) \
|
||||
FN(tcp_raw_gen_syncookie_ipv4, 204, ##ctx) \
|
||||
FN(tcp_raw_gen_syncookie_ipv6, 205, ##ctx) \
|
||||
FN(tcp_raw_check_syncookie_ipv4, 206, ##ctx) \
|
||||
FN(tcp_raw_check_syncookie_ipv6, 207, ##ctx) \
|
||||
FN(ktime_get_tai_ns, 208, ##ctx) \
|
||||
FN(user_ringbuf_drain, 209, ##ctx) \
|
||||
FN(cgrp_storage_get, 210, ##ctx) \
|
||||
FN(cgrp_storage_delete, 211, ##ctx) \
|
||||
/* */
|
||||
|
||||
/* backwards-compatibility macros for users of __BPF_FUNC_MAPPER that don't
|
||||
* know or care about integer value that is now passed as second argument
|
||||
*/
|
||||
#define __BPF_FUNC_MAPPER_APPLY(name, value, FN) FN(name),
|
||||
#define __BPF_FUNC_MAPPER(FN) ___BPF_FUNC_MAPPER(__BPF_FUNC_MAPPER_APPLY, FN)
|
||||
|
||||
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
||||
* function eBPF program intends to call
|
||||
*/
|
||||
#define __BPF_ENUM_FN(x) BPF_FUNC_ ## x
|
||||
#define __BPF_ENUM_FN(x, y) BPF_FUNC_ ## x = y,
|
||||
enum bpf_func_id {
|
||||
__BPF_FUNC_MAPPER(__BPF_ENUM_FN)
|
||||
___BPF_FUNC_MAPPER(__BPF_ENUM_FN)
|
||||
__BPF_FUNC_MAX_ID,
|
||||
};
|
||||
#undef __BPF_ENUM_FN
|
||||
@@ -6391,6 +6448,7 @@ struct bpf_sock_ops {
|
||||
* the outgoing header has not
|
||||
* been written yet.
|
||||
*/
|
||||
__u64 skb_hwtstamp;
|
||||
};
|
||||
|
||||
/* Definitions for bpf_sock_ops_cb_flags */
|
||||
@@ -6833,6 +6891,16 @@ struct bpf_dynptr {
|
||||
__u64 :64;
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
struct bpf_list_head {
|
||||
__u64 :64;
|
||||
__u64 :64;
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
struct bpf_list_node {
|
||||
__u64 :64;
|
||||
__u64 :64;
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
struct bpf_sysctl {
|
||||
__u32 write; /* Sysctl is being read (= 0) or written (= 1).
|
||||
* Allows 1,2,4-byte read, but no write.
|
||||
|
||||
@@ -218,6 +218,9 @@ struct cee_pfc {
|
||||
#define IEEE_8021QAZ_APP_SEL_ANY 4
|
||||
#define IEEE_8021QAZ_APP_SEL_DSCP 5
|
||||
|
||||
/* Non-std selector values */
|
||||
#define DCB_APP_SEL_PCP 255
|
||||
|
||||
/* This structure contains the IEEE 802.1Qaz APP managed object. This
|
||||
* object is also used for the CEE std as well.
|
||||
*
|
||||
@@ -247,6 +250,8 @@ struct dcb_app {
|
||||
__u16 protocol;
|
||||
};
|
||||
|
||||
#define IEEE_8021QAZ_APP_SEL_MAX 255
|
||||
|
||||
/**
|
||||
* struct dcb_peer_app_info - APP feature information sent by the peer
|
||||
*
|
||||
@@ -405,6 +410,7 @@ enum dcbnl_attrs {
|
||||
* @DCB_ATTR_IEEE_PEER_ETS: peer ETS configuration - get only
|
||||
* @DCB_ATTR_IEEE_PEER_PFC: peer PFC configuration - get only
|
||||
* @DCB_ATTR_IEEE_PEER_APP: peer APP tlv - get only
|
||||
* @DCB_ATTR_DCB_APP_TRUST_TABLE: selector trust table
|
||||
*/
|
||||
enum ieee_attrs {
|
||||
DCB_ATTR_IEEE_UNSPEC,
|
||||
@@ -418,6 +424,7 @@ enum ieee_attrs {
|
||||
DCB_ATTR_IEEE_QCN,
|
||||
DCB_ATTR_IEEE_QCN_STATS,
|
||||
DCB_ATTR_DCB_BUFFER,
|
||||
DCB_ATTR_DCB_APP_TRUST_TABLE,
|
||||
__DCB_ATTR_IEEE_MAX
|
||||
};
|
||||
#define DCB_ATTR_IEEE_MAX (__DCB_ATTR_IEEE_MAX - 1)
|
||||
@@ -425,6 +432,7 @@ enum ieee_attrs {
|
||||
enum ieee_attrs_app {
|
||||
DCB_ATTR_IEEE_APP_UNSPEC,
|
||||
DCB_ATTR_IEEE_APP,
|
||||
DCB_ATTR_DCB_APP,
|
||||
__DCB_ATTR_IEEE_APP_MAX
|
||||
};
|
||||
#define DCB_ATTR_IEEE_APP_MAX (__DCB_ATTR_IEEE_APP_MAX - 1)
|
||||
|
||||
@@ -607,6 +607,11 @@ enum devlink_attr {
|
||||
|
||||
DEVLINK_ATTR_SELFTESTS, /* nested */
|
||||
|
||||
DEVLINK_ATTR_RATE_TX_PRIORITY, /* u32 */
|
||||
DEVLINK_ATTR_RATE_TX_WEIGHT, /* u32 */
|
||||
|
||||
DEVLINK_ATTR_REGION_DIRECT, /* flag */
|
||||
|
||||
/* add new attributes above here, update the policy in devlink.c */
|
||||
|
||||
__DEVLINK_ATTR_MAX,
|
||||
@@ -653,11 +658,24 @@ enum devlink_resource_unit {
|
||||
DEVLINK_RESOURCE_UNIT_ENTRY,
|
||||
};
|
||||
|
||||
enum devlink_port_fn_attr_cap {
|
||||
DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT,
|
||||
DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT,
|
||||
|
||||
/* Add new caps above */
|
||||
__DEVLINK_PORT_FN_ATTR_CAPS_MAX,
|
||||
};
|
||||
|
||||
#define DEVLINK_PORT_FN_CAP_ROCE _BITUL(DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT)
|
||||
#define DEVLINK_PORT_FN_CAP_MIGRATABLE \
|
||||
_BITUL(DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT)
|
||||
|
||||
enum devlink_port_function_attr {
|
||||
DEVLINK_PORT_FUNCTION_ATTR_UNSPEC,
|
||||
DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR, /* binary */
|
||||
DEVLINK_PORT_FN_ATTR_STATE, /* u8 */
|
||||
DEVLINK_PORT_FN_ATTR_OPSTATE, /* u8 */
|
||||
DEVLINK_PORT_FN_ATTR_CAPS, /* bitfield32 */
|
||||
|
||||
__DEVLINK_PORT_FUNCTION_ATTR_MAX,
|
||||
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)
|
||||
* in its bus driver structure (e.g. pci_driver::name). Must
|
||||
* not be an empty string.
|
||||
* @version: Driver version string; may be an empty string
|
||||
* @fw_version: Firmware version string; may be an empty string
|
||||
* @erom_version: Expansion ROM version string; may be an empty string
|
||||
* @fw_version: Firmware version string; driver defined; may be an
|
||||
* empty string
|
||||
* @erom_version: Expansion ROM version string; driver defined; may be
|
||||
* an empty string
|
||||
* @bus_info: Device bus address. This should match the dev_name()
|
||||
* string for the underlying bus device, if there is one. May be
|
||||
* an empty string.
|
||||
@@ -179,10 +181,6 @@ static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep)
|
||||
*
|
||||
* Users can use the %ETHTOOL_GSSET_INFO command to get the number of
|
||||
* strings in any string set (from Linux 2.6.34).
|
||||
*
|
||||
* Drivers should set at most @driver, @version, @fw_version and
|
||||
* @bus_info in their get_drvinfo() implementation. The ethtool
|
||||
* core fills in the other fields using other driver operations.
|
||||
*/
|
||||
struct ethtool_drvinfo {
|
||||
__u32 cmd;
|
||||
@@ -1737,6 +1735,13 @@ enum ethtool_link_mode_bit_indices {
|
||||
ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90,
|
||||
ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91,
|
||||
ETHTOOL_LINK_MODE_10baseT1L_Full_BIT = 92,
|
||||
ETHTOOL_LINK_MODE_800000baseCR8_Full_BIT = 93,
|
||||
ETHTOOL_LINK_MODE_800000baseKR8_Full_BIT = 94,
|
||||
ETHTOOL_LINK_MODE_800000baseDR8_Full_BIT = 95,
|
||||
ETHTOOL_LINK_MODE_800000baseDR8_2_Full_BIT = 96,
|
||||
ETHTOOL_LINK_MODE_800000baseSR8_Full_BIT = 97,
|
||||
ETHTOOL_LINK_MODE_800000baseVR8_Full_BIT = 98,
|
||||
|
||||
/* must be last entry */
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS
|
||||
};
|
||||
@@ -1848,6 +1853,7 @@ enum ethtool_link_mode_bit_indices {
|
||||
#define SPEED_100000 100000
|
||||
#define SPEED_200000 200000
|
||||
#define SPEED_400000 400000
|
||||
#define SPEED_800000 800000
|
||||
|
||||
#define SPEED_UNKNOWN -1
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ enum {
|
||||
ETHTOOL_MSG_MODULE_SET,
|
||||
ETHTOOL_MSG_PSE_GET,
|
||||
ETHTOOL_MSG_PSE_SET,
|
||||
ETHTOOL_MSG_RSS_GET,
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_MSG_USER_CNT,
|
||||
@@ -97,6 +98,7 @@ enum {
|
||||
ETHTOOL_MSG_MODULE_GET_REPLY,
|
||||
ETHTOOL_MSG_MODULE_NTF,
|
||||
ETHTOOL_MSG_PSE_GET_REPLY,
|
||||
ETHTOOL_MSG_RSS_GET_REPLY,
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_MSG_KERNEL_CNT,
|
||||
@@ -262,6 +264,7 @@ enum {
|
||||
ETHTOOL_A_LINKSTATE_SQI_MAX, /* u32 */
|
||||
ETHTOOL_A_LINKSTATE_EXT_STATE, /* u8 */
|
||||
ETHTOOL_A_LINKSTATE_EXT_SUBSTATE, /* u8 */
|
||||
ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT, /* u32 */
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_A_LINKSTATE_CNT,
|
||||
@@ -879,6 +882,18 @@ enum {
|
||||
ETHTOOL_A_PSE_MAX = (__ETHTOOL_A_PSE_CNT - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_RSS_UNSPEC,
|
||||
ETHTOOL_A_RSS_HEADER,
|
||||
ETHTOOL_A_RSS_CONTEXT, /* u32 */
|
||||
ETHTOOL_A_RSS_HFUNC, /* u32 */
|
||||
ETHTOOL_A_RSS_INDIR, /* binary */
|
||||
ETHTOOL_A_RSS_HKEY, /* binary */
|
||||
|
||||
__ETHTOOL_A_RSS_CNT,
|
||||
ETHTOOL_A_RSS_MAX = (__ETHTOOL_A_RSS_CNT - 1),
|
||||
};
|
||||
|
||||
/* generic netlink info */
|
||||
#define ETHTOOL_GENL_NAME "ethtool"
|
||||
#define ETHTOOL_GENL_VERSION 1
|
||||
|
||||
@@ -723,10 +723,31 @@ enum {
|
||||
enum {
|
||||
MDBE_ATTR_UNSPEC,
|
||||
MDBE_ATTR_SOURCE,
|
||||
MDBE_ATTR_SRC_LIST,
|
||||
MDBE_ATTR_GROUP_MODE,
|
||||
MDBE_ATTR_RTPROT,
|
||||
__MDBE_ATTR_MAX,
|
||||
};
|
||||
#define MDBE_ATTR_MAX (__MDBE_ATTR_MAX - 1)
|
||||
|
||||
/* per mdb entry source */
|
||||
enum {
|
||||
MDBE_SRC_LIST_UNSPEC,
|
||||
MDBE_SRC_LIST_ENTRY,
|
||||
__MDBE_SRC_LIST_MAX,
|
||||
};
|
||||
#define MDBE_SRC_LIST_MAX (__MDBE_SRC_LIST_MAX - 1)
|
||||
|
||||
/* per mdb entry per source attributes
|
||||
* these are embedded in MDBE_SRC_LIST_ENTRY
|
||||
*/
|
||||
enum {
|
||||
MDBE_SRCATTR_UNSPEC,
|
||||
MDBE_SRCATTR_ADDRESS,
|
||||
__MDBE_SRCATTR_MAX,
|
||||
};
|
||||
#define MDBE_SRCATTR_MAX (__MDBE_SRCATTR_MAX - 1)
|
||||
|
||||
/* Embedded inside LINK_XSTATS_TYPE_BRIDGE */
|
||||
enum {
|
||||
BRIDGE_XSTATS_UNSPEC,
|
||||
|
||||
@@ -372,6 +372,8 @@ enum {
|
||||
IFLA_TSO_MAX_SEGS,
|
||||
IFLA_ALLMULTI, /* Allmulti count: > 0 means acts ALLMULTI */
|
||||
|
||||
IFLA_DEVLINK_PORT,
|
||||
|
||||
__IFLA_MAX
|
||||
};
|
||||
|
||||
@@ -561,6 +563,7 @@ enum {
|
||||
IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT,
|
||||
IFLA_BRPORT_MCAST_EHT_HOSTS_CNT,
|
||||
IFLA_BRPORT_LOCKED,
|
||||
IFLA_BRPORT_MAB,
|
||||
__IFLA_BRPORT_MAX
|
||||
};
|
||||
#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
|
||||
|
||||
@@ -70,6 +70,7 @@ struct sockaddr_ll {
|
||||
#define PACKET_FANOUT_EBPF 7
|
||||
#define PACKET_FANOUT_FLAG_ROLLOVER 0x1000
|
||||
#define PACKET_FANOUT_FLAG_UNIQUEID 0x2000
|
||||
#define PACKET_FANOUT_FLAG_IGNORE_OUTGOING 0x4000
|
||||
#define PACKET_FANOUT_FLAG_DEFRAG 0x8000
|
||||
|
||||
struct tpacket_stats {
|
||||
|
||||
@@ -90,6 +90,8 @@
|
||||
#define TUN_F_TSO6 0x04 /* I can handle TSO for IPv6 packets */
|
||||
#define TUN_F_TSO_ECN 0x08 /* I can handle TSO with ECN bits. */
|
||||
#define TUN_F_UFO 0x10 /* I can handle UFO packets */
|
||||
#define TUN_F_USO4 0x20 /* I can handle USO for IPv4 packets */
|
||||
#define TUN_F_USO6 0x40 /* I can handle USO for IPv6 packets */
|
||||
|
||||
/* Protocol info prepended to the packets (when IFF_NO_PI is not set) */
|
||||
#define TUN_PKT_STRIP 0x0001
|
||||
|
||||
@@ -160,6 +160,12 @@ struct mptcp_info {
|
||||
* daddr4 | daddr6, sport, dport, backup, if_idx
|
||||
* [, error]
|
||||
* The priority of a subflow has changed. 'error' should not be set.
|
||||
*
|
||||
* MPTCP_EVENT_LISTENER_CREATED: family, sport, saddr4 | saddr6
|
||||
* A new PM listener is created.
|
||||
*
|
||||
* MPTCP_EVENT_LISTENER_CLOSED: family, sport, saddr4 | saddr6
|
||||
* A PM listener is closed.
|
||||
*/
|
||||
enum mptcp_event_type {
|
||||
MPTCP_EVENT_UNSPEC = 0,
|
||||
@@ -174,6 +180,9 @@ enum mptcp_event_type {
|
||||
MPTCP_EVENT_SUB_CLOSED = 11,
|
||||
|
||||
MPTCP_EVENT_SUB_PRIORITY = 13,
|
||||
|
||||
MPTCP_EVENT_LISTENER_CREATED = 15,
|
||||
MPTCP_EVENT_LISTENER_CLOSED = 16,
|
||||
};
|
||||
|
||||
enum mptcp_event_attr {
|
||||
|
||||
@@ -52,7 +52,8 @@ enum {
|
||||
#define NTF_STICKY (1 << 6)
|
||||
#define NTF_ROUTER (1 << 7)
|
||||
/* Extended flags under NDA_FLAGS_EXT: */
|
||||
#define NTF_EXT_MANAGED (1 << 0)
|
||||
#define NTF_EXT_MANAGED (1 << 0)
|
||||
#define NTF_EXT_LOCKED (1 << 1)
|
||||
|
||||
/*
|
||||
* Neighbor Cache Entry States.
|
||||
@@ -86,6 +87,11 @@ enum {
|
||||
* NTF_EXT_MANAGED flagged neigbor entries are managed by the kernel on behalf
|
||||
* of a user space control plane, and automatically refreshed so that (if
|
||||
* possible) they remain in NUD_REACHABLE state.
|
||||
*
|
||||
* NTF_EXT_LOCKED flagged bridge FDB entries are entries generated by the
|
||||
* bridge in response to a host trying to communicate via a locked bridge port
|
||||
* with MAB enabled. Their purpose is to notify user space that a host requires
|
||||
* authentication.
|
||||
*/
|
||||
|
||||
struct nda_cacheinfo {
|
||||
|
||||
@@ -31,8 +31,9 @@ enum {
|
||||
SOF_TIMESTAMPING_OPT_PKTINFO = (1<<13),
|
||||
SOF_TIMESTAMPING_OPT_TX_SWHW = (1<<14),
|
||||
SOF_TIMESTAMPING_BIND_PHC = (1 << 15),
|
||||
SOF_TIMESTAMPING_OPT_ID_TCP = (1 << 16),
|
||||
|
||||
SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_BIND_PHC,
|
||||
SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_ID_TCP,
|
||||
SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) |
|
||||
SOF_TIMESTAMPING_LAST
|
||||
};
|
||||
|
||||
@@ -85,6 +85,7 @@ enum {
|
||||
IPSET_ATTR_CADT_LINENO = IPSET_ATTR_LINENO, /* 9 */
|
||||
IPSET_ATTR_MARK, /* 10 */
|
||||
IPSET_ATTR_MARKMASK, /* 11 */
|
||||
IPSET_ATTR_BITMASK, /* 12 */
|
||||
/* Reserve empty slots */
|
||||
IPSET_ATTR_CADT_MAX = 16,
|
||||
/* Create-only specific attributes */
|
||||
@@ -153,6 +154,7 @@ enum ipset_errno {
|
||||
IPSET_ERR_COMMENT,
|
||||
IPSET_ERR_INVALID_MARKMASK,
|
||||
IPSET_ERR_SKBINFO,
|
||||
IPSET_ERR_BITMASK_NETMASK_EXCL,
|
||||
|
||||
/* Type specific error codes */
|
||||
IPSET_ERR_TYPE_SPECIFIC = 4352,
|
||||
|
||||
@@ -16,6 +16,7 @@ enum sctp_conntrack {
|
||||
SCTP_CONNTRACK_SHUTDOWN_ACK_SENT,
|
||||
SCTP_CONNTRACK_HEARTBEAT_SENT,
|
||||
SCTP_CONNTRACK_HEARTBEAT_ACKED,
|
||||
SCTP_CONNTRACK_DATA_SENT,
|
||||
SCTP_CONNTRACK_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -97,6 +97,7 @@ enum nft_verdicts {
|
||||
* @NFT_MSG_NEWFLOWTABLE: add new flow table (enum nft_flowtable_attributes)
|
||||
* @NFT_MSG_GETFLOWTABLE: get flow table (enum nft_flowtable_attributes)
|
||||
* @NFT_MSG_DELFLOWTABLE: delete flow table (enum nft_flowtable_attributes)
|
||||
* @NFT_MSG_GETRULE_RESET: get rules and reset stateful expressions (enum nft_obj_attributes)
|
||||
*/
|
||||
enum nf_tables_msg_types {
|
||||
NFT_MSG_NEWTABLE,
|
||||
@@ -124,6 +125,7 @@ enum nf_tables_msg_types {
|
||||
NFT_MSG_NEWFLOWTABLE,
|
||||
NFT_MSG_GETFLOWTABLE,
|
||||
NFT_MSG_DELFLOWTABLE,
|
||||
NFT_MSG_GETRULE_RESET,
|
||||
NFT_MSG_MAX,
|
||||
};
|
||||
|
||||
@@ -760,6 +762,7 @@ enum nft_payload_bases {
|
||||
NFT_PAYLOAD_NETWORK_HEADER,
|
||||
NFT_PAYLOAD_TRANSPORT_HEADER,
|
||||
NFT_PAYLOAD_INNER_HEADER,
|
||||
NFT_PAYLOAD_TUN_HEADER,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -779,6 +782,32 @@ enum nft_payload_csum_flags {
|
||||
NFT_PAYLOAD_L4CSUM_PSEUDOHDR = (1 << 0),
|
||||
};
|
||||
|
||||
enum nft_inner_type {
|
||||
NFT_INNER_UNSPEC = 0,
|
||||
NFT_INNER_VXLAN,
|
||||
NFT_INNER_GENEVE,
|
||||
};
|
||||
|
||||
enum nft_inner_flags {
|
||||
NFT_INNER_HDRSIZE = (1 << 0),
|
||||
NFT_INNER_LL = (1 << 1),
|
||||
NFT_INNER_NH = (1 << 2),
|
||||
NFT_INNER_TH = (1 << 3),
|
||||
};
|
||||
#define NFT_INNER_MASK (NFT_INNER_HDRSIZE | NFT_INNER_LL | \
|
||||
NFT_INNER_NH | NFT_INNER_TH)
|
||||
|
||||
enum nft_inner_attributes {
|
||||
NFTA_INNER_UNSPEC,
|
||||
NFTA_INNER_NUM,
|
||||
NFTA_INNER_TYPE,
|
||||
NFTA_INNER_FLAGS,
|
||||
NFTA_INNER_HDRSIZE,
|
||||
NFTA_INNER_EXPR,
|
||||
__NFTA_INNER_MAX
|
||||
};
|
||||
#define NFTA_INNER_MAX (__NFTA_INNER_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_payload_attributes - nf_tables payload expression netlink attributes
|
||||
*
|
||||
|
||||
@@ -95,6 +95,7 @@ enum ctattr_timeout_sctp {
|
||||
CTA_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT,
|
||||
CTA_TIMEOUT_SCTP_HEARTBEAT_SENT,
|
||||
CTA_TIMEOUT_SCTP_HEARTBEAT_ACKED,
|
||||
CTA_TIMEOUT_SCTP_DATA_SENT,
|
||||
__CTA_TIMEOUT_SCTP_MAX
|
||||
};
|
||||
#define CTA_TIMEOUT_SCTP_MAX (__CTA_TIMEOUT_SCTP_MAX - 1)
|
||||
|
||||
@@ -2749,6 +2749,8 @@ enum nl80211_commands {
|
||||
* When used with %NL80211_CMD_FRAME_TX_STATUS, indicates the ack RX
|
||||
* timestamp. When used with %NL80211_CMD_FRAME RX notification, indicates
|
||||
* the incoming frame RX timestamp.
|
||||
* @NL80211_ATTR_TD_BITMAP: Transition Disable bitmap, for subsequent
|
||||
* (re)associations.
|
||||
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
@@ -3276,6 +3278,7 @@ enum nl80211_attrs {
|
||||
|
||||
NL80211_ATTR_TX_HW_TIMESTAMP,
|
||||
NL80211_ATTR_RX_HW_TIMESTAMP,
|
||||
NL80211_ATTR_TD_BITMAP,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
|
||||
@@ -277,11 +277,25 @@ enum ovs_vport_attr {
|
||||
OVS_VPORT_ATTR_PAD,
|
||||
OVS_VPORT_ATTR_IFINDEX,
|
||||
OVS_VPORT_ATTR_NETNSID,
|
||||
OVS_VPORT_ATTR_UPCALL_STATS,
|
||||
__OVS_VPORT_ATTR_MAX
|
||||
};
|
||||
|
||||
#define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum ovs_vport_upcall_attr - attributes for %OVS_VPORT_UPCALL* commands
|
||||
* @OVS_VPORT_UPCALL_SUCCESS: 64-bit upcall success packets.
|
||||
* @OVS_VPORT_UPCALL_FAIL: 64-bit upcall fail packets.
|
||||
*/
|
||||
enum ovs_vport_upcall_attr {
|
||||
OVS_VPORT_UPCALL_ATTR_SUCCESS,
|
||||
OVS_VPORT_UPCALL_ATTR_FAIL,
|
||||
__OVS_VPORT_UPCALL_ATTR_MAX
|
||||
};
|
||||
|
||||
#define OVS_VPORT_UPCALL_ATTR_MAX (__OVS_VPORT_UPCALL_ATTR_MAX - 1)
|
||||
|
||||
enum {
|
||||
OVS_VXLAN_EXT_UNSPEC,
|
||||
OVS_VXLAN_EXT_GBP, /* Flag or __u32 */
|
||||
|
||||
@@ -292,6 +292,7 @@ enum
|
||||
LINUX_MIB_TCPDSACKIGNOREDDUBIOUS, /* TCPDSACKIgnoredDubious */
|
||||
LINUX_MIB_TCPMIGRATEREQSUCCESS, /* TCPMigrateReqSuccess */
|
||||
LINUX_MIB_TCPMIGRATEREQFAILURE, /* TCPMigrateReqFailure */
|
||||
LINUX_MIB_TCPPLBREHASH, /* TCPPLBRehash */
|
||||
__LINUX_MIB_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -22,6 +22,9 @@ enum {
|
||||
TCA_CT_NAT_PORT_MIN, /* be16 */
|
||||
TCA_CT_NAT_PORT_MAX, /* be16 */
|
||||
TCA_CT_PAD,
|
||||
TCA_CT_HELPER_NAME, /* string */
|
||||
TCA_CT_HELPER_FAMILY, /* u8 */
|
||||
TCA_CT_HELPER_PROTO, /* u8 */
|
||||
__TCA_CT_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -284,6 +284,11 @@ struct tcp_info {
|
||||
__u32 tcpi_snd_wnd; /* peer's advertised receive window after
|
||||
* scaling (bytes)
|
||||
*/
|
||||
__u32 tcpi_rcv_wnd; /* local advertised receive window after
|
||||
* scaling (bytes)
|
||||
*/
|
||||
|
||||
__u32 tcpi_rehash; /* PLB or timeout triggered rehash attempts */
|
||||
};
|
||||
|
||||
/* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */
|
||||
@@ -315,6 +320,7 @@ enum {
|
||||
TCP_NLA_BYTES_NOTSENT, /* Bytes in write queue not yet sent */
|
||||
TCP_NLA_EDT, /* Earliest departure time (CLOCK_MONOTONIC) */
|
||||
TCP_NLA_TTL, /* TTL or hop limit of a packet received */
|
||||
TCP_NLA_REHASH, /* PLB and timeout triggered rehash attempts */
|
||||
};
|
||||
|
||||
/* for TCP_MD5SIG socket option */
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#define VIRTIO_BT_F_VND_HCI 0 /* Indicates vendor command support */
|
||||
#define VIRTIO_BT_F_MSFT_EXT 1 /* Indicates MSFT vendor support */
|
||||
#define VIRTIO_BT_F_AOSP_EXT 2 /* Indicates AOSP vendor support */
|
||||
#define VIRTIO_BT_F_CONFIG_V2 3 /* Use second version configuration */
|
||||
|
||||
enum virtio_bt_config_type {
|
||||
VIRTIO_BT_CONFIG_TYPE_PRIMARY = 0,
|
||||
@@ -28,4 +29,11 @@ struct virtio_bt_config {
|
||||
__u16 msft_opcode;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct virtio_bt_config_v2 {
|
||||
__u8 type;
|
||||
__u8 alignment;
|
||||
__u16 vendor;
|
||||
__u16 msft_opcode;
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_VIRTIO_BT_H */
|
||||
|
||||
@@ -57,6 +57,9 @@
|
||||
* Steering */
|
||||
#define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */
|
||||
#define VIRTIO_NET_F_NOTF_COAL 53 /* Device supports notifications coalescing */
|
||||
#define VIRTIO_NET_F_GUEST_USO4 54 /* Guest can handle USOv4 in. */
|
||||
#define VIRTIO_NET_F_GUEST_USO6 55 /* Guest can handle USOv6 in. */
|
||||
#define VIRTIO_NET_F_HOST_USO 56 /* Host can handle USO in. */
|
||||
#define VIRTIO_NET_F_HASH_REPORT 57 /* Supports hash report */
|
||||
#define VIRTIO_NET_F_RSS 60 /* Supports RSS RX steering */
|
||||
#define VIRTIO_NET_F_RSC_EXT 61 /* extended coalescing info */
|
||||
@@ -130,6 +133,7 @@ struct virtio_net_hdr_v1 {
|
||||
#define VIRTIO_NET_HDR_GSO_TCPV4 1 /* GSO frame, IPv4 TCP (TSO) */
|
||||
#define VIRTIO_NET_HDR_GSO_UDP 3 /* GSO frame, IPv4 UDP (UFO) */
|
||||
#define VIRTIO_NET_HDR_GSO_TCPV6 4 /* GSO frame, IPv6 TCP */
|
||||
#define VIRTIO_NET_HDR_GSO_UDP_L4 5 /* GSO frame, IPv4& IPv6 UDP (USO) */
|
||||
#define VIRTIO_NET_HDR_GSO_ECN 0x80 /* TCP has ECN set */
|
||||
__u8 gso_type;
|
||||
__virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */
|
||||
|
||||
@@ -519,6 +519,12 @@ struct xfrm_user_offload {
|
||||
*/
|
||||
#define XFRM_OFFLOAD_IPV6 1
|
||||
#define XFRM_OFFLOAD_INBOUND 2
|
||||
/* Two bits above are relevant for state path only, while
|
||||
* offload is used for both policy and state flows.
|
||||
*
|
||||
* In policy offload mode, they are free and can be safely reused.
|
||||
*/
|
||||
#define XFRM_OFFLOAD_PACKET 4
|
||||
|
||||
struct xfrm_userpolicy_default {
|
||||
#define XFRM_USERPOLICY_UNSPEC 0
|
||||
|
||||
Reference in New Issue
Block a user