freebsd-skq/sys
yongari 3826036d91 Don't abuse if_hwassist and make sure enabling corresponding TX/RX
checksum offloading and VLAN hardware tag insertion/stripping from
the currently enabled hardware offloading capabilities.
Previously if_hwassist, which was initialized to TX/RX checksum
offloading, was blindly used to enable both TX and RX checksum
offloading such that disabling either TX or RX checksum offloading
was not possible.

ti(4) controllers support TX/RX checksum offloading with VLAN
tagging so announce TX/RX checksum offloading capability over VLAN
to vlan(4).

Make VLAN hardware tag insertion/stripping honors currently enabled
interface capability instead of blindly enabling VLAN hardware
tagging. This change allows disabling hardware support of VLAN tag.

Because ti(4) supports VLAN oversized frames, make network stack
know the capability by setting if_hdrlen.

While I'm here, rewrite SIOCSIFCAP handler and make sure to
reinitialize controller whenever TX/RX checksum offloading and VLAN
hardware tagging option is changed.  The requirement of controller
reinitialization comes from the limitation of Tigon I/II firmware.
Tigon I/II firmware requires all related RCBs should be
reinitialized whenever any of its hardware offloading capabilities
change.

vlan(4) is also notified whenever the parent interface's capability
changes such that it can correctly handle TX/RX checksum offloading
based on parent interface's enabled offloading capabilities.

RX checksum offloading handler was changed to make upper stack use
controller computed partial checksum value.  Previously, ti(4) just
set the computed value for any frames(IPv4, IPv6) and the value was
not used in upper stack because driver didn't set CSUM_DATA_VALID
such that upper network stack had to recompute checksum of TCP/UDP
packets. I have no idea how this was not noticed for a long time.
With this change, upper network stack does not have to fully
recompute the checksum such that calculating pseudo checksum based
on partial checksum is sufficient to know whether received packet's
checksum is correct or not. However, I don't know why ti(4) does
not have controller compute pseudo checksum as controller has
ability to do it. I'm just guessing enabling that feature could
trigger a firmware bug or could be slower than computing it on host
side so just leave it as it was.

In order not to produce false positives, ti(4) now checks whether
controller actually computed IP or TCP/UDP checksum by checking
ti_flags field.
2011-11-04 22:53:52 +00:00
..
amd64 Add a PCI front-end to esp(4) allowing it to support AMD Am53C974 and 2011-11-01 21:26:57 +00:00
arm - Import the common MII bitbang'ing code from NetBSD and convert drivers to 2011-11-01 16:13:59 +00:00
boot Remove the remnants of /stand/sysinstall. 2011-11-03 12:03:03 +00:00
bsm
cam
cddl Fix typo in copyright notice introduced in r226724 2011-10-25 13:52:38 +00:00
compat Regen. 2011-11-04 04:06:31 +00:00
conf Add QLogic 10 Gigabit Ethernet & CNA Adapter Driver version 1.30 2011-11-03 21:20:22 +00:00
contrib Add missing PF_UNLOCK in pf_test 2011-10-30 14:55:00 +00:00
crypto Update Copyright. 2011-10-27 14:15:26 +00:00
ddb
dev Don't abuse if_hwassist and make sure enabling corresponding TX/RX 2011-11-04 22:53:52 +00:00
fs Move the cleanup of f_cdevpriv when the reference count of a devfs 2011-11-04 03:39:31 +00:00
gdb
geom Add mutex and two flags to make orphan() call properly asynchronous: 2011-11-02 09:24:59 +00:00
gnu
i386 Add a PCI front-end to esp(4) allowing it to support AMD Am53C974 and 2011-11-01 21:26:57 +00:00
ia64 Adjust the debugger options slightly. This should help me do the right 2011-10-27 13:07:49 +00:00
isa
kern Regen. 2011-11-04 04:06:31 +00:00
kgssapi
libkern
mips Add support for VM_ALLOC_WIRED and VM_ALLOC_ZERO to vm_page_alloc_freelist() 2011-11-02 05:42:51 +00:00
modules Always use the opt_*.h options for ipfw.ko, not just when 2011-11-04 16:24:19 +00:00
net Fix a use-after-free/redzone issue in the routing code. 2011-11-03 18:33:30 +00:00
net80211 Include the tid when printing out crypto replay errors. 2011-10-28 15:47:14 +00:00
netatalk
netgraph - If KDB & NETGRAPH_DEBUG are on, print traces on discovered failed 2011-10-27 09:43:25 +00:00
netinet Always use the opt_*.h options for ipfw.ko, not just when 2011-11-04 16:24:19 +00:00
netinet6 Remove a couple of write-only variables. 2011-11-03 09:09:05 +00:00
netipsec
netipx
netnatm
netncp Change ncp_scan_bindery_object() to pass a constant search string. 2011-10-16 08:44:03 +00:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed - change "is is" to "is" or "it is" 2011-10-16 14:30:28 +00:00
opencrypto
pc98 Add a PCI front-end to esp(4) allowing it to support AMD Am53C974 and 2011-11-01 21:26:57 +00:00
pci - Import the common MII bitbang'ing code from NetBSD and convert drivers to 2011-11-01 16:13:59 +00:00
powerpc Adjust the debugger options slightly. This should help me do the right 2011-10-27 13:07:49 +00:00
rpc Both a crash reported on freebsd-current on Oct. 18 under the 2011-11-03 14:38:03 +00:00
security Get rid of D_PSEUDO. 2011-10-18 08:09:44 +00:00
sparc64 Add a PCI front-end to esp(4) allowing it to support AMD Am53C974 and 2011-11-01 21:26:57 +00:00
sys Silence an (otherwise harmless) very recurrent warning when building the 2011-11-04 15:34:31 +00:00
teken Link the demo application against ncursesw to make Unicode work. 2011-10-13 14:20:27 +00:00
tools
ufs Fix the wrong commit log message for r226967: "Added missing cache purge 2011-10-31 20:24:33 +00:00
vm Simplify the implementation of the failure case in kmem_alloc_attr(). 2011-11-04 04:41:58 +00:00
x86
xdr
xen
Makefile