diff options
author | Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> | 2016-09-23 16:40:04 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-09-27 03:48:58 -0400 |
commit | 2b064fff8527a1052c7060c65c22cae80a9343b9 (patch) | |
tree | 9a74e3c8cc605514c03b5637ca7cd60e38f6f4a2 | |
parent | b6f5be287344433100201c4d6f3f8dcd1755a6b3 (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.c | 10 | ||||
-rw-r--r-- | samples/bpf/sockex3_kern.c | 8 | ||||
-rw-r--r-- | samples/bpf/sockex3_user.c | 4 |
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 | ||
17 | struct flow_keys { | 17 | struct 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 | ||
61 | static inline __u64 parse_ip(struct __sk_buff *skb, __u64 nhoff, __u64 *ip_proto, | 61 | static 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 | ||
85 | static inline __u64 parse_ipv6(struct __sk_buff *skb, __u64 nhoff, __u64 *ip_proto, | 85 | static 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 | ||
99 | static inline bool flow_dissector(struct __sk_buff *skb, struct flow_keys *flow) | 99 | static 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 = { | |||
198 | SEC("socket2") | 198 | SEC("socket2") |
199 | int bpf_prog2(struct __sk_buff *skb) | 199 | int 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 | ||
64 | struct flow_keys { | 64 | struct 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 | ||
90 | struct globals { | 90 | struct globals { |
91 | struct flow_keys flow; | 91 | struct bpf_flow_keys flow; |
92 | }; | 92 | }; |
93 | 93 | ||
94 | struct bpf_map_def SEC("maps") percpu_map = { | 94 | struct bpf_map_def SEC("maps") percpu_map = { |
@@ -114,14 +114,14 @@ struct pair { | |||
114 | 114 | ||
115 | struct bpf_map_def SEC("maps") hash_map = { | 115 | struct 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 | ||
122 | static void update_stats(struct __sk_buff *skb, struct globals *g) | 122 | static 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 | ||
10 | struct flow_keys { | 10 | struct 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); |