PERFORCE change 63627 for review
Peter Wemm
peter at FreeBSD.org
Sat Oct 23 23:39:01 PDT 2004
http://perforce.freebsd.org/chv.cgi?CH=63627
Change 63627 by peter at peter_overcee on 2004/10/24 06:38:27
IFC @63625
Affected files ...
.. //depot/projects/hammer/UPDATING#64 integrate
.. //depot/projects/hammer/etc/rc.d/devfs#10 integrate
.. //depot/projects/hammer/etc/rc.d/natd#3 integrate
.. //depot/projects/hammer/games/fortune/datfiles/fortunes#29 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_create.c#17 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_exit.c#10 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_find_thread.c#6 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_kern.c#34 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_private.h#29 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_sig.c#23 integrate
.. //depot/projects/hammer/release/scripts/print-cdrom-packages.sh#25 integrate
.. //depot/projects/hammer/sbin/ipfw/ipfw.8#31 integrate
.. //depot/projects/hammer/share/man/man4/aac.4#8 integrate
.. //depot/projects/hammer/share/man/man4/divert.4#6 integrate
.. //depot/projects/hammer/share/man/man4/inet.4#12 integrate
.. //depot/projects/hammer/share/man/man4/ng_device.4#3 integrate
.. //depot/projects/hammer/share/man/man4/tcp.4#13 integrate
.. //depot/projects/hammer/share/man/man5/rc.conf.5#39 integrate
.. //depot/projects/hammer/share/man/man7/firewall.7#8 integrate
.. //depot/projects/hammer/share/man/man9/bus_dma.9#12 integrate
.. //depot/projects/hammer/sys/boot/i386/libi386/biospci.c#3 integrate
.. //depot/projects/hammer/sys/boot/i386/libi386/libi386.h#7 integrate
.. //depot/projects/hammer/sys/boot/i386/loader/main.c#7 integrate
.. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_proto.h#22 integrate
.. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_syscall.h#20 integrate
.. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_syscalls.c#20 integrate
.. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_sysent.c#20 integrate
.. //depot/projects/hammer/sys/compat/freebsd32/syscalls.master#24 integrate
.. //depot/projects/hammer/sys/conf/files#88 integrate
.. //depot/projects/hammer/sys/contrib/dev/hptmv/access601.h#1 branch
.. //depot/projects/hammer/sys/contrib/dev/hptmv/array.h#1 branch
.. //depot/projects/hammer/sys/contrib/dev/hptmv/atapi.h#1 branch
.. //depot/projects/hammer/sys/contrib/dev/hptmv/command.h#1 branch
.. //depot/projects/hammer/sys/contrib/dev/hptmv/gui_lib.c#1 branch
.. //depot/projects/hammer/sys/contrib/dev/hptmv/hptproc.c#1 branch
.. //depot/projects/hammer/sys/contrib/dev/hptmv/i386-elf.raid.o.uu#1 branch
.. //depot/projects/hammer/sys/contrib/dev/hptmv/ioctl.c#1 branch
.. //depot/projects/hammer/sys/contrib/dev/hptmv/mvSata.h#1 branch
.. //depot/projects/hammer/sys/contrib/dev/hptmv/mvStorageDev.h#1 branch
.. //depot/projects/hammer/sys/contrib/dev/hptmv/raid5n.h#1 branch
.. //depot/projects/hammer/sys/contrib/dev/hptmv/readme.txt#1 branch
.. //depot/projects/hammer/sys/contrib/dev/hptmv/vdevice.h#1 branch
.. //depot/projects/hammer/sys/dev/bfe/if_bfe.c#12 integrate
.. //depot/projects/hammer/sys/dev/bfe/if_bfereg.h#5 integrate
.. //depot/projects/hammer/sys/dev/dcons/dcons.h#4 integrate
.. //depot/projects/hammer/sys/dev/fdc/fdc.c#21 integrate
.. //depot/projects/hammer/sys/dev/firewire/fwcrom.c#10 integrate
.. //depot/projects/hammer/sys/dev/firewire/iec13213.h#8 integrate
.. //depot/projects/hammer/sys/dev/hptmv/entry.c#1 branch
.. //depot/projects/hammer/sys/dev/hptmv/global.h#1 branch
.. //depot/projects/hammer/sys/dev/hptmv/hptintf.h#1 branch
.. //depot/projects/hammer/sys/dev/hptmv/mv.c#1 branch
.. //depot/projects/hammer/sys/dev/hptmv/mvOs.h#1 branch
.. //depot/projects/hammer/sys/dev/hptmv/osbsd.h#1 branch
.. //depot/projects/hammer/sys/dev/md/md.c#42 integrate
.. //depot/projects/hammer/sys/fs/devfs/devfs_vnops.c#15 integrate
.. //depot/projects/hammer/sys/fs/specfs/spec_vnops.c#27 delete
.. //depot/projects/hammer/sys/geom/geom.h#29 integrate
.. //depot/projects/hammer/sys/geom/geom_ctl.c#17 integrate
.. //depot/projects/hammer/sys/geom/geom_dev.c#27 integrate
.. //depot/projects/hammer/sys/geom/geom_event.c#20 integrate
.. //depot/projects/hammer/sys/geom/geom_subr.c#31 integrate
.. //depot/projects/hammer/sys/gnu/ext2fs/ext2_bmap.c#5 integrate
.. //depot/projects/hammer/sys/i386/acpica/acpi_machdep.c#21 integrate
.. //depot/projects/hammer/sys/i386/i386/busdma_machdep.c#18 integrate
.. //depot/projects/hammer/sys/ia64/ia64/sscdisk.c#9 integrate
.. //depot/projects/hammer/sys/kern/init_sysent.c#35 integrate
.. //depot/projects/hammer/sys/kern/kern_exit.c#38 integrate
.. //depot/projects/hammer/sys/kern/kern_xxx.c#11 integrate
.. //depot/projects/hammer/sys/kern/subr_trap.c#28 integrate
.. //depot/projects/hammer/sys/kern/syscalls.c#34 integrate
.. //depot/projects/hammer/sys/kern/syscalls.master#34 integrate
.. //depot/projects/hammer/sys/kern/sysv_ipc.c#5 integrate
.. //depot/projects/hammer/sys/kern/uipc_domain.c#8 integrate
.. //depot/projects/hammer/sys/kern/uipc_socket.c#41 integrate
.. //depot/projects/hammer/sys/kern/vfs_bio.c#42 integrate
.. //depot/projects/hammer/sys/kern/vfs_cluster.c#19 integrate
.. //depot/projects/hammer/sys/kern/vfs_mount.c#37 integrate
.. //depot/projects/hammer/sys/kern/vfs_subr.c#58 integrate
.. //depot/projects/hammer/sys/modules/hptmv/Makefile#1 branch
.. //depot/projects/hammer/sys/modules/netgraph/Makefile#12 integrate
.. //depot/projects/hammer/sys/netinet/ip_divert.c#24 integrate
.. //depot/projects/hammer/sys/netinet/ip_fw2.c#44 integrate
.. //depot/projects/hammer/sys/netinet/tcp_var.h#18 integrate
.. //depot/projects/hammer/sys/nfs4client/nfs4_vnops.c#10 integrate
.. //depot/projects/hammer/sys/nfsclient/nfs_bio.c#22 integrate
.. //depot/projects/hammer/sys/nfsclient/nfs_subs.c#18 integrate
.. //depot/projects/hammer/sys/nfsclient/nfs_vfsops.c#28 integrate
.. //depot/projects/hammer/sys/nfsclient/nfs_vnops.c#25 integrate
.. //depot/projects/hammer/sys/nfsserver/nfs_serv.c#17 integrate
.. //depot/projects/hammer/sys/pc98/pc98/fd.c#24 integrate
.. //depot/projects/hammer/sys/pc98/pc98/wd.c#14 integrate
.. //depot/projects/hammer/sys/security/mac/mac_internal.h#9 integrate
.. //depot/projects/hammer/sys/security/mac/mac_label.c#3 integrate
.. //depot/projects/hammer/sys/security/mac_biba/mac_biba.c#28 integrate
.. //depot/projects/hammer/sys/security/mac_bsdextended/mac_bsdextended.c#14 integrate
.. //depot/projects/hammer/sys/security/mac_test/mac_test.c#26 integrate
.. //depot/projects/hammer/sys/sys/buf.h#16 integrate
.. //depot/projects/hammer/sys/sys/ktr.h#7 integrate
.. //depot/projects/hammer/sys/sys/mac_policy.h#21 integrate
.. //depot/projects/hammer/sys/sys/proc.h#70 integrate
.. //depot/projects/hammer/sys/sys/syscall.h#34 integrate
.. //depot/projects/hammer/sys/sys/syscall.mk#34 integrate
.. //depot/projects/hammer/sys/sys/sysproto.h#34 integrate
.. //depot/projects/hammer/sys/sys/systm.h#25 integrate
.. //depot/projects/hammer/sys/sys/vnode.h#32 integrate
.. //depot/projects/hammer/sys/ufs/ffs/ffs_softdep.c#17 integrate
.. //depot/projects/hammer/sys/ufs/ufs/ufs_bmap.c#6 integrate
.. //depot/projects/hammer/sys/vm/swap_pager.c#31 integrate
.. //depot/projects/hammer/sys/vm/vm_page.c#36 integrate
.. //depot/projects/hammer/sys/vm/vm_page.h#19 integrate
.. //depot/projects/hammer/tools/regression/netinet/tcpconnect/tcpconnect.c#3 integrate
.. //depot/projects/hammer/tools/regression/netinet/tcpstream/tcpstream.c#2 integrate
.. //depot/projects/hammer/tools/regression/sockets/accept_fd_leak/accept_fd_leak.c#4 integrate
.. //depot/projects/hammer/tools/regression/sockets/accf_data_attach/accf_data_attach.c#2 integrate
.. //depot/projects/hammer/tools/regression/usr.bin/make/Makefile#9 integrate
.. //depot/projects/hammer/tools/tools/nanobsd/make.conf#5 integrate
.. //depot/projects/hammer/tools/tools/recoverdisk/recoverdisk.c#3 integrate
.. //depot/projects/hammer/usr.bin/du/du.1#5 integrate
.. //depot/projects/hammer/usr.bin/make/compat.c#8 integrate
.. //depot/projects/hammer/usr.bin/make/job.c#10 integrate
.. //depot/projects/hammer/usr.bin/make/job.h#7 integrate
.. //depot/projects/hammer/usr.bin/make/main.c#15 integrate
.. //depot/projects/hammer/usr.bin/mktemp/mktemp.1#3 integrate
.. //depot/projects/hammer/usr.sbin/fwcontrol/fwcontrol.8#9 integrate
.. //depot/projects/hammer/usr.sbin/fwcontrol/fwcontrol.c#10 integrate
.. //depot/projects/hammer/usr.sbin/rtadvd/config.c#7 integrate
.. //depot/projects/hammer/usr.sbin/rtadvd/timer.c#3 integrate
Differences ...
==== //depot/projects/hammer/UPDATING#64 (text+ko) ====
@@ -23,6 +23,11 @@
developers choose to disable these features on build machines
to maximize performance.
+20041022:
+ The size of struct tcpcb has changed. You have to recompile
+ userland programs that read kmem for tcp sockets directly
+ (netstat, sockstat, etc.)
+
20041018:
A major sweep over the tty drivers to elimnate approx 3100
lines of copy&pasted code have been performed. As a part of
@@ -1951,4 +1956,4 @@
Contact Warner Losh if you have any questions about your use of
this document.
-$FreeBSD: src/UPDATING,v 1.375 2004/10/18 21:24:21 phk Exp $
+$FreeBSD: src/UPDATING,v 1.376 2004/10/22 19:55:04 andre Exp $
==== //depot/projects/hammer/etc/rc.d/devfs#10 (text+ko) ====
@@ -1,11 +1,11 @@
#!/bin/sh
#
-# $FreeBSD: src/etc/rc.d/devfs,v 1.9 2004/10/07 13:55:25 mtm Exp $
+# $FreeBSD: src/etc/rc.d/devfs,v 1.10 2004/10/23 06:50:50 mtm Exp $
#
# PROVIDE: devfs
-# REQUIRE: LOGIN
-# BEFORE: securelevel
+# REQUIRE: rcconf mountcritremote
+# BEFORE: SERVERS securelevel
# KEYWORD: nojail
. /etc/rc.subr
==== //depot/projects/hammer/etc/rc.d/natd#3 (text+ko) ====
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $FreeBSD: src/etc/rc.d/natd,v 1.2 2004/10/07 13:55:26 mtm Exp $
+# $FreeBSD: src/etc/rc.d/natd,v 1.3 2004/10/22 19:36:03 andre Exp $
#
# PROVIDE: natd
@@ -12,8 +12,21 @@
name="natd"
rcvar=`set_rcvar`
command="/sbin/${name}"
+start_precmd="natd_precmd"
start_cmd="natd_start"
+natd_precmd()
+{
+ if ! ${SYSCTL} net.inet.divert > /dev/null 2>&1; then
+ if ! kldload ipdivert; then
+ warn unable to load IPDIVERT module.
+ return 1
+ fi
+ fi
+
+ return 0
+}
+
natd_start()
{
dhcp_list="`list_net_interfaces dhcp`"
==== //depot/projects/hammer/games/fortune/datfiles/fortunes#29 (text+ko) ====
@@ -1,5 +1,5 @@
This fortune brought to you by:
-$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.143 2004/08/23 11:00:20 blackend Exp $
+$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.145 2004/10/22 19:59:37 phk Exp $
%
-- Gifts for Children --
@@ -629,6 +629,10 @@
So the Cleaning Personnel Don't Steal It", etc.
-- Dave Barry, "In Search of Excellence"
%
+Wall Street indices predicted nine out of the last five recessions
+ -- Paul A. Samuelson, Nobel laureate in economics.
+ (Newsweek, Science and Stocks, 19 Sep. 1966.)
+%
Festivity Level 1: Your guests are chatting amiably with each
other, admiring your Christmas-tree ornaments, singing carols around
the upright piano, sipping at their drinks and nibbling hors
==== //depot/projects/hammer/lib/libpthread/thread/thr_create.c#17 (text+ko) ====
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/lib/libpthread/thread/thr_create.c,v 1.57 2004/08/12 12:12:12 deischen Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_create.c,v 1.58 2004/10/23 23:28:36 davidxu Exp $
*/
#include <errno.h>
#include <stdlib.h>
@@ -234,6 +234,7 @@
new_thread->specific_data_count = 0;
new_thread->cleanup = NULL;
new_thread->flags = 0;
+ new_thread->tlflags = 0;
new_thread->continuation = NULL;
new_thread->wakeup_time.tv_sec = -1;
new_thread->lock_switch = 0;
==== //depot/projects/hammer/lib/libpthread/thread/thr_exit.c#10 (text+ko) ====
@@ -29,7 +29,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/lib/libpthread/thread/thr_exit.c,v 1.38 2004/08/12 12:12:12 deischen Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_exit.c,v 1.39 2004/10/23 23:37:54 davidxu Exp $
*/
#include <errno.h>
#include <unistd.h>
@@ -105,7 +105,20 @@
THR_SCHED_LOCK(curthread, curthread);
curthread->flags |= THR_FLAGS_EXITING;
THR_SCHED_UNLOCK(curthread, curthread);
-
+
+ /*
+ * To avoid signal-lost problem, if signals had already been
+ * delivered to us, handle it. we have already set EXITING flag
+ * so no new signals should be delivered to us.
+ * XXX this is not enough if signal was delivered just before
+ * thread called sigprocmask and masked it! in this case, we
+ * might have to re-post the signal by kill() if the signal
+ * is targeting process (not for a specified thread).
+ * Kernel has same signal-lost problem, a signal may be delivered
+ * to a thread which is on the way to call sigprocmask or thr_exit()!
+ */
+ if (curthread->check_pending)
+ _thr_sig_check_pending(curthread);
/* Save the return value: */
curthread->ret = status;
while (curthread->cleanup != NULL) {
==== //depot/projects/hammer/lib/libpthread/thread/thr_find_thread.c#6 (text+ko) ====
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/lib/libpthread/thread/thr_find_thread.c,v 1.13 2003/07/17 23:02:30 davidxu Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_find_thread.c,v 1.14 2004/10/23 23:28:36 davidxu Exp $
*/
#include <errno.h>
#include <pthread.h>
@@ -90,7 +90,7 @@
if (curthread != NULL)
curthread->critical_count--;
if ((thread->refcount == 0) &&
- (thread->flags & THR_FLAGS_GC_SAFE) != 0)
+ (thread->tlflags & TLFLAGS_GC_SAFE) != 0)
THR_GCLIST_ADD(thread);
KSE_LOCK_RELEASE(curkse, &_thread_list_lock);
_kse_critical_leave(crit);
==== //depot/projects/hammer/lib/libpthread/thread/thr_kern.c#34 (text+ko) ====
@@ -33,7 +33,7 @@
*
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libpthread/thread/thr_kern.c,v 1.114 2004/10/08 22:57:30 davidxu Exp $");
+__FBSDID("$FreeBSD: src/lib/libpthread/thread/thr_kern.c,v 1.115 2004/10/23 23:28:36 davidxu Exp $");
#include <sys/types.h>
#include <sys/kse.h>
@@ -139,6 +139,9 @@
static struct thread_hash_head thr_hashtable[THREAD_HASH_QUEUES];
#define THREAD_HASH(thrd) ((unsigned long)thrd % THREAD_HASH_QUEUES)
+/* Lock for thread tcb constructor/destructor */
+static pthread_mutex_t _tcb_mutex;
+
#ifdef DEBUG_THREAD_KERN
static void dump_queues(struct kse *curkse);
#endif
@@ -166,7 +169,7 @@
struct pthread_sigframe *psf);
static int thr_timedout(struct pthread *thread, struct timespec *curtime);
static void thr_unlink(struct pthread *thread);
-static void thr_destroy(struct pthread *thread);
+static void thr_destroy(struct pthread *curthread, struct pthread *thread);
static void thread_gc(struct pthread *thread);
static void kse_gc(struct pthread *thread);
static void kseg_gc(struct pthread *thread);
@@ -240,7 +243,7 @@
_thr_stack_free(&thread->attr);
if (thread->specific != NULL)
free(thread->specific);
- thr_destroy(thread);
+ thr_destroy(curthread, thread);
}
}
@@ -285,14 +288,14 @@
/* Free the free threads. */
while ((thread = TAILQ_FIRST(&free_threadq)) != NULL) {
TAILQ_REMOVE(&free_threadq, thread, tle);
- thr_destroy(thread);
+ thr_destroy(curthread, thread);
}
free_thread_count = 0;
/* Free the to-be-gc'd threads. */
while ((thread = TAILQ_FIRST(&_thread_gc_list)) != NULL) {
TAILQ_REMOVE(&_thread_gc_list, thread, gcle);
- thr_destroy(thread);
+ thr_destroy(curthread, thread);
}
TAILQ_INIT(&gc_ksegq);
_gc_count = 0;
@@ -381,6 +384,7 @@
if (_lock_init(&_thread_list_lock, LCK_ADAPTIVE,
_kse_lock_wait, _kse_lock_wakeup) != 0)
PANIC("Unable to initialize thread list lock");
+ _pthread_mutex_init(&_tcb_mutex, NULL);
active_kse_count = 0;
active_kseg_count = 0;
_gc_count = 0;
@@ -1207,7 +1211,6 @@
thread->kseg = _kse_initial->k_kseg;
thread->kse = _kse_initial;
}
- thread->flags |= THR_FLAGS_GC_SAFE;
/*
* We can't hold the thread list lock while holding the
@@ -1216,6 +1219,7 @@
KSE_SCHED_UNLOCK(curkse, curkse->k_kseg);
DBG_MSG("Adding thread %p to GC list\n", thread);
KSE_LOCK_ACQUIRE(curkse, &_thread_list_lock);
+ thread->tlflags |= TLFLAGS_GC_SAFE;
THR_GCLIST_ADD(thread);
KSE_LOCK_RELEASE(curkse, &_thread_list_lock);
if (sys_scope) {
@@ -1255,7 +1259,7 @@
/* Check the threads waiting for GC. */
for (td = TAILQ_FIRST(&_thread_gc_list); td != NULL; td = td_next) {
td_next = TAILQ_NEXT(td, gcle);
- if ((td->flags & THR_FLAGS_GC_SAFE) == 0)
+ if ((td->tlflags & TLFLAGS_GC_SAFE) == 0)
continue;
else if (((td->attr.flags & PTHREAD_SCOPE_SYSTEM) != 0) &&
((td->kse->k_kcb->kcb_kmbx.km_flags & KMF_DONE) == 0)) {
@@ -2384,7 +2388,14 @@
if ((thread == NULL) &&
((thread = malloc(sizeof(struct pthread))) != NULL)) {
bzero(thread, sizeof(struct pthread));
- if ((thread->tcb = _tcb_ctor(thread, curthread == NULL)) == NULL) {
+ if (curthread) {
+ _pthread_mutex_lock(&_tcb_mutex);
+ thread->tcb = _tcb_ctor(thread, 0 /* not initial tls */);
+ _pthread_mutex_unlock(&_tcb_mutex);
+ } else {
+ thread->tcb = _tcb_ctor(thread, 1 /* initial tls */);
+ }
+ if (thread->tcb == NULL) {
free(thread);
thread = NULL;
} else {
@@ -2420,7 +2431,7 @@
thread->name = NULL;
}
if ((curthread == NULL) || (free_thread_count >= MAX_CACHED_THREADS)) {
- thr_destroy(thread);
+ thr_destroy(curthread, thread);
} else {
/* Add the thread to the free thread list. */
crit = _kse_critical_enter();
@@ -2433,14 +2444,20 @@
}
static void
-thr_destroy(struct pthread *thread)
+thr_destroy(struct pthread *curthread, struct pthread *thread)
{
int i;
for (i = 0; i < MAX_THR_LOCKLEVEL; i++)
_lockuser_destroy(&thread->lockusers[i]);
_lock_destroy(&thread->lock);
- _tcb_dtor(thread->tcb);
+ if (curthread) {
+ _pthread_mutex_lock(&_tcb_mutex);
+ _tcb_dtor(thread->tcb);
+ _pthread_mutex_unlock(&_tcb_mutex);
+ } else {
+ _tcb_dtor(thread->tcb);
+ }
free(thread->siginfo);
free(thread);
}
==== //depot/projects/hammer/lib/libpthread/thread/thr_private.h#29 (text+ko) ====
@@ -31,7 +31,7 @@
*
* Private thread definitions for the uthread kernel.
*
- * $FreeBSD: src/lib/libpthread/thread/thr_private.h,v 1.118 2004/08/07 15:15:38 deischen Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_private.h,v 1.119 2004/10/23 23:28:36 davidxu Exp $
*/
#ifndef _THR_PRIVATE_H
@@ -753,9 +753,13 @@
#define THR_FLAGS_IN_RUNQ 0x0004 /* in run queue using pqe link */
#define THR_FLAGS_EXITING 0x0008 /* thread is exiting */
#define THR_FLAGS_SUSPENDED 0x0010 /* thread is suspended */
-#define THR_FLAGS_GC_SAFE 0x0020 /* thread safe for cleaning */
-#define THR_FLAGS_IN_TDLIST 0x0040 /* thread in all thread list */
-#define THR_FLAGS_IN_GCLIST 0x0080 /* thread in gc list */
+
+ /* Thread list flags; only set with thread list lock held. */
+#define TLFLAGS_GC_SAFE 0x0001 /* thread safe for cleaning */
+#define TLFLAGS_IN_TDLIST 0x0002 /* thread in all thread list */
+#define TLFLAGS_IN_GCLIST 0x0004 /* thread in gc list */
+ int tlflags;
+
/*
* Base priority is the user setable and retrievable priority
* of the thread. It is only affected by explicit calls to
@@ -897,30 +901,30 @@
* the gc list.
*/
#define THR_LIST_ADD(thrd) do { \
- if (((thrd)->flags & THR_FLAGS_IN_TDLIST) == 0) { \
+ if (((thrd)->tlflags & TLFLAGS_IN_TDLIST) == 0) { \
TAILQ_INSERT_HEAD(&_thread_list, thrd, tle); \
_thr_hash_add(thrd); \
- (thrd)->flags |= THR_FLAGS_IN_TDLIST; \
+ (thrd)->tlflags |= TLFLAGS_IN_TDLIST; \
} \
} while (0)
#define THR_LIST_REMOVE(thrd) do { \
- if (((thrd)->flags & THR_FLAGS_IN_TDLIST) != 0) { \
+ if (((thrd)->tlflags & TLFLAGS_IN_TDLIST) != 0) { \
TAILQ_REMOVE(&_thread_list, thrd, tle); \
_thr_hash_remove(thrd); \
- (thrd)->flags &= ~THR_FLAGS_IN_TDLIST; \
+ (thrd)->tlflags &= ~TLFLAGS_IN_TDLIST; \
} \
} while (0)
#define THR_GCLIST_ADD(thrd) do { \
- if (((thrd)->flags & THR_FLAGS_IN_GCLIST) == 0) { \
+ if (((thrd)->tlflags & TLFLAGS_IN_GCLIST) == 0) { \
TAILQ_INSERT_HEAD(&_thread_gc_list, thrd, gcle);\
- (thrd)->flags |= THR_FLAGS_IN_GCLIST; \
+ (thrd)->tlflags |= TLFLAGS_IN_GCLIST; \
_gc_count++; \
} \
} while (0)
#define THR_GCLIST_REMOVE(thrd) do { \
- if (((thrd)->flags & THR_FLAGS_IN_GCLIST) != 0) { \
+ if (((thrd)->tlflags & TLFLAGS_IN_GCLIST) != 0) { \
TAILQ_REMOVE(&_thread_gc_list, thrd, gcle); \
- (thrd)->flags &= ~THR_FLAGS_IN_GCLIST; \
+ (thrd)->tlflags &= ~TLFLAGS_IN_GCLIST; \
_gc_count--; \
} \
} while (0)
==== //depot/projects/hammer/lib/libpthread/thread/thr_sig.c#23 (text+ko) ====
@@ -29,7 +29,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/lib/libpthread/thread/thr_sig.c,v 1.80 2004/10/21 03:42:24 davidxu Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_sig.c,v 1.81 2004/10/23 23:28:36 davidxu Exp $
*/
#include <sys/param.h>
#include <sys/types.h>
@@ -1199,8 +1199,7 @@
thr_sigframe_save(struct pthread *thread, struct pthread_sigframe *psf)
{
/* This has to initialize all members of the sigframe. */
- psf->psf_flags =
- thread->flags & (THR_FLAGS_PRIVATE | THR_FLAGS_IN_TDLIST);
+ psf->psf_flags = thread->flags & THR_FLAGS_PRIVATE;
psf->psf_interrupted = thread->interrupted;
psf->psf_timeout = thread->timeout;
psf->psf_state = thread->state;
==== //depot/projects/hammer/release/scripts/print-cdrom-packages.sh#25 (text+ko) ====
@@ -2,7 +2,7 @@
#
# Author: Jordan Hubbard
# Date: Mon Jul 10 01:18:20 2000
-# Version: $FreeBSD: src/release/scripts/print-cdrom-packages.sh,v 1.67 2004/10/17 21:05:40 marcel Exp $
+# Version: $FreeBSD: src/release/scripts/print-cdrom-packages.sh,v 1.69 2004/10/23 19:54:18 scottl Exp $
#
# MAINTAINER: re
#
@@ -67,93 +67,109 @@
## Start of set for CDROM #1
-# This is the set required by sysinstall.
CDROM_SET_1=""
-if [ "X${PKG_ARCH}" = "Xalpha" ]; then
-CDROM_SET_1="${CDROM_SET_1} emulators/osf1_base"
-elif [ "X${PKG_ARCH}" = "Xi386" ]; then
-CDROM_SET_1="${CDROM_SET_1} emulators/linux_base"
-fi
-CDROM_SET_1="${CDROM_SET_1} lang/perl5.8"
-CDROM_SET_1="${CDROM_SET_1} mail/exim"
-CDROM_SET_1="${CDROM_SET_1} mail/postfix"
-CDROM_SET_1="${CDROM_SET_1} net/pcnfsd"
-CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-100dpi"
-CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-75dpi"
-CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-cyrillic"
-CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-encodings"
-CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-miscbitmaps"
-CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-truetype"
-CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-type1"
-CDROM_SET_1="${CDROM_SET_1} x11-servers/xorg-fontserver"
-CDROM_SET_1="${CDROM_SET_1} x11-servers/xorg-nestserver"
-CDROM_SET_1="${CDROM_SET_1} x11-servers/xorg-printserver"
-CDROM_SET_1="${CDROM_SET_1} x11-servers/xorg-server"
-CDROM_SET_1="${CDROM_SET_1} x11-servers/xorg-vfbserver"
-CDROM_SET_1="${CDROM_SET_1} x11-wm/afterstep"
-CDROM_SET_1="${CDROM_SET_1} x11-wm/enlightenment"
-CDROM_SET_1="${CDROM_SET_1} x11-wm/fvwm2"
-CDROM_SET_1="${CDROM_SET_1} x11-wm/sawfish2"
-CDROM_SET_1="${CDROM_SET_1} x11-wm/windowmaker"
-CDROM_SET_1="${CDROM_SET_1} x11/xorg"
-CDROM_SET_1="${CDROM_SET_1} x11/xorg-clients"
-CDROM_SET_1="${CDROM_SET_1} x11/xorg-documents"
-CDROM_SET_1="${CDROM_SET_1} x11/xorg-libraries"
-CDROM_SET_1="${CDROM_SET_1} x11/xorg-manpages"
-CDROM_SET_1="${CDROM_SET_1} x11/gnome2-lite"
-CDROM_SET_1="${CDROM_SET_1} x11/kde-lite"
-CDROM_SET_1="${CDROM_SET_1} www/links"
+if [ "X${PKG_ARCH}" = "Xia64" ]; then
+ CDROM_SET_1="${CDROM_SET_1} archivers/unzip"
+ CDROM_SET_1="${CDROM_SET_1} devel/gmake"
+ CDROM_SET_1="${CDROM_SET_1} lang/perl5.8"
+ CDROM_SET_1="${CDROM_SET_1} security/sudo"
+ CDROM_SET_1="${CDROM_SET_1} shells/bash2"
+ CDROM_SET_1="${CDROM_SET_1} shells/pdksh"
+ CDROM_SET_1="${CDROM_SET_1} shells/zsh"
+ CDROM_SET_1="${CDROM_SET_1} x11/gnome2-lite"
+ CDROM_SET_1="${CDROM_SET_1} x11/kde-lite"
+ CDROM_SET_1="${CDROM_SET_1} x11/xorg"
+ CDROM_SET_1="${CDROM_SET_1} x11/xorg-manpages"
+else
+ # This is the set required by sysinstall.
+ if [ "X${PKG_ARCH}" = "Xalpha" ]; then
+ CDROM_SET_1="${CDROM_SET_1} emulators/osf1_base"
+ elif [ "X${PKG_ARCH}" = "Xi386" ]; then
+ CDROM_SET_1="${CDROM_SET_1} emulators/linux_base"
+ fi
+ CDROM_SET_1="${CDROM_SET_1} lang/perl5.8"
+ CDROM_SET_1="${CDROM_SET_1} mail/exim"
+ CDROM_SET_1="${CDROM_SET_1} mail/postfix"
+ CDROM_SET_1="${CDROM_SET_1} net/pcnfsd"
+ CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-100dpi"
+ CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-75dpi"
+ CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-cyrillic"
+ CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-encodings"
+ CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-miscbitmaps"
+ CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-truetype"
+ CDROM_SET_1="${CDROM_SET_1} x11-fonts/xorg-fonts-type1"
+ CDROM_SET_1="${CDROM_SET_1} x11-servers/xorg-fontserver"
+ CDROM_SET_1="${CDROM_SET_1} x11-servers/xorg-nestserver"
+ CDROM_SET_1="${CDROM_SET_1} x11-servers/xorg-printserver"
+ CDROM_SET_1="${CDROM_SET_1} x11-servers/xorg-server"
+ CDROM_SET_1="${CDROM_SET_1} x11-servers/xorg-vfbserver"
+ CDROM_SET_1="${CDROM_SET_1} x11-wm/afterstep"
+ CDROM_SET_1="${CDROM_SET_1} x11-wm/enlightenment"
+ CDROM_SET_1="${CDROM_SET_1} x11-wm/fvwm2"
+ CDROM_SET_1="${CDROM_SET_1} x11-wm/sawfish2"
+ CDROM_SET_1="${CDROM_SET_1} x11-wm/windowmaker"
+ CDROM_SET_1="${CDROM_SET_1} x11/xorg"
+ CDROM_SET_1="${CDROM_SET_1} x11/xorg-clients"
+ CDROM_SET_1="${CDROM_SET_1} x11/xorg-documents"
+ CDROM_SET_1="${CDROM_SET_1} x11/xorg-libraries"
+ CDROM_SET_1="${CDROM_SET_1} x11/xorg-manpages"
+ if [ "X${PKG_ARCH}" = "Xi386" ]; then
+ CDROM_SET_1="${CDROM_SET_1} x11/gnome2-lite"
+ else
+ CDROM_SET_1="${CDROM_SET_1} x11/gnome2"
+ fi
+ CDROM_SET_1="${CDROM_SET_1} x11/kde-lite"
+ CDROM_SET_1="${CDROM_SET_1} www/links"
-# This is the set of "people really want these" packages. Please add to
-# this list.
-CDROM_SET_1="${CDROM_SET_1} astro/xearth"
-CDROM_SET_1="${CDROM_SET_1} editors/emacs"
-CDROM_SET_1="${CDROM_SET_1} editors/vim"
-CDROM_SET_1="${CDROM_SET_1} editors/vim-lite"
-CDROM_SET_1="${CDROM_SET_1} emulators/mtools"
-CDROM_SET_1="${CDROM_SET_1} graphics/xv"
-CDROM_SET_1="${CDROM_SET_1} irc/xchat2"
-CDROM_SET_1="${CDROM_SET_1} mail/fetchmail"
-CDROM_SET_1="${CDROM_SET_1} mail/mutt"
-CDROM_SET_1="${CDROM_SET_1} mail/pine4"
-CDROM_SET_1="${CDROM_SET_1} mail/popd"
-CDROM_SET_1="${CDROM_SET_1} mail/xfmail"
-CDROM_SET_1="${CDROM_SET_1} misc/bsdiff"
-CDROM_SET_1="${CDROM_SET_1} net/cvsup"
-CDROM_SET_1="${CDROM_SET_1} net/rsync"
-CDROM_SET_1="${CDROM_SET_1} net/samba"
-CDROM_SET_1="${CDROM_SET_1} news/slrn"
-CDROM_SET_1="${CDROM_SET_1} news/tin"
-CDROM_SET_1="${CDROM_SET_1} print/a2ps-letter"
-if [ "X${PKG_ARCH}" = "Xi386" ]; then
-CDROM_SET_1="${CDROM_SET_1} print/acroread5"
-fi
-CDROM_SET_1="${CDROM_SET_1} print/apsfilter"
-CDROM_SET_1="${CDROM_SET_1} print/ghostscript-gnu-nox11"
-CDROM_SET_1="${CDROM_SET_1} print/gv"
-CDROM_SET_1="${CDROM_SET_1} print/psutils-letter"
-if [ ! "X${PKG_ARCH}" = "Xia64" ]; then
-CDROM_SET_1="${CDROM_SET_1} security/freebsd-update"
-fi
-CDROM_SET_1="${CDROM_SET_1} security/sudo"
-CDROM_SET_1="${CDROM_SET_1} shells/bash2"
-CDROM_SET_1="${CDROM_SET_1} shells/pdksh"
-CDROM_SET_1="${CDROM_SET_1} shells/zsh"
-CDROM_SET_1="${CDROM_SET_1} sysutils/portupgrade"
-CDROM_SET_1="${CDROM_SET_1} www/lynx"
-if [ "X${PKG_ARCH}" = "Xi386" ]; then
-CDROM_SET_1="${CDROM_SET_1} www/opera"
-fi
-CDROM_SET_1="${CDROM_SET_1} x11/rxvt"
+ # This is the set of "people really want these" packages. Please
+ # add to this list.
+ CDROM_SET_1="${CDROM_SET_1} astro/xearth"
+ CDROM_SET_1="${CDROM_SET_1} editors/emacs"
+ CDROM_SET_1="${CDROM_SET_1} editors/vim"
+ CDROM_SET_1="${CDROM_SET_1} editors/vim-lite"
+ CDROM_SET_1="${CDROM_SET_1} emulators/mtools"
+ CDROM_SET_1="${CDROM_SET_1} graphics/xv"
+ CDROM_SET_1="${CDROM_SET_1} irc/xchat2"
+ CDROM_SET_1="${CDROM_SET_1} mail/fetchmail"
+ CDROM_SET_1="${CDROM_SET_1} mail/mutt"
+ CDROM_SET_1="${CDROM_SET_1} mail/pine4"
+ CDROM_SET_1="${CDROM_SET_1} mail/popd"
+ CDROM_SET_1="${CDROM_SET_1} mail/xfmail"
+ CDROM_SET_1="${CDROM_SET_1} misc/bsdiff"
+ CDROM_SET_1="${CDROM_SET_1} net/cvsup"
+ CDROM_SET_1="${CDROM_SET_1} net/rsync"
+ CDROM_SET_1="${CDROM_SET_1} net/samba"
+ CDROM_SET_1="${CDROM_SET_1} news/slrn"
+ CDROM_SET_1="${CDROM_SET_1} news/tin"
+ CDROM_SET_1="${CDROM_SET_1} print/a2ps-letter"
+ if [ "X${PKG_ARCH}" = "Xi386" ]; then
+ CDROM_SET_1="${CDROM_SET_1} print/acroread5"
+ CDROM_SET_1="${CDROM_SET_1} comms/ltmdm"
+ fi
+ CDROM_SET_1="${CDROM_SET_1} print/apsfilter"
+ CDROM_SET_1="${CDROM_SET_1} print/ghostscript-gnu-nox11"
+ CDROM_SET_1="${CDROM_SET_1} print/gv"
+ CDROM_SET_1="${CDROM_SET_1} print/psutils-letter"
+ CDROM_SET_1="${CDROM_SET_1} security/freebsd-update"
+ CDROM_SET_1="${CDROM_SET_1} security/sudo"
+ CDROM_SET_1="${CDROM_SET_1} shells/bash2"
+ CDROM_SET_1="${CDROM_SET_1} shells/pdksh"
+ CDROM_SET_1="${CDROM_SET_1} shells/zsh"
+ CDROM_SET_1="${CDROM_SET_1} sysutils/portupgrade"
+ CDROM_SET_1="${CDROM_SET_1} www/lynx"
+ if [ "X${PKG_ARCH}" = "Xi386" ]; then
+ CDROM_SET_1="${CDROM_SET_1} www/opera"
+ fi
+ CDROM_SET_1="${CDROM_SET_1} x11/rxvt"
-# VERY common build dependencies
-CDROM_SET_1="${CDROM_SET_1} archivers/unzip"
-CDROM_SET_1="${CDROM_SET_1} devel/gmake"
-CDROM_SET_1="${CDROM_SET_1} graphics/png"
-if [ "X${PKG_ARCH}" = "Xi386" -o "X${PKG_ARCH}" = "Xalpha" ]; then
-CDROM_SET_1="${CDROM_SET_1} misc/compat4x"
+ # VERY common build dependencies
+ CDROM_SET_1="${CDROM_SET_1} archivers/unzip"
+ CDROM_SET_1="${CDROM_SET_1} devel/gmake"
+ CDROM_SET_1="${CDROM_SET_1} graphics/png"
+ if [ "X${PKG_ARCH}" = "Xi386" -o "X${PKG_ARCH}" = "Xalpha" ]; then
+ CDROM_SET_1="${CDROM_SET_1} misc/compat4x"
+ fi
fi
-
## End of set for CDROM #1
## Start of set for CDROM #2
==== //depot/projects/hammer/sbin/ipfw/ipfw.8#31 (text+ko) ====
@@ -1,7 +1,7 @@
.\"
-.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.157 2004/10/09 20:07:33 csjp Exp $
+.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.158 2004/10/22 19:12:01 andre Exp $
.\"
-.Dd September 19, 2004
+.Dd October 22, 2004
.Dt IPFW 8
.Os
.Sh NAME
@@ -1812,9 +1812,9 @@
.Xr divert 4
socket bound to the specified port will receive all packets
diverted to that port.
-If no socket is bound to the destination port, or if the kernel
-wasn't compiled with divert socket support, the packets are
-dropped.
+If no socket is bound to the destination port, or if the divert module is
+not loaded, or if the kernel wasn't compiled with divert socket support,
+the packets are dropped.
.Sh SYSCTL VARIABLES
A set of
.Xr sysctl 8
==== //depot/projects/hammer/share/man/man4/aac.4#8 (text+ko) ====
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man4/aac.4,v 1.25 2004/08/13 03:55:35 scottl Exp $
+.\" $FreeBSD: src/share/man/man4/aac.4,v 1.26 2004/10/22 04:17:28 scottl Exp $
.Dd Augyst 12, 2004
.Dt AAC 4
.Os
@@ -109,6 +109,8 @@
.It
Adaptec SCSI RAID 2810SA
.It
+Adaptec SCSI RAID 21610SA
+.It
Adaptec SCSI RAID 5400S
.It
Dell CERC SATA RAID 2
==== //depot/projects/hammer/share/man/man4/divert.4#6 (text+ko) ====
@@ -1,6 +1,6 @@
-.\" $FreeBSD: src/share/man/man4/divert.4,v 1.30 2004/09/14 09:35:10 andre Exp $
+.\" $FreeBSD: src/share/man/man4/divert.4,v 1.31 2004/10/22 19:12:01 andre Exp $
.\"
-.Dd September 14, 2004
+.Dd October 22, 2004
.Dt DIVERT 4
.Os
.Sh NAME
@@ -115,12 +115,22 @@
same rule.
.Sh DETAILS
To enable divert sockets, your kernel must be compiled with the option
-.Dv IPDIVERT .
+.Dv IPDIVERT
+or you have to load the
+.Dv IPDIVERT
+module.
+.Pp
+You can load the
+.Dv IPDIVERT
+module at runtime by issuing the following command:
+.Bd -literal -offset indent
+kldload ipdivert
+.Ed
.Pp
If a packet is diverted but no socket is bound to the
port, or if
.Dv IPDIVERT
-is not enabled in the kernel, the packet is dropped.
+is not enabled or loaded in the kernel, the packet is dropped.
.Pp
Incoming packet fragments which get diverted are fully reassembled
before delivery; the diversion of any one fragment causes the entire
==== //depot/projects/hammer/share/man/man4/inet.4#12 (text+ko) ====
@@ -30,9 +30,9 @@
.\" SUCH DAMAGE.
.\"
.\" From: @(#)inet.4 8.1 (Berkeley) 6/5/93
-.\" $FreeBSD: src/share/man/man4/inet.4,v 1.32 2004/08/16 06:30:58 maxim Exp $
+.\" $FreeBSD: src/share/man/man4/inet.4,v 1.33 2004/10/23 18:45:53 andre Exp $
.\"
-.Dd August 15, 2004
+.Dd October 23, 2004
.Dt INET 4
.Os
.Sh NAME
@@ -151,69 +151,6 @@
.It Dv SIOCGIFNETMASK
Get interface network mask.
.El
-.Sh ROUTING
-The current implementation of Internet protocols includes some routing-table
-adaptations to provide enhanced caching of certain end-to-end
-information necessary for Transaction TCP and Path MTU Discovery.
-The
-following changes are the most significant:
-.Bl -enum
-.It
-All IP routes, except those with the
-.Dv RTF_CLONING
-flag and those to multicast destinations, have the
-.Dv RTF_PRCLONING
-flag forcibly enabled (they are thus said to be
-.Dq "protocol cloning" ) .
-.It
-When the last reference to an IP route is dropped, the route is
-examined to determine if it was created by cloning such a route.
-If this is the case, the
-.Dv RTF_PROTO3
-flag is turned on, and the expiration timer is initialized to go off
-in net.inet.ip.rtexpire seconds.
-If such a route is re-referenced,
-the flag and expiration timer are reset.
-.It
-A kernel timeout runs once every ten minutes, or sooner if there are
-soon-to-expire routes in the kernel routing table, and deletes the
-expired routes.
-.El
-.Pp
-A dynamic process is in place to modify the value of
-net.inet.ip.rtexpire if the number of cached routes grows too large.
-If after an expiration run there are still more than
-net.inet.ip.rtmaxcache unreferenced routes remaining, the rtexpire
-value is multiplied by 3/4, and any routes which have longer
-expiration times have those times adjusted.
-This process is damped somewhat by specification of a minimum rtexpire value
-(net.inet.ip.rtminexpire), and by restricting the reduction to once in
-a ten-minute period.
-.Pp
-If some external process deletes the original route from which a
-protocol-cloned route was generated, the
-.Dq child route
-is deleted.
-(This is actually a generic mechanism in the routing code support for
-protocol-requested cloning.)
-.Pp
-No attempt is made to manage routes which were not created by protocol
-cloning; these are assumed to be static, under the management of an
-external routing process, or under the management of a link layer
-(e.g.,
-.Tn ARP
-for Ethernets).
-.Pp
-Only certain types of network activity will result in the cloning of a
-route using this mechanism.
-Specifically, those protocols (such as
-.Tn TCP
-and
-.Tn UDP )
-which themselves cache a long-lasting reference to route for a destination
-will trigger the mechanism; whereas raw
-.Tn IP
-packets, whether locally-generated or forwarded, will not.
.Ss MIB Variables
A number of variables are implemented in the net.inet branch of the
.Xr sysctl 3
@@ -228,22 +165,32 @@
Defaults to off.
.It Dv IPCTL_FASTFORWARDING
.Pq ip.fastforwarding
-Boolean: enable/disable the use of fast IP forwarding code.
+Boolean: enable/disable the use of
+.Tn fast IP forwarding
+code.
Defaults to off.
-When fast forwarding is enabled, IP packets are forwarded directly to
-the appropriate network interface with a minimal validity checking, which
-greatly improves the throughput.
-On the other hand, they bypass the
-standard procedures, such as IP option processing and
-.Xr ipfirewall 4
-checking.
-It is not guaranteed that every packet will be fast-forwarded.
+When
+.Tn fast IP forwarding
+is enabled, IP packets are forwarded directly to the appropriate network
+interface with direct processing to completion, which greatly improves
+the throughput.
+All packets for local IP addresses, non-unicast, or with IP options are
+handled by the normal IP input processing path.
+All features of the normal (slow) IP forwarding path are supported
+including firewall (through
+.Xr pfil 9
+hooks) checking, except
+.Xr IPSEC 4
+tunnel brokering.
+The
+.Tn IP fastforwarding
+path does not generate ICMP redirect or source quench messages.
.It Dv IPCTL_SENDREDIRECTS
.Pq ip.redirect
Boolean: enable/disable sending of ICMP redirects in response to
-unforwardable
.Tn IP
-packets.
+packets for which a better, and for the sender directly reachable, route
+and next hop is known.
Defaults to on.
.It Dv IPCTL_DEFTTL
.Pq ip.ttl
@@ -310,9 +257,11 @@
.Xr intro 4 ,
.Xr ip 4 ,
.Xr ipfirewall 4 ,
+.Xr route 4 ,
.Xr tcp 4 ,
.Xr ttcp 4 ,
-.Xr udp 4
+.Xr udp 4,
+.Xr pfil 9
.Rs
.%T "An Introductory 4.3 BSD Interprocess Communication Tutorial"
.%B PS1
==== //depot/projects/hammer/share/man/man4/ng_device.4#3 (text+ko) ====
@@ -22,9 +22,9 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man4/ng_device.4,v 1.2 2002/12/12 15:27:26 ru Exp $
+.\" $FreeBSD: src/share/man/man4/ng_device.4,v 1.3 2004/10/23 11:14:30 glebius Exp $
.\"
-.Dd June 15, 2002
+.Dd October 19, 2004
.Dt NG_DEVICE 4
.Os
.Sh NAME
@@ -51,64 +51,38 @@
all subsequent nodes
.Pa /dev/ngd1 , /dev/ngd2 ,
etc.
-The only way a
-.Nm device
-node can be created is by a connection to the main
-.Nm device
-node by another type of
-.Xr netgraph 4
-node.
-.Pp
-When a node is shut down, the corresponding device is removed
-and the device name becomes available for reuse by future
-.Nm device
-nodes.
-.Pp
+.Sh HOOKS
A
.Nm device
-node has a single hook to which it connects to the requesting
-.Xr netgraph 4
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list