The tools version of this header is out of date; update it to the latest version from kernel header. Synchronize with the following commits: * b95a5c4db09b ("bpf: add a longest prefix match trie map implementation") * a5e8c07059d0 ("bpf: add bpf_probe_read_str helper") * d1b662adcdb8 ("bpf: allow option for setting bpf_l4_csum_replace from scratch")
Showing the changes to tools/include/uapi/linux (1 of 1 file). Show all
Unified · Split
| @@ -63,6 +63,12 @@ struct bpf_insn { · 62 unmodified lines | ||
| 63 | 63 | __s32 imm; /* signed immediate constant */ |
| 64 | 64 | }; |
| 65 | 65 | |
| 66 | +/* Key of an a BPF_MAP_TYPE_LPM_TRIE entry */ | |
| 67 | +struct bpf_lpm_trie_key { | |
| 68 | + __u32 prefixlen; /* up to 32 for AF_INET, 128 for AF_INET6 */ | |
| 69 | + __u8 data[0]; /* Arbitrary size */ | |
| 70 | +}; | |
| 71 | + | |
| 66 | 72 | /* BPF syscall commands, see bpf(2) man-page for details. */ |
| 67 | 73 | enum bpf_cmd { |
| 68 | 74 | BPF_MAP_CREATE, |
| @@ -89,6 +95,7 @@ enum bpf_map_type { · 20 unmodified lines | ||
| 89 | 95 | BPF_MAP_TYPE_CGROUP_ARRAY, |
| 90 | 96 | BPF_MAP_TYPE_LRU_HASH, |
| 91 | 97 | BPF_MAP_TYPE_LRU_PERCPU_HASH, |
| 98 | + BPF_MAP_TYPE_LPM_TRIE, | |
| 92 | 99 | }; |
| 93 | 100 | |
| 94 | 101 | enum bpf_prog_type { |
| @@ -430,6 +437,18 @@ union bpf_attr { · 335 unmodified lines | ||
| 430 | 437 | * @xdp_md: pointer to xdp_md |
| 431 | 438 | * @delta: An positive/negative integer to be added to xdp_md.data |
| 432 | 439 | * Return: 0 on success or negative on error |
| 440 | + * | |
| 441 | + * int bpf_probe_read_str(void *dst, int size, const void *unsafe_ptr) | |
| 442 | + * Copy a NUL terminated string from unsafe address. In case the string | |
| 443 | + * length is smaller than size, the target is not padded with further NUL | |
| 444 | + * bytes. In case the string length is larger than size, just count-1 | |
| 445 | + * bytes are copied and the last byte is set to NUL. | |
| 446 | + * @dst: destination address | |
| 447 | + * @size: maximum number of bytes to copy, including the trailing NUL | |
| 448 | + * @unsafe_ptr: unsafe address | |
| 449 | + * Return: | |
| 450 | + * > 0 length of the string including the trailing NUL on success | |
| 451 | + * < 0 error | |
| 433 | 452 | */ |
| 434 | 453 | #define __BPF_FUNC_MAPPER(FN) \ |
| 435 | 454 | FN(unspec), \ |
| @@ -476,7 +495,8 @@ union bpf_attr { · 40 unmodified lines | ||
| 476 | 495 | FN(set_hash_invalid), \ |
| 477 | 496 | FN(get_numa_node_id), \ |
| 478 | 497 | FN(skb_change_head), \ |
| 479 | − FN(xdp_adjust_head), | |
| 498 | + FN(xdp_adjust_head), \ | |
| 499 | + FN(probe_read_str), | |
| 480 | 500 | |
| 481 | 501 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper |
| 482 | 502 | * function eBPF program intends to call |
| @@ -502,6 +522,7 @@ enum bpf_func_id { · 19 unmodified lines | ||
| 502 | 522 | /* BPF_FUNC_l4_csum_replace flags. */ |
| 503 | 523 | #define BPF_F_PSEUDO_HDR (1ULL << 4) |
| 504 | 524 | #define BPF_F_MARK_MANGLED_0 (1ULL << 5) |
| 525 | +#define BPF_F_MARK_ENFORCE (1ULL << 6) | |
| 505 | 526 | |
| 506 | 527 | /* BPF_FUNC_clone_redirect and BPF_FUNC_redirect flags. */ |
| 507 | 528 | #define BPF_F_INGRESS (1ULL << 0) |