Commit 747ea55e authored by Daniel Borkmann's avatar Daniel Borkmann Committed by David S. Miller

bpf: fix bpf_skb_in_cgroup helper naming

While hashing out BPF's current_task_under_cgroup helper bits, it came
to discussion that the skb_in_cgroup helper name was suboptimally chosen.

Tejun says:

  So, I think in_cgroup should mean that the object is in that
  particular cgroup while under_cgroup in the subhierarchy of that
  cgroup. Let's rename the other subhierarchy test to under too. I
  think that'd be a lot less confusing going forward.

  [...]

  It's more intuitive and gives us the room to implement the real
  "in" test if ever necessary in the future.

Since this touches uapi bits, we need to change this as long as v4.8
is not yet officially released. Thus, change the helper enum and rename
related bits.

Fixes: 4a482f34 ("cgroup: bpf: Add bpf_skb_in_cgroup_proto")
Reference: http://patchwork.ozlabs.org/patch/658500/Suggested-by: default avatarSargun Dhillon <sargun@sargun.me>
Suggested-by: default avatarTejun Heo <tj@kernel.org>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 601bbae0
...@@ -339,7 +339,7 @@ enum bpf_func_id { ...@@ -339,7 +339,7 @@ enum bpf_func_id {
BPF_FUNC_skb_change_type, BPF_FUNC_skb_change_type,
/** /**
* bpf_skb_in_cgroup(skb, map, index) - Check cgroup2 membership of skb * bpf_skb_under_cgroup(skb, map, index) - Check cgroup2 membership of skb
* @skb: pointer to skb * @skb: pointer to skb
* @map: pointer to bpf_map in BPF_MAP_TYPE_CGROUP_ARRAY type * @map: pointer to bpf_map in BPF_MAP_TYPE_CGROUP_ARRAY type
* @index: index of the cgroup in the bpf_map * @index: index of the cgroup in the bpf_map
...@@ -348,7 +348,7 @@ enum bpf_func_id { ...@@ -348,7 +348,7 @@ enum bpf_func_id {
* == 1 skb succeeded the cgroup2 descendant test * == 1 skb succeeded the cgroup2 descendant test
* < 0 error * < 0 error
*/ */
BPF_FUNC_skb_in_cgroup, BPF_FUNC_skb_under_cgroup,
/** /**
* bpf_get_hash_recalc(skb) * bpf_get_hash_recalc(skb)
......
...@@ -1053,7 +1053,7 @@ static int check_map_func_compatibility(struct bpf_map *map, int func_id) ...@@ -1053,7 +1053,7 @@ static int check_map_func_compatibility(struct bpf_map *map, int func_id)
goto error; goto error;
break; break;
case BPF_MAP_TYPE_CGROUP_ARRAY: case BPF_MAP_TYPE_CGROUP_ARRAY:
if (func_id != BPF_FUNC_skb_in_cgroup) if (func_id != BPF_FUNC_skb_under_cgroup)
goto error; goto error;
break; break;
default: default:
...@@ -1075,7 +1075,7 @@ static int check_map_func_compatibility(struct bpf_map *map, int func_id) ...@@ -1075,7 +1075,7 @@ static int check_map_func_compatibility(struct bpf_map *map, int func_id)
if (map->map_type != BPF_MAP_TYPE_STACK_TRACE) if (map->map_type != BPF_MAP_TYPE_STACK_TRACE)
goto error; goto error;
break; break;
case BPF_FUNC_skb_in_cgroup: case BPF_FUNC_skb_under_cgroup:
if (map->map_type != BPF_MAP_TYPE_CGROUP_ARRAY) if (map->map_type != BPF_MAP_TYPE_CGROUP_ARRAY)
goto error; goto error;
break; break;
......
...@@ -2317,7 +2317,7 @@ bpf_get_skb_set_tunnel_proto(enum bpf_func_id which) ...@@ -2317,7 +2317,7 @@ bpf_get_skb_set_tunnel_proto(enum bpf_func_id which)
} }
#ifdef CONFIG_SOCK_CGROUP_DATA #ifdef CONFIG_SOCK_CGROUP_DATA
static u64 bpf_skb_in_cgroup(u64 r1, u64 r2, u64 r3, u64 r4, u64 r5) static u64 bpf_skb_under_cgroup(u64 r1, u64 r2, u64 r3, u64 r4, u64 r5)
{ {
struct sk_buff *skb = (struct sk_buff *)(long)r1; struct sk_buff *skb = (struct sk_buff *)(long)r1;
struct bpf_map *map = (struct bpf_map *)(long)r2; struct bpf_map *map = (struct bpf_map *)(long)r2;
...@@ -2340,8 +2340,8 @@ static u64 bpf_skb_in_cgroup(u64 r1, u64 r2, u64 r3, u64 r4, u64 r5) ...@@ -2340,8 +2340,8 @@ static u64 bpf_skb_in_cgroup(u64 r1, u64 r2, u64 r3, u64 r4, u64 r5)
return cgroup_is_descendant(sock_cgroup_ptr(&sk->sk_cgrp_data), cgrp); return cgroup_is_descendant(sock_cgroup_ptr(&sk->sk_cgrp_data), cgrp);
} }
static const struct bpf_func_proto bpf_skb_in_cgroup_proto = { static const struct bpf_func_proto bpf_skb_under_cgroup_proto = {
.func = bpf_skb_in_cgroup, .func = bpf_skb_under_cgroup,
.gpl_only = false, .gpl_only = false,
.ret_type = RET_INTEGER, .ret_type = RET_INTEGER,
.arg1_type = ARG_PTR_TO_CTX, .arg1_type = ARG_PTR_TO_CTX,
...@@ -2421,8 +2421,8 @@ tc_cls_act_func_proto(enum bpf_func_id func_id) ...@@ -2421,8 +2421,8 @@ tc_cls_act_func_proto(enum bpf_func_id func_id)
case BPF_FUNC_get_smp_processor_id: case BPF_FUNC_get_smp_processor_id:
return &bpf_get_smp_processor_id_proto; return &bpf_get_smp_processor_id_proto;
#ifdef CONFIG_SOCK_CGROUP_DATA #ifdef CONFIG_SOCK_CGROUP_DATA
case BPF_FUNC_skb_in_cgroup: case BPF_FUNC_skb_under_cgroup:
return &bpf_skb_in_cgroup_proto; return &bpf_skb_under_cgroup_proto;
#endif #endif
default: default:
return sk_filter_func_proto(func_id); return sk_filter_func_proto(func_id);
......
...@@ -72,8 +72,8 @@ static int (*bpf_l3_csum_replace)(void *ctx, int off, int from, int to, int flag ...@@ -72,8 +72,8 @@ static int (*bpf_l3_csum_replace)(void *ctx, int off, int from, int to, int flag
(void *) BPF_FUNC_l3_csum_replace; (void *) BPF_FUNC_l3_csum_replace;
static int (*bpf_l4_csum_replace)(void *ctx, int off, int from, int to, int flags) = static int (*bpf_l4_csum_replace)(void *ctx, int off, int from, int to, int flags) =
(void *) BPF_FUNC_l4_csum_replace; (void *) BPF_FUNC_l4_csum_replace;
static int (*bpf_skb_in_cgroup)(void *ctx, void *map, int index) = static int (*bpf_skb_under_cgroup)(void *ctx, void *map, int index) =
(void *) BPF_FUNC_skb_in_cgroup; (void *) BPF_FUNC_skb_under_cgroup;
#if defined(__x86_64__) #if defined(__x86_64__)
......
...@@ -57,7 +57,7 @@ int handle_egress(struct __sk_buff *skb) ...@@ -57,7 +57,7 @@ int handle_egress(struct __sk_buff *skb)
bpf_trace_printk(dont_care_msg, sizeof(dont_care_msg), bpf_trace_printk(dont_care_msg, sizeof(dont_care_msg),
eth->h_proto, ip6h->nexthdr); eth->h_proto, ip6h->nexthdr);
return TC_ACT_OK; return TC_ACT_OK;
} else if (bpf_skb_in_cgroup(skb, &test_cgrp2_array_pin, 0) != 1) { } else if (bpf_skb_under_cgroup(skb, &test_cgrp2_array_pin, 0) != 1) {
bpf_trace_printk(pass_msg, sizeof(pass_msg)); bpf_trace_printk(pass_msg, sizeof(pass_msg));
return TC_ACT_OK; return TC_ACT_OK;
} else { } else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment