Skip to content

Commit f4ce0a0

Browse files
netoptimizerdavem330
authored andcommitted
samples/bpf: xdp_monitor first 8 bytes are not accessible by bpf
The first 8 bytes of the tracepoint context struct are not accessible by the bpf code. This is a choice that dates back to the original inclusion of this code. See explaination in: commit 98b5c2c ("perf, bpf: allow bpf programs attach to tracepoints") Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> Acked-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent c6a1575 commit f4ce0a0

File tree

1 file changed

+9
-13
lines changed

1 file changed

+9
-13
lines changed

samples/bpf/xdp_monitor_kern.c

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,15 @@ struct bpf_map_def SEC("maps") redirect_err_cnt = {
1717
* Code in: kernel/include/trace/events/xdp.h
1818
*/
1919
struct xdp_redirect_ctx {
20-
unsigned short common_type; // offset:0; size:2; signed:0;
21-
unsigned char common_flags; // offset:2; size:1; signed:0;
22-
unsigned char common_preempt_count;// offset:3; size:1; signed:0;
23-
int common_pid; // offset:4; size:4; signed:1;
24-
25-
int prog_id; // offset:8; size:4; signed:1;
26-
u32 act; // offset:12 size:4; signed:0;
27-
int ifindex; // offset:16 size:4; signed:1;
28-
int err; // offset:20 size:4; signed:1;
29-
int to_ifindex; // offset:24 size:4; signed:1;
30-
u32 map_id; // offset:28 size:4; signed:0;
31-
int map_index; // offset:32 size:4; signed:1;
32-
}; // offset:36
20+
u64 __pad; // First 8 bytes are not accessible by bpf code
21+
int prog_id; // offset:8; size:4; signed:1;
22+
u32 act; // offset:12 size:4; signed:0;
23+
int ifindex; // offset:16 size:4; signed:1;
24+
int err; // offset:20 size:4; signed:1;
25+
int to_ifindex; // offset:24 size:4; signed:1;
26+
u32 map_id; // offset:28 size:4; signed:0;
27+
int map_index; // offset:32 size:4; signed:1;
28+
}; // offset:36
3329

3430
enum {
3531
XDP_REDIRECT_SUCCESS = 0,

0 commit comments

Comments
 (0)