Page MenuHomeFreeBSD

pf: Fix double ruleset evaluation for fragments sent to dummynet
ClosedPublic

Authored by vegeta_tuxpowered.net on Oct 2 2024, 7:28 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Jan 26, 6:07 PM
Unknown Object (File)
Sun, Jan 26, 6:00 PM
Unknown Object (File)
Mon, Jan 20, 6:51 PM
Unknown Object (File)
Fri, Jan 17, 12:37 PM
Unknown Object (File)
Nov 27 2024, 10:27 PM
Unknown Object (File)
Nov 20 2024, 4:10 AM
Unknown Object (File)
Nov 19 2024, 7:10 AM
Unknown Object (File)
Nov 16 2024, 8:23 AM

Details

Summary

The function pf_setup_pdesc() handles ruleset evaluation for non-reassembled packets. Having it called before pf_mtag is checked for flags PF_MTAG_FLAG_ROUTE_TO and PF_MTAG_FLAG_DUMMYNET will cause loops for fragmented packets if reassembly is disabled.

Move pd zeroing and pf_mtag extraction from pf_setup_pdesc() to a separate function pf_init_pdesc() and change the order of function calls: first call pf_init_pdesc(), then check if the currently processed packet has been reinjected from dummynet, finally call pf_setup_pdesc().

Add functionality of sending UDP packets to pft_ping.py with fragmentation support and fix broken IPv6 reassembly.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision was not accepted when it landed; it landed in state Needs Review.Oct 3 2024, 11:58 AM
This revision was automatically updated to reflect the committed changes.