diff options
| author | David S. Miller <davem@davemloft.net> | 2015-07-20 20:52:32 -0700 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2015-07-20 20:52:32 -0700 |
| commit | 500322ec418171a1d067cfd8a3b0fde4b6eb7257 (patch) | |
| tree | 0eeec6acd33f939f37b4b67722b4588d5a88b304 /include | |
| parent | f3120acc7851bffd1cd15acd044b7fa6fa520e75 (diff) | |
| parent | 4d9c5c53ac99e4cb5d031897863203d7817b36e0 (diff) | |
Merge branch 'bpf-push-pop-helpers'
Alexei Starovoitov says:
====================
bpf: introduce bpf_skb_vlan_push/pop() helpers
Let TC+eBPF programs call skb_vlan_push/pop via helpers.
v1->v2:
- reworded commit log to better explain correctness of re-caching
and fixed comparison of mixed endiannes (suggested by Eric)
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/bpf.h | 2 | ||||
| -rw-r--r-- | include/linux/filter.h | 1 | ||||
| -rw-r--r-- | include/uapi/linux/bpf.h | 2 |
3 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/bpf.h b/include/linux/bpf.h index 4383476a0d48..139d6d2e123f 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -192,5 +192,7 @@ extern const struct bpf_func_proto bpf_ktime_get_ns_proto; extern const struct bpf_func_proto bpf_get_current_pid_tgid_proto; extern const struct bpf_func_proto bpf_get_current_uid_gid_proto; extern const struct bpf_func_proto bpf_get_current_comm_proto; +extern const struct bpf_func_proto bpf_skb_vlan_push_proto; +extern const struct bpf_func_proto bpf_skb_vlan_pop_proto; #endif /* _LINUX_BPF_H */ diff --git a/include/linux/filter.h b/include/linux/filter.h index 17724f6ea983..69d00555ce35 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h @@ -411,6 +411,7 @@ void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp); u64 __bpf_call_base(u64 r1, u64 r2, u64 r3, u64 r4, u64 r5); void bpf_int_jit_compile(struct bpf_prog *fp); +bool bpf_helper_changes_skb_data(void *func); #ifdef CONFIG_BPF_JIT typedef void (*bpf_jit_fill_hole_t)(void *area, unsigned int size); diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h index 2de87e58b12b..2f6c83d714e9 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -256,6 +256,8 @@ enum bpf_func_id { * Return: classid if != 0 */ BPF_FUNC_get_cgroup_classid, + BPF_FUNC_skb_vlan_push, /* bpf_skb_vlan_push(skb, vlan_proto, vlan_tci) */ + BPF_FUNC_skb_vlan_pop, /* bpf_skb_vlan_pop(skb) */ __BPF_FUNC_MAX_ID, }; |
