freebsd-dev/sys/modules
Alexander V. Chernikov a13a821641 Merge projects/ipfw to HEAD.
Main user-visible changes are related to tables:

* Tables are now identified by names, not numbers.
 There can be up to 65k tables with up to 63-byte long names.
* Tables are now set-aware (default off), so you can switch/move
 them atomically with rules.
* More functionality is supported (swap, lock, limits, user-level lookup,
 batched add/del) by generic table code.
* New table types are added (flow) so you can match multiple packet fields at once.
* Ability to add different type of lookup algorithms for particular
 table type has been added.
* New table algorithms are added (cidr:hash, iface:array, number:array and
 flow:hash) to make certain types of lookup more effective.
* Table value are now capable of holding multiple data fields for
  different tablearg users

Performance changes:
* Main ipfw lock was converted to rmlock
* Rule counters were separated from rule itself and made per-cpu.
* Radix table entries fits into 128 bytes
* struct ip_fw is now more compact so more rules will fit into 64 bytes
* interface tables uses array of existing ifindexes for faster match

ABI changes:
All functionality supported by old ipfw(8) remains functional.
 Old & new binaries can work together with the following restrictions:
* Tables named other than ^\d+$ are shown as table(65535) in
 ruleset in old binaries

Internal changes:.
Changing table ids to numbers resulted in format modification for
 most sockopt codes. Old sopt format was compact, but very hard to
 extend (no versioning, inability to add more opcodes), so
* All relevant opcodes were converted to TLV-based versioned IP_FW3-based codes.
* The remaining opcodes were also converted to be able to eliminate
 all older opcodes at once
* All IP_FW3 handlers uses special API instead of calling sooptcopy*
 directly to ease adding another communication methods
* struct ip_fw is now different for kernel and userland
* tablearg value has been changed to 0 to ease future extensions
* table "values" are now indexes in special value array which
 holds extended data for given index
* Batched add/delete has been added to tables code
* Most changes has been done to permit batched rule addition.
* interface tracking API has been added (started on demand)
 to permit effective interface tables operations
* O(1) skipto cache, currently turned off by default at
 compile-time (eats 512K).

* Several steps has been made towards making libipfw:
  * most of new functions were separated into "parse/prepare/show
    and actuall-do-stuff" pieces (already merged).
  * there are separate functions for parsing text string into "struct ip_fw"
    and printing "struct ip_fw" to supplied buffer (already merged).
* Probably some more less significant/forgotten features

