Skip to content

Commit

Permalink
selftests/bpf: remove xdp_synproxy IP_DF check
Browse files Browse the repository at this point in the history
In real world production websites, the IP_DF flag
is not always set for each packet from these websites.
the IP_DF flag check breaks Internet connection to
these websites for home based firewall like BPFire
when XDP synproxy program is attached to firewall
Internet facing side interface. see [0]

[0] vincentmli/BPFire#59

Signed-off-by: Vincent Li <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Martin KaFai Lau <[email protected]>
  • Loading branch information
vincentmli authored and Martin KaFai Lau committed Oct 29, 2024
1 parent 97e9053 commit 0ab7cd1
Showing 1 changed file with 1 addition and 2 deletions.
3 changes: 1 addition & 2 deletions tools/testing/selftests/bpf/progs/xdp_synproxy_kern.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@

#define tcp_flag_word(tp) (((union tcp_word_hdr *)(tp))->words[3])

#define IP_DF 0x4000
#define IP_MF 0x2000
#define IP_OFFSET 0x1fff

Expand Down Expand Up @@ -442,7 +441,7 @@ static __always_inline int tcp_lookup(void *ctx, struct header_pointers *hdr, bo
/* TCP doesn't normally use fragments, and XDP can't reassemble
* them.
*/
if ((hdr->ipv4->frag_off & bpf_htons(IP_DF | IP_MF | IP_OFFSET)) != bpf_htons(IP_DF))
if ((hdr->ipv4->frag_off & bpf_htons(IP_MF | IP_OFFSET)) != 0)
return XDP_DROP;

tup.ipv4.saddr = hdr->ipv4->saddr;
Expand Down

0 comments on commit 0ab7cd1

Please sign in to comment.