Skip to content

Commit

Permalink
Merge pull request #92 from sanfern/sanfern-pinning-fix
Browse files Browse the repository at this point in the history
Update BTF style map pinning property
  • Loading branch information
sanfern authored Aug 14, 2024
2 parents a1cea73 + 3ea9978 commit 1149b6d
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 14 deletions.
18 changes: 12 additions & 6 deletions connection-limit/connection_limit.bpf.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,23 +62,26 @@ struct {
__uint(type, BPF_MAP_TYPE_ARRAY);
__uint(key_size, sizeof(uint32_t));
__uint(value_size, sizeof(uint64_t));
__uint(max_entries, 1);
__uint(max_entries, 1);
__uint(pinning, LIBBPF_PIN_BY_NAME);
} cl_max_conn SEC(".maps");

/* Maintains TCP listen ports */
struct {
__uint(type, BPF_MAP_TYPE_HASH);
__uint(key_size, sizeof(uint16_t));
__uint(value_size, sizeof(uint32_t));
__uint(max_entries, 200);
__uint(max_entries, 200);
__uint(pinning, LIBBPF_PIN_BY_NAME);
} cl_tcp_conns SEC(".maps");

/* Maintains concurrent connection sockets */
struct {
__uint(type, BPF_MAP_TYPE_HASH);
__uint(key_size, sizeof(uint64_t));
__uint(value_size, sizeof(uint32_t));
__uint(max_entries, 30000);
__uint(max_entries, 30000);
__uint(pinning, LIBBPF_PIN_BY_NAME);
} cl_conn_info SEC(".maps");

/* Maintains the total number of connections received(TCP-SYNs)
Expand All @@ -87,7 +90,8 @@ struct {
__uint(type, BPF_MAP_TYPE_HASH);
__uint(key_size, sizeof(uint32_t));
__uint(value_size, sizeof(uint64_t));
__uint(max_entries, 1);
__uint(max_entries, 1);
__uint(pinning, LIBBPF_PIN_BY_NAME);
} cl_recv_count_map SEC(".maps");

/* Maintains the total number of connections dropped as the
Expand All @@ -96,15 +100,17 @@ struct {
__uint(type, BPF_MAP_TYPE_HASH);
__uint(key_size, sizeof(uint32_t));
__uint(value_size, sizeof(uint64_t));
__uint(max_entries, 1);
__uint(max_entries, 1);
__uint(pinning, LIBBPF_PIN_BY_NAME);
} cl_drop_count_map SEC(".maps");

/* Maintains the prog fd of the next XDP program in the chain */
struct {
__uint(type, BPF_MAP_TYPE_PROG_ARRAY);
__uint(key_size, sizeof(int));
__uint(value_size, sizeof(int));
__uint(max_entries, 1);
__uint(max_entries, 1);
__uint(pinning, LIBBPF_PIN_BY_NAME);
} xdp_cl_ingress_next_prog SEC(".maps");

static __always_inline int is_ipv4_loopback(uint32_t *addr4)
Expand Down
3 changes: 2 additions & 1 deletion examples/xdp/xdpprog.bpf.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ struct {
__uint(type, BPF_MAP_TYPE_PROG_ARRAY);
__uint(key_size, sizeof(int));
__uint(value_size, sizeof(int));
__uint(max_entries, ARRAY_SIZE);
__uint(max_entries, ARRAY_SIZE);
__uint(pinning, LIBBPF_PIN_BY_NAME);
} xdp_next_prog_array SEC(".maps");

SEC("xdp-prog")
Expand Down
18 changes: 12 additions & 6 deletions ratelimiting/ratelimiting.bpf.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ struct {
__uint(type, BPF_MAP_TYPE_ARRAY);
__uint(key_size, sizeof(uint32_t));
__uint(value_size, sizeof(uint64_t));
__uint(max_entries, 1);
__uint(max_entries, 1);
__uint(pinning, LIBBPF_PIN_BY_NAME);
} rl_config_map SEC(".maps");

/* Maintains the timestamp of a window and the total number of
Expand All @@ -34,7 +35,8 @@ struct {
__uint(type, BPF_MAP_TYPE_LRU_HASH);
__uint(key_size, sizeof(uint64_t));
__uint(value_size, sizeof(uint64_t));
__uint(max_entries, 1000);
__uint(max_entries, 1000);
__uint(pinning, LIBBPF_PIN_BY_NAME);
} rl_window_map SEC(".maps");

/* Maintains the total number of connections received(TCP-SYNs)
Expand All @@ -43,7 +45,8 @@ struct {
__uint(type, BPF_MAP_TYPE_HASH);
__uint(key_size, sizeof(uint64_t));
__uint(value_size, sizeof(uint64_t));
__uint(max_entries, 1);
__uint(max_entries, 1);
__uint(pinning, LIBBPF_PIN_BY_NAME);
} rl_recv_count_map SEC(".maps");

/* Maintains the total number of connections dropped as the ratelimit is hit
Expand All @@ -52,23 +55,26 @@ struct {
__uint(type, BPF_MAP_TYPE_HASH);
__uint(key_size, sizeof(uint64_t));
__uint(value_size, sizeof(uint64_t));
__uint(max_entries, 1);
__uint(max_entries, 1);
__uint(pinning, LIBBPF_PIN_BY_NAME);
} rl_drop_count_map SEC(".maps");

/* Maintains the ports to be ratelimited */
struct {
__uint(type, BPF_MAP_TYPE_HASH);
__uint(key_size, sizeof(uint16_t));
__uint(value_size, sizeof(uint8_t));
__uint(max_entries, 50);
__uint(max_entries, 50);
__uint(pinning, LIBBPF_PIN_BY_NAME);
} rl_ports_map SEC(".maps");

/* Maintains the prog fd of the next XDP program in the chain */
struct {
__uint(type, BPF_MAP_TYPE_PROG_ARRAY);
__uint(key_size, sizeof(int));
__uint(value_size, sizeof(int));
__uint(max_entries, 1);
__uint(max_entries, 1);
__uint(pinning, LIBBPF_PIN_BY_NAME);
} xdp_rl_ingress_next_prog SEC(".maps");


Expand Down
3 changes: 2 additions & 1 deletion xdp-root/xdp_root.bpf.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ struct {
__uint(type, BPF_MAP_TYPE_PROG_ARRAY);
__uint(key_size, sizeof(int));
__uint(value_size, sizeof(int));
__uint(max_entries, ROOT_ARRAY_SIZE);
__uint(max_entries, ROOT_ARRAY_SIZE);
__uint(pinning, LIBBPF_PIN_BY_NAME);
} xdp_root_array SEC(".maps");

SEC("xdp-root")
Expand Down

0 comments on commit 1149b6d

Please sign in to comment.