Sebastian Andrzej Siewior
3cb0d1406c
xfrm: Linearize the skb after offloading if needed.
...
[ Upstream commit f015b900bc ]
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 11:14:12 +02:00
..
2020-08-10 12:06:44 -07:00
2023-03-06 12:09:48 +01:00
2023-06-09 10:47:53 +02:00
2023-02-13 18:35:15 +08:00
2022-08-22 17:59:37 -07:00
2023-01-25 10:25:57 -08:00
2023-02-01 20:54:27 -08:00
2022-10-20 17:24:59 -07:00
2022-11-30 13:17:52 -08:00
2023-06-28 11:14:12 +02:00
2023-02-13 18:35:15 +08:00
2023-03-16 17:26:31 -07:00
2022-02-17 11:44:20 -08:00
2021-09-28 17:32:56 -07:00
2022-04-30 15:12:58 +01:00
2023-01-23 21:37:39 -08:00
2022-11-22 20:18:20 -08:00
2023-01-24 10:58:11 +01:00
2023-03-16 21:20:32 -07:00
2023-03-16 21:20:32 -07:00
2021-05-17 15:29:35 -07:00
2022-08-25 10:33:21 +02:00
2023-03-31 21:37:06 -07:00
2022-11-18 02:15:15 +01:00
2023-06-09 10:47:53 +02:00
2022-05-12 16:52:18 -07:00
2022-10-31 20:14:27 -07:00
2023-03-15 00:23:14 -07:00
2023-02-15 10:25:21 +00:00
2022-07-08 12:10:33 +01:00
2022-07-15 11:49:55 +01:00
2022-10-31 20:14:27 -07:00
2023-03-21 21:16:26 -07:00
2023-02-01 20:54:27 -08:00
2022-01-29 17:53:07 +00:00
2023-05-11 23:17:22 +09:00
2023-05-30 14:17:21 +01:00
2022-10-03 07:59:06 +01:00
2023-03-15 00:04:04 -07:00
2022-11-16 12:48:44 +00:00
2022-09-29 07:18:00 +02:00
2022-08-04 11:31:20 -07:00
2022-11-16 12:48:44 +00:00
2022-06-24 11:34:38 +01:00
2022-12-25 13:38:09 -08:00
2022-11-16 13:02:04 +00:00
2023-01-24 10:58:11 +01:00
2023-01-23 21:37:25 -08:00
2022-05-16 13:03:29 +02:00
2019-05-21 10:50:45 +02:00
2022-10-27 10:17:40 -07:00
2023-04-04 18:56:58 -07:00
2023-01-26 10:52:18 +01:00
2021-05-17 15:29:35 -07:00
2023-04-04 18:56:58 -07:00
2023-05-30 14:17:21 +01:00
2022-11-18 02:15:15 +01:00
2022-12-12 13:11:24 -08:00
2023-06-14 11:16:44 +02:00
2023-02-02 00:25:14 +01:00
2022-04-06 12:05:41 -07:00
2023-06-05 09:29:42 +02:00
2022-10-16 15:27:07 -07:00
2023-02-02 00:25:14 +01:00
2023-02-02 00:25:14 +01:00
2023-02-02 00:25:14 +01:00
2018-10-10 22:26:00 -07:00
2022-09-20 10:21:49 -07:00
2022-08-17 10:19:22 +01:00
2022-04-06 12:05:41 -07:00
2022-04-06 12:05:41 -07:00
2022-04-06 12:05:41 -07:00
2022-04-06 12:05:41 -07:00
2023-06-09 10:47:55 +02:00
2023-05-24 17:30:14 +01:00
2022-04-06 12:05:41 -07:00
2022-08-29 12:47:15 +01:00
2023-02-27 11:59:29 -08:00
2022-04-06 12:05:41 -07:00
2023-06-14 11:16:49 +02:00
2023-03-09 23:12:00 -08:00
2022-12-20 03:13:45 +01:00
2022-04-28 13:02:01 -07:00
2022-07-20 10:14:50 +01:00
2022-04-06 12:05:41 -07:00
2023-06-09 10:47:55 +02:00
2023-01-19 09:26:16 -08:00
2022-04-06 12:05:41 -07:00
2017-11-02 11:10:55 +01:00
2022-04-06 12:05:41 -07:00
2022-04-06 12:05:41 -07:00
2022-04-06 12:05:41 -07:00
2023-06-09 10:47:53 +02:00
2021-05-17 15:29:35 -07:00
2023-03-03 17:25:15 +01:00
2022-11-16 09:43:35 +00:00
2022-04-12 15:00:25 +02:00
2022-12-12 09:29:56 +00:00
2022-12-12 09:51:52 +00:00
2022-11-29 08:44:24 -08:00
2020-07-10 13:54:00 -07:00
2023-06-05 09:29:39 +02:00
2023-05-30 14:17:24 +01:00
2023-06-28 11:14:11 +02:00
2020-05-11 15:12:27 +02:00
2022-06-09 21:52:55 -07:00
2022-06-08 10:10:13 -07:00
2020-05-06 09:40:08 +02:00
2022-09-29 07:18:00 +02:00