freebsd-dev/sys/netpfil/pf
Kristof Provost b7ae43552b pf: Fix vnet purging
pf_purge_thread() breaks up the work of iterating all states (in
pf_purge_expired_states()) and tracks progress in the idx variable.

If multiple vnets exist this results in pf_purge_thread() only calling
pf_purge_expired_states() for part of the states (the first part of the
first vnet, second part of the second vnet and so on).
Combined with the mark-and-sweep approach to cleaning up old rules (in
V_pf_unlinked_rules) that resulted in pf freeing rules that were still
referenced by states. This in turn caused panics when pf_state_expires()
encounters that state and attempts to access the rule.

We need to track the progress per vnet, not globally, so idx is moved
into a per-vnet V_pf_purge_idx.

PR:		219251
Sponsored by:	Hackathon Essen 2017
2017-07-09 17:56:39 +00:00
..
if_pflog.c pflog: Correctly initialise subrulenr 2016-12-05 21:52:10 +00:00
if_pfsync.c Improve upon r309394 2016-12-10 03:31:38 +00:00
in4_cksum.c
pf_altq.h Add ALTQ(9) support for the CoDel algorithm. 2015-08-21 22:02:22 +00:00
pf_if.c Since curvnet is already properly set on entry to event handlers, 2017-04-25 08:30:28 +00:00
pf_ioctl.c pf: Fix vnet initialisation 2017-05-07 14:33:58 +00:00
pf_lb.c pf: Fix a crash in low-memory situations 2017-03-06 23:41:23 +00:00
pf_mtag.h ALTQ FAIRQ discipline import from DragonFLY 2015-06-24 19:16:41 +00:00
pf_norm.c pf: Fix possible incorrect IPv6 fragmentation 2017-04-20 09:05:53 +00:00
pf_osfp.c pf: use inet_ntoa_r() instead of inet_ntoa(); maybe fix IPv6 OS fingerprinting 2017-02-16 20:44:44 +00:00
pf_ruleset.c
pf_table.c Fix VNET leakages in PF by V_irtualizing pfr_ktables and friends. 2017-04-25 08:34:39 +00:00
pf.c pf: Fix vnet purging 2017-07-09 17:56:39 +00:00
pf.h In the forwarding case refragment the reassembled packets with the same 2015-02-16 07:01:02 +00:00