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 /samples/bpf | |
| 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>
Diffstat (limited to 'samples/bpf')
| -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); |
