freebsd-skq/sys/net
bz ac429c7044 It turns out that too many drivers are not only parsing the L2/3/4
headers for TSO but also for generic checksum offloading.  Ideally we
would only have one common function shared amongst all drivers, and
perhaps when updating them for IPv6 we should introduce that.
Eventually we should provide the meta information along with mbufs to
avoid (re-)parsing entirely.

To not break IPv6 (checksums and offload) and to be able to MFC the
changes without risking to hurt 3rd party drivers, duplicate the v4
framework, as other OSes have done as well.

Introduce interface capability flags for TX/RX checksum offload with
IPv6, to allow independent toggling (where possible).  Add CSUM_*_IPV6
flags for UDP/TCP over IPv6, and reserve further for SCTP, and IPv6
fragmentation.  Define CSUM_DELAY_DATA_IPV6 as we do for legacy IP and
add an alias for CSUM_DATA_VALID_IPV6.

This pretty much brings IPv6 handling in line with IPv4.
TSO is still handled in a different way and not via if_hwassist.

Update ifconfig to allow (un)setting of the new capability flags.
Update loopback to announce the new capabilities and if_hwassist flags.

Individual driver updates will have to follow, as will SCTP.

Reported by:	gallatin, dim, ..
Reviewed by:	gallatin (glanced at?)
MFC after:	3 days
X-MFC with:	r235961,235959,235958
2012-05-28 09:30:13 +00:00
..
bpf_buffer.c Call bpf_jitter() before acquiring BPF global lock due to malloc() being used inside bpf_jitter. 2012-05-21 22:19:19 +00:00
bpf_buffer.h Call bpf_jitter() before acquiring BPF global lock due to malloc() being used inside bpf_jitter. 2012-05-21 22:19:19 +00:00
bpf_filter.c Clear the filter memory area before using it. Leaving it uninitialized may 2011-07-14 21:06:22 +00:00
bpf_jitter.c
bpf_jitter.h
bpf_zerocopy.c Fix old panic when BPF consumer attaches to destroying interface. 2012-05-21 22:17:29 +00:00
bpf_zerocopy.h - Fix trivial typo 2012-01-14 17:07:52 +00:00
bpf.c Make most BPF ioctls() SMP-safe. 2012-05-21 22:21:00 +00:00
bpf.h Fix old panic when BPF consumer attaches to destroying interface. 2012-05-21 22:17:29 +00:00
bpfdesc.h Fix old panic when BPF consumer attaches to destroying interface. 2012-05-21 22:17:29 +00:00
bridgestp.c Move the interface media check to a taskqueue, some interfaces (usb) sleep 2012-04-20 10:06:28 +00:00
bridgestp.h Move the interface media check to a taskqueue, some interfaces (usb) sleep 2012-04-20 10:06:28 +00:00
ethernet.h
fddi.h
firewire.h
flowtable.c Merge multi-FIB IPv6 support from projects/multi-fibv6/head/: 2012-02-17 02:39:58 +00:00
flowtable.h allocate ipv6 flows from the ipv6 flow zone 2010-05-16 21:48:39 +00:00
ieee8023ad_lacp.c Turn LACP debugging from a compile time option to a sysctl, it is very handy to 2012-05-26 08:09:01 +00:00
ieee8023ad_lacp.h
if_arc.h
if_arcsubr.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
if_arp.h - Merge changes to the base system to support OFED. These include 2011-03-21 09:40:01 +00:00
if_atm.h
if_atmsubr.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
if_bridge.c Revert r234834 per luigi@ request. 2012-05-03 08:56:43 +00:00
if_bridgevar.h
if_clone.c - Use generic alloc_unr(9) allocator for if_clone, instead 2011-11-28 14:44:59 +00:00
if_clone.h - Use generic alloc_unr(9) allocator for if_clone, instead 2011-11-28 14:44:59 +00:00
if_dead.c
if_debug.c Add infrastructure to allow all frames/packets received on an interface 2011-07-03 12:22:02 +00:00
if_disc.c
if_dl.h Use the LLINDEX macro to access the link-level I/F index. This makes 2012-05-19 02:39:43 +00:00
if_edsc.c
if_ef.c Add new tunable 'net.link.ifqmaxlen' to set default send interface 2010-05-03 07:32:50 +00:00
if_enc.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
if_enc.h
if_epair.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
if_ethersubr.c Revert r234834 per luigi@ request. 2012-05-03 08:56:43 +00:00
if_faith.c Merge multi-FIB IPv6 support from projects/multi-fibv6/head/: 2012-02-17 02:39:58 +00:00
if_fddisubr.c Tag mbufs of all incoming frames or packets with the interface's FIB 2011-07-03 16:08:38 +00:00
if_fwsubr.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
if_gif.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
if_gif.h MFP4: @176978-176982, 176984, 176990-176994, 177441 2010-04-29 11:52:42 +00:00
if_gre.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
if_gre.h gre(4) was using a field in the softc to detect possible recursion. 2011-06-18 09:34:03 +00:00
if_iso88025subr.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
if_lagg.c Relax restriction on direct tx to child ports 2012-05-03 01:41:12 +00:00
if_lagg.h Add the ability to set which packet layers are used for the load balance hash 2012-03-06 22:58:13 +00:00
if_llatbl.c A flowtable entry can continue referencing an llentry indefinitely if the entry is repeatedly 2012-01-26 20:02:40 +00:00
if_llatbl.h When using flowtable llentrys can outlive the interface with which they're associated 2012-02-23 18:21:37 +00:00
if_llc.h
if_loop.c It turns out that too many drivers are not only parsing the L2/3/4 2012-05-28 09:30:13 +00:00
if_media.c Fix typos - remove duplicate "the". 2011-02-21 09:01:34 +00:00
if_media.h Add media types for 40G media that might be used with FreeBSD. 2012-04-10 13:59:35 +00:00
if_mib.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
if_mib.h
if_sppp.h
if_spppfr.c Remove a few bits of FreeBSD 2.x compatibility code. 2011-11-14 18:21:27 +00:00
if_spppsubr.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
if_stf.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
if_stf.h
if_tap.c In r191367 the need for if_free_type() was removed and a new member 2011-11-11 22:57:52 +00:00
if_tap.h
if_tapvar.h
if_tun.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
if_tun.h
if_types.h A major overhaul of the CARP implementation. The ip_carp.c was started 2011-12-16 12:16:56 +00:00
if_var.h Retire the IF_ADDR_LOCK() and IF_ADDR_UNLOCK() compat macros from HEAD. 2012-03-19 21:09:12 +00:00
if_vlan_var.h Clarify throughout the vlan(4) code the difference between a "tag" (the 2012-01-12 18:39:37 +00:00
if_vlan.c Clarify throughout the vlan(4) code the difference between a "tag" (the 2012-01-12 18:39:37 +00:00
if.c Add linkstate to bridge(4), set the link to up when at least one underlying 2012-04-20 09:55:50 +00:00
if.h It turns out that too many drivers are not only parsing the L2/3/4 2012-05-28 09:30:13 +00:00
iso88025.h
netisr_internal.h Rework netisr policy mechanism so that per-protocol dispatch policies can 2011-05-24 12:34:19 +00:00
netisr.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
netisr.h Rework netisr policy mechanism so that per-protocol dispatch policies can 2011-05-24 12:34:19 +00:00
netmap_user.h A bit of cleanup in the names of fields of netmap-related structures. 2012-04-13 16:03:07 +00:00
netmap.h A bit of cleanup in the names of fields of netmap-related structures. 2012-04-13 16:03:07 +00:00
pfil.c
pfil.h small portability fix to build on linux/windows 2010-07-15 14:41:06 +00:00
pfkeyv2.h
ppp_defs.h
radix_mpath.c When the RADIX_MPATH kernel option is enabled, the RADIX_MPATH code tries 2011-08-25 04:31:20 +00:00
radix_mpath.h
radix.c whitespace cleanup 2010-07-15 14:41:59 +00:00
radix.h Make KBI changes required for future MFCing of inpcb rtentry / llentry caching. 2011-09-20 20:27:26 +00:00
raw_cb.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
raw_cb.h Pass the fibnum where we need filtering of the message on the 2011-09-28 13:48:36 +00:00
raw_usrreq.c Pass the fibnum where we need filtering of the message on the 2011-09-28 13:48:36 +00:00
route.c Hide kernel option ROUTETABLES evaluations in the implementation 2012-03-18 11:23:40 +00:00
route.h Hide kernel option ROUTETABLES evaluations in the implementation 2012-03-18 11:23:40 +00:00
rtsock.c Do not require radix write lock to be held while dumping route table 2012-04-22 16:13:23 +00:00
slcompress.c
slcompress.h
vnet.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
vnet.h Mfp4 CH=177255: 2011-02-11 14:17:58 +00:00
zlib.c
zlib.h Change some headers such that lang/gcc* ports no longer patch them. 2012-02-14 12:50:20 +00:00
zutil.h Merge projects/enhanced_coredumps (r204346) into HEAD: 2010-03-02 06:58:58 +00:00