cvs commit: src/sys/net pfil.c pfil.h src/sys/netinet ip_fastfwd.c
ip_fw2.c ip_input.c ip_output.c src/sys/netinet6 ip6_forward.c
ip6_input.c ip6_output.c
Christian S.J. Peron
csjp at FreeBSD.org
Wed Feb 1 19:13:17 PST 2006
csjp 2006-02-02 03:13:16 UTC
FreeBSD src repository
Modified files:
sys/net pfil.c pfil.h
sys/netinet ip_fastfwd.c ip_fw2.c ip_input.c
ip_output.c
sys/netinet6 ip6_forward.c ip6_input.c ip6_output.c
Log:
Somewhat re-factor the read/write locking mechanism associated with the packet
filtering mechanisms to use the new rwlock(9) locking API:
- Drop the variables stored in the phil_head structure which were specific to
conditions and the home rolled read/write locking mechanism.
- Drop some includes which were used for condition variables
- Drop the inline functions, and convert them to macros. Also, move these
macros into pfil.h
- Move pfil list locking macros intp phil.h as well
- Rename ph_busy_count to ph_nhooks. This variable will represent the number
of IN/OUT hooks registered with the pfil head structure
- Define PFIL_HOOKED macro which evaluates to true if there are any
hooks to be ran by pfil_run_hooks
- In the IP/IP6 stacks, change the ph_busy_count comparison to use the new
PFIL_HOOKED macro.
- Drop optimization in pfil_run_hooks which checks to see if there are any
hooks to be ran, and returns if not. This check is already performed by the
IP stacks when they call:
if (!PFIL_HOOKED(ph))
goto skip_hooks;
- Drop in assertion which makes sure that the number of hooks never drops
below 0 for good measure. This in theory should never happen, and if it
does than there are problems somewhere
- Drop special logic around PFIL_WAITOK because rw_wlock(9) does not sleep
- Drop variables which support home rolled read/write locking mechanism from
the IPFW firewall chain structure.
- Swap out the read/write firewall chain lock internal to use the rwlock(9)
API instead of our home rolled version
- Convert the inlined functions to macros
Reviewed by: mlaier, andre, glebius
Thanks to: jhb for the new locking API
Revision Changes Path
1.14 +22 -100 src/sys/net/pfil.c
1.14 +11 -11 src/sys/net/pfil.h
1.35 +2 -2 src/sys/netinet/ip_fastfwd.c
1.125 +10 -45 src/sys/netinet/ip_fw2.c
1.314 +1 -1 src/sys/netinet/ip_input.c
1.255 +1 -1 src/sys/netinet/ip_output.c
1.31 +1 -1 src/sys/netinet6/ip6_forward.c
1.86 +1 -1 src/sys/netinet6/ip6_input.c
1.102 +1 -1 src/sys/netinet6/ip6_output.c
More information about the cvs-src
mailing list