freebsd-nq/sys
Bill Paul 6f8aee2268 Fix a bug which I discovered recently while doing IPv6 testing at
Wind River. In the IPv4 output path, one of the tests in ip_output()
checks how many slots are actually available in the interface output
queue before attempting to send a packet. If, for example, we need
to transmit a packet of 32K bytes over an interface with an MTU of
1500, we know it's going to take about 21 fragments to do it. If
there's less than 21 slots left in the output queue, there's no point
in transmitting anything at all: IP does not do retransmission, so
sending only some of the fragments would just be a waste of bandwidth.
(In an extreme case, if you're sending a heavy stream of fragmented
packets, you might find yourself sending nothing by the first fragment
of all your packets.) So if ip_output() notices there's not enough
room in the output queue to send the frame, it just dumps the packet
and returns ENOBUFS to the app.

It turns out ip6_output() lacks this code. Consequently, this caused
the netperf UDPIPV6_STREAM test to produce very poor results with large
write sizes. This commit adds code to check the remaining space in the
output queue and junk fragmented packets if they're too big to be
sent, just like with IPv4. (I can't imagine anyone's running an NFS
server using UDP over IPv6, but if they are, this will likely make them
a lot happier. :)
2004-05-14 03:57:17 +00:00
..
alpha When a denormal underflows to zero, raise an underflow exception. 2004-05-06 09:36:11 +00:00
amd64 Make unnecessary globals static and remove unused includes. 2004-05-06 02:18:58 +00:00
arm Don't declare osigset_t, as it is done in sys/_sigset.h. 2004-05-04 22:38:22 +00:00
boot Fix a potential stack buffer overflow on systems whose ACPI OEMID 2004-05-14 01:29:21 +00:00
cam Quirk for Neuros USB audio device. 2004-05-02 19:24:23 +00:00
coda Device megapatch 5/6: 2004-02-21 21:32:15 +00:00
compat Small timer cleanups: 2004-04-30 20:51:55 +00:00
conf MFi386: revision 1.489 2004-05-13 11:17:07 +00:00
contrib This commit was generated by cvs2svn to compensate for changes in r129059, 2004-05-09 03:06:25 +00:00
crypto Fix a reentrancy issue in md5_calc(). 2004-01-27 18:57:21 +00:00
ddb Remove advertising clause from University of California Regent's 2004-04-07 20:46:16 +00:00
dev Different VIA host bridges use different offsets to their AGP config 2004-05-13 20:05:42 +00:00
fs Make vm_page's PG_ZERO flag immutable between the time of the page's 2004-05-06 05:03:23 +00:00
geom Dont try to finish devstat's if the disk pointer is NULL, this can happen 2004-05-11 13:17:40 +00:00
gnu Remove advertising clause from University of California Regent's 2004-04-07 20:46:16 +00:00
i4b Convert callers to the new bus_alloc_resource_any(9) API. 2004-03-17 17:50:55 +00:00
i386 - Move some macros from icu.h into atpic.c as that is the only place they 2004-05-11 20:23:24 +00:00
ia64 Revert previous commit. We should not get any FP traps from within 2004-05-07 05:35:31 +00:00
isa Trim unused includes. 2004-05-11 20:14:53 +00:00
isofs/cd9660 Remove advertising clause from University of California Regent's 2004-04-07 20:46:16 +00:00
kern Split sleepq_wakeup_thread() into two functions. sleepq_remove_thread() 2004-05-13 20:00:43 +00:00
libkern Fixed some style bugs (unsorting of prototypes in previous commit, and 2004-05-05 15:12:55 +00:00
modules Move the ichwd to i386 only. 2004-05-13 11:13:55 +00:00
net Zero the un-used portions of the struct sockaddr data before sending 2004-05-10 15:07:23 +00:00
net80211 Link state change notification of ethernet media to the routing socket. 2004-05-05 15:48:06 +00:00
netatalk Remove redundant call to soisdisconnected() from ddp_abort(), as it 2004-05-05 03:34:37 +00:00
netatm These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
netgraph Mode few Bluetooth defines into system include files 2004-05-10 02:24:56 +00:00
netinet o Calculate a number of bytes to copy (cnt) correctly: 2004-05-11 19:14:44 +00:00
netinet6 Fix a bug which I discovered recently while doing IPv6 testing at 2004-05-14 03:57:17 +00:00
netipsec use correct address for SADB_EXT_ADDRESS_DST in key_do_allocsa_policy 2004-05-03 05:15:53 +00:00
netipx Rename dup_sockaddr() to sodupsockaddr() for consistency with other 2004-03-01 03:14:23 +00:00
netkey avoid duplicate free. 2004-01-25 17:18:12 +00:00
netnatm Rename dup_sockaddr() to sodupsockaddr() for consistency with other 2004-03-01 03:14:23 +00:00
netncp Make the process_exit eventhandler run without Giant. Add Giant hooks 2004-03-14 02:06:28 +00:00
netsmb Rename dup_sockaddr() to sodupsockaddr() for consistency with other 2004-03-01 03:14:23 +00:00
nfs Remove advertising clause from University of California Regent's 2004-04-07 05:00:01 +00:00
nfs4client Remove advertising clause from University of California Regent's 2004-04-07 20:46:16 +00:00
nfsclient Make vm_page's PG_ZERO flag immutable between the time of the page's 2004-05-06 05:03:23 +00:00
nfsserver Don't send the available space as is in the FSSTAT call. Under 2004-04-12 13:02:21 +00:00
opencrypto kthread_exit() no longer requires Giant, so don't force callers to acquire 2004-03-05 22:42:17 +00:00
pc98 Mereged from sys/dev/sio/sio.c revision 1.429. 2004-05-06 13:16:45 +00:00
pccard Convert callers to the new bus_alloc_resource_any(9) API. 2004-03-17 17:50:55 +00:00
pci Different VIA host bridges use different offsets to their AGP config 2004-05-13 20:05:42 +00:00
posix4 The sem_timedwait() and ksem_timedwait() functions both 2004-02-03 22:27:03 +00:00
powerpc Add option GEOM_GPT. This brings the ability to have a large number of 2004-05-02 20:40:19 +00:00
rpc Remove advertising clause from University of California Regent's 2004-04-07 05:00:01 +00:00
security Improve consistency of include file guards in src/sys/sys by terminating 2004-05-10 18:38:07 +00:00
sparc64 Prefer explicit ints to implicit ints in the prototype as well as in 2004-05-10 11:17:20 +00:00
sys Improve consistency of include file guards in src/sys/sys by terminating 2004-05-10 18:38:07 +00:00
tools Correct $FreeBSD$ style. 2004-04-16 05:22:11 +00:00
ufs Revert previous change to this file because it breaks some 2004-04-29 15:10:42 +00:00
vm Restructure vm_page_select_cache() so that adding assertions is easy. 2004-05-12 04:27:18 +00:00
Makefile Replaced outdated comment. 2004-01-17 03:28:27 +00:00