+struct bpf_map_def SEC("maps") drop_cnt_map = {
+ .type = BPF_MAP_TYPE_PERCPU_ARRAY,
+ .key_size = sizeof(uint32_t),
+ .value_size = sizeof(long),
+ .max_entries = RULECNT + STATIC_RULE_CNT,
+};
+#define DO_RETURN(reason, ret) {\
+ if (ret == XDP_DROP) { \
+ long *value = bpf_map_lookup_elem(&drop_cnt_map, &reason); \
+ if (value) \
+ *value += 1; \
+ } \
+ return XDP_DROP; \
+ }
+