diff options
Diffstat (limited to 'tools/include/uapi/linux')
| -rw-r--r-- | tools/include/uapi/linux/bpf.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h index e1c1fed63396..f2120c5c0578 100644 --- a/tools/include/uapi/linux/bpf.h +++ b/tools/include/uapi/linux/bpf.h | |||
| @@ -136,6 +136,7 @@ enum bpf_prog_type { | |||
| 136 | BPF_PROG_TYPE_CGROUP_DEVICE, | 136 | BPF_PROG_TYPE_CGROUP_DEVICE, |
| 137 | BPF_PROG_TYPE_SK_MSG, | 137 | BPF_PROG_TYPE_SK_MSG, |
| 138 | BPF_PROG_TYPE_RAW_TRACEPOINT, | 138 | BPF_PROG_TYPE_RAW_TRACEPOINT, |
| 139 | BPF_PROG_TYPE_CGROUP_SOCK_ADDR, | ||
| 139 | }; | 140 | }; |
| 140 | 141 | ||
| 141 | enum bpf_attach_type { | 142 | enum bpf_attach_type { |
| @@ -147,6 +148,8 @@ enum bpf_attach_type { | |||
| 147 | BPF_SK_SKB_STREAM_VERDICT, | 148 | BPF_SK_SKB_STREAM_VERDICT, |
| 148 | BPF_CGROUP_DEVICE, | 149 | BPF_CGROUP_DEVICE, |
| 149 | BPF_SK_MSG_VERDICT, | 150 | BPF_SK_MSG_VERDICT, |
| 151 | BPF_CGROUP_INET4_BIND, | ||
| 152 | BPF_CGROUP_INET6_BIND, | ||
| 150 | __MAX_BPF_ATTACH_TYPE | 153 | __MAX_BPF_ATTACH_TYPE |
| 151 | }; | 154 | }; |
| 152 | 155 | ||
| @@ -1009,6 +1012,26 @@ struct bpf_map_info { | |||
| 1009 | __u64 netns_ino; | 1012 | __u64 netns_ino; |
| 1010 | } __attribute__((aligned(8))); | 1013 | } __attribute__((aligned(8))); |
| 1011 | 1014 | ||
| 1015 | /* User bpf_sock_addr struct to access socket fields and sockaddr struct passed | ||
| 1016 | * by user and intended to be used by socket (e.g. to bind to, depends on | ||
| 1017 | * attach attach type). | ||
| 1018 | */ | ||
| 1019 | struct bpf_sock_addr { | ||
| 1020 | __u32 user_family; /* Allows 4-byte read, but no write. */ | ||
| 1021 | __u32 user_ip4; /* Allows 1,2,4-byte read and 4-byte write. | ||
| 1022 | * Stored in network byte order. | ||
| 1023 | */ | ||
| 1024 | __u32 user_ip6[4]; /* Allows 1,2,4-byte read an 4-byte write. | ||
| 1025 | * Stored in network byte order. | ||
| 1026 | */ | ||
| 1027 | __u32 user_port; /* Allows 4-byte read and write. | ||
| 1028 | * Stored in network byte order | ||
| 1029 | */ | ||
| 1030 | __u32 family; /* Allows 4-byte read, but no write */ | ||
| 1031 | __u32 type; /* Allows 4-byte read, but no write */ | ||
| 1032 | __u32 protocol; /* Allows 4-byte read, but no write */ | ||
| 1033 | }; | ||
| 1034 | |||
| 1012 | /* User bpf_sock_ops struct to access socket values and specify request ops | 1035 | /* User bpf_sock_ops struct to access socket values and specify request ops |
| 1013 | * and their replies. | 1036 | * and their replies. |
| 1014 | * Some of this fields are in network (bigendian) byte order and may need | 1037 | * Some of this fields are in network (bigendian) byte order and may need |
