bpf.h revision 48af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0
182d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris/****************************************************************************
282d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris ****************************************************************************
382d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris ***
482d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris ***   This header was automatically generated from a Linux kernel header
582d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris ***   of the same name, to make information necessary for userspace to
682d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris ***   call into the kernel available to libc.  It contains only constants,
782d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris ***   structures, and macros generated from the original header, and thus,
882d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris ***   contains no copyrightable information.
982d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris ***
1082d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris ***   To edit the content of this header, modify the corresponding
1182d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris ***   source file (e.g. under external/kernel-headers/original/) then
1282d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris ***   run bionic/libc/kernel/tools/update_all.py
1382d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris ***
1482d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris ***   Any manual change here will be lost the next time this script will
1582d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris ***   be run. You've been warned!
1682d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris ***
1782d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris ****************************************************************************
1882d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris ****************************************************************************/
1982d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#ifndef _UAPI__LINUX_BPF_H__
2082d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define _UAPI__LINUX_BPF_H__
2182d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#include <linux/types.h>
2282d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#include <linux/bpf_common.h>
2382d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2482d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define BPF_ALU64 0x07
2582d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define BPF_DW 0x18
2682d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define BPF_XADD 0xc0
2782d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define BPF_MOV 0xb0
2882d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2982d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define BPF_ARSH 0xc0
3082d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define BPF_END 0xd0
3182d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define BPF_TO_LE 0x00
3282d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define BPF_TO_BE 0x08
3382d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
3482d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define BPF_FROM_LE BPF_TO_LE
3582d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define BPF_FROM_BE BPF_TO_BE
3682d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define BPF_JNE 0x50
3782d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define BPF_JSGT 0x60
3882d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
3982d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define BPF_JSGE 0x70
4082d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define BPF_CALL 0x80
4182d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define BPF_EXIT 0x90
4282d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferrisenum {
4382d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_REG_0 = 0,
45d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_REG_1,
46d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_REG_2,
47d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_REG_3,
4882d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_REG_4,
50d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_REG_5,
51d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_REG_6,
52d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_REG_7,
5382d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_REG_8,
55d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_REG_9,
56d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_REG_10,
57d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __MAX_BPF_REG,
5882d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
5982d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris};
6082d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define MAX_BPF_REG __MAX_BPF_REG
6182d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferrisstruct bpf_insn {
62d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 code;
6382d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 dst_reg : 4;
65d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 src_reg : 4;
66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s16 off;
67d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 imm;
6882d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
6982d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris};
7082d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferrisenum bpf_cmd {
71d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_MAP_CREATE,
72d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_MAP_LOOKUP_ELEM,
7382d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_MAP_UPDATE_ELEM,
75d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_MAP_DELETE_ELEM,
76d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_MAP_GET_NEXT_KEY,
77d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_PROG_LOAD,
7882d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
7905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  BPF_OBJ_PIN,
8005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  BPF_OBJ_GET,
8148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  BPF_PROG_ATTACH,
8248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  BPF_PROG_DETACH,
8348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
8482d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris};
8582d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferrisenum bpf_map_type {
86d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_MAP_TYPE_UNSPEC,
8705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  BPF_MAP_TYPE_HASH,
8848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
8905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  BPF_MAP_TYPE_ARRAY,
9005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  BPF_MAP_TYPE_PROG_ARRAY,
9105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  BPF_MAP_TYPE_PERF_EVENT_ARRAY,
92106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  BPF_MAP_TYPE_PERCPU_HASH,
9348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  BPF_MAP_TYPE_PERCPU_ARRAY,
95106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  BPF_MAP_TYPE_STACK_TRACE,
9649f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  BPF_MAP_TYPE_CGROUP_ARRAY,
9748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  BPF_MAP_TYPE_LRU_HASH,
9848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
9948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  BPF_MAP_TYPE_LRU_PERCPU_HASH,
10005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
10182d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferrisenum bpf_prog_type {
102d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  BPF_PROG_TYPE_UNSPEC,
103106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
10449f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  BPF_PROG_TYPE_SOCKET_FILTER,
10505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  BPF_PROG_TYPE_KPROBE,
10605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  BPF_PROG_TYPE_SCHED_CLS,
10705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  BPF_PROG_TYPE_SCHED_ACT,
10805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
10949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  BPF_PROG_TYPE_TRACEPOINT,
11049f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  BPF_PROG_TYPE_XDP,
1116a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  BPF_PROG_TYPE_PERF_EVENT,
11248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  BPF_PROG_TYPE_CGROUP_SKB,
11348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
11448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  BPF_PROG_TYPE_CGROUP_SOCK,
11548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  BPF_PROG_TYPE_LWT_IN,
11648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  BPF_PROG_TYPE_LWT_OUT,
11748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  BPF_PROG_TYPE_LWT_XMIT,
11848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
11982d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris};
12048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisenum bpf_attach_type {
12148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  BPF_CGROUP_INET_INGRESS,
12248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  BPF_CGROUP_INET_EGRESS,
12349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
12448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  BPF_CGROUP_INET_SOCK_CREATE,
12548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __MAX_BPF_ATTACH_TYPE
12648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris};
12748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE
12848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
12948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define BPF_F_ALLOW_OVERRIDE (1U << 0)
1306a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define BPF_PSEUDO_MAP_FD 1
13105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define BPF_ANY 0
13205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define BPF_NOEXIST 1
13349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
13448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define BPF_EXIST 2
1356a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define BPF_F_NO_PREALLOC (1U << 0)
13648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define BPF_F_NO_COMMON_LRU (1U << 1)
13705d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisunion bpf_attr {
13848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct {
140106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris    __u32 map_type;
1416a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris    __u32 key_size;
142d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    __u32 value_size;
14348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    __u32 max_entries;
145106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris    __u32 map_flags;
1466a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  };
147d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct {
14848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    __u32 map_fd;
150d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    __aligned_u64 key;
1516a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris    union {
152d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __aligned_u64 value;
15348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __aligned_u64 next_key;
155d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    };
1566a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris    __u64 flags;
157d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  };
15848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct {
160d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    __u32 prog_type;
1616a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris    __u32 insn_cnt;
162d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    __aligned_u64 insns;
16348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    __aligned_u64 license;
165d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    __u32 log_level;
1666a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris    __u32 log_size;
167d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    __aligned_u64 log_buf;
16848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
16905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris    __u32 kern_version;
17005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  };
1716a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  struct {
17205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris    __aligned_u64 pathname;
17348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
17405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris    __u32 bpf_fd;
175d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  };
17648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  struct {
17748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris    __u32 target_fd;
17848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
17948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris    __u32 attach_bpf_fd;
18048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris    __u32 attach_type;
18148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris    __u32 attach_flags;
18248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  };
18349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1846a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris} __attribute__((aligned(8)));
18548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#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),
18648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define __BPF_ENUM_FN(x) BPF_FUNC_ ##x
18782d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferrisenum bpf_func_id {
18848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
18948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __BPF_FUNC_MAPPER(__BPF_ENUM_FN) __BPF_FUNC_MAX_ID,
19005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
19148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#undef __BPF_ENUM_FN
192106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define BPF_F_RECOMPUTE_CSUM (1ULL << 0)
1936a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
19448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define BPF_F_INVALIDATE_HASH (1ULL << 1)
195106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define BPF_F_HDR_FIELD_MASK 0xfULL
196106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define BPF_F_PSEUDO_HDR (1ULL << 4)
197106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define BPF_F_MARK_MANGLED_0 (1ULL << 5)
1986a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
19948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define BPF_F_INGRESS (1ULL << 0)
200106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define BPF_F_TUNINFO_IPV6 (1ULL << 0)
201106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define BPF_F_SKIP_FIELD_MASK 0xffULL
202106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define BPF_F_USER_STACK (1ULL << 8)
2036a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
20448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define BPF_F_FAST_STACK_CMP (1ULL << 9)
205106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define BPF_F_REUSE_STACKID (1ULL << 10)
206106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define BPF_F_ZERO_CSUM_TX (1ULL << 1)
207106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define BPF_F_DONT_FRAGMENT (1ULL << 2)
2086a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
20948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define BPF_F_INDEX_MASK 0xffffffffULL
210106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define BPF_F_CURRENT_CPU BPF_F_INDEX_MASK
21149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define BPF_F_CTXLEN_MASK (0xfffffULL << 32)
21249f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisstruct __sk_buff {
2136a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
21448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __u32 len;
21505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 pkt_type;
21605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 mark;
21749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u32 queue_mapping;
2186a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
21948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __u32 protocol;
22005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 vlan_present;
22105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 vlan_tci;
22249f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u32 vlan_proto;
2236a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
22448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __u32 priority;
22505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 ingress_ifindex;
22605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 ifindex;
22749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u32 tc_index;
2286a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
22948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __u32 cb[5];
23005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 hash;
23105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u32 tc_classid;
23249f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u32 data;
2336a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
23448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __u32 data_end;
23582d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris};
23605d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct bpf_tunnel_key {
23749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u32 tunnel_id;
2386a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
23948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  union {
240106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris    __u32 remote_ipv4;
241106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris    __u32 remote_ipv6[4];
24249f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  };
2436a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __u8 tunnel_tos;
245106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  __u8 tunnel_ttl;
246106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  __u16 tunnel_ext;
247106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  __u32 tunnel_label;
24848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris};
25048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisenum bpf_ret_code {
25148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  BPF_OK = 0,
25248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  BPF_DROP = 2,
25348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
25448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  BPF_REDIRECT = 7,
25549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris};
25648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisstruct bpf_sock {
25748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __u32 bound_dev_if;
2586a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
25948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __u32 family;
26048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __u32 type;
26148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __u32 protocol;
26248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris};
26348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
26448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define XDP_PACKET_HEADROOM 256
26549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisenum xdp_action {
26649f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  XDP_ABORTED = 0,
26749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  XDP_DROP,
2686a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
26948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  XDP_PASS,
27049f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  XDP_TX,
27105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
27249f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisstruct xdp_md {
2736a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
27448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __u32 data;
27549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u32 data_end;
27649f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris};
27782d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#endif
27848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279