1 #include <uapi/linux/bpf.h>
2 #include <uapi/linux/if_ether.h>
3 #include <uapi/linux/if_packet.h>
4 #include <uapi/linux/ip.h>
5 #include <bpf/bpf_helpers.h>
6 #include "bpf_legacy.h"
9 __uint(type
, BPF_MAP_TYPE_ARRAY
);
12 __uint(max_entries
, 256);
13 } my_map
SEC(".maps");
16 int bpf_prog1(struct __sk_buff
*skb
)
18 int index
= load_byte(skb
, ETH_HLEN
+ offsetof(struct iphdr
, protocol
));
21 if (skb
->pkt_type
!= PACKET_OUTGOING
)
24 value
= bpf_map_lookup_elem(&my_map
, &index
);
26 __sync_fetch_and_add(value
, skb
->len
);
30 char _license
[] SEC("license") = "GPL";