freebsd-dev/sys
Qing Li e440aed958 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
..
amd64 Connect k8temp(4) to the build. 2008-04-12 14:20:22 +00:00
arm - Add the interrupt vector number to intr_event_create so MI code can 2008-04-11 03:26:41 +00:00
boot Revert the previous change and let PROBE_KEYBOARD function identical to -P 2008-04-09 17:59:17 +00:00
bsm Merge OpenBSM 1.0 changes to src/sys/bsm: 2007-10-29 18:47:25 +00:00
cam Locking in the ses_ioctl handler doesn't have to be so strict because 2008-03-17 17:18:16 +00:00
cddl Add atomic operations for ZFS/sparc64. 2008-04-11 22:59:33 +00:00
compat Remove using magic value of -1 to distinguish between linux_open() 2008-04-09 16:42:50 +00:00
conf This patch provides the back end support for equal-cost multi-path 2008-04-13 05:45:14 +00:00
contrib Make ALTQ cope with disappearing interfaces (particularly common with mpd 2008-03-29 00:24:36 +00:00
crypto Make test00 compilable again. 2008-01-15 18:34:47 +00:00
ddb enable dynamic addition of "show all" commands 2008-03-25 20:36:32 +00:00
dev Remove a trailing comma which FlexeLint whines about. 2008-04-12 20:26:07 +00:00
fs Optimize lockmgr in order to get rid of the pool mutex interlock, of the 2008-04-06 20:08:51 +00:00
gdb Commit SYSINIT() ;-adding patch missed in previous pass. 2008-03-16 13:02:04 +00:00
geom Change the order from SI_ORDER_FIRST to SI_ORDER_ANY (within 2008-03-29 17:33:29 +00:00
gnu Fix a nit with the 'nofoo' options where 'foo' is mapped to 'nonofoo' 2008-03-26 20:48:07 +00:00
i4b Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +00:00
i386 Move i386 to generic RTC handling code. 2008-04-12 20:46:06 +00:00
ia64 - Pass the irq and not the vector to intr_event_create(). 2008-04-11 23:10:39 +00:00
isa Move i386 to generic RTC handling code. 2008-04-12 20:46:06 +00:00
kern Use a "rel" memory barrier for disowning the lock as it cames from an 2008-04-13 01:21:56 +00:00
libkern Add prototype for __cmpd2(). 2008-02-23 22:40:05 +00:00
modules Connect k8temp(4) to the build. 2008-04-12 14:20:22 +00:00
net This patch provides the back end support for equal-cost multi-path 2008-04-13 05:45:14 +00:00
net80211 Fix adhoc mode to scan all available channels for a bss to join 2008-02-29 04:07:07 +00:00
netatalk Replaced the misleading uses of a historical artefact M_TRYWAIT with M_WAIT. 2008-03-25 09:39:02 +00:00
netatm Replaced the misleading uses of a historical artefact M_TRYWAIT with M_WAIT. 2008-03-25 09:39:02 +00:00
netgraph Add memory barriers to the node locking operations. 2008-04-09 19:03:19 +00:00
netinet This patch provides the back end support for equal-cost multi-path 2008-04-13 05:45:14 +00:00
netinet6 This patch provides the back end support for equal-cost multi-path 2008-04-13 05:45:14 +00:00
netipsec Fix a bug that when getting/dumping the soft lifetime we reported 2008-03-24 15:01:20 +00:00
netipx Make tcpstates[] static, and make sure TCPSTATES is defined before 2007-07-30 11:06:42 +00:00
netnatm s/destory/destroy/ (except for the code in contrib/). 2007-04-16 12:31:35 +00:00
netncp lockmgrs need to be released before to be destroyed and draining doesn't 2008-03-30 18:16:33 +00:00
netsmb Really, smb_iod_main() is not totally MPSAFE, so just acquire and drop 2008-03-27 01:23:59 +00:00
nfs Replaced the misleading uses of a historical artefact M_TRYWAIT with M_WAIT. 2008-03-25 09:39:02 +00:00
nfs4client Add the new kernel-mode NFS Lock Manager. To use it instead of the 2008-03-26 15:23:12 +00:00
nfsclient Add the new kernel-mode NFS Lock Manager. To use it instead of the 2008-03-26 15:23:12 +00:00
nfsserver Replaced the misleading uses of a historical artefact M_TRYWAIT with M_WAIT. 2008-03-25 09:39:02 +00:00
nlm Fix some issues that showed up during Kris' testing. 2008-04-11 10:34:59 +00:00
opencrypto Make ftruncate a 'struct file' operation rather than a vnode operation. 2008-01-07 20:05:19 +00:00
pc98 Always set the bell_pitch to 800. This catch up with the sysbeep() argument 2008-04-08 13:10:57 +00:00
pccard
pci It seems that RealTek 8129/8139 chip reports invalid length of 2008-04-10 01:06:05 +00:00
powerpc - Add the interrupt vector number to intr_event_create so MI code can 2008-04-11 03:26:41 +00:00
rpc Fix some issues that showed up during Kris' testing. 2008-04-11 10:34:59 +00:00
security Add the support for the AT_FDCWD and fd-relative name lookups to the 2008-03-31 12:01:21 +00:00
sparc64 - Add the interrupt vector number to intr_event_create so MI code can 2008-04-11 03:26:41 +00:00
sun4v - Add the interrupt vector number to intr_event_create so MI code can 2008-04-11 03:26:41 +00:00
sys struct lock_instance and struct lock_list_entry don't need to be in the 2008-04-13 01:20:47 +00:00
tools Introduce a standalone shell script for embedding MFS image. 2008-02-05 10:46:30 +00:00
ufs - Use a lockmgr lock rather than a mtx to protect dirhash. This lock 2008-04-11 09:48:12 +00:00
vm Introduce vm_reserv_reclaim_contig(). This function is used by 2008-04-06 18:09:28 +00:00
xdr Add the new kernel-mode NFS Lock Manager. To use it instead of the 2008-03-26 15:23:12 +00:00
Makefile o Add boot, gdb, nfsserver and opencrypto dirs to CSCOPEDIRS; sort. 2008-01-23 08:50:34 +00:00