diff options
author | Alexei Starovoitov <ast@plumgrid.com> | 2015-06-04 20:11:54 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-06-07 12:01:33 +0300 |
commit | d691f9e8d4405c334aa10d556e73c8bf44cb0e01 (patch) | |
tree | 295b1d647364407c42990d916358a72381f4d534 /include/uapi/linux/bpf.h | |
parent | 3431205e03977aaf32bce6d4b16fb8244b510056 (diff) | |
download | linux-d691f9e8d4405c334aa10d556e73c8bf44cb0e01.tar.xz |
bpf: allow programs to write to certain skb fields
allow programs read/write skb->mark, tc_index fields and
((struct qdisc_skb_cb *)cb)->data.
mark and tc_index are generically useful in TC.
cb[0]-cb[4] are primarily used to pass arguments from one
program to another called via bpf_tail_call() which can
be seen in sockex3_kern.c example.
All fields of 'struct __sk_buff' are readable to socket and tc_cls_act progs.
mark, tc_index are writeable from tc_cls_act only.
cb[0]-cb[4] are writeable by both sockets and tc_cls_act.
Add verifier tests and improve sample code.
Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/uapi/linux/bpf.h')
-rw-r--r-- | include/uapi/linux/bpf.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h index 42aa19abab86..602f05b7a275 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -248,6 +248,8 @@ struct __sk_buff { __u32 priority; __u32 ingress_ifindex; __u32 ifindex; + __u32 tc_index; + __u32 cb[5]; }; #endif /* _UAPI__LINUX_BPF_H__ */ |