diff options
author | Daniel Borkmann <daniel@iogearbox.net> | 2016-02-07 02:11:50 +0100 |
---|---|---|
committer | Stephen Hemminger <stephen@networkplumber.org> | 2016-02-07 11:27:38 -0800 |
commit | 92a36995b3ceb4de4ebd43d9358e0edebce67615 (patch) | |
tree | 0023b17042a282a59e430e5591399354f2d525c3 /examples/bpf/bpf_tailcall.c | |
parent | 9450c5ec63b0cc4068b363eae7c71b024fc25121 (diff) | |
download | platform_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.c | 12 |
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; } |