1999-08-28 01:08:13 +00:00
|
|
|
# $FreeBSD$
|
1998-03-10 15:55:38 +00:00
|
|
|
#
|
1999-11-06 23:51:29 +00:00
|
|
|
# On the handling of kernel options
|
1999-11-22 02:45:11 +00:00
|
|
|
#
|
2001-07-08 01:02:37 +00:00
|
|
|
# All kernel options should be listed in NOTES, with suitable
|
1998-03-10 15:55:38 +00:00
|
|
|
# descriptions. Negative options (options that make some code not
|
2001-07-08 01:04:10 +00:00
|
|
|
# compile) should be commented out; LINT (generated from NOTES) should
|
|
|
|
# compile as much code as possible. Try to structure option-using
|
|
|
|
# code so that a single option only switch code on, or only switch
|
|
|
|
# code off, to make it possible to have a full compile-test. If
|
|
|
|
# necessary, you can check for COMPILING_LINT to get maximum code
|
|
|
|
# coverage.
|
1999-11-22 02:45:11 +00:00
|
|
|
#
|
1998-03-10 15:55:38 +00:00
|
|
|
# All new options shall also be listed in either "conf/options" or
|
2001-07-08 01:04:10 +00:00
|
|
|
# "conf/options.<machine>". Options that affect a single source-file
|
|
|
|
# <xxx>.[c|s] should be directed into "opt_<xxx>.h", while options
|
|
|
|
# that affect multiple files should either go in "opt_global.h" if
|
|
|
|
# this is a kernel-wide option (used just about everywhere), or in
|
2006-12-18 05:42:33 +00:00
|
|
|
# "opt_<option-name-in-lower-case>.h" if it affects only some files.
|
2001-07-08 01:04:10 +00:00
|
|
|
# Note that the effect of listing only an option without a
|
|
|
|
# header-file-name in conf/options (and cousins) is that the last
|
|
|
|
# convention is followed.
|
1999-11-22 02:45:11 +00:00
|
|
|
#
|
1998-03-10 15:55:38 +00:00
|
|
|
# This handling scheme is not yet fully implemented.
|
|
|
|
#
|
|
|
|
#
|
|
|
|
# Format of this file:
|
1996-03-02 18:24:13 +00:00
|
|
|
# Option name filename
|
1998-03-10 15:55:38 +00:00
|
|
|
#
|
|
|
|
# If filename is missing, the default is
|
|
|
|
# opt_<name-of-option-in-lower-case>.h
|
1996-03-29 13:51:30 +00:00
|
|
|
|
2004-03-31 08:22:09 +00:00
|
|
|
AAC_DEBUG opt_aac.h
|
|
|
|
AHC_ALLOW_MEMIO opt_aic7xxx.h
|
|
|
|
AHC_TMODE_ENABLE opt_aic7xxx.h
|
|
|
|
AHC_DUMP_EEPROM opt_aic7xxx.h
|
|
|
|
AHC_DEBUG opt_aic7xxx.h
|
|
|
|
AHC_DEBUG_OPTS opt_aic7xxx.h
|
|
|
|
AHC_REG_PRETTY_PRINT opt_aic7xxx.h
|
|
|
|
AHD_DEBUG opt_aic79xx.h
|
|
|
|
AHD_DEBUG_OPTS opt_aic79xx.h
|
|
|
|
AHD_TMODE_ENABLE opt_aic79xx.h
|
|
|
|
AHD_REG_PRETTY_PRINT opt_aic79xx.h
|
|
|
|
ADW_ALLOW_MEMIO opt_adw.h
|
1998-10-07 03:30:55 +00:00
|
|
|
|
2004-03-31 18:46:13 +00:00
|
|
|
TWA_DEBUG opt_twa.h
|
|
|
|
TWA_FLASH_FIRMWARE opt_twa.h
|
2004-03-30 18:53:18 +00:00
|
|
|
|
2004-07-11 01:44:07 +00:00
|
|
|
# Debugging options.
|
|
|
|
DDB
|
2008-08-18 16:48:09 +00:00
|
|
|
DDB_BUFR_SIZE opt_ddb.h
|
2008-01-26 22:32:23 +00:00
|
|
|
DDB_CAPTURE_DEFAULTBUFSIZE opt_ddb.h
|
|
|
|
DDB_CAPTURE_MAXBUFSIZE opt_ddb.h
|
2008-05-18 19:28:51 +00:00
|
|
|
DDB_CTF opt_ddb.h
|
2004-07-11 01:44:07 +00:00
|
|
|
DDB_NUMSYM opt_ddb.h
|
|
|
|
GDB
|
|
|
|
KDB opt_global.h
|
|
|
|
KDB_TRACE opt_kdb.h
|
|
|
|
KDB_UNATTENDED opt_kdb.h
|
2004-10-27 19:26:01 +00:00
|
|
|
SYSCTL_DEBUG opt_sysctl.h
|
2004-07-11 01:44:07 +00:00
|
|
|
|
2006-07-18 17:00:51 +00:00
|
|
|
NO_SYSCTL_DESCR opt_global.h
|
|
|
|
|
1996-12-23 18:42:02 +00:00
|
|
|
# Miscellaneous options.
|
2007-03-31 23:23:42 +00:00
|
|
|
ADAPTIVE_SX
|
2003-04-15 19:43:52 +00:00
|
|
|
ALQ
|
2006-02-01 21:00:16 +00:00
|
|
|
AUDIT opt_global.h
|
2003-09-07 07:43:10 +00:00
|
|
|
CODA_COMPAT_5 opt_coda.h
|
1998-01-25 04:13:25 +00:00
|
|
|
COMPAT_43 opt_compat.h
|
2006-01-10 09:19:10 +00:00
|
|
|
COMPAT_43TTY opt_compat.h
|
2002-07-12 06:38:34 +00:00
|
|
|
COMPAT_FREEBSD4 opt_compat.h
|
2005-06-30 00:09:18 +00:00
|
|
|
COMPAT_FREEBSD5 opt_compat.h
|
2006-09-26 12:36:34 +00:00
|
|
|
COMPAT_FREEBSD6 opt_compat.h
|
2008-01-07 21:40:11 +00:00
|
|
|
COMPAT_FREEBSD7 opt_compat.h
|
2000-09-16 18:55:05 +00:00
|
|
|
COMPILING_LINT opt_global.h
|
2003-04-15 19:43:52 +00:00
|
|
|
CY_PCI_FASTINTR
|
2005-12-12 10:15:11 +00:00
|
|
|
DIRECTIO
|
2004-09-02 18:59:15 +00:00
|
|
|
FULL_PREEMPTION opt_sched.h
|
2005-06-09 18:23:54 +00:00
|
|
|
IPI_PREEMPTION opt_sched.h
|
2002-10-05 16:35:33 +00:00
|
|
|
GEOM_AES opt_geom.h
|
2002-10-19 17:02:17 +00:00
|
|
|
GEOM_BDE opt_geom.h
|
2002-10-05 16:35:33 +00:00
|
|
|
GEOM_BSD opt_geom.h
|
2006-10-06 10:43:42 +00:00
|
|
|
GEOM_CACHE opt_geom.h
|
2004-05-03 21:18:56 +00:00
|
|
|
GEOM_CONCAT opt_geom.h
|
2005-07-27 21:47:55 +00:00
|
|
|
GEOM_ELI opt_geom.h
|
2003-06-18 09:29:28 +00:00
|
|
|
GEOM_FOX opt_geom.h
|
2004-05-03 21:18:56 +00:00
|
|
|
GEOM_GATE opt_geom.h
|
2006-10-31 22:22:30 +00:00
|
|
|
GEOM_JOURNAL opt_geom.h
|
Introduce GEOM_LABEL class.
This class is used for detecting volume labels on file systems:
UFS, MSDOSFS (FAT12, FAT16, FAT32) and ISO9660.
It also provide native labelization (there is no need for file system).
g_label_ufs.c is based on geom_vol_ffs from Gordon Tetlow.
g_label_msdos.c and g_label_iso9660.c are probably hacks, I just found
where volume labels are stored and I use those offsets here,
but with this class it should be easy to do it as it should be done by
someone who know how.
Implementing volume labels detection for other file systems also should
be trivial.
New providers are created in those directories:
/dev/ufs/ (UFS1, UFS2)
/dev/msdosfs/ (FAT12, FAT16, FAT32)
/dev/iso9660/ (ISO9660)
/dev/label/ (native labels, configured with glabel(8))
Manual page cleanups and some comments inside were submitted by
Simon L. Nielsen, who was, as always, very helpful. Thanks!
2004-07-02 19:40:36 +00:00
|
|
|
GEOM_LABEL opt_geom.h
|
2008-02-20 07:50:13 +00:00
|
|
|
GEOM_LINUX_LVM opt_geom.h
|
2002-10-05 16:35:33 +00:00
|
|
|
GEOM_MBR opt_geom.h
|
2004-07-30 23:18:53 +00:00
|
|
|
GEOM_MIRROR opt_geom.h
|
2007-02-27 12:05:25 +00:00
|
|
|
GEOM_MULTIPATH opt_geom.h
|
2004-05-20 10:37:13 +00:00
|
|
|
GEOM_NOP opt_geom.h
|
2007-02-07 18:55:31 +00:00
|
|
|
GEOM_PART_APM opt_geom.h
|
2007-12-06 02:32:42 +00:00
|
|
|
GEOM_PART_BSD opt_geom.h
|
2007-02-07 18:55:31 +00:00
|
|
|
GEOM_PART_GPT opt_geom.h
|
2007-06-13 04:27:36 +00:00
|
|
|
GEOM_PART_MBR opt_geom.h
|
2008-03-28 17:58:55 +00:00
|
|
|
GEOM_PART_PC98 opt_geom.h
|
2008-03-02 00:52:49 +00:00
|
|
|
GEOM_PART_VTOC8 opt_geom.h
|
2002-10-05 16:35:33 +00:00
|
|
|
GEOM_PC98 opt_geom.h
|
2004-08-16 06:36:21 +00:00
|
|
|
GEOM_RAID3 opt_geom.h
|
2005-01-11 18:18:40 +00:00
|
|
|
GEOM_SHSEC opt_geom.h
|
2004-05-20 10:37:13 +00:00
|
|
|
GEOM_STRIPE opt_geom.h
|
2002-10-05 16:35:33 +00:00
|
|
|
GEOM_SUNLABEL opt_geom.h
|
2004-08-13 09:40:58 +00:00
|
|
|
GEOM_UZIP opt_geom.h
|
2007-09-23 07:34:23 +00:00
|
|
|
GEOM_VIRSTOR opt_geom.h
|
2003-02-03 17:35:54 +00:00
|
|
|
GEOM_VOL opt_geom.h
|
2005-07-25 10:49:05 +00:00
|
|
|
GEOM_ZERO opt_geom.h
|
2008-05-18 19:28:51 +00:00
|
|
|
KDTRACE_HOOKS opt_kdtrace.h
|
2002-10-02 07:44:29 +00:00
|
|
|
KSTACK_MAX_PAGES
|
2004-02-25 09:35:35 +00:00
|
|
|
KSTACK_PAGES
|
1996-03-02 18:24:13 +00:00
|
|
|
KTRACE
|
2002-06-07 14:33:23 +00:00
|
|
|
KTRACE_REQUEST_POOL opt_ktrace.h
|
2001-04-09 09:39:29 +00:00
|
|
|
LIBICONV
|
2003-04-15 19:43:52 +00:00
|
|
|
MAC
|
|
|
|
MAC_BIBA opt_dontuse.h
|
|
|
|
MAC_BSDEXTENDED opt_dontuse.h
|
|
|
|
MAC_IFOFF opt_dontuse.h
|
|
|
|
MAC_LOMAC opt_dontuse.h
|
|
|
|
MAC_MLS opt_dontuse.h
|
|
|
|
MAC_NONE opt_dontuse.h
|
|
|
|
MAC_PARTITION opt_dontuse.h
|
|
|
|
MAC_PORTACL opt_dontuse.h
|
|
|
|
MAC_SEEOTHERUIDS opt_dontuse.h
|
2004-05-03 20:53:05 +00:00
|
|
|
MAC_STATIC opt_mac.h
|
2003-08-21 16:48:39 +00:00
|
|
|
MAC_STUB opt_dontuse.h
|
2003-04-15 19:43:52 +00:00
|
|
|
MAC_TEST opt_dontuse.h
|
1999-11-26 20:08:44 +00:00
|
|
|
MD_ROOT opt_md.h
|
|
|
|
MD_ROOT_SIZE opt_md.h
|
2006-03-29 09:57:22 +00:00
|
|
|
MFI_DEBUG opt_mfi.h
|
2006-05-18 23:30:48 +00:00
|
|
|
MFI_DECODE_LOG opt_mfi.h
|
2004-08-19 06:38:26 +00:00
|
|
|
MPROF_BUFFERS opt_mprof.h
|
|
|
|
MPROF_HASH_SIZE opt_mprof.h
|
2007-03-27 19:32:40 +00:00
|
|
|
NO_ADAPTIVE_MUTEXES opt_adaptive_mutexes.h
|
2007-03-22 16:09:23 +00:00
|
|
|
NO_ADAPTIVE_RWLOCKS
|
2003-03-26 23:40:42 +00:00
|
|
|
NSWBUF_MIN opt_swap.h
|
2007-04-14 20:16:03 +00:00
|
|
|
MBUF_PACKET_ZONE_DISABLE opt_global.h
|
2002-11-18 06:17:07 +00:00
|
|
|
PANIC_REBOOT_WAIT_TIME opt_panic.h
|
2006-04-24 23:31:51 +00:00
|
|
|
PPC_DEBUG opt_ppc.h
|
|
|
|
PPC_PROBE_CHIPSET opt_ppc.h
|
1998-01-31 05:00:21 +00:00
|
|
|
PPS_SYNC opt_ntp.h
|
2005-11-23 18:11:24 +00:00
|
|
|
PREEMPTION opt_sched.h
|
1996-12-23 18:42:02 +00:00
|
|
|
QUOTA
|
2003-01-26 05:29:12 +00:00
|
|
|
SCHED_4BSD opt_sched.h
|
2008-03-20 01:30:49 +00:00
|
|
|
SCHED_STATS opt_sched.h
|
2003-01-26 05:29:12 +00:00
|
|
|
SCHED_ULE opt_sched.h
|
2002-11-18 06:17:07 +00:00
|
|
|
SHOW_BUSYBUFS
|
2004-06-29 02:30:12 +00:00
|
|
|
SLEEPQUEUE_PROFILING
|
2005-07-15 05:12:49 +00:00
|
|
|
SLHCI_DEBUG opt_slhci.h
|
1998-02-04 04:12:29 +00:00
|
|
|
SPX_HACK
|
Break out stack(9) from ddb(4):
- Introduce per-architecture stack_machdep.c to hold stack_save(9).
- Introduce per-architecture machine/stack.h to capture any common
definitions required between db_trace.c and stack_machdep.c.
- Add new kernel option "options STACK"; we will build in stack(9) if it is
defined, or also if "options DDB" is defined to provide compatibility
with existing users of stack(9).
Add new stack_save_td(9) function, which allows the capture of a stacktrace
of another thread rather than the current thread, which the existing
stack_save(9) was limited to. It requires that the thread be neither
swapped out nor running, which is the responsibility of the consumer to
enforce.
Update stack(9) man page.
Build tested: amd64, arm, i386, ia64, powerpc, sparc64, sun4v
Runtime tested: amd64 (rwatson), arm (cognet), i386 (rwatson)
2007-12-02 20:40:35 +00:00
|
|
|
STACK opt_stack.h
|
2005-12-12 10:15:11 +00:00
|
|
|
SUIDDIR
|
2002-07-15 15:28:16 +00:00
|
|
|
MSGMNB opt_sysvipc.h
|
|
|
|
MSGMNI opt_sysvipc.h
|
|
|
|
MSGSEG opt_sysvipc.h
|
|
|
|
MSGSSZ opt_sysvipc.h
|
|
|
|
MSGTQL opt_sysvipc.h
|
2000-05-01 13:33:56 +00:00
|
|
|
SEMMAP opt_sysvipc.h
|
|
|
|
SEMMNI opt_sysvipc.h
|
|
|
|
SEMMNS opt_sysvipc.h
|
|
|
|
SEMMNU opt_sysvipc.h
|
|
|
|
SEMMSL opt_sysvipc.h
|
|
|
|
SEMOPM opt_sysvipc.h
|
|
|
|
SEMUME opt_sysvipc.h
|
2002-07-15 15:28:16 +00:00
|
|
|
SHMALL opt_sysvipc.h
|
|
|
|
SHMMAX opt_sysvipc.h
|
|
|
|
SHMMAXPGS opt_sysvipc.h
|
|
|
|
SHMMIN opt_sysvipc.h
|
|
|
|
SHMMNI opt_sysvipc.h
|
|
|
|
SHMSEG opt_sysvipc.h
|
|
|
|
SYSVMSG opt_sysvipc.h
|
|
|
|
SYSVSEM opt_sysvipc.h
|
|
|
|
SYSVSHM opt_sysvipc.h
|
2004-02-28 20:56:35 +00:00
|
|
|
SW_WATCHDOG opt_watchdog.h
|
2004-06-29 02:30:12 +00:00
|
|
|
TURNSTILE_PROFILING
|
2000-02-23 07:44:25 +00:00
|
|
|
VFS_AIO
|
2006-05-12 02:01:38 +00:00
|
|
|
VERBOSE_SYSINIT opt_global.h
|
2002-07-15 15:21:51 +00:00
|
|
|
WLCACHE opt_wavelan.h
|
|
|
|
WLDEBUG opt_wavelan.h
|
1996-05-11 04:39:53 +00:00
|
|
|
|
1998-03-28 11:51:01 +00:00
|
|
|
# POSIX kernel options
|
2005-12-03 01:40:38 +00:00
|
|
|
P1003_1B_MQUEUE opt_posix.h
|
2002-09-19 00:48:57 +00:00
|
|
|
P1003_1B_SEMAPHORES opt_posix.h
|
2004-02-25 09:35:35 +00:00
|
|
|
_KPOSIX_PRIORITY_SCHEDULING opt_posix.h
|
1998-03-04 10:27:00 +00:00
|
|
|
|
1996-12-26 23:38:17 +00:00
|
|
|
# Do we want the config file compiled into the kernel?
|
|
|
|
INCLUDE_CONFIG_FILE opt_config.h
|
|
|
|
|
2002-05-16 21:28:32 +00:00
|
|
|
# Options for static filesystems. These should only be used at config
|
1996-05-11 04:39:53 +00:00
|
|
|
# time, since the corresponding lkms cannot work if there are any static
|
|
|
|
# dependencies. Unusability is enforced by hiding the defines for the
|
|
|
|
# options in a never-included header.
|
2001-02-04 15:35:10 +00:00
|
|
|
CD9660 opt_dontuse.h
|
|
|
|
CODA opt_dontuse.h
|
1997-12-16 23:59:37 +00:00
|
|
|
EXT2FS opt_dontuse.h
|
2001-05-23 09:42:29 +00:00
|
|
|
FDESCFS opt_dontuse.h
|
2003-04-15 19:43:52 +00:00
|
|
|
HPFS opt_dontuse.h
|
1997-12-16 23:59:37 +00:00
|
|
|
MSDOSFS opt_dontuse.h
|
2003-04-15 19:43:52 +00:00
|
|
|
NTFS opt_dontuse.h
|
1996-05-11 04:39:53 +00:00
|
|
|
NULLFS opt_dontuse.h
|
2001-02-04 15:35:10 +00:00
|
|
|
NWFS opt_dontuse.h
|
2001-05-23 09:42:29 +00:00
|
|
|
PORTALFS opt_dontuse.h
|
1996-05-11 04:39:53 +00:00
|
|
|
PROCFS opt_dontuse.h
|
2001-06-11 10:58:07 +00:00
|
|
|
PSEUDOFS opt_dontuse.h
|
2005-06-21 10:17:55 +00:00
|
|
|
REISERFS opt_dontuse.h
|
2002-07-15 19:11:21 +00:00
|
|
|
SMBFS opt_dontuse.h
|
2007-06-16 01:56:05 +00:00
|
|
|
TMPFS opt_dontuse.h
|
2002-04-14 16:36:49 +00:00
|
|
|
UDF opt_dontuse.h
|
2003-04-15 19:43:52 +00:00
|
|
|
UNIONFS opt_dontuse.h
|
1996-05-11 04:39:53 +00:00
|
|
|
|
2005-03-14 16:04:27 +00:00
|
|
|
# Pseudofs debugging
|
|
|
|
PSEUDOFS_TRACE opt_pseudofs.h
|
|
|
|
|
2001-08-18 03:08:48 +00:00
|
|
|
# Broken - ffs_snapshot() dependency from ufs_lookup() :-(
|
|
|
|
FFS opt_ffs_broken_fixme.h
|
|
|
|
|
2003-04-15 19:43:52 +00:00
|
|
|
# These static filesystems have one slightly bogus static dependency in
|
1998-01-24 02:54:56 +00:00
|
|
|
# sys/i386/i386/autoconf.c. If any of these filesystems are
|
|
|
|
# statically compiled into the kernel, code for mounting them as root
|
2001-02-04 15:35:10 +00:00
|
|
|
# filesystems will be enabled - but look below.
|
2001-09-18 23:32:09 +00:00
|
|
|
NFSCLIENT opt_nfs.h
|
|
|
|
NFSSERVER opt_nfs.h
|
2006-07-18 17:00:51 +00:00
|
|
|
NFS4CLIENT opt_nfs.h
|
1997-05-04 15:24:23 +00:00
|
|
|
|
2003-09-26 20:26:25 +00:00
|
|
|
# filesystems and libiconv bridge
|
|
|
|
CD9660_ICONV opt_dontuse.h
|
|
|
|
MSDOSFS_ICONV opt_dontuse.h
|
|
|
|
NTFS_ICONV opt_dontuse.h
|
2003-11-05 06:38:14 +00:00
|
|
|
UDF_ICONV opt_dontuse.h
|
2003-09-26 20:26:25 +00:00
|
|
|
|
1999-11-22 02:45:11 +00:00
|
|
|
# If you are following the conditions in the copyright,
|
|
|
|
# you can enable soft-updates which will speed up a lot of thigs
|
1998-03-08 09:59:44 +00:00
|
|
|
# and make the system safer from crashes at the same time.
|
|
|
|
# otherwise a STUB module will be compiled in.
|
|
|
|
SOFTUPDATES opt_ffs.h
|
|
|
|
|
2006-01-06 04:44:09 +00:00
|
|
|
# On small, embedded systems, it can be useful to turn off support for
|
|
|
|
# snapshots. It saves about 30-40k for a feature that would be lightly
|
|
|
|
# used, if it is used at all.
|
|
|
|
NO_FFS_SNAPSHOT opt_ffs.h
|
|
|
|
|
Introduce support for POSIX.1e ACLs on UFS-based file systems. This
implementation is still experimental, and while fairly broadly tested,
is not yet intended for production use. Support for POSIX.1e ACLs on
UFS will not be MFC'd to RELENG_4.
This implementation works by providing implementations of VOP_[GS]ETACL()
for FFS, as well as modifying the appropriate access control and file
creation routines. In this implementation, ACLs are backed into extended
attributes; the base ACL (owner, group, other) permissions remain in the
inode for performance and compatibility reasons, so only the extended and
default ACLs are placed in extended attributes. The logic for ACL
evaluation is provided by the fs-independent kern/kern_acl.c.
o Introduce UFS_ACL, a compile-time configuration option that enables
support for ACLs on FFS (and potentially other UFS-based file systems).
o Introduce ufs_getacl(), ufs_setacl(), ufs_aclcheck(), which
respectively get, set, and check the ACLs on the passed vnode.
o Introduce ufs_sync_acl_from_inode(), ufs_sync_inode_from_acl() to
maintain access control information between inode permissions and
extended attribute data.
o Modify ufs_access() to load a file access ACL and invoke
vaccess_acl_posix1e() if ACLs are available on the file system
o Modify ufs_mkdir() and ufs_makeinode() to associate ACLs with newly
created directories and files, inheriting from the parent directory's
default ACL.
o Enable these new vnode operations and conditionally compiled code
paths if UFS_ACL is defined.
A few notes:
o This implementation is fairly widely tested, but still should be
considered experimental.
o Currently, ACLs are not exported via NFS, instead, the summarizing
file mode/etc from the inode is. This results in conservative
protection behavior, similar to the behavior of ACL-nonaware programs
acting locally.
o It is possible that underlying binary data formats associated with
this implementation may change. Consumers of the implementation
should expect to find their local configuration obsoleted in the
next few months, resulting in possible loss of ACL data during an
upgrade.
o The extended attributes interface and implementation is still
undergoing modification to address portable interface concerns, as
well as performance.
o Many applications do not yet correctly handle ACLs. In general,
due to the POSIX.1e ACL model, behavior of ACL-unaware applications
will be conservative with respects to file protection; some caution
is recommended.
o Instructions for configuring and maintaining ACLs on UFS will be
committed in the near future; in the mean time it is possible to
reference the README included in the last UFS ACL distribution
placed in the TrustedBSD web site:
http://www.TrustedBSD.org/downloads/
Substantial debugging, hardware, travel, or connectivity support for this
project was provided by: BSDi, Safeport Network Services, and NAI Labs.
Significant coding contributions were made by Chris Faulhaber. Additional
support was provided by Brian Feldman, Thomas Moestl, and Ilmar Habibulin.
Reviewed by: jedgar, keichii, mckusick, trustedbsd-discuss, freebsd-fs
Obtained from: TrustedBSD Project
2001-03-26 17:53:19 +00:00
|
|
|
# Enabling this option turns on support for Access Control Lists in UFS,
|
|
|
|
# which can be used to support high security configurations. Depends on
|
|
|
|
# UFS_EXTATTR.
|
|
|
|
UFS_ACL opt_ufs.h
|
|
|
|
|
2001-03-19 04:35:40 +00:00
|
|
|
# Enabling this option turns on support for extended attributes in UFS-based
|
2002-05-16 21:28:32 +00:00
|
|
|
# filesystems, which can be used to support high security configurations
|
|
|
|
# as well as new filesystem features.
|
2001-03-19 04:35:40 +00:00
|
|
|
UFS_EXTATTR opt_ufs.h
|
|
|
|
UFS_EXTATTR_AUTOSTART opt_ufs.h
|
Introduce extended attribute support for FFS, allowing arbitrary
(name, value) pairs to be associated with inodes. This support is
used for ACLs, MAC labels, and Capabilities in the TrustedBSD
security extensions, which are currently under development.
In this implementation, attributes are backed to data vnodes in the
style of the quota support in FFS. Support for FFS extended
attributes may be enabled using the FFS_EXTATTR kernel option
(disabled by default). Userland utilities and man pages will be
committed in the next batch. VFS interfaces and man pages have
been in the repo since 4.0-RELEASE and are unchanged.
o ufs/ufs/extattr.h: UFS-specific extattr defines
o ufs/ufs/ufs_extattr.c: bulk of support routines
o ufs/{ufs,ffs,mfs}/*.[ch]: hooks and extattr.h includes
o contrib/softupdates/ffs_softdep.c: extattr.h includes
o conf/options, conf/files, i386/conf/LINT: added FFS_EXTATTR
o coda/coda_vfsops.c: XXX required extattr.h due to ufsmount.h
(This should not be the case, and will be fixed in a future commit)
Currently attributes are not supported in MFS. This will be fixed.
Reviewed by: adrian, bp, freebsd-fs, other unthanked souls
Obtained from: TrustedBSD Project
2000-04-15 03:34:27 +00:00
|
|
|
|
2001-07-10 21:21:29 +00:00
|
|
|
# Enable fast hash lookups for large directories on UFS-based filesystems.
|
|
|
|
UFS_DIRHASH opt_ufs.h
|
|
|
|
|
2006-10-31 22:22:30 +00:00
|
|
|
# Enable gjournal-based UFS journal.
|
|
|
|
UFS_GJOURNAL opt_ufs.h
|
|
|
|
|
2003-04-15 19:43:52 +00:00
|
|
|
# The below sentence is not in English, and neither is this one.
|
|
|
|
# We plan to remove the static dependences above, with a
|
1998-01-24 02:54:56 +00:00
|
|
|
# <filesystem>_ROOT option to control if it usable as root. This list
|
|
|
|
# allows these options to be present in config files already (though
|
|
|
|
# they won't make any difference yet).
|
1998-06-30 03:01:37 +00:00
|
|
|
NFS_ROOT opt_nfsroot.h
|
1998-01-24 02:54:56 +00:00
|
|
|
|
2002-07-15 19:11:21 +00:00
|
|
|
# SMB/CIFS requester
|
2006-03-05 22:52:17 +00:00
|
|
|
NETSMB opt_netsmb.h
|
2002-07-15 19:11:21 +00:00
|
|
|
|
2001-07-26 23:05:35 +00:00
|
|
|
# Options used only in subr_param.c.
|
1999-01-14 03:30:48 +00:00
|
|
|
HZ opt_param.h
|
1999-04-09 16:28:11 +00:00
|
|
|
MAXFILES opt_param.h
|
1996-12-23 18:42:02 +00:00
|
|
|
NBUF opt_param.h
|
1998-11-05 14:28:26 +00:00
|
|
|
NSFBUFS opt_param.h
|
2001-08-20 00:41:12 +00:00
|
|
|
VM_BCACHE_SIZE_MAX opt_param.h
|
|
|
|
VM_SWZONE_SIZE_MAX opt_param.h
|
2001-07-26 23:05:35 +00:00
|
|
|
MAXUSERS
|
2001-10-10 23:06:54 +00:00
|
|
|
DFLDSIZ opt_param.h
|
|
|
|
MAXDSIZ opt_param.h
|
|
|
|
MAXSSIZ opt_param.h
|
1996-03-29 13:51:30 +00:00
|
|
|
|
|
|
|
# Generic SCSI options.
|
1998-09-15 09:59:15 +00:00
|
|
|
CAM_MAX_HIGHPOWER opt_cam.h
|
|
|
|
CAMDEBUG opt_cam.h
|
1999-08-16 22:39:53 +00:00
|
|
|
CAM_DEBUG_DELAY opt_cam.h
|
1998-09-15 09:59:15 +00:00
|
|
|
CAM_DEBUG_BUS opt_cam.h
|
|
|
|
CAM_DEBUG_TARGET opt_cam.h
|
|
|
|
CAM_DEBUG_LUN opt_cam.h
|
|
|
|
CAM_DEBUG_FLAGS opt_cam.h
|
1996-12-23 18:42:02 +00:00
|
|
|
SCSI_DELAY opt_scsi.h
|
1998-09-15 09:59:15 +00:00
|
|
|
SCSI_NO_SENSE_STRINGS opt_scsi.h
|
|
|
|
SCSI_NO_OP_STRINGS opt_scsi.h
|
|
|
|
|
|
|
|
# Options used only in cam/scsi/scsi_cd.c
|
|
|
|
CHANGER_MIN_BUSY_SECONDS opt_cd.h
|
|
|
|
CHANGER_MAX_BUSY_SECONDS opt_cd.h
|
1996-03-29 13:51:30 +00:00
|
|
|
|
1999-08-20 03:48:11 +00:00
|
|
|
# Options used only in cam/scsi/scsi_sa.c.
|
2001-07-02 17:48:59 +00:00
|
|
|
SA_IO_TIMEOUT opt_sa.h
|
1998-10-02 05:15:51 +00:00
|
|
|
SA_SPACE_TIMEOUT opt_sa.h
|
|
|
|
SA_REWIND_TIMEOUT opt_sa.h
|
|
|
|
SA_ERASE_TIMEOUT opt_sa.h
|
1999-10-02 20:23:52 +00:00
|
|
|
SA_1FM_AT_EOD opt_sa.h
|
1996-06-16 19:58:24 +00:00
|
|
|
|
1999-08-20 03:48:11 +00:00
|
|
|
# Options used only in cam/scsi/scsi_pt.c
|
|
|
|
SCSI_PT_DEFAULT_TIMEOUT opt_pt.h
|
|
|
|
|
2000-01-15 07:12:09 +00:00
|
|
|
# Options used only in cam/scsi/scsi_ses.c
|
|
|
|
SES_ENABLE_PASSTHROUGH opt_ses.h
|
|
|
|
|
1999-12-16 16:09:57 +00:00
|
|
|
# Options used in dev/sym/ (Symbios SCSI driver).
|
|
|
|
SYM_SETUP_LP_PROBE_MAP opt_sym.h #-Low Priority Probe Map (bits)
|
|
|
|
# Allows the ncr to take precedence
|
|
|
|
# 1 (1<<0) -> 810a, 860
|
|
|
|
# 2 (1<<1) -> 825a, 875, 885, 895
|
|
|
|
# 4 (1<<2) -> 895a, 896, 1510d
|
|
|
|
SYM_SETUP_SCSI_DIFF opt_sym.h #-HVD support for 825a, 875, 885
|
|
|
|
# disabled:0 (default), enabled:1
|
|
|
|
SYM_SETUP_PCI_PARITY opt_sym.h #-PCI parity checking
|
|
|
|
# disabled:0, enabled:1 (default)
|
|
|
|
SYM_SETUP_MAX_LUN opt_sym.h #-Number of LUNs supported
|
|
|
|
# default:8, range:[1..64]
|
|
|
|
|
1996-12-15 16:35:54 +00:00
|
|
|
# Options used only in pci/ncr.c
|
1996-12-23 18:42:02 +00:00
|
|
|
SCSI_NCR_DEBUG opt_ncr.h
|
1996-12-23 18:40:40 +00:00
|
|
|
SCSI_NCR_MAX_SYNC opt_ncr.h
|
|
|
|
SCSI_NCR_MAX_WIDE opt_ncr.h
|
1996-12-23 18:42:02 +00:00
|
|
|
SCSI_NCR_MYADDR opt_ncr.h
|
1996-12-15 16:35:54 +00:00
|
|
|
|
2002-04-04 23:54:58 +00:00
|
|
|
# Options used only in dev/isp/*
|
1999-11-21 03:00:19 +00:00
|
|
|
ISP_TARGET_MODE opt_isp.h
|
2002-04-04 23:54:58 +00:00
|
|
|
ISP_FW_CRASH_DUMP opt_isp.h
|
2006-04-18 22:24:55 +00:00
|
|
|
ISP_DEFAULT_ROLES opt_isp.h
|
1999-02-09 01:02:37 +00:00
|
|
|
|
2007-07-24 15:35:02 +00:00
|
|
|
# Options used only in dev/iscsi
|
|
|
|
ISCSI_INITIATOR_DEBUG opt_iscsi_initiator.h
|
|
|
|
|
1999-10-09 20:22:01 +00:00
|
|
|
# Options used in the 'ata' ATA/ATAPI driver
|
|
|
|
ATA_STATIC_ID opt_ata.h
|
2002-07-21 21:37:09 +00:00
|
|
|
ATA_NOPCI opt_ata.h
|
1999-10-09 20:22:01 +00:00
|
|
|
|
1996-03-29 13:51:30 +00:00
|
|
|
# Net stuff.
|
2000-06-20 01:09:23 +00:00
|
|
|
ACCEPT_FILTER_DATA
|
2008-07-18 14:44:51 +00:00
|
|
|
ACCEPT_FILTER_DNS
|
2000-06-20 01:09:23 +00:00
|
|
|
ACCEPT_FILTER_HTTP
|
2004-06-13 17:29:10 +00:00
|
|
|
ALTQ opt_global.h
|
|
|
|
ALTQ_CBQ opt_altq.h
|
|
|
|
ALTQ_RED opt_altq.h
|
|
|
|
ALTQ_RIO opt_altq.h
|
|
|
|
ALTQ_HFSC opt_altq.h
|
|
|
|
ALTQ_CDNR opt_altq.h
|
|
|
|
ALTQ_PRIQ opt_altq.h
|
|
|
|
ALTQ_NOPCC opt_altq.h
|
|
|
|
ALTQ_DEBUG opt_altq.h
|
2004-07-08 22:35:36 +00:00
|
|
|
BOOTP opt_bootp.h
|
2008-05-16 06:27:03 +00:00
|
|
|
BOOTP_BLOCKSIZE opt_bootp.h
|
2004-07-08 22:35:36 +00:00
|
|
|
BOOTP_COMPAT opt_bootp.h
|
|
|
|
BOOTP_NFSROOT opt_bootp.h
|
|
|
|
BOOTP_NFSV3 opt_bootp.h
|
|
|
|
BOOTP_WIRED_TO opt_bootp.h
|
2005-10-05 10:09:17 +00:00
|
|
|
DEVICE_POLLING
|
2006-06-26 22:30:08 +00:00
|
|
|
DEV_ENC opt_enc.h
|
2004-02-26 03:53:54 +00:00
|
|
|
DEV_PF opt_pf.h
|
|
|
|
DEV_PFLOG opt_pf.h
|
|
|
|
DEV_PFSYNC opt_pf.h
|
2000-01-23 03:35:11 +00:00
|
|
|
ETHER_II opt_ef.h
|
|
|
|
ETHER_8023 opt_ef.h
|
|
|
|
ETHER_8022 opt_ef.h
|
|
|
|
ETHER_SNAP opt_ef.h
|
Add code to allow the system to handle multiple routing tables.
This particular implementation is designed to be fully backwards compatible
and to be MFC-able to 7.x (and 6.x)
Currently the only protocol that can make use of the multiple tables is IPv4
Similar functionality exists in OpenBSD and Linux.
From my notes:
-----
One thing where FreeBSD has been falling behind, and which by chance I
have some time to work on is "policy based routing", which allows
different
packet streams to be routed by more than just the destination address.
Constraints:
------------
I want to make some form of this available in the 6.x tree
(and by extension 7.x) , but FreeBSD in general needs it so I might as
well do it in -current and back port the portions I need.
One of the ways that this can be done is to have the ability to
instantiate multiple kernel routing tables (which I will now
refer to as "Forwarding Information Bases" or "FIBs" for political
correctness reasons). Which FIB a particular packet uses to make
the next hop decision can be decided by a number of mechanisms.
The policies these mechanisms implement are the "Policies" referred
to in "Policy based routing".
One of the constraints I have if I try to back port this work to
6.x is that it must be implemented as a EXTENSION to the existing
ABIs in 6.x so that third party applications do not need to be
recompiled in timespan of the branch.
This first version will not have some of the bells and whistles that
will come with later versions. It will, for example, be limited to 16
tables in the first commit.
Implementation method, Compatible version. (part 1)
-------------------------------
For this reason I have implemented a "sufficient subset" of a
multiple routing table solution in Perforce, and back-ported it
to 6.x. (also in Perforce though not always caught up with what I
have done in -current/P4). The subset allows a number of FIBs
to be defined at compile time (8 is sufficient for my purposes in 6.x)
and implements the changes needed to allow IPV4 to use them. I have not
done the changes for ipv6 simply because I do not need it, and I do not
have enough knowledge of ipv6 (e.g. neighbor discovery) needed to do it.
Other protocol families are left untouched and should there be
users with proprietary protocol families, they should continue to work
and be oblivious to the existence of the extra FIBs.
To understand how this is done, one must know that the current FIB
code starts everything off with a single dimensional array of
pointers to FIB head structures (One per protocol family), each of
which in turn points to the trie of routes available to that family.
The basic change in the ABI compatible version of the change is to
extent that array to be a 2 dimensional array, so that
instead of protocol family X looking at rt_tables[X] for the
table it needs, it looks at rt_tables[Y][X] when for all
protocol families except ipv4 Y is always 0.
Code that is unaware of the change always just sees the first row
of the table, which of course looks just like the one dimensional
array that existed before.
The entry points rtrequest(), rtalloc(), rtalloc1(), rtalloc_ign()
are all maintained, but refer only to the first row of the array,
so that existing callers in proprietary protocols can continue to
do the "right thing".
Some new entry points are added, for the exclusive use of ipv4 code
called in_rtrequest(), in_rtalloc(), in_rtalloc1() and in_rtalloc_ign(),
which have an extra argument which refers the code to the correct row.
In addition, there are some new entry points (currently called
rtalloc_fib() and friends) that check the Address family being
looked up and call either rtalloc() (and friends) if the protocol
is not IPv4 forcing the action to row 0 or to the appropriate row
if it IS IPv4 (and that info is available). These are for calling
from code that is not specific to any particular protocol. The way
these are implemented would change in the non ABI preserving code
to be added later.
One feature of the first version of the code is that for ipv4,
the interface routes show up automatically on all the FIBs, so
that no matter what FIB you select you always have the basic
direct attached hosts available to you. (rtinit() does this
automatically).
You CAN delete an interface route from one FIB should you want
to but by default it's there. ARP information is also available
in each FIB. It's assumed that the same machine would have the
same MAC address, regardless of which FIB you are using to get
to it.
This brings us as to how the correct FIB is selected for an outgoing
IPV4 packet.
Firstly, all packets have a FIB associated with them. if nothing
has been done to change it, it will be FIB 0. The FIB is changed
in the following ways.
Packets fall into one of a number of classes.
1/ locally generated packets, coming from a socket/PCB.
Such packets select a FIB from a number associated with the
socket/PCB. This in turn is inherited from the process,
but can be changed by a socket option. The process in turn
inherits it on fork. I have written a utility call setfib
that acts a bit like nice..
setfib -3 ping target.example.com # will use fib 3 for ping.
It is an obvious extension to make it a property of a jail
but I have not done so. It can be achieved by combining the setfib and
jail commands.
2/ packets received on an interface for forwarding.
By default these packets would use table 0,
(or possibly a number settable in a sysctl(not yet)).
but prior to routing the firewall can inspect them (see below).
(possibly in the future you may be able to associate a FIB
with packets received on an interface.. An ifconfig arg, but not yet.)
3/ packets inspected by a packet classifier, which can arbitrarily
associate a fib with it on a packet by packet basis.
A fib assigned to a packet by a packet classifier
(such as ipfw) would over-ride a fib associated by
a more default source. (such as cases 1 or 2).
4/ a tcp listen socket associated with a fib will generate
accept sockets that are associated with that same fib.
5/ Packets generated in response to some other packet (e.g. reset
or icmp packets). These should use the FIB associated with the
packet being reponded to.
6/ Packets generated during encapsulation.
gif, tun and other tunnel interfaces will encapsulate using the FIB
that was in effect withthe proces that set up the tunnel.
thus setfib 1 ifconfig gif0 [tunnel instructions]
will set the fib for the tunnel to use to be fib 1.
Routing messages would be associated with their
process, and thus select one FIB or another.
messages from the kernel would be associated with the fib they
refer to and would only be received by a routing socket associated
with that fib. (not yet implemented)
In addition Netstat has been edited to be able to cope with the
fact that the array is now 2 dimensional. (It looks in system
memory using libkvm (!)). Old versions of netstat see only the first FIB.
In addition two sysctls are added to give:
a) the number of FIBs compiled in (active)
b) the default FIB of the calling process.
Early testing experience:
-------------------------
Basically our (IronPort's) appliance does this functionality already
using ipfw fwd but that method has some drawbacks.
For example,
It can't fully simulate a routing table because it can't influence the
socket's choice of local address when a connect() is done.
Testing during the generating of these changes has been
remarkably smooth so far. Multiple tables have co-existed
with no notable side effects, and packets have been routes
accordingly.
ipfw has grown 2 new keywords:
setfib N ip from anay to any
count ip from any to any fib N
In pf there seems to be a requirement to be able to give symbolic names to the
fibs but I do not have that capacity. I am not sure if it is required.
SCTP has interestingly enough built in support for this, called VRFs
in Cisco parlance. it will be interesting to see how that handles it
when it suddenly actually does something.
Where to next:
--------------------
After committing the ABI compatible version and MFCing it, I'd
like to proceed in a forward direction in -current. this will
result in some roto-tilling in the routing code.
Firstly: the current code's idea of having a separate tree per
protocol family, all of the same format, and pointed to by the
1 dimensional array is a bit silly. Especially when one considers that
there is code that makes assumptions about every protocol having the
same internal structures there. Some protocols don't WANT that
sort of structure. (for example the whole idea of a netmask is foreign
to appletalk). This needs to be made opaque to the external code.
My suggested first change is to add routing method pointers to the
'domain' structure, along with information pointing the data.
instead of having an array of pointers to uniform structures,
there would be an array pointing to the 'domain' structures
for each protocol address domain (protocol family),
and the methods this reached would be called. The methods would have
an argument that gives FIB number, but the protocol would be free
to ignore it.
When the ABI can be changed it raises the possibilty of the
addition of a fib entry into the "struct route". Currently,
the structure contains the sockaddr of the desination, and the resulting
fib entry. To make this work fully, one could add a fib number
so that given an address and a fib, one can find the third element, the
fib entry.
Interaction with the ARP layer/ LL layer would need to be
revisited as well. Qing Li has been working on this already.
This work was sponsored by Ironport Systems/Cisco
Reviewed by: several including rwatson, bz and mlair (parts each)
Obtained from: Ironport systems/Cisco
2008-05-09 23:03:00 +00:00
|
|
|
ROUTETABLES opt_route.h
|
1996-06-12 19:34:33 +00:00
|
|
|
MROUTING opt_mrouting.h
|
1998-01-08 23:42:31 +00:00
|
|
|
INET opt_inet.h
|
1999-12-07 17:39:16 +00:00
|
|
|
INET6 opt_inet6.h
|
1999-12-22 19:13:38 +00:00
|
|
|
IPSEC opt_ipsec.h
|
|
|
|
IPSEC_DEBUG opt_ipsec.h
|
2007-08-05 16:16:15 +00:00
|
|
|
IPSEC_FILTERTUNNEL opt_ipsec.h
|
1997-11-05 20:17:23 +00:00
|
|
|
IPDIVERT
|
1998-12-14 17:46:15 +00:00
|
|
|
DUMMYNET opt_ipdn.h
|
1999-11-23 21:44:59 +00:00
|
|
|
IPFILTER opt_ipfilter.h
|
|
|
|
IPFILTER_LOG opt_ipfilter.h
|
2005-04-28 16:33:15 +00:00
|
|
|
IPFILTER_LOOKUP opt_ipfilter.h
|
2000-05-16 08:58:39 +00:00
|
|
|
IPFILTER_DEFAULT_BLOCK opt_ipfilter.h
|
1996-06-12 19:34:33 +00:00
|
|
|
IPFIREWALL opt_ipfw.h
|
|
|
|
IPFIREWALL_VERBOSE opt_ipfw.h
|
1996-06-23 14:43:55 +00:00
|
|
|
IPFIREWALL_VERBOSE_LIMIT opt_ipfw.h
|
1997-09-10 03:07:14 +00:00
|
|
|
IPFIREWALL_DEFAULT_TO_ACCEPT opt_ipfw.h
|
2004-08-17 22:05:54 +00:00
|
|
|
IPFIREWALL_FORWARD opt_ipfw.h
|
2007-01-03 11:12:54 +00:00
|
|
|
IPFIREWALL_NAT opt_ipfw.h
|
1999-02-22 18:19:57 +00:00
|
|
|
IPSTEALTH
|
2003-04-12 09:40:37 +00:00
|
|
|
IPX
|
2003-07-15 08:59:38 +00:00
|
|
|
LIBMBPOOL
|
2001-02-24 15:44:30 +00:00
|
|
|
LIBMCHAIN
|
2005-05-05 22:43:04 +00:00
|
|
|
LIBALIAS
|
2005-12-12 10:15:11 +00:00
|
|
|
MBUF_STRESS_TEST
|
2008-04-29 21:23:21 +00:00
|
|
|
MBUF_PROFILING
|
2003-04-12 09:40:37 +00:00
|
|
|
NCP
|
1998-01-09 00:51:57 +00:00
|
|
|
NETATALK opt_atalk.h
|
1997-08-19 17:05:26 +00:00
|
|
|
PPP_BSDCOMP opt_ppp.h
|
|
|
|
PPP_DEFLATE opt_ppp.h
|
1997-10-18 01:15:32 +00:00
|
|
|
PPP_FILTER opt_ppp.h
|
This patch provides the back end support for equal-cost multi-path
(ECMP) for both IPv4 and IPv6. Previously, multipath route insertion
is disallowed. For example,
route add -net 192.103.54.0/24 10.9.44.1
route add -net 192.103.54.0/24 10.9.44.2
The second route insertion will trigger an error message of
"add net 192.103.54.0/24: gateway 10.2.5.2: route already in table"
Multiple default routes can also be inserted. Here is the netstat
output:
default 10.2.5.1 UGS 0 3074 bge0 =>
default 10.2.5.2 UGS 0 0 bge0
When multipath routes exist, the "route delete" command requires
a specific gateway to be specified or else an error message would
be displayed. For example,
route delete default
would fail and trigger the following error message:
"route: writing to routing socket: No such process"
"delete net default: not in table"
On the other hand,
route delete default 10.2.5.2
would be successful: "delete net default: gateway 10.2.5.2"
One does not have to specify a gateway if there is only a single
route for a particular destination.
I need to perform more testings on address aliases and multiple
interfaces that have the same IP prefixes. This patch as it
stands today is not yet ready for prime time. Therefore, the ECMP
code fragments are fully guarded by the RADIX_MPATH macro.
Include the "options RADIX_MPATH" in the kernel configuration
to enable this feature.
Reviewed by: robert, sam, gnn, julian, kmacy
2008-04-13 05:45:14 +00:00
|
|
|
RADIX_MPATH opt_mpath.h
|
1999-08-10 09:42:32 +00:00
|
|
|
SLIP_IFF_OPTS opt_slip.h
|
1997-09-16 18:36:06 +00:00
|
|
|
TCPDEBUG
|
Initial import of RFC 2385 (TCP-MD5) digest support.
This is the first of two commits; bringing in the kernel support first.
This can be enabled by compiling a kernel with options TCP_SIGNATURE
and FAST_IPSEC.
For the uninitiated, this is a TCP option which provides for a means of
authenticating TCP sessions which came into being before IPSEC. It is
still relevant today, however, as it is used by many commercial router
vendors, particularly with BGP, and as such has become a requirement for
interconnect at many major Internet points of presence.
Several parts of the TCP and IP headers, including the segment payload,
are digested with MD5, including a shared secret. The PF_KEY interface
is used to manage the secrets using security associations in the SADB.
There is a limitation here in that as there is no way to map a TCP flow
per-port back to an SPI without polluting tcpcb or using the SPD; the
code to do the latter is unstable at this time. Therefore this code only
supports per-host keying granularity.
Whilst FAST_IPSEC is mutually exclusive with KAME IPSEC (and thus IPv6),
TCP_SIGNATURE applies only to IPv4. For the vast majority of prospective
users of this feature, this will not pose any problem.
This implementation is output-only; that is, the option is honoured when
responding to a host initiating a TCP session, but no effort is made
[yet] to authenticate inbound traffic. This is, however, sufficient to
interwork with Cisco equipment.
Tested with a Cisco 2501 running IOS 12.0(27), and Quagga 0.96.4 with
local patches. Patches for tcpdump to validate TCP-MD5 sessions are also
available from me upon request.
Sponsored by: sentex.net
2004-02-11 04:26:04 +00:00
|
|
|
TCP_SIGNATURE opt_inet.h
|
Merge the //depot/user/yar/vlan branch into CVS. It contains some collective
work by yar, thompsa and myself. The checksum offloading part also involves
work done by Mihail Balikov.
The most important changes:
o Instead of global linked list of all vlan softc use a per-trunk
hash. The size of hash is dynamically adjusted, depending on
number of entries. This changes struct ifnet, replacing counter
of vlans with a pointer to trunk structure. This change is an
improvement for setups with big number of VLANs, several interfaces
and several CPUs. It is a small regression for a setup with a single
VLAN interface.
An alternative to dynamic hash is a per-trunk static array with
4096 entries, which is a compile time option - VLAN_ARRAY. In my
experiments the array is not an improvement, probably because such
a big trunk structure doesn't fit into CPU cache.
o Introduce an UMA zone for VLAN tags. Since drivers depend on it,
the zone is declared in kern_mbuf.c, not in optional vlan(4) driver.
This change is a big improvement for any setup utilizing vlan(4).
o Use rwlock(9) instead of mutex(9) for locking. We are the first
ones to do this! :)
o Some drivers can do hardware VLAN tagging + hardware checksum
offloading. Add an infrastructure for this. Whenever vlan(4) is
attached to a parent or parent configuration is changed, the flags
on vlan(4) interface are updated.
In collaboration with: yar, thompsa
In collaboration with: Mihail Balikov <mihail.balikov interbgc.com>
2006-01-30 13:45:15 +00:00
|
|
|
DEV_VLAN opt_vlan.h
|
|
|
|
VLAN_ARRAY opt_vlan.h
|
2000-07-20 00:35:37 +00:00
|
|
|
XBONEHACK
|
2008-03-26 15:23:12 +00:00
|
|
|
KRPC
|
|
|
|
NFSLOCKD
|
1998-01-26 18:31:18 +00:00
|
|
|
|
2006-11-03 15:23:16 +00:00
|
|
|
#
|
|
|
|
# SCTP
|
|
|
|
#
|
|
|
|
SCTP opt_sctp.h
|
2007-06-14 22:59:04 +00:00
|
|
|
SCTP_DEBUG opt_sctp.h # Enable debug printfs
|
|
|
|
SCTP_WITH_NO_CSUM opt_sctp.h # Use this at your peril
|
|
|
|
SCTP_LOCK_LOGGING opt_sctp.h # Log to KTR lock activity
|
|
|
|
SCTP_MBUF_LOGGING opt_sctp.h # Log to KTR general mbuf aloc/free
|
|
|
|
SCTP_MBCNT_LOGGING opt_sctp.h # Log to KTR mbcnt activity
|
|
|
|
SCTP_PACKET_LOGGING opt_sctp.h # Log to a packet buffer last N packets
|
|
|
|
SCTP_LTRACE_CHUNKS opt_sctp.h # Log to KTR chunks processed
|
|
|
|
SCTP_LTRACE_ERRORS opt_sctp.h # Log to KTR error returns.
|
|
|
|
#
|
|
|
|
#
|
|
|
|
#
|
2006-11-03 15:23:16 +00:00
|
|
|
|
1999-10-21 09:06:11 +00:00
|
|
|
# Netgraph(4). Use option NETGRAPH to enable the base netgraph code.
|
|
|
|
# Each netgraph node type can be either be compiled into the kernel
|
|
|
|
# or loaded dynamically. To get the former, include the corresponding
|
2000-09-01 01:37:13 +00:00
|
|
|
# option below. Each type has its own man page, e.g. ng_async(4).
|
1999-10-21 09:06:11 +00:00
|
|
|
NETGRAPH
|
2005-05-16 08:25:55 +00:00
|
|
|
NETGRAPH_DEBUG opt_netgraph.h
|
1999-10-21 09:06:11 +00:00
|
|
|
NETGRAPH_ASYNC opt_netgraph.h
|
2004-03-08 10:54:35 +00:00
|
|
|
NETGRAPH_ATMLLC opt_netgraph.h
|
2004-04-27 16:38:15 +00:00
|
|
|
NETGRAPH_ATM_ATMPIF opt_netgraph.h
|
|
|
|
NETGRAPH_BLUETOOTH opt_netgraph.h
|
|
|
|
NETGRAPH_BLUETOOTH_BT3C opt_netgraph.h
|
|
|
|
NETGRAPH_BLUETOOTH_H4 opt_netgraph.h
|
|
|
|
NETGRAPH_BLUETOOTH_HCI opt_netgraph.h
|
|
|
|
NETGRAPH_BLUETOOTH_L2CAP opt_netgraph.h
|
|
|
|
NETGRAPH_BLUETOOTH_SOCKET opt_netgraph.h
|
|
|
|
NETGRAPH_BLUETOOTH_UBT opt_netgraph.h
|
|
|
|
NETGRAPH_BLUETOOTH_UBTBCMFW opt_netgraph.h
|
1999-12-03 21:21:49 +00:00
|
|
|
NETGRAPH_BPF opt_netgraph.h
|
2000-09-01 01:37:13 +00:00
|
|
|
NETGRAPH_BRIDGE opt_netgraph.h
|
2007-05-15 16:43:01 +00:00
|
|
|
NETGRAPH_CAR opt_netgraph.h
|
1999-10-21 09:06:11 +00:00
|
|
|
NETGRAPH_CISCO opt_netgraph.h
|
2006-12-29 13:16:43 +00:00
|
|
|
NETGRAPH_DEFLATE opt_netgraph.h
|
2004-07-20 12:42:54 +00:00
|
|
|
NETGRAPH_DEVICE opt_netgraph.h
|
1999-10-21 09:06:11 +00:00
|
|
|
NETGRAPH_ECHO opt_netgraph.h
|
2004-06-27 02:25:38 +00:00
|
|
|
NETGRAPH_EIFACE opt_netgraph.h
|
2000-06-26 23:34:54 +00:00
|
|
|
NETGRAPH_ETHER opt_netgraph.h
|
2004-06-27 02:36:33 +00:00
|
|
|
NETGRAPH_FEC opt_netgraph.h
|
1999-10-21 09:06:11 +00:00
|
|
|
NETGRAPH_FRAME_RELAY opt_netgraph.h
|
2001-09-26 23:50:17 +00:00
|
|
|
NETGRAPH_GIF opt_netgraph.h
|
|
|
|
NETGRAPH_GIF_DEMUX opt_netgraph.h
|
1999-10-21 09:06:11 +00:00
|
|
|
NETGRAPH_HOLE opt_netgraph.h
|
|
|
|
NETGRAPH_IFACE opt_netgraph.h
|
2001-09-27 21:54:27 +00:00
|
|
|
NETGRAPH_IP_INPUT opt_netgraph.h
|
2005-02-05 12:15:56 +00:00
|
|
|
NETGRAPH_IPFW opt_netgraph.h
|
1999-11-16 23:49:07 +00:00
|
|
|
NETGRAPH_KSOCKET opt_netgraph.h
|
2002-08-20 21:59:50 +00:00
|
|
|
NETGRAPH_L2TP opt_netgraph.h
|
2003-04-15 19:43:52 +00:00
|
|
|
NETGRAPH_LMI opt_netgraph.h
|
2000-04-09 21:15:23 +00:00
|
|
|
# MPPC compression requires proprietary files (not included)
|
|
|
|
NETGRAPH_MPPC_COMPRESSION opt_netgraph.h
|
|
|
|
NETGRAPH_MPPC_ENCRYPTION opt_netgraph.h
|
2005-05-05 23:41:21 +00:00
|
|
|
NETGRAPH_NAT opt_netgraph.h
|
2004-09-16 20:35:28 +00:00
|
|
|
NETGRAPH_NETFLOW opt_netgraph.h
|
2000-11-16 16:59:26 +00:00
|
|
|
NETGRAPH_ONE2MANY opt_netgraph.h
|
1999-11-02 22:36:09 +00:00
|
|
|
NETGRAPH_PPP opt_netgraph.h
|
|
|
|
NETGRAPH_PPPOE opt_netgraph.h
|
1999-12-08 18:55:39 +00:00
|
|
|
NETGRAPH_PPTPGRE opt_netgraph.h
|
2006-12-29 13:16:43 +00:00
|
|
|
NETGRAPH_PRED1 opt_netgraph.h
|
1999-10-21 09:06:11 +00:00
|
|
|
NETGRAPH_RFC1490 opt_netgraph.h
|
|
|
|
NETGRAPH_SOCKET opt_netgraph.h
|
2001-07-25 00:15:02 +00:00
|
|
|
NETGRAPH_SPLIT opt_netgraph.h
|
2004-04-24 22:03:02 +00:00
|
|
|
NETGRAPH_SPPP opt_netgraph.h
|
2006-06-27 12:45:28 +00:00
|
|
|
NETGRAPH_TAG opt_netgraph.h
|
2005-06-10 08:05:13 +00:00
|
|
|
NETGRAPH_TCPMSS opt_netgraph.h
|
1999-10-21 09:06:11 +00:00
|
|
|
NETGRAPH_TEE opt_netgraph.h
|
|
|
|
NETGRAPH_TTY opt_netgraph.h
|
|
|
|
NETGRAPH_UI opt_netgraph.h
|
1999-10-25 22:07:30 +00:00
|
|
|
NETGRAPH_VJC opt_netgraph.h
|
2004-04-23 19:48:43 +00:00
|
|
|
|
2003-06-25 13:21:04 +00:00
|
|
|
# NgATM options
|
|
|
|
NGATM_ATM opt_netgraph.h
|
2003-10-27 11:19:08 +00:00
|
|
|
NGATM_ATMBASE opt_netgraph.h
|
|
|
|
NGATM_SSCOP opt_netgraph.h
|
|
|
|
NGATM_SSCFU opt_netgraph.h
|
2003-11-07 09:18:53 +00:00
|
|
|
NGATM_UNI opt_netgraph.h
|
2004-08-12 15:01:59 +00:00
|
|
|
NGATM_CCATM opt_netgraph.h
|
2003-06-25 13:21:04 +00:00
|
|
|
|
2002-04-28 04:58:40 +00:00
|
|
|
# DRM options
|
|
|
|
DRM_DEBUG opt_drm.h
|
|
|
|
|
At long last, commit the zero copy sockets code.
MAKEDEV: Add MAKEDEV glue for the ti(4) device nodes.
ti.4: Update the ti(4) man page to include information on the
TI_JUMBO_HDRSPLIT and TI_PRIVATE_JUMBOS kernel options,
and also include information about the new character
device interface and the associated ioctls.
man9/Makefile: Add jumbo.9 and zero_copy.9 man pages and associated
links.
jumbo.9: New man page describing the jumbo buffer allocator
interface and operation.
zero_copy.9: New man page describing the general characteristics of
the zero copy send and receive code, and what an
application author should do to take advantage of the
zero copy functionality.
NOTES: Add entries for ZERO_COPY_SOCKETS, TI_PRIVATE_JUMBOS,
TI_JUMBO_HDRSPLIT, MSIZE, and MCLSHIFT.
conf/files: Add uipc_jumbo.c and uipc_cow.c.
conf/options: Add the 5 options mentioned above.
kern_subr.c: Receive side zero copy implementation. This takes
"disposable" pages attached to an mbuf, gives them to
a user process, and then recycles the user's page.
This is only active when ZERO_COPY_SOCKETS is turned on
and the kern.ipc.zero_copy.receive sysctl variable is
set to 1.
uipc_cow.c: Send side zero copy functions. Takes a page written
by the user and maps it copy on write and assigns it
kernel virtual address space. Removes copy on write
mapping once the buffer has been freed by the network
stack.
uipc_jumbo.c: Jumbo disposable page allocator code. This allocates
(optionally) disposable pages for network drivers that
want to give the user the option of doing zero copy
receive.
uipc_socket.c: Add kern.ipc.zero_copy.{send,receive} sysctls that are
enabled if ZERO_COPY_SOCKETS is turned on.
Add zero copy send support to sosend() -- pages get
mapped into the kernel instead of getting copied if
they meet size and alignment restrictions.
uipc_syscalls.c:Un-staticize some of the sf* functions so that they
can be used elsewhere. (uipc_cow.c)
if_media.c: In the SIOCGIFMEDIA ioctl in ifmedia_ioctl(), avoid
calling malloc() with M_WAITOK. Return an error if
the M_NOWAIT malloc fails.
The ti(4) driver and the wi(4) driver, at least, call
this with a mutex held. This causes witness warnings
for 'ifconfig -a' with a wi(4) or ti(4) board in the
system. (I've only verified for ti(4)).
ip_output.c: Fragment large datagrams so that each segment contains
a multiple of PAGE_SIZE amount of data plus headers.
This allows the receiver to potentially do page
flipping on receives.
if_ti.c: Add zero copy receive support to the ti(4) driver. If
TI_PRIVATE_JUMBOS is not defined, it now uses the
jumbo(9) buffer allocator for jumbo receive buffers.
Add a new character device interface for the ti(4)
driver for the new debugging interface. This allows
(a patched version of) gdb to talk to the Tigon board
and debug the firmware. There are also a few additional
debugging ioctls available through this interface.
Add header splitting support to the ti(4) driver.
Tweak some of the default interrupt coalescing
parameters to more useful defaults.
Add hooks for supporting transmit flow control, but
leave it turned off with a comment describing why it
is turned off.
if_tireg.h: Change the firmware rev to 12.4.11, since we're really
at 12.4.11 plus fixes from 12.4.13.
Add defines needed for debugging.
Remove the ti_stats structure, it is now defined in
sys/tiio.h.
ti_fw.h: 12.4.11 firmware.
ti_fw2.h: 12.4.11 firmware, plus selected fixes from 12.4.13,
and my header splitting patches. Revision 12.4.13
doesn't handle 10/100 negotiation properly. (This
firmware is the same as what was in the tree previously,
with the addition of header splitting support.)
sys/jumbo.h: Jumbo buffer allocator interface.
sys/mbuf.h: Add a new external mbuf type, EXT_DISPOSABLE, to
indicate that the payload buffer can be thrown away /
flipped to a userland process.
socketvar.h: Add prototype for socow_setup.
tiio.h: ioctl interface to the character portion of the ti(4)
driver, plus associated structure/type definitions.
uio.h: Change prototype for uiomoveco() so that we'll know
whether the source page is disposable.
ufs_readwrite.c:Update for new prototype of uiomoveco().
vm_fault.c: In vm_fault(), check to see whether we need to do a page
based copy on write fault.
vm_object.c: Add a new function, vm_object_allocate_wait(). This
does the same thing that vm_object allocate does, except
that it gives the caller the opportunity to specify whether
it should wait on the uma_zalloc() of the object structre.
This allows vm objects to be allocated while holding a
mutex. (Without generating WITNESS warnings.)
vm_object_allocate() is implemented as a call to
vm_object_allocate_wait() with the malloc flag set to
M_WAITOK.
vm_object.h: Add prototype for vm_object_allocate_wait().
vm_page.c: Add page-based copy on write setup, clear and fault
routines.
vm_page.h: Add page based COW function prototypes and variable in
the vm_page structure.
Many thanks to Drew Gallatin, who wrote the zero copy send and receive
code, and to all the other folks who have tested and reviewed this code
over the years.
2002-06-26 03:37:47 +00:00
|
|
|
ZERO_COPY_SOCKETS opt_zero.h
|
|
|
|
TI_PRIVATE_JUMBOS opt_ti.h
|
|
|
|
TI_JUMBO_HDRSPLIT opt_ti.h
|
|
|
|
|
1998-01-31 05:00:21 +00:00
|
|
|
# XXX Conflict: # of devices vs network protocol (Native ATM).
|
|
|
|
# This makes "atm.h" unusable.
|
2003-04-12 09:40:37 +00:00
|
|
|
NATM
|
1998-01-31 05:00:21 +00:00
|
|
|
|
1998-01-26 18:31:18 +00:00
|
|
|
# DPT driver debug flags
|
1998-08-05 00:54:38 +00:00
|
|
|
DPT_MEASURE_PERFORMANCE opt_dpt.h
|
|
|
|
DPT_HANDLE_TIMEOUTS opt_dpt.h
|
|
|
|
DPT_TIMEOUT_FACTOR opt_dpt.h
|
1998-01-26 18:31:18 +00:00
|
|
|
DPT_LOST_IRQ opt_dpt.h
|
1998-08-05 00:54:38 +00:00
|
|
|
DPT_RESET_HBA opt_dpt.h
|
1998-01-31 07:23:16 +00:00
|
|
|
|
|
|
|
# Misc debug flags. Most of these should probably be replaced with
|
|
|
|
# 'DEBUG', and then let people recompile just the interesting modules
|
1999-02-14 12:00:00 +00:00
|
|
|
# with 'make CC="cc -DDEBUG"'.
|
1998-01-31 07:23:16 +00:00
|
|
|
CLUSTERDEBUG opt_debug_cluster.h
|
1999-01-10 17:41:33 +00:00
|
|
|
DEBUG_1284 opt_ppb_1284.h
|
|
|
|
VP0_DEBUG opt_vpo.h
|
1999-02-14 12:00:00 +00:00
|
|
|
LPT_DEBUG opt_lpt.h
|
1999-01-23 17:07:49 +00:00
|
|
|
PLIP_DEBUG opt_plip.h
|
1998-01-31 07:23:16 +00:00
|
|
|
LOCKF_DEBUG opt_debug_lockf.h
|
|
|
|
NETATALKDEBUG opt_atalk.h
|
|
|
|
SI_DEBUG opt_debug_si.h
|
|
|
|
|
1999-11-06 23:41:10 +00:00
|
|
|
# Fb options
|
|
|
|
FB_DEBUG opt_fb.h
|
|
|
|
FB_INSTALL_CDEV opt_fb.h
|
|
|
|
|
1999-01-25 19:34:27 +00:00
|
|
|
# ppbus related options
|
|
|
|
PERIPH_1284 opt_ppb_1284.h
|
|
|
|
DONTPROBE_1284 opt_ppb_1284.h
|
|
|
|
|
|
|
|
# smbus related options
|
|
|
|
ENABLE_ALART opt_intpm.h
|
1998-01-31 07:23:16 +00:00
|
|
|
|
1998-02-06 12:41:39 +00:00
|
|
|
# These cause changes all over the kernel
|
1999-11-06 23:41:10 +00:00
|
|
|
BLKDEV_IOSIZE opt_global.h
|
2003-07-11 17:04:37 +00:00
|
|
|
BURN_BRIDGES opt_global.h
|
1998-02-06 12:41:39 +00:00
|
|
|
DEBUG opt_global.h
|
1999-01-20 14:49:12 +00:00
|
|
|
DEBUG_LOCKS opt_global.h
|
1999-01-08 17:31:30 +00:00
|
|
|
DEBUG_VFS_LOCKS opt_global.h
|
2008-08-26 07:28:27 +00:00
|
|
|
DFLTPHYS opt_global.h
|
1998-02-06 12:41:39 +00:00
|
|
|
DIAGNOSTIC opt_global.h
|
2001-02-24 19:03:18 +00:00
|
|
|
INVARIANT_SUPPORT opt_global.h
|
1999-01-08 17:31:30 +00:00
|
|
|
INVARIANTS opt_global.h
|
2008-08-26 07:28:27 +00:00
|
|
|
MAXPHYS opt_global.h
|
2002-07-11 04:15:53 +00:00
|
|
|
MCLSHIFT opt_global.h
|
2004-02-25 09:35:35 +00:00
|
|
|
MUTEX_DEBUG opt_global.h
|
|
|
|
MUTEX_NOINLINE opt_global.h
|
2006-11-11 03:18:07 +00:00
|
|
|
LOCK_PROFILING opt_global.h
|
2007-02-27 06:42:05 +00:00
|
|
|
LOCK_PROFILING_FAST opt_global.h
|
2002-07-11 04:15:53 +00:00
|
|
|
MSIZE opt_global.h
|
2001-04-11 19:29:24 +00:00
|
|
|
REGRESSION opt_global.h
|
2001-08-23 20:32:21 +00:00
|
|
|
RESTARTABLE_PANICS opt_global.h
|
2006-01-27 23:13:26 +00:00
|
|
|
RWLOCK_NOINLINE opt_global.h
|
2007-03-31 23:23:42 +00:00
|
|
|
SX_NOINLINE opt_global.h
|
1999-01-08 17:31:30 +00:00
|
|
|
VFS_BIO_DEBUG opt_global.h
|
1998-02-23 07:42:43 +00:00
|
|
|
|
|
|
|
# These are VM related options
|
1999-11-06 23:51:29 +00:00
|
|
|
VM_KMEM_SIZE opt_vm.h
|
|
|
|
VM_KMEM_SIZE_SCALE opt_vm.h
|
1998-02-23 07:42:43 +00:00
|
|
|
VM_KMEM_SIZE_MAX opt_vm.h
|
2007-12-27 16:45:39 +00:00
|
|
|
VM_NRESERVLEVEL opt_vm.h
|
|
|
|
VM_LEVEL_0_ORDER opt_vm.h
|
1999-11-06 23:51:29 +00:00
|
|
|
NO_SWAPPING opt_vm.h
|
2003-03-26 20:18:40 +00:00
|
|
|
MALLOC_MAKE_FAILURES opt_vm.h
|
2002-04-09 05:14:17 +00:00
|
|
|
MALLOC_PROFILE opt_vm.h
|
1998-06-30 08:01:30 +00:00
|
|
|
|
2005-01-21 18:09:17 +00:00
|
|
|
# The MemGuard replacement allocator used for tamper-after-free detection
|
|
|
|
DEBUG_MEMGUARD opt_vm.h
|
|
|
|
|
2006-01-31 11:09:21 +00:00
|
|
|
# The RedZone malloc(9) protection
|
|
|
|
DEBUG_REDZONE opt_vm.h
|
|
|
|
|
1998-12-19 23:07:16 +00:00
|
|
|
# Standard SMP options
|
|
|
|
SMP opt_global.h
|
1998-02-27 10:02:49 +00:00
|
|
|
|
1998-05-19 08:58:53 +00:00
|
|
|
# Size of the kernel message buffer
|
|
|
|
MSGBUF_SIZE opt_msgbuf.h
|
1998-06-07 17:13:14 +00:00
|
|
|
|
1998-06-30 03:01:37 +00:00
|
|
|
# NFS options
|
|
|
|
NFS_MINATTRTIMO opt_nfs.h
|
|
|
|
NFS_MAXATTRTIMO opt_nfs.h
|
|
|
|
NFS_MINDIRATTRTIMO opt_nfs.h
|
|
|
|
NFS_MAXDIRATTRTIMO opt_nfs.h
|
|
|
|
NFS_GATHERDELAY opt_nfs.h
|
|
|
|
NFS_WDELAYHASHSIZ opt_nfs.h
|
|
|
|
NFS_DEBUG opt_nfs.h
|
|
|
|
|
1999-05-26 13:24:35 +00:00
|
|
|
# For the Bt848/Bt848A/Bt849/Bt878/Bt879 driver
|
1999-11-06 23:51:29 +00:00
|
|
|
OVERRIDE_CARD opt_bktr.h
|
|
|
|
OVERRIDE_TUNER opt_bktr.h
|
|
|
|
OVERRIDE_DBX opt_bktr.h
|
|
|
|
OVERRIDE_MSP opt_bktr.h
|
|
|
|
BROOKTREE_SYSTEM_DEFAULT opt_bktr.h
|
2000-10-17 07:59:56 +00:00
|
|
|
BROOKTREE_ALLOC_PAGES opt_bktr.h
|
|
|
|
BKTR_OVERRIDE_CARD opt_bktr.h
|
|
|
|
BKTR_OVERRIDE_TUNER opt_bktr.h
|
|
|
|
BKTR_OVERRIDE_DBX opt_bktr.h
|
|
|
|
BKTR_OVERRIDE_MSP opt_bktr.h
|
|
|
|
BKTR_SYSTEM_DEFAULT opt_bktr.h
|
|
|
|
BKTR_ALLOC_PAGES opt_bktr.h
|
1999-11-06 23:51:29 +00:00
|
|
|
BKTR_USE_PLL opt_bktr.h
|
|
|
|
BKTR_GPIO_ACCESS opt_bktr.h
|
|
|
|
BKTR_NO_MSP_RESET opt_bktr.h
|
|
|
|
BKTR_430_FX_MODE opt_bktr.h
|
|
|
|
BKTR_SIS_VIA_MODE opt_bktr.h
|
2002-03-23 15:49:15 +00:00
|
|
|
BKTR_USE_FREEBSD_SMBUS opt_bktr.h
|
Add a overhaul of the soundchip initialization for the MSP34xx chipsets
found only many tv-cards.
We currently use more ore less evil hacks (slow_msp_audio sysctl) to
configure the various variants of these chips in order to have
stereo autodetection work. Nevertheless, this doesn't always work
even though it _should_, according to the specs.
This is, for example, the case for some popular Hauppauge models sold
sold in Germany.
However, the Linux driver always worked for me and others. Looking at
the sourcecode you will find that the linux-driver uses a very much
enhanced approach to program the various msp34xx chipset variants,
which is also found in the specs for these chips.
This is a port of the Linux MSP34xx code, written by Gerd Knorr
<kraxel@bytesex.org>, who agreed to re-release his code under a
BSD license for this port.
A new config option "BKTR_NEW_MSP34XX_DRIVER" is added, which is required
to enable the new driver. Otherwise the old code is used.
The msp34xx.c file is diff-reduced to the linux-driver to make later
modifications easier, thus it doesn't follow style(9) in most cases.
Approved by: roger (committing this, no time to test/review),
keichii (code review)
2003-08-12 09:45:34 +00:00
|
|
|
BKTR_NEW_MSP34XX_DRIVER opt_bktr.h
|
1998-08-31 18:35:06 +00:00
|
|
|
|
1999-11-06 23:41:10 +00:00
|
|
|
BREAK_TO_DEBUGGER opt_comconsole.h
|
2000-06-14 06:41:33 +00:00
|
|
|
ALT_BREAK_TO_DEBUGGER opt_comconsole.h
|
1999-05-09 13:10:49 +00:00
|
|
|
|
2003-09-11 23:06:42 +00:00
|
|
|
# Options to support PPS
|
|
|
|
UART_PPS_ON_CTS opt_uart.h
|
|
|
|
|
1998-10-28 08:37:10 +00:00
|
|
|
# options for bus/device framework
|
|
|
|
BUS_DEBUG opt_bus.h
|
1998-11-26 23:13:13 +00:00
|
|
|
|
|
|
|
# options for USB support
|
|
|
|
USB_DEBUG opt_usb.h
|
2004-05-13 03:15:04 +00:00
|
|
|
USBVERBOSE opt_usb.h
|
2000-05-09 18:23:38 +00:00
|
|
|
UKBD_DFLT_KEYMAP opt_ukbd.h
|
2003-11-16 12:26:10 +00:00
|
|
|
UPLCOM_INTR_INTERVAL opt_uplcom.h
|
2003-03-09 11:50:27 +00:00
|
|
|
UVSCOM_DEFAULT_OPKTSIZE opt_uvscom.h
|
2003-11-16 12:26:10 +00:00
|
|
|
UVSCOM_INTR_INTERVAL opt_uvscom.h
|
1998-12-28 16:31:26 +00:00
|
|
|
|
1999-05-05 11:24:15 +00:00
|
|
|
# Embedded system options
|
2005-12-12 10:15:11 +00:00
|
|
|
INIT_PATH
|
1999-05-09 16:46:01 +00:00
|
|
|
|
2005-12-12 10:15:11 +00:00
|
|
|
ROOTDEVNAME
|
1999-06-05 13:57:10 +00:00
|
|
|
|
|
|
|
FDC_DEBUG opt_fdc.h
|
2000-01-19 18:17:25 +00:00
|
|
|
PCFCLOCK_VERBOSE opt_pcfclock.h
|
|
|
|
PCFCLOCK_MAX_RETRIES opt_pcfclock.h
|
2002-10-20 08:17:39 +00:00
|
|
|
|
2000-09-07 01:33:02 +00:00
|
|
|
KTR opt_global.h
|
2002-09-22 07:14:27 +00:00
|
|
|
KTR_ALQ opt_ktr.h
|
2000-11-07 01:49:48 +00:00
|
|
|
KTR_MASK opt_ktr.h
|
|
|
|
KTR_CPUMASK opt_ktr.h
|
2000-09-07 01:33:02 +00:00
|
|
|
KTR_COMPILE opt_global.h
|
|
|
|
KTR_ENTRIES opt_global.h
|
2000-11-07 01:49:48 +00:00
|
|
|
KTR_VERBOSE opt_ktr.h
|
2000-09-07 01:33:02 +00:00
|
|
|
WITNESS opt_global.h
|
2004-07-11 01:44:07 +00:00
|
|
|
WITNESS_KDB opt_witness.h
|
2000-10-27 03:00:28 +00:00
|
|
|
WITNESS_SKIPSPIN opt_witness.h
|
2000-09-07 01:33:02 +00:00
|
|
|
|
2000-08-31 15:34:54 +00:00
|
|
|
# options for ACPI support
|
|
|
|
ACPI_DEBUG opt_acpi.h
|
2001-12-22 16:05:41 +00:00
|
|
|
ACPI_MAX_THREADS opt_acpi.h
|
2003-10-29 14:22:09 +00:00
|
|
|
ACPI_NO_SEMAPHORES opt_acpi.h
|
2000-09-06 11:26:43 +00:00
|
|
|
|
2006-06-12 21:07:13 +00:00
|
|
|
# ISA support
|
|
|
|
DEV_ISA opt_isa.h
|
|
|
|
ISAPNP opt_isa.h
|
|
|
|
|
2001-01-29 09:43:36 +00:00
|
|
|
# various 'device presence' options.
|
2004-02-25 09:35:35 +00:00
|
|
|
DEV_BPF opt_bpf.h
|
2001-01-29 11:57:27 +00:00
|
|
|
DEV_MCA opt_mca.h
|
2005-02-22 13:04:05 +00:00
|
|
|
DEV_CARP opt_carp.h
|
Integrate the new MPSAFE TTY layer to the FreeBSD operating system.
The last half year I've been working on a replacement TTY layer for the
FreeBSD kernel. The new TTY layer was designed to improve the following:
- Improved driver model:
The old TTY layer has a driver model that is not abstract enough to
make it friendly to use. A good example is the output path, where the
device drivers directly access the output buffers. This means that an
in-kernel PPP implementation must always convert network buffers into
TTY buffers.
If a PPP implementation would be built on top of the new TTY layer
(still needs a hooks layer, though), it would allow the PPP
implementation to directly hand the data to the TTY driver.
- Improved hotplugging:
With the old TTY layer, it isn't entirely safe to destroy TTY's from
the system. This implementation has a two-step destructing design,
where the driver first abandons the TTY. After all threads have left
the TTY, the TTY layer calls a routine in the driver, which can be
used to free resources (unit numbers, etc).
The pts(4) driver also implements this feature, which means
posix_openpt() will now return PTY's that are created on the fly.
- Improved performance:
One of the major improvements is the per-TTY mutex, which is expected
to improve scalability when compared to the old Giant locking.
Another change is the unbuffered copying to userspace, which is both
used on TTY device nodes and PTY masters.
Upgrading should be quite straightforward. Unlike previous versions,
existing kernel configuration files do not need to be changed, except
when they reference device drivers that are listed in UPDATING.
Obtained from: //depot/projects/mpsafetty/...
Approved by: philip (ex-mentor)
Discussed: on the lists, at BSDCan, at the DevSummit
Sponsored by: Snow B.V., the Netherlands
dcons(4) fixed by: kan
2008-08-20 08:31:58 +00:00
|
|
|
DEV_PTY opt_tty.h
|
2003-06-18 15:25:01 +00:00
|
|
|
DEV_SPLASH opt_splash.h
|
2001-09-29 22:32:03 +00:00
|
|
|
|
2007-01-18 13:33:36 +00:00
|
|
|
# EISA support
|
|
|
|
DEV_EISA opt_eisa.h
|
2003-07-22 11:42:45 +00:00
|
|
|
EISA_SLOTS opt_eisa.h
|
|
|
|
|
2001-09-29 22:32:03 +00:00
|
|
|
# ed driver
|
2005-02-09 20:03:40 +00:00
|
|
|
ED_HPP opt_ed.h
|
|
|
|
ED_3C503 opt_ed.h
|
|
|
|
ED_SIC opt_ed.h
|
2002-02-12 00:26:06 +00:00
|
|
|
|
2006-04-10 20:04:22 +00:00
|
|
|
# bce driver
|
|
|
|
BCE_DEBUG opt_bce.h
|
|
|
|
|
2003-10-28 05:47:40 +00:00
|
|
|
SOCKBUF_DEBUG opt_global.h
|
|
|
|
|
2003-03-11 22:47:06 +00:00
|
|
|
# options for ubsec driver
|
|
|
|
UBSEC_DEBUG opt_ubsec.h
|
|
|
|
UBSEC_RNDTEST opt_ubsec.h
|
2003-06-25 14:49:24 +00:00
|
|
|
UBSEC_NO_RNG opt_ubsec.h
|
2003-03-11 22:47:06 +00:00
|
|
|
|
|
|
|
# options for hifn driver
|
|
|
|
HIFN_DEBUG opt_hifn.h
|
|
|
|
HIFN_RNDTEST opt_hifn.h
|
2003-06-18 15:25:01 +00:00
|
|
|
|
2003-07-21 21:50:41 +00:00
|
|
|
# options for safenet driver
|
|
|
|
SAFE_DEBUG opt_safe.h
|
|
|
|
SAFE_NO_RNG opt_safe.h
|
|
|
|
SAFE_RNDTEST opt_safe.h
|
|
|
|
|
2003-06-18 15:25:01 +00:00
|
|
|
# syscons options
|
|
|
|
MAXCONS opt_syscons.h
|
|
|
|
SC_ALT_MOUSE_IMAGE opt_syscons.h
|
|
|
|
SC_CUT_SPACES2TABS opt_syscons.h
|
|
|
|
SC_CUT_SEPCHARS opt_syscons.h
|
|
|
|
SC_DEBUG_LEVEL opt_syscons.h
|
|
|
|
SC_DFLT_FONT opt_syscons.h
|
2004-07-11 01:44:07 +00:00
|
|
|
SC_DISABLE_KDBKEY opt_syscons.h
|
2003-06-18 15:25:01 +00:00
|
|
|
SC_DISABLE_REBOOT opt_syscons.h
|
|
|
|
SC_HISTORY_SIZE opt_syscons.h
|
|
|
|
SC_KERNEL_CONS_ATTR opt_syscons.h
|
|
|
|
SC_KERNEL_CONS_REV_ATTR opt_syscons.h
|
|
|
|
SC_MOUSE_CHAR opt_syscons.h
|
|
|
|
SC_NO_CUTPASTE opt_syscons.h
|
|
|
|
SC_NO_FONT_LOADING opt_syscons.h
|
|
|
|
SC_NO_HISTORY opt_syscons.h
|
2007-01-10 18:45:18 +00:00
|
|
|
SC_NO_MODE_CHANGE opt_syscons.h
|
2004-02-25 09:35:35 +00:00
|
|
|
SC_NO_SUSPEND_VTYSWITCH opt_syscons.h
|
2003-06-18 15:25:01 +00:00
|
|
|
SC_NO_SYSMOUSE opt_syscons.h
|
|
|
|
SC_NORM_ATTR opt_syscons.h
|
|
|
|
SC_NORM_REV_ATTR opt_syscons.h
|
|
|
|
SC_PIXEL_MODE opt_syscons.h
|
|
|
|
SC_RENDER_DEBUG opt_syscons.h
|
|
|
|
SC_TWOBUTTON_MOUSE opt_syscons.h
|
|
|
|
|
2006-11-30 04:17:05 +00:00
|
|
|
# options for printf
|
|
|
|
PRINTF_BUFR_SIZE opt_printf.h
|
|
|
|
|
2003-06-18 15:25:01 +00:00
|
|
|
# kbd options
|
|
|
|
KBD_DISABLE_KEYMAP_LOAD opt_kbd.h
|
|
|
|
KBD_INSTALL_CDEV opt_kbd.h
|
|
|
|
KBD_MAXRETRY opt_kbd.h
|
|
|
|
KBD_MAXWAIT opt_kbd.h
|
|
|
|
KBD_RESETDELAY opt_kbd.h
|
|
|
|
KBDIO_DEBUG opt_kbd.h
|
2003-06-25 14:51:20 +00:00
|
|
|
|
2006-04-03 18:14:02 +00:00
|
|
|
# options for the Atheros driver
|
|
|
|
ATH_DEBUG opt_ath.h
|
|
|
|
ATH_TXBUF opt_ath.h
|
|
|
|
ATH_RXBUF opt_ath.h
|
|
|
|
ATH_DIAGAPI opt_ath.h
|
|
|
|
ATH_TX99_DIAG opt_ath.h
|
|
|
|
|
2008-04-20 20:35:46 +00:00
|
|
|
# options for the Marvell 8335 wireless driver
|
|
|
|
MALO_DEBUG opt_malo.h
|
|
|
|
MALO_TXBUF opt_malo.h
|
|
|
|
MALO_RXBUF opt_malo.h
|
|
|
|
|
2003-10-24 15:44:10 +00:00
|
|
|
# dcons options
|
|
|
|
DCONS_BUF_SIZE opt_dcons.h
|
|
|
|
DCONS_POLL_HZ opt_dcons.h
|
|
|
|
DCONS_FORCE_CONSOLE opt_dcons.h
|
|
|
|
DCONS_FORCE_GDB opt_dcons.h
|
2004-08-30 23:03:58 +00:00
|
|
|
|
2005-04-03 23:49:13 +00:00
|
|
|
# VFS options
|
|
|
|
LOOKUP_SHARED opt_vfs.h
|
2005-04-19 04:01:25 +00:00
|
|
|
|
|
|
|
# HWPMC options
|
2005-06-24 00:16:57 +00:00
|
|
|
HWPMC_HOOKS
|
2005-12-12 01:14:59 +00:00
|
|
|
|
2006-03-03 18:09:37 +00:00
|
|
|
# XBOX options for FreeBSD/i386, but some files are MI
|
|
|
|
XBOX opt_xbox.h
|
|
|
|
|
2005-12-12 01:14:59 +00:00
|
|
|
# XFS
|
2005-12-12 10:15:11 +00:00
|
|
|
XFS
|
2006-07-15 20:22:40 +00:00
|
|
|
|
2007-05-06 17:04:34 +00:00
|
|
|
# Interrupt filtering
|
2008-04-05 20:13:15 +00:00
|
|
|
INTR_FILTER
|
2007-12-15 19:53:35 +00:00
|
|
|
|
2008-04-20 20:35:46 +00:00
|
|
|
# 802.11 support layer
|
|
|
|
IEEE80211_DEBUG opt_wlan.h
|
|
|
|
IEEE80211_DEBUG_REFCNT opt_wlan.h
|
|
|
|
IEEE80211_AMPDU_AGE opt_wlan.h
|
|
|
|
|
2007-12-15 19:53:35 +00:00
|
|
|
#Disable code to dispatch tcp offloading
|
|
|
|
TCP_OFFLOAD_DISABLE opt_inet.h
|
Commit step 1 of the vimage project, (network stack)
virtualization work done by Marko Zec (zec@).
This is the first in a series of commits over the course
of the next few weeks.
Mark all uses of global variables to be virtualized
with a V_ prefix.
Use macros to map them back to their global names for
now, so this is a NOP change only.
We hope to have caught at least 85-90% of what is needed
so we do not invalidate a lot of outstanding patches again.
Obtained from: //depot/projects/vimage-commit2/...
Reviewed by: brooks, des, ed, mav, julian,
jamie, kris, rwatson, zec, ...
(various people I forgot, different versions)
md5 (with a bit of help)
Sponsored by: NLnet Foundation, The FreeBSD Foundation
X-MFC after: never
V_Commit_Message_Reviewed_By: more people than the patch
2008-08-17 23:27:27 +00:00
|
|
|
|
|
|
|
# Virtualize the network stack
|
2008-08-24 21:33:10 +00:00
|
|
|
VIMAGE opt_global.h
|