freebsd-dev/sys/net
Kristof Provost c110fc49da pf: Fix TSO issues
In certain configurations (mostly but not exclusively as a VM on Xen) pf
produced packets with an invalid TCP checksum.

The problem was that pf could only handle packets with a full checksum. The
FreeBSD IP stack produces TCP packets with a pseudo-header checksum (only
addresses, length and protocol).
Certain network interfaces expect to see the pseudo-header checksum, so they
end up producing packets with invalid checksums.

To fix this stop calculating the full checksum and teach pf to only update TCP
checksums if TSO is disabled or the change affects the pseudo-header checksum.

PR:		154428, 193579, 198868
Reviewed by:	sbruno
MFC after:	1 week
Relnotes:	yes
Sponsored by:	RootBSD
Differential Revision:	https://reviews.freebsd.org/D3779
2015-10-14 16:21:41 +00:00
..
altq Fix the spelling of eri's name. 2015-08-24 23:40:36 +00:00
bpf_buffer.c Remove the sleep from the buffer allocation routine. 2015-07-31 20:25:54 +00:00
bpf_buffer.h
bpf_filter.c
bpf_jitter.c
bpf_jitter.h
bpf_zerocopy.c - Modify vm_page_unwire() and vm_page_enqueue() to directly accept 2014-06-16 18:15:27 +00:00
bpf_zerocopy.h
bpf.c Remove the mtx_sleep() from the kqueue f_event filter. 2015-08-03 22:14:45 +00:00
bpf.h Remove two unnecessary sleeps from the hot path in bpf(4). 2015-07-31 21:43:27 +00:00
bpfdesc.h
bridgestp.c
bridgestp.h
ethernet.h Sync to HEAD@r274766 2014-11-21 01:22:33 +00:00
fddi.h
firewire.h
flowtable.c Start process of removing the use of the deprecated "M_FLOWID" flag 2014-12-01 11:45:24 +00:00
flowtable.h
ieee8023ad_lacp.c Make LAG LACP fast timeout tunable through IOCTL. 2015-08-12 20:21:04 +00:00
ieee8023ad_lacp.h Make LAG LACP fast timeout tunable through IOCTL. 2015-08-12 20:21:04 +00:00
ieee_oui.h Bump bhyve allocation up to 20 bits to avoid 2014-05-20 02:59:13 +00:00
if_arc.h Replace 'struct route *' if_output() argument with 'struct nhop_info *'. 2014-11-09 16:33:04 +00:00
if_arcsubr.c Simplify the way of attaching IPv6 link-layer header. 2015-09-16 14:26:28 +00:00
if_arp.h Remove struct arpcom. It is unused by most interface types, that allocate 2014-11-07 15:14:10 +00:00
if_atm.h Replace 'struct route *' if_output() argument with 'struct nhop_info *'. 2014-11-09 16:33:04 +00:00
if_atmsubr.c Replace 'struct route *' if_output() argument with 'struct nhop_info *'. 2014-11-09 16:33:04 +00:00
if_bridge.c Fix panic when adding vtnet interfaces to a bridge 2015-06-13 19:39:21 +00:00
if_bridgevar.h
if_clone.c Fix group membership of cloned interfaces when one is moved by 2015-03-02 20:00:03 +00:00
if_clone.h Fix group membership of cloned interfaces when one is moved by 2015-03-02 20:00:03 +00:00
if_dead.c Provide a dead version of if_get_counter. 2014-12-12 16:10:42 +00:00
if_debug.c Remove ifq_drops from struct ifqueue. Now queue drops are accounted in 2014-09-19 09:01:19 +00:00
if_disc.c Remove net/route_internal header from if_disc and if_faith. 2014-11-09 16:58:36 +00:00
if_dl.h Constantify lookup key in ifa_ifwith* functions. 2015-09-05 05:33:20 +00:00
if_edsc.c Virtualize if_edsc(4). 2014-10-05 21:27:26 +00:00
if_enc.c Replace 'struct route *' if_output() argument with 'struct nhop_info *'. 2014-11-09 16:33:04 +00:00
if_enc.h
if_epair.c Fix a panic which was reproducible by an infinite loop of 2015-09-02 16:30:45 +00:00
if_ethersubr.c Simplify the way of attaching IPv6 link-layer header. 2015-09-16 14:26:28 +00:00
if_fddisubr.c Simplify the way of attaching IPv6 link-layer header. 2015-09-16 14:26:28 +00:00
if_fwsubr.c Simplify the way of attaching IPv6 link-layer header. 2015-09-16 14:26:28 +00:00
if_gif.c Add IFCAP_LINKSTATE support. 2015-10-03 09:15:23 +00:00
if_gif.h - Remove GIF_{SEND,ACCEPT}_REVETHIP. 2015-09-10 05:59:39 +00:00
if_gre.c Add IFCAP_LINKSTATE support. 2015-10-03 09:15:23 +00:00
if_gre.h Extern declarations in C files loses compile-time checking that 2014-12-25 21:32:37 +00:00
if_iso88025subr.c Simplify the way of attaching IPv6 link-layer header. 2015-09-16 14:26:28 +00:00
if_lagg.c Fix a bug that caused reinitialization failure of MAC addresses on 2015-10-07 06:32:34 +00:00
if_lagg.h Remove per complete the fec aggregation protocol. 2015-10-04 08:00:29 +00:00
if_llatbl.c Eliminate nd6_nud_hint() and its TCP bindings. 2015-09-27 05:29:34 +00:00
if_llatbl.h Eliminate nd6_nud_hint() and its TCP bindings. 2015-09-27 05:29:34 +00:00
if_llc.h
if_loop.c Fix if_loop so bpfwrite() can use it regardless of the state of 2015-07-06 02:12:49 +00:00
if_me.c Add IFCAP_LINKSTATE support. 2015-10-03 09:15:23 +00:00
if_media.c Make IFMEDIA_DEBUG a kernel option. 2015-04-21 10:35:23 +00:00
if_media.h ifmedia changes: 2015-04-07 21:31:17 +00:00
if_mib.c Remove SYSCTL_VNET_* macros, and simply put CTLFLAG_VNET where needed. 2014-11-07 09:39:05 +00:00
if_mib.h
if_pflog.h
if_pfsync.h
if_sppp.h
if_spppfr.c Mechanically convert to if_inc_counter(). 2014-09-19 10:39:58 +00:00
if_spppsubr.c Convert in_ifaddr_lock and in6_ifaddr_lock to rmlock. 2015-07-29 08:12:05 +00:00
if_stf.c Ansify if_stf.c 2015-07-31 09:04:22 +00:00
if_tap.c Redo r274966. Instead of global all-interface all-vnet undocumented sysctl, 2015-04-10 09:50:13 +00:00
if_tap.h
if_tapvar.h
if_tun.c * Address review (and add a bit myself). 2015-07-12 18:14:38 +00:00
if_tun.h
if_types.h After r281643 an #ifdef IFT_FOO preprocessor directive returns false, 2015-05-02 20:37:40 +00:00
if_var.h Unify loopback route switching: 2015-09-16 06:23:15 +00:00
if_vlan_var.h Move struct ether_vlan_header to ethernet.h, out of if_vlan_var.h, 2014-11-11 10:22:33 +00:00
if_vlan.c Don't propagate SIOCSIFCAPS from a vlan(4) to its parent. This leads to 2015-04-23 13:19:00 +00:00
if_vxlan.c Start process of removing the use of the deprecated "M_FLOWID" flag 2014-12-01 11:45:24 +00:00
if_vxlan.h Add vxlan interface 2014-10-20 14:42:42 +00:00
if.c Unify loopback route switching: 2015-09-16 06:23:15 +00:00
if.h * Add SIOCGI2C driver ioctl used to retrieve i2c info. 2014-08-29 18:02:58 +00:00
ifq.h Move ALTQ from contrib to net/altq. The ALTQ code is for many years 2015-04-16 20:22:40 +00:00
iso88025.h Replace 'struct route *' if_output() argument with 'struct nhop_info *'. 2014-11-09 16:33:04 +00:00
netisr_internal.h
netisr.c Currently there is no easy way to specify net.isr.maxthreads = all cpus. We need 2015-04-25 16:12:06 +00:00
netisr.h Update the IPv4 input path to handle reassembled frames and incoming frames 2014-09-09 04:18:20 +00:00
netmap_user.h Sync netmap sources with the version in our private tree. 2015-07-10 05:51:36 +00:00
netmap.h Sync netmap sources with the version in our private tree. 2015-07-10 05:51:36 +00:00
paravirt.h Update to the current version of netmap. 2014-08-16 15:00:01 +00:00
pfil.c
pfil.h
pfkeyv2.h looks like all archs either have clang or cdefs included before.. 2015-08-02 21:33:40 +00:00
pfvar.h pf: Fix TSO issues 2015-10-14 16:21:41 +00:00
ppp_defs.h
radix_mpath.c Replace 'struct route *' if_output() argument with 'struct nhop_info *'. 2014-11-09 16:33:04 +00:00
radix_mpath.h
radix.c Follow r256586 and rename the kernel version of the Free() macro to 2015-07-30 02:09:03 +00:00
radix.h Follow r256586 and rename the kernel version of the Free() macro to 2015-07-30 02:09:03 +00:00
raw_cb.c
raw_cb.h
raw_usrreq.c
route.c Fix the handling of IPv6 On-Link Redirects. 2015-09-14 19:17:25 +00:00
route.h Constantify lookup key in ifa_ifwith* functions. 2015-09-05 05:33:20 +00:00
rss_config.c Remove now unused (and #if 0'ed out) headers. 2015-08-29 04:33:31 +00:00
rss_config.h Replace the printf()s with optional rate limited debugging for RSS. 2015-08-28 05:58:16 +00:00
rtsock.c Switch route radix to dual-lock model: 2014-11-10 00:07:06 +00:00
sff8436.h * Update SFF-8024 Identifier constants. 2015-05-16 13:11:35 +00:00
sff8472.h * Update SFF-8024 Identifier constants. 2015-05-16 13:11:35 +00:00
slcompress.c
slcompress.h
toeplitz.c Refactor / restructure the RSS code into generic, IPv4 and IPv6 specific 2015-01-18 18:06:40 +00:00
toeplitz.h Refactor / restructure the RSS code into generic, IPv4 and IPv6 specific 2015-01-18 18:06:40 +00:00
vnet.c
vnet.h Remove SYSCTL_VNET_* macros, and simply put CTLFLAG_VNET where needed. 2014-11-07 09:39:05 +00:00