Lines Matching +full:fn +full:- +full:keymap

1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 /* Copyright (c) 2011-2014 PLUMgrid, http://plumgrid.com
21 #define BPF_DW 0x18 /* double word (64-bit) */
30 #define BPF_TO_LE 0x00 /* convert to little-endian */
31 #define BPF_TO_BE 0x08 /* convert to big-endian */
62 /* BPF has 10 general purpose 64-bit registers and stack frame. */
90 /* BPF syscall commands, see bpf(2) man-page for details. */
260 /* cgroup-bpf attach flags used in BPF_PROG_ATTACH command
264 * BPF_F_ALLOW_OVERRIDE: If a sub-cgroup installs some bpf program,
265 * the program in this cgroup yields to sub-cgroup program.
267 * BPF_F_ALLOW_MULTI: If a sub-cgroup installs some bpf program,
278 * The programs of sub-cgroup are executed first, then programs of
288 * A cgroup with MULTI or OVERRIDE flag allows any attach flags in sub-cgroups.
289 * A cgroup with NONE doesn't allow any programs in sub-cgroups.
291 * cgrp1 (MULTI progs A, B) ->
292 * cgrp2 (OVERRIDE prog C) ->
293 * cgrp3 (MULTI prog D) ->
294 * cgrp4 (OVERRIDE prog E) ->
330 * Verifier does sub-register def/use analysis and identifies instructions whose
331 * def only matters for low 32-bit, high 32-bit is never referenced later
332 * through implicit zero extension. Therefore verifier notifies JIT back-ends
333 * that it is safe to ignore clearing high 32-bit for these instructions. This
334 * saves some back-ends a lot of code-gen. However such optimization is not
335 * necessary on some arches, for example x86_64, arm64 etc, whose JIT back-ends
341 * 32-bit for those instructions who has been identified as safe to ignore them.
390 /* when bpf_call->src_reg == BPF_PSEUDO_CALL, bpf_call->imm == pc-relative
400 BPF_F_LOCK = 4, /* spin_lock-ed map_lookup/map_update */
423 /* Zero-initialize hash function seed. This should only be used for testing. */
433 /* Enable memory-mapping BPF map */
501 __u32 btf_vmlinux_value_type_id;/* BTF type_id of a kernel-
558 __u32 attach_btf_id; /* in-kernel BTF type id to attach to */
712 * --filename include/uapi/linux/bpf.h > /tmp/bpf-helpers.rst
713 * $ rst2man /tmp/bpf-helpers.rst > /tmp/bpf-helpers.7
714 * $ man /tmp/bpf-helpers.7
774 * This helper is a "printk()-like" facility for debugging. It
792 * telnet-470 [001] .N.. 419421.045894: 0x00000001: <formatted msg>
817 * helper will return **-EINVAL** (but print nothing) if it
833 * Get a pseudo-random number.
836 * pseudo-random internal state, and cannot be used to infer the
841 * A random 32-bit unsigned value.
858 * **BPF_F_INVALIDATE_HASH** (set *skb*\ **->hash**, *skb*\
859 * **->swhash** and *skb*\ **->l4hash** to 0).
882 * which does not update the checksum in-place, but offers more
911 * the checksum is to be computed against a pseudo-header.
914 * which does not update the checksum in-place, but offers more
983 * A 64-bit integer containing the current tgid and pid, and
985 * *current_task*\ **->tgid << 32 \|**
986 * *current_task*\ **->pid**.
990 * A 64-bit integer containing the current GID and UID, and
999 * helper makes sure that the *buf* is NUL-terminated. On failure,
1012 * based on a user-provided identifier for all traffic coming from
1015 * *Documentation/admin-guide/cgroup-v1/net_cls.rst*.
1021 * run on cgroups, which is a cgroup-v2-only feature (a socket can
1073 * in *key*\ **->remote_ipv4** or *key*\ **->remote_ipv6**. Also,
1074 * this struct exposes the *key*\ **->tunnel_id**, which is
1202 * identifier retrieved is a user-provided tag, similar to the
1208 * (see also **tc-bpf(8)**), or alternatively on conventional
1276 * manipulated with *skb*\ **->data** and *skb*\ **->data_end**
1307 * generating a variety of graphs (such as flame graphs or off-cpu
1365 * and retrieving arbitrary TLVs (Type-Length-Value headers) from
1411 * comes down to setting *skb*\ **->pkt_type** to *type*, except
1413 * **->pkt_type** beside this helper. Using a helper here allows
1448 * Retrieve the hash of the packet, *skb*\ **->hash**. If it is
1451 * directly with *skb*\ **->hash**.
1460 * The 32-bit hash.
1473 * security mechanism because of TOC-TOU attacks, but rather to
1474 * debug, divert, and manipulate execution of semi-cooperative
1523 * Pull in non-linear data in case the *skb* is non-linear and not
1532 * are within packet boundaries (test on *skb*\ **->data_end**) is
1534 * data is in non-linear parts of the *skb*. On failure the
1535 * program can just bail out, or in the case of a non-linear
1539 * to pull in once the non-linear parts, then retesting and
1559 * Add the checksum *csum* into *skb*\ **->csum** in case the
1571 * Invalidate the current *skb*\ **->hash**. It can be used after
1611 * Adjust (move) *xdp_md*\ **->data** by *delta* bytes. Note that
1647 * A 8-byte long non-decreasing number on success, or 0 if the
1655 * A 8-byte long non-decreasing number.
1662 * A 8-byte long non-decreasing number.
1668 * time-wait or a request socket instead), **overflowuid** value
1674 * Set the full hash for *skb* (set the field *skb*\ **->hash**)
1809 * Adjust the address pointed by *xdp_md*\ **->data_meta** by
1811 * operation modifies the address stored in *xdp_md*\ **->data**,
1815 * The use of *xdp_md*\ **->data_meta** is optional and programs
1821 * this up for further post-processing. Since TC works with socket
1855 * **->enabled** and *buf*\ **->running**, respectively) are
1975 * **bpf_sock->bpf_sock_ops_cb_flags & ~BPF_SOCK_OPS_RTO_CB_FLAG)**
1986 * Code **-EINVAL** if the socket is not a full TCP socket;
2026 * *bytes* will be sent and the eBPF program will be re-run with
2034 * a non-zero value, this is not a problem because data is not
2049 * 1-byte long message segments. Obviously, this is bad for
2059 * For socket policies, pull in non-linear data from user space
2060 * for *msg* and set pointers *msg*\ **->data** and *msg*\
2061 * **->data_end** to *start* and *end* bytes offsets into *msg*,
2097 * domain (*addr*\ **->sa_family**) must be **AF_INET** (or
2099 * or **sin6_port**) which triggers IP_BIND_ADDRESS_NO_PORT-like
2101 * port as long as 4-tuple is unique. Passing non-zero port might
2108 * Adjust (move) *xdp_md*\ **->data_end** by *delta* bytes. It is
2123 * **ip-xfrm(8)**) at *index* in XFRM "security path" for *skb*.
2166 * A non-negative value equal to or less than *size* on success,
2185 * in socket filters where *skb*\ **->data** does not always point
2345 * End.X action: Endpoint with Layer-3 cross-connect.
2390 * translated to a keycode using the rc keymap, and reported as
2419 * to the same 64-bit id.
2429 * A 64-bit integer containing the current cgroup id based
2481 * and if non-**NULL**, released via **bpf_sk_release**\ ().
2489 * **sizeof**\ (*tuple*\ **->ipv4**)
2491 * **sizeof**\ (*tuple*\ **->ipv6**)
2494 * If the *netns* is a negative signed 32-bit integer, then the
2498 * If *netns* is any other signed 32-bit value greater than or
2501 * range of 32-bit integers are reserved for future use.
2511 * result is from *reuse*\ **->socks**\ [] using the hash of the
2518 * and if non-**NULL**, released via **bpf_sk_release**\ ().
2526 * **sizeof**\ (*tuple*\ **->ipv4**)
2528 * **sizeof**\ (*tuple*\ **->ipv6**)
2531 * If the *netns* is a negative signed 32-bit integer, then the
2535 * If *netns* is any other signed 32-bit value greater than or
2538 * range of 32-bit integers are reserved for future use.
2548 * result is from *reuse*\ **->socks**\ [] using the hash of the
2554 * non-**NULL** pointer that was returned from
2644 * allowed inside a spinlock-ed region.
2667 * * **bpf_spin_lock** is not allowed in inner maps of map-in-map.
2716 * and if non-**NULL**, released via **bpf_sk_release**\ ().
2728 * result is from *reuse*\ **->socks**\ [] using the hash of the
2751 * The buffer is always NUL terminated, unless it's zero-sized.
2759 * **-E2BIG** if the buffer wasn't big enough (*buf* will contain
2771 * The buffer is always NUL terminated, unless it's zero-sized.
2775 * **-E2BIG** if the buffer wasn't big enough (*buf* will contain
2778 * **-EINVAL** if current value was unavailable, e.g. because
2779 * sysctl is uninitialized and read returns -EIO for it.
2789 * The buffer is always NUL terminated, unless it's zero-sized.
2793 * **-E2BIG** if the buffer wasn't big enough (*buf* will contain
2796 * **-EINVAL** if sysctl is being read.
2811 * **-E2BIG** if the *buf_len* is too big.
2813 * **-EINVAL** if sysctl is being read.
2823 * optional '**-**' sign.
2834 * **-EINVAL** if no valid digits were found or unsupported base
2837 * **-ERANGE** if resulting value was out of range.
2857 * **-EINVAL** if no valid digits were found or unsupported base
2860 * **-ERANGE** if resulting value was out of range.
2864 * Get a bpf-local-storage from a *sk*.
2874 * the *map*. The *map* is used as the bpf-local-storage
2875 * "type". The bpf-local-storage "type" (i.e. the *map*) is
2876 * searched against all bpf-local-storages residing at *sk*.
2882 * used such that a new bpf-local-storage will be
2885 * the initial value of a bpf-local-storage. If *value* is
2886 * **NULL**, the new bpf-local-storage will be zero initialized.
2888 * A bpf-local-storage pointer is returned on success.
2891 * a new bpf-local-storage.
2895 * Delete a bpf-local-storage from a *sk*.
2899 * **-ENOENT** if the bpf-local-storage cannot be found.
2900 * **-EINVAL** if sk is not a fullsock (e.g. a request_sock).
2909 * **-EBUSY** if work queue under nmi is full.
2911 * **-EINVAL** if *sig* is invalid.
2913 * **-EPERM** if no permission to send the *sig*.
2915 * **-EAGAIN** if bpf program can try again.
2935 * **-EINVAL** SYN cookie cannot be issued due to error
2937 * **-ENOENT** SYN cookie should not be issued (no SYN flood)
2939 * **-EOPNOTSUPP** kernel configuration does not enable SYN cookies
2941 * **-EPROTONOSUPPORT** IP packet version is not 4 or 6
2960 * *ctx* is a pointer to in-kernel struct sk_buff.
2987 * string length is larger than *size*, just *size*-1 bytes are
3002 * ctx->di);
3017 * *current*\ **->mm->arg_start** and *current*\
3018 * **->mm->env_start**: using this helper and the return value,
3035 * Send out a tcp-ack. *tp* is the in-kernel struct **tcp_sock**.
3046 * **-EBUSY** if work queue under nmi is full.
3048 * **-EINVAL** if *sig* is invalid.
3050 * **-EPERM** if no permission to send the *sig*.
3052 * **-EAGAIN** if bpf program can try again.
3074 * **-EINVAL** if arguments invalid or **size** not a multiple
3077 * **-ENOENT** if architecture does not support branch records.
3086 * **-EINVAL** if dev and inum supplied don't match dev_t and inode number
3089 * **-ENOENT** if pidns does not exists for the current task.
3108 * *ctx* is a pointer to in-kernel struct xdp_buff.
3126 * A 8-byte long opaque number.
3165 * **-EINVAL** if specified *flags* are not supported.
3167 * **-ENOENT** if the socket is unavailable for assignment.
3169 * **-ENETUNREACH** if the socket is unreachable (wrong netns).
3171 * **-EOPNOTSUPP** if the operation is not supported, for example
3174 * **-ESOCKTNOSUPPORT** if the socket type is not supported
3190 * that are not v6-only can be selected for IPv4 packets.
3203 * load-balancing within reuseport group for the socket
3206 * On success *ctx->sk* will point to the selected socket.
3211 * * **-EAFNOSUPPORT** if socket family (*sk->family*) is
3212 * not compatible with packet family (*ctx->family*).
3214 * * **-EEXIST** if socket has been already selected,
3218 * * **-EINVAL** if unsupported flags were specified.
3220 * * **-EPROTOTYPE** if socket L4 protocol
3221 * (*sk->protocol*) doesn't match packet protocol
3222 * (*ctx->protocol*).
3224 * * **-ESOCKTNOSUPPORT** if socket is not in allowed
3255 * **-EBUSY** if per-CPU memory copy buffer is busy, can try again
3258 * **-EINVAL** if arguments are invalid, or if *fmt* is invalid/unsupported.
3260 * **-E2BIG** if *fmt* contains too many format specifiers.
3262 * **-EOVERFLOW** if an overflow happened: The same object will be tried again.
3272 * **-EOVERFLOW** if an overflow happened: The same object will be tried again.
3278 * *sk* must be a non-**NULL** pointer to a socket, e.g. one
3378 * * **BPF_CSUM_LEVEL_INC**: Increases skb->csum_level for skbs
3380 * * **BPF_CSUM_LEVEL_DEC**: Decreases skb->csum_level for skbs
3382 * * **BPF_CSUM_LEVEL_RESET**: Resets skb->csum_level to 0 and
3384 * * **BPF_CSUM_LEVEL_QUERY**: No-op, returns the current
3385 * skb->csum_level.
3388 * case of **BPF_CSUM_LEVEL_QUERY**, the current skb->csum_level
3389 * is returned or the error code -EACCES in case the skb is not
3451 * A non-negative value equal to or less than *size* on success,
3460 * *skops*\ **->skb_data**. The comment in **struct bpf_sock_ops**
3462 * *skops*\ **->op**.
3472 * the 2nd byte which is "kind-length" of a TCP
3473 * header option and the "kind-length" also
3474 * includes the first 2 bytes "kind" and "kind-length"
3483 * Note, kind-length must be 0 for regular option.
3485 * Searching for No-Op (0) and End-of-Option-List (1) are
3494 * saved_syn packet or the just-received syn packet.
3501 * **-EINVAL** if a parameter is invalid.
3503 * **-ENOMSG** if the option is not found.
3505 * **-ENOENT** if no syn packet is available when
3508 * **-ENOSPC** if there is not enough space. Only *len* number of
3511 * **-EFAULT** on failure to parse the header options in the
3514 * **-EPERM** if the helper cannot be used under the current
3515 * *skops*\ **->op**.
3523 * includes the kind, kind-length, and the actual
3524 * option data. The *len* must be at least kind-length
3525 * long. The kind-length does not have to be 4 byte
3527 * and setting the 4 bytes aligned value to th->doff.
3538 * **-EINVAL** If param is invalid.
3540 * **-ENOSPC** if there is not enough space in the header.
3543 * **-EEXIST** if the option already exists.
3545 * **-EFAULT** on failrue to parse the existing header options.
3547 * **-EPERM** if the helper cannot be used under the current
3548 * *skops*\ **->op**.
3565 * **-EINVAL** if a parameter is invalid.
3567 * **-ENOSPC** if there is not enough space in the header.
3569 * **-EPERM** if the helper cannot be used under the current
3570 * *skops*\ **->op**.
3584 * the *map*. The *map* is used as the bpf-local-storage
3585 * "type". The bpf-local-storage "type" (i.e. the *map*) is
3606 * **-ENOENT** if the bpf_local_storage cannot be found.
3629 * Use BTF to store a string representation of *ptr*->ptr in *str*,
3630 * using *ptr*->type_id. This value should specify the type
3631 * that *ptr*->ptr points to. LLVM __builtin_btf_type_id(type, 1)
3634 * stored in the first *str_size* - 1 bytes of *str*. Safe copy of
3655 * show zero-valued struct/union members; they
3666 * *ptr*->ptr, using *ptr*->type_id as per bpf_snprintf_btf().
3746 #define __BPF_FUNC_MAPPER(FN) \ argument
3747 FN(unspec), \
3748 FN(map_lookup_elem), \
3749 FN(map_update_elem), \
3750 FN(map_delete_elem), \
3751 FN(probe_read), \
3752 FN(ktime_get_ns), \
3753 FN(trace_printk), \
3754 FN(get_prandom_u32), \
3755 FN(get_smp_processor_id), \
3756 FN(skb_store_bytes), \
3757 FN(l3_csum_replace), \
3758 FN(l4_csum_replace), \
3759 FN(tail_call), \
3760 FN(clone_redirect), \
3761 FN(get_current_pid_tgid), \
3762 FN(get_current_uid_gid), \
3763 FN(get_current_comm), \
3764 FN(get_cgroup_classid), \
3765 FN(skb_vlan_push), \
3766 FN(skb_vlan_pop), \
3767 FN(skb_get_tunnel_key), \
3768 FN(skb_set_tunnel_key), \
3769 FN(perf_event_read), \
3770 FN(redirect), \
3771 FN(get_route_realm), \
3772 FN(perf_event_output), \
3773 FN(skb_load_bytes), \
3774 FN(get_stackid), \
3775 FN(csum_diff), \
3776 FN(skb_get_tunnel_opt), \
3777 FN(skb_set_tunnel_opt), \
3778 FN(skb_change_proto), \
3779 FN(skb_change_type), \
3780 FN(skb_under_cgroup), \
3781 FN(get_hash_recalc), \
3782 FN(get_current_task), \
3783 FN(probe_write_user), \
3784 FN(current_task_under_cgroup), \
3785 FN(skb_change_tail), \
3786 FN(skb_pull_data), \
3787 FN(csum_update), \
3788 FN(set_hash_invalid), \
3789 FN(get_numa_node_id), \
3790 FN(skb_change_head), \
3791 FN(xdp_adjust_head), \
3792 FN(probe_read_str), \
3793 FN(get_socket_cookie), \
3794 FN(get_socket_uid), \
3795 FN(set_hash), \
3796 FN(setsockopt), \
3797 FN(skb_adjust_room), \
3798 FN(redirect_map), \
3799 FN(sk_redirect_map), \
3800 FN(sock_map_update), \
3801 FN(xdp_adjust_meta), \
3802 FN(perf_event_read_value), \
3803 FN(perf_prog_read_value), \
3804 FN(getsockopt), \
3805 FN(override_return), \
3806 FN(sock_ops_cb_flags_set), \
3807 FN(msg_redirect_map), \
3808 FN(msg_apply_bytes), \
3809 FN(msg_cork_bytes), \
3810 FN(msg_pull_data), \
3811 FN(bind), \
3812 FN(xdp_adjust_tail), \
3813 FN(skb_get_xfrm_state), \
3814 FN(get_stack), \
3815 FN(skb_load_bytes_relative), \
3816 FN(fib_lookup), \
3817 FN(sock_hash_update), \
3818 FN(msg_redirect_hash), \
3819 FN(sk_redirect_hash), \
3820 FN(lwt_push_encap), \
3821 FN(lwt_seg6_store_bytes), \
3822 FN(lwt_seg6_adjust_srh), \
3823 FN(lwt_seg6_action), \
3824 FN(rc_repeat), \
3825 FN(rc_keydown), \
3826 FN(skb_cgroup_id), \
3827 FN(get_current_cgroup_id), \
3828 FN(get_local_storage), \
3829 FN(sk_select_reuseport), \
3830 FN(skb_ancestor_cgroup_id), \
3831 FN(sk_lookup_tcp), \
3832 FN(sk_lookup_udp), \
3833 FN(sk_release), \
3834 FN(map_push_elem), \
3835 FN(map_pop_elem), \
3836 FN(map_peek_elem), \
3837 FN(msg_push_data), \
3838 FN(msg_pop_data), \
3839 FN(rc_pointer_rel), \
3840 FN(spin_lock), \
3841 FN(spin_unlock), \
3842 FN(sk_fullsock), \
3843 FN(tcp_sock), \
3844 FN(skb_ecn_set_ce), \
3845 FN(get_listener_sock), \
3846 FN(skc_lookup_tcp), \
3847 FN(tcp_check_syncookie), \
3848 FN(sysctl_get_name), \
3849 FN(sysctl_get_current_value), \
3850 FN(sysctl_get_new_value), \
3851 FN(sysctl_set_new_value), \
3852 FN(strtol), \
3853 FN(strtoul), \
3854 FN(sk_storage_get), \
3855 FN(sk_storage_delete), \
3856 FN(send_signal), \
3857 FN(tcp_gen_syncookie), \
3858 FN(skb_output), \
3859 FN(probe_read_user), \
3860 FN(probe_read_kernel), \
3861 FN(probe_read_user_str), \
3862 FN(probe_read_kernel_str), \
3863 FN(tcp_send_ack), \
3864 FN(send_signal_thread), \
3865 FN(jiffies64), \
3866 FN(read_branch_records), \
3867 FN(get_ns_current_pid_tgid), \
3868 FN(xdp_output), \
3869 FN(get_netns_cookie), \
3870 FN(get_current_ancestor_cgroup_id), \
3871 FN(sk_assign), \
3872 FN(ktime_get_boot_ns), \
3873 FN(seq_printf), \
3874 FN(seq_write), \
3875 FN(sk_cgroup_id), \
3876 FN(sk_ancestor_cgroup_id), \
3877 FN(ringbuf_output), \
3878 FN(ringbuf_reserve), \
3879 FN(ringbuf_submit), \
3880 FN(ringbuf_discard), \
3881 FN(ringbuf_query), \
3882 FN(csum_level), \
3883 FN(skc_to_tcp6_sock), \
3884 FN(skc_to_tcp_sock), \
3885 FN(skc_to_tcp_timewait_sock), \
3886 FN(skc_to_tcp_request_sock), \
3887 FN(skc_to_udp6_sock), \
3888 FN(get_task_stack), \
3889 FN(load_hdr_opt), \
3890 FN(store_hdr_opt), \
3891 FN(reserve_hdr_opt), \
3892 FN(inode_storage_get), \
3893 FN(inode_storage_delete), \
3894 FN(d_path), \
3895 FN(copy_from_user), \
3896 FN(snprintf_btf), \
3897 FN(seq_printf_btf), \
3898 FN(skb_cgroup_classid), \
3899 FN(redirect_neigh), \
3900 FN(per_cpu_ptr), \
3901 FN(this_cpu_ptr), \
3902 FN(redirect_peer), \
3977 BPF_F_CURRENT_NETNS = (-1L),
4080 /* user accessible mirror of in-kernel sk_buff.
4134 /* user accessible mirror of in-kernel xfrm_state.
4149 * The values are binary compatible with their TC_ACT_* counter-part to
4159 /* 3-6 reserved */
4279 __u32 ingress_ifindex; /* rxq->dev->ifindex */
4280 __u32 rx_queue_index; /* rxq->queue_index */
4282 __u32 egress_ifindex; /* txq->dev->ifindex */
4285 /* DEVMAP map-value layout
4287 * The struct data-layout of map-value is a configuration interface.
4298 /* CPUMAP map-value layout
4300 * The struct data-layout of map-value is a configuration interface.
4345 * Note that the directly accessible bytes (data_end - data)
4463 __u32 user_family; /* Allows 4-byte read, but no write. */
4464 __u32 user_ip4; /* Allows 1,2,4-byte read and 4-byte write.
4467 __u32 user_ip6[4]; /* Allows 1,2,4,8-byte read and 4,8-byte write.
4470 __u32 user_port; /* Allows 1,2,4-byte read and 4-byte write.
4473 __u32 family; /* Allows 4-byte read, but no write */
4474 __u32 type; /* Allows 4-byte read, but no write */
4475 __u32 protocol; /* Allows 4-byte read, but no write */
4476 __u32 msg_src_ip4; /* Allows 1,2,4-byte read and 4-byte write.
4479 __u32 msg_src_ip6[4]; /* Allows 1,2,4,8-byte read and 4,8-byte write.
4574 * called under sock_ops->op == BPF_SOCK_OPS_PARSE_HDR_OPT_CB
4582 * mode and required the active side to resend the bpf-written
4583 * options. The active side can keep writing the bpf-options until
4594 * sock_ops->op == BPF_SOCK_OPS_PARSE_HDR_OPT_CB.
4604 * sock_ops->op == BPF_SOCK_OPS_HDR_OPT_LEN_CB. Then
4606 * under sock_ops->op == BPF_SOCK_OPS_WRITE_HDR_OPT_CB.
4625 BPF_SOCK_OPS_TIMEOUT_INIT, /* Should return SYN-RTO value to use or
4626 * -1 if default value should be used
4629 * window (in packets) or -1 if default
4679 * sock_ops->skb_data:
4693 * sock_ops->skb_data:
4697 * sock_ops->skb_tcp_flags:
4708 * sock_ops->skb_data:
4713 * earlier bpf-progs.
4715 * sock_ops->skb_tcp_flags:
4728 * earlier bpf-progs.
4766 * 1. the just-received SYN packet (only available when writing the
4780 * If the bpf-prog does not need the IP[46] header, the
4781 * bpf-prog can avoid parsing the IP header by using
4782 * TCP_BPF_SYN. Otherwise, the bpf-prog can get both
4786 * -ENOSPC: Not enough space in optval. Only optlen number of
4788 * -ENOENT: The SYN skb is not available now and the earlier SYN pkt
4870 /* set if lookup is to consider L4 data - e.g., FIB rules */
4875 /* total length of packet from network header - used for MTU check */
4984 * Allows 1,2,4-byte read, but no write.
4987 * Allows 1,2,4-byte read an 4-byte write.
5024 * via the bpf_snprintf_btf() helper described above. A flags field -
5026 * (rather than its mode of display) - is included for future use.
5027 * Display flags - BTF_F_* - are passed to bpf_snprintf_btf separately.
5037 * - BTF_F_COMPACT: no formatting around type information
5038 * - BTF_F_NONAME: no struct/union member names/types
5039 * - BTF_F_PTR_RAW: show raw (unobfuscated) pointer values;
5041 * - BTF_F_ZERO: show zero-valued struct/union members; they