Sebastian Andrzej Siewior
bf7a4fd336
xfrm: Linearize the skb after offloading if needed.
...
[ Upstream commit f015b900bc3285322029b4a7d132d6aeb0e51857 ]
With offloading enabled, esp_xmit() gets invoked very late, from within
validate_xmit_xfrm() which is after validate_xmit_skb() validates and
linearizes the skb if the underlying device does not support fragments.
esp_output_tail() may add a fragment to the skb while adding the auth
tag/ IV. Devices without the proper support will then send skb->data
points to with the correct length so the packet will have garbage at the
end. A pcap sniffer will claim that the proper data has been sent since
it parses the skb properly.
It is not affected with INET_ESP_OFFLOAD disabled.
Linearize the skb after offloading if the sending hardware requires it.
It was tested on v4, v6 has been adopted.
Fixes: 7785bba299 ("esp: Add a software GRO codepath")
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-06-28 10:18:38 +02:00
..
ila
ila: do not generate empty messages in ila_xlat_nl_cmd_get_mapping()
2023-03-17 08:32:50 +01:00
netfilter
treewide: Remove uninitialized_var() usage
2023-06-09 10:29:01 +02:00
addrconf.c
ipv6: take care of disable_policy when restoring routes
2022-07-07 17:36:47 +02:00
addrconf_core.c
addrlabel.c
ipv6: addrlabel: fix infoleak when sending struct ifaddrlblmsg to network
2022-11-25 17:42:05 +01:00
af_inet6.c
dccp: Call inet6_destroy_sock() via sk->sk_destruct().
2023-04-26 11:24:05 +02:00
ah6.c
anycast.c
calipso.c
datagram.c
ipv6: Fix datagram socket connection with DSCP.
2023-02-22 12:50:41 +01:00
esp6.c
esp: limit skb_page_frag_refill use to a single page
2022-07-12 16:30:45 +02:00
esp6_offload.c
xfrm: Linearize the skb after offloading if needed.
2023-06-28 10:18:38 +02:00
exthdrs.c
exthdrs_core.c
ipv6: Fix out-of-bounds access in ipv6_find_tlv()
2023-05-30 12:44:10 +01:00
exthdrs_offload.c
fib6_notifier.c
fib6_rules.c
fou6.c
icmp.c
inet6_connection_sock.c
inet6_hashtables.c
secure_seq: use the 64 bits of the siphash for port offset calculation
2022-06-06 08:33:49 +02:00
ip6_checksum.c
ip6_fib.c
ip6_flowlabel.c
treewide: Remove uninitialized_var() usage
2023-06-09 10:29:01 +02:00
ip6_gre.c
erspan: get the proto with the md version for collect_md
2023-05-30 12:44:05 +01:00
ip6_icmp.c
ip6_input.c
tcp/udp: Make early_demux back namespacified.
2022-11-10 17:57:55 +01:00
ip6_offload.c
ip6_offload.h
ip6_output.c
ipv6: Fix an uninit variable access bug in __ip6_make_skb()
2023-04-20 12:07:33 +02:00
ip6_tunnel.c
net: tunnels: annotate lockless accesses to dev->needed_headroom
2023-03-22 13:28:05 +01:00
ip6_udp_tunnel.c
ip6_vti.c
ip6mr.c
ipv6: make mc_forwarding atomic
2022-04-15 14:18:32 +02:00
ipcomp6.c
ipv6_sockglue.c
udp: Call inet6_destroy_sock() in setsockopt(IPV6_ADDRFORM).
2023-04-26 11:24:05 +02:00
Kconfig
Makefile
mcast.c
mcast_snoop.c
mip6.c
ndisc.c
netfilter.c
output_core.c
ping.c
ping6: Fix send to link-local addresses with VRF.
2023-06-21 15:44:11 +02:00
proc.c
protocol.c
raw.c
ipv{4,6}/raw: fix output xfrm lookup wrt protocol
2023-06-05 08:17:33 +02:00
reassembly.c
route.c
ipv6: Add lwtunnel encap size of all siblings in nexthop calculation
2023-03-11 16:44:11 +01:00
seg6.c
ipv6: sr: fix out-of-bounds read when setting HMAC data.
2022-09-15 12:04:55 +02:00
seg6_hmac.c
net: ipv6: unexport __init-annotated seg6_hmac_net_init()
2022-07-07 17:36:49 +02:00
seg6_iptunnel.c
seg6: fix skb checksum evaluation in SRH encapsulation/insertion
2022-07-21 20:59:23 +02:00
seg6_local.c
seg6: fix skb checksum in SRv6 End.B6 and End.B6.Encaps behaviors
2022-07-21 20:59:23 +02:00
sit.c
sit: update dev->needed_headroom in ipip6_tunnel_bind_dev()
2023-05-17 11:35:58 +02:00
syncookies.c
tcp: Fix data-races around sysctl_tcp_syncookies.
2022-07-29 17:14:13 +02:00
sysctl_net_ipv6.c
tcp_ipv6.c
inet6: Remove inet6_destroy_sock() in sk->sk_prot->destroy().
2023-04-26 11:24:05 +02:00
tcpv6_offload.c
tunnel6.c
udp.c
inet6: Remove inet6_destroy_sock() in sk->sk_prot->destroy().
2023-04-26 11:24:05 +02:00
udp_impl.h
tcp/udp: Call inet6_destroy_sock() in IPv6 sk->sk_destruct().
2023-04-26 11:24:05 +02:00
udp_offload.c
udplite.c
udplite: Fix NULL pointer dereference in __sk_mem_raise_allocated().
2023-05-30 12:44:09 +01:00
xfrm6_input.c
xfrm6_output.c
xfrm: fix tunnel model fragmentation behavior
2022-04-15 14:17:56 +02:00
xfrm6_policy.c
xfrm: Fix ignored return value in xfrm6_init()
2022-12-08 11:22:58 +01:00
xfrm6_protocol.c
xfrm6_state.c
xfrm6_tunnel.c