aboutsummaryrefslogtreecommitdiffstats
path: root/examples/bpf/bpf_tailcall.c
diff options
context:
space:
mode:
authorDaniel Borkmann <daniel@iogearbox.net>2016-02-07 02:11:50 +0100
committerStephen Hemminger <stephen@networkplumber.org>2016-02-07 11:27:38 -0800
commit92a36995b3ceb4de4ebd43d9358e0edebce67615 (patch)
tree0023b17042a282a59e430e5591399354f2d525c3 /examples/bpf/bpf_tailcall.c
parent9450c5ec63b0cc4068b363eae7c71b024fc25121 (diff)
downloadplatform_external_iproute2-92a36995b3ceb4de4ebd43d9358e0edebce67615.tar.gz
platform_external_iproute2-92a36995b3ceb4de4ebd43d9358e0edebce67615.tar.bz2
platform_external_iproute2-92a36995b3ceb4de4ebd43d9358e0edebce67615.zip
tc, bpf, examples: further bpf_api improvements
Add a couple of improvements to tc's BPF api, that facilitate program development. Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'examples/bpf/bpf_tailcall.c')
-rw-r--r--examples/bpf/bpf_tailcall.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/examples/bpf/bpf_tailcall.c b/examples/bpf/bpf_tailcall.c
index 040790d0..f545430f 100644
--- a/examples/bpf/bpf_tailcall.c
+++ b/examples/bpf/bpf_tailcall.c
@@ -34,12 +34,11 @@ BPF_ARRAY4(map_sh, 0, PIN_OBJECT_NS, 1);
__section_tail(FOO, ENTRY_0)
int cls_case1(struct __sk_buff *skb)
{
- char fmt[] = "case1: map-val: %d from:%u\n";
int key = 0, *val;
val = map_lookup_elem(&map_sh, &key);
if (val)
- trace_printk(fmt, sizeof(fmt), *val, skb->cb[0]);
+ printt("case1: map-val: %d from:%u\n", *val, skb->cb[0]);
skb->cb[0] = ENTRY_0;
tail_call(skb, &jmp_ex, ENTRY_0);
@@ -50,12 +49,11 @@ int cls_case1(struct __sk_buff *skb)
__section_tail(FOO, ENTRY_1)
int cls_case2(struct __sk_buff *skb)
{
- char fmt[] = "case2: map-val: %d from:%u\n";
int key = 0, *val;
val = map_lookup_elem(&map_sh, &key);
if (val)
- trace_printk(fmt, sizeof(fmt), *val, skb->cb[0]);
+ printt("case2: map-val: %d from:%u\n", *val, skb->cb[0]);
skb->cb[0] = ENTRY_1;
tail_call(skb, &jmp_tc, ENTRY_0);
@@ -66,12 +64,11 @@ int cls_case2(struct __sk_buff *skb)
__section_tail(BAR, ENTRY_0)
int cls_exit(struct __sk_buff *skb)
{
- char fmt[] = "exit: map-val: %d from:%u\n";
int key = 0, *val;
val = map_lookup_elem(&map_sh, &key);
if (val)
- trace_printk(fmt, sizeof(fmt), *val, skb->cb[0]);
+ printt("exit: map-val: %d from:%u\n", *val, skb->cb[0]);
/* Termination point. */
return BPF_H_DEFAULT;
@@ -80,7 +77,6 @@ int cls_exit(struct __sk_buff *skb)
__section_cls_entry
int cls_entry(struct __sk_buff *skb)
{
- char fmt[] = "fallthrough\n";
int key = 0, *val;
/* For transferring state, we can use skb->cb[0] ... skb->cb[4]. */
@@ -92,7 +88,7 @@ int cls_entry(struct __sk_buff *skb)
tail_call(skb, &jmp_tc, skb->hash & (MAX_JMP_SIZE - 1));
}
- trace_printk(fmt, sizeof(fmt));
+ printt("fallthrough\n");
return BPF_H_DEFAULT;
}