Commit 9a4cf073 authored by Maxim Mikityanskiy's avatar Maxim Mikityanskiy Committed by Alexei Starovoitov
Browse files

bpf: Allow the new syncookie helpers to work with SKBs



This commit allows the new BPF helpers to work in SKB context (in TC
BPF programs): bpf_tcp_raw_{gen,check}_syncookie_ipv{4,6}.

Using these helpers in TC BPF programs is not recommended, because it's
unlikely that the BPF program will provide any substantional speedup
compared to regular SYN cookies or synproxy, after the SKB is already
created.

Signed-off-by: default avatarMaxim Mikityanskiy <maximmi@nvidia.com>
Reviewed-by: default avatarTariq Toukan <tariqt@nvidia.com>
Link: https://lore.kernel.org/r/20220615134847.3753567-6-maximmi@nvidia.com


Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent fb5cd0ce
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -7915,6 +7915,16 @@ tc_cls_act_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
		return &bpf_sk_assign_proto;
	case BPF_FUNC_skb_set_tstamp:
		return &bpf_skb_set_tstamp_proto;
#ifdef CONFIG_SYN_COOKIES
	case BPF_FUNC_tcp_raw_gen_syncookie_ipv4:
		return &bpf_tcp_raw_gen_syncookie_ipv4_proto;
	case BPF_FUNC_tcp_raw_gen_syncookie_ipv6:
		return &bpf_tcp_raw_gen_syncookie_ipv6_proto;
	case BPF_FUNC_tcp_raw_check_syncookie_ipv4:
		return &bpf_tcp_raw_check_syncookie_ipv4_proto;
	case BPF_FUNC_tcp_raw_check_syncookie_ipv6:
		return &bpf_tcp_raw_check_syncookie_ipv6_proto;
#endif
#endif
	default:
		return bpf_sk_base_func_proto(func_id);