aboutsummaryrefslogtreecommitdiff
path: root/sys/modules/ipfw
diff options
context:
space:
mode:
authorAlexander V. Chernikov <melifaro@FreeBSD.org>2014-07-28 19:01:25 +0000
committerAlexander V. Chernikov <melifaro@FreeBSD.org>2014-07-28 19:01:25 +0000
commit68394ec88e70e77244f752290e856ea2b1f8348d (patch)
treefb3bd0df0e64c28992f517fedc78a93ce0002cca /sys/modules/ipfw
parentdb785d319954371674fbb18f6cbc46d9c8bb0c63 (diff)
downloadsrc-68394ec88e70e77244f752290e856ea2b1f8348d.tar.gz
src-68394ec88e70e77244f752290e856ea2b1f8348d.zip
* Add generic ipfw interface tracking API
* Rewrite interface tables to use interface indexes Kernel changes: * Add generic interface tracking API: - ipfw_iface_ref (must call unlocked, performs lazy init if needed, allocates state & bumps ref) - ipfw_iface_add_ntfy(UH_WLOCK+WLOCK, links comsumer & runs its callback to update ifindex) - ipfw_iface_del_ntfy(UH_WLOCK+WLOCK, unlinks consumer) - ipfw_iface_unref(unlocked, drops reference) Additionally, consumer callbacks are called in interface withdrawal/departure. * Rewrite interface tables to use iface tracking API. Currently tables are implemented the following way: runtime data is stored as sorted array of {ifidx, val} for existing interfaces full data is stored inside namedobj instance (chained hashed table). * Add IP_FW_XIFLIST opcode to dump status of tracked interfaces * Pass @chain ptr to most non-locked algorithm callbacks: (prepare_add, prepare_del, flush_entry ..). This may be needed for better interaction of given algorithm an other ipfw subsystems * Add optional "change_ti" algorithm handler to permit updating of cached table_info pointer (happens in case of table_max resize) * Fix small bug in ipfw_list_tables() * Add badd (insert into sorted array) and bdel (remove from sorted array) funcs Userland changes: * Add "iflist" cmd to print status of currently tracked interface * Add stringnum_cmp for better interface/table names sorting
Notes
Notes: svn path=/projects/ipfw/; revision=269195
Diffstat (limited to 'sys/modules/ipfw')
-rw-r--r--sys/modules/ipfw/Makefile2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/modules/ipfw/Makefile b/sys/modules/ipfw/Makefile
index 10d36a97df3f..9a90c4a25dbf 100644
--- a/sys/modules/ipfw/Makefile
+++ b/sys/modules/ipfw/Makefile
@@ -7,7 +7,7 @@
KMOD= ipfw
SRCS= ip_fw2.c ip_fw_pfil.c
SRCS+= ip_fw_dynamic.c ip_fw_log.c
-SRCS+= ip_fw_sockopt.c ip_fw_table.c ip_fw_table_algo.c
+SRCS+= ip_fw_sockopt.c ip_fw_table.c ip_fw_table_algo.c ip_fw_iface.c
SRCS+= opt_inet.h opt_inet6.h opt_ipdivert.h opt_ipfw.h opt_ipsec.h
CFLAGS+= -DIPFIREWALL