MFC after:	1 month
Sponsored by:	Yandex LLC
2014-10-09 19:32:35 +00:00
..
3dfx
3dfx_linux
aac
aacraid
accf_data
accf_dns
accf_http
acl_nfs4 Remove unnecessary inclusions of bsd.own.mk. 2014-08-04 22:34:12 +00:00
acl_posix1e Remove unnecessary inclusions of bsd.own.mk. 2014-08-04 22:34:12 +00:00
acpi Remove obsolete Makefile for acpi.ko. 2014-10-02 20:13:52 +00:00
ae
aesni Back out r255440. /usr/bin/gcc @r255185 (2013-09-03) can build this. 2013-09-10 16:50:13 +00:00
age
agp Re-enable -Werror for these modules. It is already enabled for the same 2014-06-09 20:48:38 +00:00
aha
ahb
ahci Separate out PCI attachment from the main AHCI driver. Move checks of 2014-09-04 22:22:53 +00:00
aic
aic7xxx This module requires pci_if.h, add it to the SRCS list. 2014-08-21 22:42:02 +00:00
aio
alc
ale
alq Remove unnecessary inclusions of bsd.own.mk. 2014-08-04 22:34:12 +00:00
amdsbwd
amdtemp
amr
an Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
aout
apm
ar71xx
arcmsr
arcnet Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
asmc
asr
ata
ath Disable warning about unused functions for ar9300_reset.c for now. 2013-12-28 23:12:32 +00:00
ath_ahb
ath_pci
autofs Bring in the new automounter, similar to what's provided in most other 2014-08-17 09:44:42 +00:00
auxio
bce Remove clean option 2014-09-17 22:26:01 +00:00
bfe
bge
bios Re-enable -Werror for these modules. It is already enabled for the same 2014-06-09 20:48:38 +00:00
bktr
bm
bridgestp
bwi Strip out this cruft; people should be making modules with a complete 2013-11-09 08:11:24 +00:00
bwn
bxe Remove clean option 2014-09-17 22:24:51 +00:00
cam Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
canbepm
canbus
cardbus
carp Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
cas
cbb
cc Remove unnecessary inclusions of bsd.own.mk. 2014-08-04 22:34:12 +00:00
cd9660
cd9660_iconv
ce
cfi
ciss
cm
cmx
coff
coretemp
cp
cpsw
cpuctl
cpufreq
crypto I clearly didn't test the modules... add sha256c.c to the various 2014-03-16 01:55:30 +00:00
cryptodev
cs
ct
ctau
ctl Add support for VMWare dialect of EXTENDED COPY command, aka VAAI Clone. 2014-07-16 15:57:17 +00:00
cuse Initial import of character device in userspace support for FreeBSD. 2014-05-23 08:46:28 +00:00
cx
cxgb Remove dependence on source tree options. Move all kernel module 2014-08-11 14:50:49 +00:00
cxgbe Remove dependence on source tree options. Move all kernel module 2014-08-11 14:50:49 +00:00
cyclic Use SYSDIR to reference to the top of the sys hierarchy. Define SYSDIR 2014-03-06 01:59:13 +00:00
dc
dcons
dcons_crom
de
digi
dpms
dpt Remove dependence on source tree options. Move all kernel module 2014-08-11 14:50:49 +00:00
drm Remove dependence on source tree options. Move all kernel module 2014-08-11 14:50:49 +00:00
drm2 drm/i915: Add HW context support 2014-09-17 08:28:50 +00:00
dtrace Factor out the common code for function boundary tracing instead of 2014-08-16 21:42:55 +00:00
dummynet Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
ed
elink
em Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
en Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
ep Remove dependence on source tree options. Move all kernel module 2014-08-11 14:50:49 +00:00
epic
esp
et
ex
exca
ext2fs Add read-only support for extents in ext2fs. 2013-08-12 21:34:48 +00:00
fatm Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
fdc Merge the PC98 fdc(4) driver into the MI driver. While here, replace 2014-09-25 20:40:24 +00:00
fdescfs
fe
filemon
firewire Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
firmware
fuse
fxp
gem
geom Add disklabel64 support to GEOM_PART class. 2014-06-11 10:42:34 +00:00
glxiic
glxsb
gpio Inspired by r262522, fix make depend. This fixes the build of gpio modules. 2014-02-27 13:26:41 +00:00
hatm Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
hifn
hme
hpt27xx
hptiop
hptmv
hptnr
hptrr
hwpmc Remove ia64. 2014-07-07 00:27:09 +00:00
hyperv Import HyperV Key-Value Pair (KVP) driver and daemon code by Microsoft, 2014-09-13 02:15:31 +00:00
i2c Move all the power management (SMBus) drivers to their own directory, 2014-09-23 06:31:15 +00:00
ibcore Remove unnecessary inclusions of bsd.own.mk. 2014-08-04 22:34:12 +00:00
ibcs2
ichwd
ida
ie
if_bridge Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
if_disc Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
if_edsc
if_epair
if_faith Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
if_gif Silence a bmake(1) warning in the gif(4) module build 2014-09-08 02:37:45 +00:00
if_gre Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
if_lagg Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
if_ndis
if_stf Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
if_tap Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
if_tun Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
if_vlan
igb Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
iir
imgact_binmisc Add Stacey Son's binary activation patches that allow remapping of 2014-04-08 20:10:22 +00:00
io
ip6_mroute_mod Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
ip_mroute_mod Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
ipdivert Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
ipfilter Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
ipfw Merge projects/ipfw to HEAD. 2014-10-09 19:32:35 +00:00
ipfw_nat
ipmi
ipoib Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
ips
ipw
ipwfw
isci
iscsi Bring in the new iSCSI target and initiator. 2013-09-14 15:29:06 +00:00
iscsi_initiator Move the old iSCSI initiator source to a more appropriate place 2013-08-22 14:02:34 +00:00
isp
ispfw
iwi
iwifw
iwn Add missing depend. 2013-08-03 08:21:35 +00:00
iwnfw Add iwn-100 firmware. 2014-08-28 00:05:02 +00:00
ixgb
ixgbe Disable flow-director support until it's been debugged and verified. 2014-09-15 21:09:19 +00:00
ixl Update to the Intel Base driver for the Intel XL710 Ethernet Controller Family 2014-08-22 18:59:19 +00:00
ixlv Update to the Intel Base driver for the Intel XL710 Ethernet Controller Family 2014-08-22 18:59:19 +00:00
jme
joy
kbdmux
kgssapi
kgssapi_krb5
khelp Remove unnecessary inclusions of bsd.own.mk. 2014-08-04 22:34:12 +00:00
krpc Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
ksyms
le
lge
libalias
libiconv
libmbpool
libmchain
linprocfs
linsysfs
linux Implement most of timer_{create,settime,gettime,getoverrun,delete} 2014-09-18 08:36:45 +00:00
lmc Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
lpt
mac_biba
mac_bsdextended
mac_ifoff
mac_lomac
mac_mls
mac_none
mac_partition
mac_portacl
mac_seeotheruids
mac_stub
mac_test
malo
mcd
md
mem
mfi
mii
mlx
mlx4 Hardware driver update from Mellanox Technologies, including: 2014-09-23 12:37:01 +00:00
mlx4ib - Update the OFED Linux Emulation layer as a preparation for a 2014-08-27 13:21:53 +00:00
mlxen Hardware driver update from Mellanox Technologies, including: 2014-09-23 12:37:01 +00:00
mly
mmc
mmcsd
mpr Bring in the mpr(4) driver for LSI's MPT3 12Gb SAS controllers. 2014-05-02 20:25:09 +00:00
mps
mpt
mqueue
mrsas Fix the minor svn add issue. $FreeBSD$ expands at the time of 2014-10-08 09:30:35 +00:00
msdosfs
msdosfs_iconv
mse
msk
mthca Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
mvs
mwl
mwlfw
mxge
my
nand
nandfs Include opt_ddb.h in the list of SRCS, since we include it. 2014-04-16 19:49:44 +00:00
nandsim
ncr Remove the extra CFLAGS now that the driver has been fixed by jhb. 2014-10-02 18:45:00 +00:00
ncv
ndis
netfpga10g Introduce opt_netfpga.h and allow setting NF10BMAC_64BIT from mips kernel 2014-06-26 17:20:45 +00:00
netgraph Remove dependence on source tree options. Move all kernel module 2014-08-11 14:50:49 +00:00
netmap add missing file 2014-09-25 14:25:38 +00:00
nfe
nfs_common
nfscl Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
nfsclient Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
nfscommon - For kernel compiled only with KDTRACE_HOOKS and not any lock debugging 2013-11-25 07:38:45 +00:00
nfsd
nfslock
nfslockd Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
nfsserver Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
nfssvc
nge
nmdm
nsp
ntb
nullfs
nvd
nvme
nvram
nxge
oce
opensolaris Use SYSDIR to reference to the top of the sys hierarchy. Define SYSDIR 2014-03-06 01:59:13 +00:00
padlock
patm Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
pccard
pcfclock
pcn
pf Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
pflog Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
pfsync Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
plip
pmc
powermac_nvram
ppbus
ppc Remove ia64. 2014-07-07 00:27:09 +00:00
ppi
pps
procfs
proto Add proto(4): A driver for prototyping and diagnostics. 2014-04-28 17:58:40 +00:00
pseudofs
pst
pty
puc
qlxgb
qlxgbe
qlxge
ral
ralfw
random I clearly didn't test the modules... add sha256c.c to the various 2014-03-16 01:55:30 +00:00
rc
rc4
rdma Delete all of the old RDMA code (except krping, which was switched to 2013-10-14 22:39:08 +00:00
re
reiserfs
rl Move rl(4) to dev/rl. 2014-09-19 10:32:20 +00:00
rndtest
rp
s3
safe
sbni
scc
scd
scsi_low
sdhci
sdhci_pci
sem
send - For kernel compiled only with KDTRACE_HOOKS and not any lock debugging 2013-11-25 07:38:45 +00:00
sf
sfxge DEBUG_FLAGS -g is default for GENERIC and its presence interferes with 2013-09-29 13:05:22 +00:00
sge
si Add kernel modules for si(4), wds(4), and wl(4). 2014-08-20 16:09:05 +00:00
siba_bwn
siftr Remove unnecessary inclusions of bsd.own.mk. 2014-08-04 22:34:12 +00:00
siis
sio
sis
sk
smbfs Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
sn
snc Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
snp
sound Remove dependence on source tree options. Move all kernel module 2014-08-11 14:50:49 +00:00
speaker
splash
sppp Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
ste
stg
stge
streams
svr4 Stop telling people to use send-pr; instead point them towards Bugzilla. 2014-06-14 18:43:48 +00:00
sym
syscons
sysvipc
ti Remove zero-copy sockets code. It only worked for anonymous memory, 2013-09-16 06:25:54 +00:00
tl
tmpfs
toecore
tpm
trm Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
tsec Build tsec(4) as a module. 2014-07-26 17:59:25 +00:00
twa
twe
tws
tx
txp
uart
ubsec
ubser
uchcom
ucycom
udf
udf_iconv
ufs Initialize the pbuf counter for directio using SYSINIT, instead of 2014-06-08 10:55:06 +00:00
unionfs
usb The USB LED driver for the Dream Cheeky WebMail Notifier. 2014-09-05 11:25:58 +00:00
utopia
vesa
vge
viawd
virtio Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
vkbd
vmm Restructure the MSR handling so it is entirely handled by processor-specific 2014-09-20 02:35:21 +00:00
vmware Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
vpo
vr
vte
vx Remove dependence on source tree options. Move all kernel module 2014-08-11 14:50:49 +00:00
vxge
wb
wbwd
wds Add kernel modules for si(4), wds(4), and wl(4). 2014-08-20 16:09:05 +00:00
wi
wl Add kernel modules for si(4), wds(4), and wl(4). 2014-08-20 16:09:05 +00:00
wlan Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
wlan_acl Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
wlan_amrr Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
wlan_ccmp Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
wlan_rssadapt Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
wlan_tkip Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
wlan_wep Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
wlan_xauth Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
wpi
wpifw
wtap
x86bios
xe
xl
zfs Instead of requiring an edit to turn on ZFS debugging, define ZFS_DEBUG. 2014-10-01 15:34:48 +00:00
zlib
Makefile - Refactor defining variables. 2014-10-05 07:27:05 +00:00
Makefile.inc