aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNaveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>2016-09-23 16:40:04 -0400
committerDavid S. Miller <davem@davemloft.net>2016-09-27 03:48:58 -0400
commit2b064fff8527a1052c7060c65c22cae80a9343b9 (patch)
tree9a74e3c8cc605514c03b5637ca7cd60e38f6f4a2
parentb6f5be287344433100201c4d6f3f8dcd1755a6b3 (diff)
bpf samples: fix compiler errors with sockex2 and sockex3
These samples fail to compile as 'struct flow_keys' conflicts with definition in net/flow_dissector.h. Fix the same by renaming the structure used in the sample. Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Acked-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--samples/bpf/sockex2_kern.c10
-rw-r--r--samples/bpf/sockex3_kern.c8
-rw-r--r--samples/bpf/sockex3_user.c4
3 files changed, 11 insertions, 11 deletions
diff --git a/samples/bpf/sockex2_kern.c b/samples/bpf/sockex2_kern.c
index ba0e177ff561..44e5846c988f 100644
--- a/samples/bpf/sockex2_kern.c
+++ b/samples/bpf/sockex2_kern.c
@@ -14,7 +14,7 @@ struct vlan_hdr {
14 __be16 h_vlan_encapsulated_proto; 14 __be16 h_vlan_encapsulated_proto;
15}; 15};
16 16
17struct flow_keys { 17struct bpf_flow_keys {
18 __be32 src; 18 __be32 src;
19 __be32 dst; 19 __be32 dst;
20 union { 20 union {
@@ -59,7 +59,7 @@ static inline __u32 ipv6_addr_hash(struct __sk_buff *ctx, __u64 off)
59} 59}
60 60
61static inline __u64 parse_ip(struct __sk_buff *skb, __u64 nhoff, __u64 *ip_proto, 61static inline __u64 parse_ip(struct __sk_buff *skb, __u64 nhoff, __u64 *ip_proto,
62 struct flow_keys *flow) 62 struct bpf_flow_keys *flow)
63{ 63{
64 __u64 verlen; 64 __u64 verlen;
65 65
@@ -83,7 +83,7 @@ static inline __u64 parse_ip(struct __sk_buff *skb, __u64 nhoff, __u64 *ip_proto
83} 83}
84 84
85static inline __u64 parse_ipv6(struct __sk_buff *skb, __u64 nhoff, __u64 *ip_proto, 85static inline __u64 parse_ipv6(struct __sk_buff *skb, __u64 nhoff, __u64 *ip_proto,
86 struct flow_keys *flow) 86 struct bpf_flow_keys *flow)
87{ 87{
88 *ip_proto = load_byte(skb, 88 *ip_proto = load_byte(skb,
89 nhoff + offsetof(struct ipv6hdr, nexthdr)); 89 nhoff + offsetof(struct ipv6hdr, nexthdr));
@@ -96,7 +96,7 @@ static inline __u64 parse_ipv6(struct __sk_buff *skb, __u64 nhoff, __u64 *ip_pro
96 return nhoff; 96 return nhoff;
97} 97}
98 98
99static inline bool flow_dissector(struct __sk_buff *skb, struct flow_keys *flow) 99static inline bool flow_dissector(struct __sk_buff *skb, struct bpf_flow_keys *flow)
100{ 100{
101 __u64 nhoff = ETH_HLEN; 101 __u64 nhoff = ETH_HLEN;
102 __u64 ip_proto; 102 __u64 ip_proto;
@@ -198,7 +198,7 @@ struct bpf_map_def SEC("maps") hash_map = {
198SEC("socket2") 198SEC("socket2")
199int bpf_prog2(struct __sk_buff *skb) 199int bpf_prog2(struct __sk_buff *skb)
200{ 200{
201 struct flow_keys flow; 201 struct bpf_flow_keys flow;
202 struct pair *value; 202 struct pair *value;
203 u32 key; 203 u32 key;
204 204
diff --git a/samples/bpf/sockex3_kern.c b/samples/bpf/sockex3_kern.c
index 41ae2fd21b13..95907f8d2b17 100644
--- a/samples/bpf/sockex3_kern.c
+++ b/samples/bpf/sockex3_kern.c
@@ -61,7 +61,7 @@ struct vlan_hdr {
61 __be16 h_vlan_encapsulated_proto; 61 __be16 h_vlan_encapsulated_proto;
62}; 62};
63 63
64struct flow_keys { 64struct bpf_flow_keys {
65 __be32 src; 65 __be32 src;
66 __be32 dst; 66 __be32 dst;
67 union { 67 union {
@@ -88,7 +88,7 @@ static inline __u32 ipv6_addr_hash(struct __sk_buff *ctx, __u64 off)
88} 88}
89 89
90struct globals { 90struct globals {
91 struct flow_keys flow; 91 struct bpf_flow_keys flow;
92}; 92};
93 93
94struct bpf_map_def SEC("maps") percpu_map = { 94struct bpf_map_def SEC("maps") percpu_map = {
@@ -114,14 +114,14 @@ struct pair {
114 114
115struct bpf_map_def SEC("maps") hash_map = { 115struct bpf_map_def SEC("maps") hash_map = {
116 .type = BPF_MAP_TYPE_HASH, 116 .type = BPF_MAP_TYPE_HASH,
117 .key_size = sizeof(struct flow_keys), 117 .key_size = sizeof(struct bpf_flow_keys),
118 .value_size = sizeof(struct pair), 118 .value_size = sizeof(struct pair),
119 .max_entries = 1024, 119 .max_entries = 1024,
120}; 120};
121 121
122static void update_stats(struct __sk_buff *skb, struct globals *g) 122static void update_stats(struct __sk_buff *skb, struct globals *g)
123{ 123{
124 struct flow_keys key = g->flow; 124 struct bpf_flow_keys key = g->flow;
125 struct pair *value; 125 struct pair *value;
126 126
127 value = bpf_map_lookup_elem(&hash_map, &key); 127 value = bpf_map_lookup_elem(&hash_map, &key);
diff --git a/samples/bpf/sockex3_user.c b/samples/bpf/sockex3_user.c
index d4184ab5f3ac..3fcfd8c4b2a3 100644
--- a/samples/bpf/sockex3_user.c
+++ b/samples/bpf/sockex3_user.c
@@ -7,7 +7,7 @@
7#include <arpa/inet.h> 7#include <arpa/inet.h>
8#include <sys/resource.h> 8#include <sys/resource.h>
9 9
10struct flow_keys { 10struct bpf_flow_keys {
11 __be32 src; 11 __be32 src;
12 __be32 dst; 12 __be32 dst;
13 union { 13 union {
@@ -49,7 +49,7 @@ int main(int argc, char **argv)
49 (void) f; 49 (void) f;
50 50
51 for (i = 0; i < 5; i++) { 51 for (i = 0; i < 5; i++) {
52 struct flow_keys key = {}, next_key; 52 struct bpf_flow_keys key = {}, next_key;
53 struct pair value; 53 struct pair value;
54 54
55 sleep(1); 55 sleep(1);