freebsd-skq/sys/netinet
Andrey V. Elsukov 8428914909 Clear h/w csum flags on mbuf handled by UDP.
When checksums of received IP and UDP header already checked, UDP uses
sbappendaddr_locked() to pass received data to the socket.
sbappendaddr_locked() uses given mbuf as is, and if NIC supports checksum
offloading, mbuf contains csum_data and csum_flags that were calculated
for already stripped headers. Some NICs support only limited checksums
offloading and do not use CSUM_PSEUDO_HDR flag, and csum_data contains
some value that UDP/TCP should use for pseudo header checksum calculation.

When L2TP is used for tunneling with mpd5, ng_ksocket receives mbuf with
filled csum_flags and csum_data, that were calculated for outer headers.
When L2TP header is stripped, a packet that was tunneled goes to the IP
layer and due to presence of csum_flags (without CSUM_PSEUDO_HDR) and
csum_data, the UDP/TCP checksum check fails for this packet.

Reported by:	Irina Liakh <spell at itl ua>
Tested by:	Irina Liakh <spell at itl ua>
MFC after:	1 week
2017-04-13 17:03:57 +00:00
..
cc Fix a variety of cosmetic typos and misspellings 2017-01-15 18:00:45 +00:00
khelp Remove "long" variables from the TCP stack (not including the modular 2016-10-06 16:28:34 +00:00
libalias alias_proxy.c: Fix accidental error quashing 2017-03-13 18:05:31 +00:00
tcp_stacks The sysctl variable net.inet.tcp.drop_synfin is not honored in all states, 2017-04-12 20:27:15 +00:00
accf_data.c
accf_dns.c
accf_http.c
icmp6.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
icmp_var.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
if_atm.c
if_atm.h
if_ether.c Fix the L2 address printed in the "arp: %s moved from %*D" message. 2017-03-11 04:57:52 +00:00
if_ether.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
igmp_var.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
igmp.c Add some ntohl() love to r315277 2017-03-14 20:57:54 +00:00
igmp.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in_cksum.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in_debug.c
in_fib.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in_fib.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in_gif.c
in_jail.c Allow explicitly assigned IPv4 loopback address to be used in jails 2017-03-31 00:41:54 +00:00
in_kdtrace.c Use estimated RTT for receive buffer auto resizing instead of timestamps 2017-04-10 08:19:35 +00:00
in_kdtrace.h Use estimated RTT for receive buffer auto resizing instead of timestamps 2017-04-10 08:19:35 +00:00
in_mcast.c Add some ntohl() love to r315277 2017-03-14 20:57:54 +00:00
in_pcb.c Fix reference count leak with L2 caching. 2017-03-25 15:06:28 +00:00
in_pcb.h Force same alignment on struct xinpgen as we have on struct xinpcb. This 2017-03-21 16:23:44 +00:00
in_pcbgroup.c Unbreak the RSS/PCBGROUp build. 2016-03-31 00:53:23 +00:00
in_prot.c Remove BSD and USL copyright and update license block in in_prot.c, as the 2016-07-28 18:39:30 +00:00
in_proto.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in_rmx.c Code duplication but rib_head is special. Not found an easy way to go 2016-02-03 21:56:51 +00:00
in_rss.c
in_rss.h
in_systm.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in_var.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in.h Make sysctl identifiers for direct netisr queue unique. 2017-04-11 19:20:20 +00:00
ip6.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip_carp.c After the in_control() changes in r257692, an existing address is 2017-01-25 19:04:08 +00:00
ip_carp.h After the in_control() changes in r257692, an existing address is 2017-01-25 19:04:08 +00:00
ip_divert.c Hide struct inpcb, struct tcpcb from the userland. 2017-03-21 06:39:49 +00:00
ip_divert.h
ip_dummynet.h Import Dummynet AQM version 0.2.1 (CoDel, FQ-CoDel, PIE and FQ-PIE). 2016-05-26 21:40:13 +00:00
ip_ecn.c
ip_ecn.h
ip_encap.c Remove sys/eventhandler.h from net/route.h 2016-01-09 09:34:39 +00:00
ip_encap.h
ip_fastfwd.c When we are sending IP fragments, update ip pointers in IP_PROBE() for 2016-12-29 19:57:46 +00:00
ip_fw.h Add O_EXTERNAL_DATA opcode support. 2017-04-03 02:44:40 +00:00
ip_gre.c
ip_icmp.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip_icmp.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip_id.c Replace a number of conflations of mp_ncpus and mp_maxid with either 2016-07-06 14:09:49 +00:00
ip_input.c Make sysctl identifiers for direct netisr queue unique. 2017-04-11 19:20:20 +00:00
ip_mroute.c Add some ntohl() love to r315277 2017-03-14 20:57:54 +00:00
ip_mroute.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip_options.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip_options.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip_output.c Fix reference count leak with L2 caching. 2017-03-25 15:06:28 +00:00
ip_reass.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip_var.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
pim_var.h
pim.h
raw_ip.c Hide struct inpcb, struct tcpcb from the userland. 2017-03-21 06:39:49 +00:00
sctp_asconf.c Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_asconf.h Whitespace changes. 2016-12-06 10:21:25 +00:00
sctp_auth.c Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_auth.h Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_bsd_addr.c Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_bsd_addr.h Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_cc_functions.c Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_constants.h Cleanup the names of SSN, SID, TSN, FSN, PPID and MID. 2016-12-07 19:30:59 +00:00
sctp_crc32.c Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_crc32.h Whitespace changes. 2016-12-06 10:21:25 +00:00
sctp_dtrace_declare.h
sctp_dtrace_define.h This is work done by Michael Tuexen and myself at the IETF. This 2016-04-07 09:10:34 +00:00
sctp_header.h Cleanup the names of SSN, SID, TSN, FSN, PPID and MID. 2016-12-07 19:30:59 +00:00
sctp_indata.c Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_indata.h Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_input.c Remove IPsec related PCB code from SCTP. 2017-02-13 11:37:52 +00:00
sctp_input.h Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_lock_bsd.h netinet/sctp*: minor spelling fixes in comments. 2016-05-02 20:56:11 +00:00
sctp_os_bsd.h Remove IPsec related PCB code from SCTP. 2017-02-13 11:37:52 +00:00
sctp_os.h
sctp_output.c Ensure that the variable bail is always initialized before used. 2017-02-01 00:10:29 +00:00
sctp_output.h Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_pcb.c Remove IPsec related PCB code from SCTP. 2017-02-13 11:37:52 +00:00
sctp_pcb.h Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_peeloff.c
sctp_peeloff.h Whitespace changes. 2016-12-06 10:21:25 +00:00
sctp_ss_functions.c Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_structs.h Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_syscalls.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sctp_sysctl.c Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_sysctl.h Retire net.inet.sctp.strict_sacks and net.inet.sctp.strict_data_order 2016-05-12 16:34:59 +00:00
sctp_timer.c Remove a duplicate debug statement. 2017-01-31 23:34:02 +00:00
sctp_timer.h Code cleanup which will silence a warning in PVS / D5245. 2016-02-17 18:04:22 +00:00
sctp_uio.h Whitespace changes. 2016-12-06 10:21:25 +00:00
sctp_usrreq.c Take the SCTP common header into account when computing the 2017-01-31 23:36:31 +00:00
sctp_var.h Cleanup the names of SSN, SID, TSN, FSN, PPID and MID. 2016-12-07 19:30:59 +00:00
sctp.h This is work done by Michael Tuexen and myself at the IETF. This 2016-04-07 09:10:34 +00:00
sctputil.c Whitespace changes. 2016-12-26 11:06:41 +00:00
sctputil.h Whitespace changes. 2016-12-26 11:06:41 +00:00
siftr.c Use SI_SUB_LAST instead of SI_SUB_SMP as the "catch-all" subsystem. 2016-03-11 23:18:06 +00:00
tcp_debug.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tcp_debug.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tcp_fastopen.c Fix VIMAGE-related bugs in TFO. The autokey callout vnet context was 2017-02-03 17:02:57 +00:00
tcp_fastopen.h Implementation of server-side TCP Fast Open (TFO) [RFC7413]. 2015-12-24 19:09:48 +00:00
tcp_fsm.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tcp_hostcache.c Use inet_ntoa_r() instead of inet_ntoa() throughout the kernel 2017-02-16 20:47:41 +00:00
tcp_hostcache.h Remove "long" variables from the TCP stack (not including the modular 2016-10-06 16:28:34 +00:00
tcp_input.c The sysctl variable net.inet.tcp.drop_synfin is not honored in all states, 2017-04-12 20:27:15 +00:00
tcp_lro.c Pass the number of segments coalesced by LRO up the stack by repurposing the 2016-08-25 13:33:32 +00:00
tcp_lro.h tcp/lro: Implement hash table for LRO entries. 2016-08-02 06:36:47 +00:00
tcp_offload.c Augment struct tcpstat with tcps_states[], which is used for book-keeping 2016-01-27 00:45:46 +00:00
tcp_offload.h
tcp_output.c Use estimated RTT for receive buffer auto resizing instead of timestamps 2017-04-10 08:19:35 +00:00
tcp_pcap.c The TCPPCAP debugging feature caches recently-used mbufs for use in 2016-07-06 16:17:13 +00:00
tcp_pcap.h The TCPPCAP debugging feature caches recently-used mbufs for use in 2016-07-06 16:17:13 +00:00
tcp_reass.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tcp_sack.c Remove a KASSERT which is not always true. 2016-12-25 17:37:18 +00:00
tcp_seq.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tcp_subr.c Hide struct inpcb, struct tcpcb from the userland. 2017-03-21 06:39:49 +00:00
tcp_syncache.c Hide struct inpcb, struct tcpcb from the userland. 2017-03-21 06:39:49 +00:00
tcp_syncache.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tcp_timer.c Hide struct inpcb, struct tcpcb from the userland. 2017-03-21 06:39:49 +00:00
tcp_timer.h Hide struct inpcb, struct tcpcb from the userland. 2017-03-21 06:39:49 +00:00
tcp_timewait.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tcp_usrreq.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tcp_var.h Use estimated RTT for receive buffer auto resizing instead of timestamps 2017-04-10 08:19:35 +00:00
tcp.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tcpip.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
toecore.c This change re-adds L2 caching for TCP and UDP, as originally added in D4306 2016-06-02 17:51:29 +00:00
toecore.h
udp_usrreq.c Clear h/w csum flags on mbuf handled by UDP. 2017-04-13 17:03:57 +00:00
udp_var.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
udp.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
udplite.h