freebsd-dev/sys/netpfil/pf
Gleb Smirnoff 19acaecac3 The DIOCKILLSRCNODES operation was implemented with O(m*n) complexity,
where "m" is number of source nodes and "n" is number of states. Thus,
on heavy loaded router its processing consumed a lot of CPU time.

Reimplement it with O(m+n) complexity. We first scan through source
nodes and disconnect matching ones, putting them on the freelist and
marking with a cookie value in their expire field. Then we scan through
the states, detecting references to source nodes with a cookie, and
disconnect them as well. Then the freelist is passed to pf_free_src_nodes().

In collaboration with:	Kajetan Staszkiewicz <kajetan.staszkiewicz innogames.de>
PR:		kern/176763
Sponsored by:	InnoGames GmbH
Sponsored by:	Nginx, Inc.
2013-11-22 19:22:26 +00:00
..
if_pflog.c
if_pfsync.c
in4_cksum.c
pf_altq.h Move new pf includes to the pf directory. The pfvar.h remain 2013-10-27 16:25:57 +00:00
pf_if.c
pf_ioctl.c The DIOCKILLSRCNODES operation was implemented with O(m*n) complexity, 2013-11-22 19:22:26 +00:00
pf_lb.c Some fixups to pf_get_sport after r257223: 2013-11-14 14:20:35 +00:00
pf_mtag.h Move new pf includes to the pf directory. The pfvar.h remain 2013-10-27 16:25:57 +00:00
pf_norm.c Move new pf includes to the pf directory. The pfvar.h remain 2013-10-27 16:25:57 +00:00
pf_osfp.c
pf_ruleset.c
pf_table.c
pf.c To support upcoming changes change internal API for source node handling: 2013-11-22 19:16:34 +00:00
pf.h Remove unused PFTM_UNTIL_PACKET const. 2013-11-04 08:15:59 +00:00