Page MenuHomeFreeBSD

pf: Fix double ruleset evaluation for fragments sent to dummynet
Needs ReviewPublic

Authored by vegeta_tuxpowered.net on Wed, Oct 2, 7:28 PM.

Details

Reviewers
kp
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 Skipped
Unit
Tests Skipped