Paul Blakey
d9b5ae5c1b
openvswitch: Fix setting ipv6 fields causing hw csum failure
Ipv6 ttl, label and tos fields are modified without first
pulling/pushing the ipv6 header, which would have updated
the hw csum (if available). This might cause csum validation
when sending the packet to the stack, as can be seen in
the trace below.
Fix this by updating skb->csum if available.
Trace resulted by ipv6 ttl dec and then sending packet
to conntrack [actions: set(ipv6(hlimit=63)),ct(zone=99)]:
[295241.900063] s_pf0vf2: hw csum failure
[295241.923191] Call Trace:
[295241.925728] <IRQ>
[295241.927836] dump_stack+0x5c/0x80
[295241.931240] __skb_checksum_complete+0xac/0xc0
[295241.935778] nf_conntrack_tcp_packet+0x398/0xba0 [nf_conntrack]
[295241.953030] nf_conntrack_in+0x498/0x5e0 [nf_conntrack]
[295241.958344] __ovs_ct_lookup+0xac/0x860 [openvswitch]
[295241.968532] ovs_ct_execute+0x4a7/0x7c0 [openvswitch]
[295241.979167] do_execute_actions+0x54a/0xaa0 [openvswitch]
[295242.001482] ovs_execute_actions+0x48/0x100 [openvswitch]
[295242.006966] ovs_dp_process_packet+0x96/0x1d0 [openvswitch]
[295242.012626] ovs_vport_receive+0x6c/0xc0 [openvswitch]
[295242.028763] netdev_frame_hook+0xc0/0x180 [openvswitch]
[295242.034074] __netif_receive_skb_core+0x2ca/0xcb0
[295242.047498] netif_receive_skb_internal+0x3e/0xc0
[295242.052291] napi_gro_receive+0xba/0xe0
[295242.056231] mlx5e_handle_rx_cqe_mpwrq_rep+0x12b/0x250 [mlx5_core]
[295242.062513] mlx5e_poll_rx_cq+0xa0f/0xa30 [mlx5_core]
[295242.067669] mlx5e_napi_poll+0xe1/0x6b0 [mlx5_core]
[295242.077958] net_rx_action+0x149/0x3b0
[295242.086762] __do_softirq+0xd7/0x2d6
[295242.090427] irq_exit+0xf7/0x100
[295242.093748] do_IRQ+0x7f/0xd0
[295242.096806] common_interrupt+0xf/0xf
[295242.100559] </IRQ>
[295242.102750] RIP: 0033:0x7f9022e88cbd
[295242.125246] RSP: 002b:00007f9022282b20 EFLAGS: 00000246 ORIG_RAX: ffffffffffffffda
[295242.132900] RAX: 0000000000000005 RBX: 0000000000000010 RCX: 0000000000000000
[295242.140120] RDX: 00007f9022282ba8 RSI: 00007f9022282a30 RDI: 00007f9014005c30
[295242.147337] RBP: 00007f9014014d60 R08: 0000000000000020 R09: 00007f90254a8340
[295242.154557] R10: 00007f9022282a28 R11: 0000000000000246 R12: 0000000000000000
[295242.161775] R13: 00007f902308c000 R14: 000000000000002b R15: 00007f9022b71f40
Fixes: 3fdbd1ce11 ("openvswitch: add ipv6 'set' action")
Signed-off-by: Paul Blakey <paulb@nvidia.com>
Link: https://lore.kernel.org/r/20220223163416.24096-1-paulb@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-02-24 09:16:21 -08:00
..
2022-01-10 10:00:09 +09:00
2022-01-06 14:57:09 +01:00
2021-07-01 13:19:48 -07:00
2021-11-19 11:52:25 +00:00
2022-02-20 01:22:20 +01:00
2022-02-16 20:37:47 -08:00
2021-11-17 20:17:05 -08:00
2019-06-05 17:37:07 +02:00
2022-01-05 14:36:10 -08:00
2021-12-19 14:08:47 +00:00
2020-02-28 14:51:30 +01:00
2021-12-19 14:08:48 +00:00
2022-02-14 13:30:37 +00:00
2019-05-30 11:26:41 -07:00
2021-04-23 10:17:26 +01:00
2021-11-26 18:01:58 -08:00
2021-06-11 13:32:46 -07:00
2017-11-02 11:10:55 +01:00
2021-11-01 13:36:09 +00:00
2021-11-23 11:51:37 +00:00
2017-11-02 11:10:55 +01:00
2022-02-03 14:20:36 -08:00
2021-08-03 13:05:25 +01:00
2021-12-13 12:34:09 +00:00
2022-02-15 14:35:18 +00:00
2021-12-03 14:16:48 +00:00
2021-11-30 12:15:58 +00:00
2022-01-24 11:57:38 +00:00
2021-03-26 17:43:55 +01:00
2021-12-03 14:15:49 +00:00
2019-05-21 11:28:45 +02:00
2019-06-19 17:09:55 +02:00
2021-12-20 10:41:26 +01:00
2020-02-29 14:39:08 +01:00
2022-02-24 09:16:21 -08:00
2020-07-15 07:45:24 -07:00
2020-03-27 19:40:38 -07:00
2021-12-22 15:03:47 -08:00
2021-12-22 15:03:51 -08:00
2021-12-22 15:03:51 -08:00
2021-08-05 11:46:42 +01:00
2021-10-13 09:40:46 -07:00
2019-05-30 11:29:52 -07:00
2019-05-30 11:29:52 -07:00
2021-12-21 19:08:54 -08:00
2017-11-02 11:10:55 +01:00
2021-07-30 15:33:24 +02:00
2017-11-02 11:10:55 +01:00
2019-05-21 11:52:39 +02:00
2019-05-21 11:52:39 +02:00
2021-10-13 09:40:46 -07:00
2022-02-14 13:31:12 +00:00
2019-12-16 16:09:44 -08:00
2021-11-29 19:50:45 -08:00
2022-02-09 11:41:47 +00:00
2020-05-08 21:33:33 -07:00
2021-12-06 16:05:10 -08:00
2020-05-05 13:23:29 -07:00
2020-02-19 13:52:32 +01:00
2020-04-20 07:34:16 +02:00
2019-06-19 17:09:55 +02:00
2021-12-06 16:06:02 -08:00
2019-12-24 22:37:30 -08:00
2021-12-16 07:18:35 -08:00
2017-11-02 11:10:55 +01:00
2021-10-29 14:03:22 +01:00
2021-12-19 14:08:48 +00:00
2021-09-02 11:44:19 +01:00
2017-11-02 11:10:55 +01:00
2021-01-21 13:33:45 +01:00
2021-01-21 13:33:45 +01:00
2019-12-09 10:36:44 -08:00
2021-10-18 12:54:41 +01:00
2021-02-12 16:31:46 -08:00
2019-03-22 12:09:31 -07:00
2021-01-29 20:39:14 -08:00
2017-11-02 11:10:55 +01:00
2021-12-06 16:26:46 -08:00
2017-11-02 11:10:55 +01:00
2020-06-22 21:12:44 -07:00
2019-10-25 16:24:32 -07:00
2021-06-28 14:29:45 -07:00
2021-08-13 09:58:25 +02:00
2019-05-30 11:26:41 -07:00
2021-12-06 16:05:11 -08:00
2019-04-22 21:50:53 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-03-30 13:45:04 -07:00
2021-01-27 18:18:15 -08:00
2021-11-23 20:16:18 -08:00
2021-10-15 11:33:08 +01:00
2022-01-13 13:06:05 +00:00
2021-07-23 16:44:57 -07:00
2021-11-17 20:21:52 -08:00
2019-09-27 12:05:02 +02:00
2019-02-08 21:50:15 -08:00
2021-10-04 12:53:35 +01:00
2021-11-16 13:16:54 +00:00
2022-02-17 09:48:24 -08:00
2021-11-19 20:09:55 -08:00
2021-12-06 16:05:11 -08:00
2021-12-07 20:44:59 -08:00
2021-12-06 16:05:11 -08:00
2021-10-07 19:52:58 +02:00
2022-01-27 08:37:02 -08:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2022-01-13 13:06:05 +00:00
2021-11-22 15:44:49 +00:00
2022-02-16 20:37:47 -08:00
2018-03-27 09:51:23 +02:00
2019-06-19 17:09:55 +02:00
2020-06-20 17:22:22 -07:00
2018-07-11 23:10:19 -07:00
2021-03-23 14:14:50 -07:00
2017-11-02 11:10:55 +01:00
2021-12-07 20:44:59 -08:00
2021-10-13 09:40:46 -07:00
2021-07-27 13:05:56 +01:00
2021-11-07 19:25:29 +00:00
2021-08-30 01:51:36 +02:00
2022-01-04 15:47:15 +01:00
2019-05-30 11:26:41 -07:00
2021-06-24 12:41:12 -07:00
2021-10-29 13:23:51 +01:00
2021-10-29 13:23:51 +01:00
2020-03-02 11:16:27 -08:00
2021-03-26 15:14:56 -07:00
2020-02-28 12:08:37 -08:00
2020-05-29 21:20:20 -07:00
2021-10-28 10:43:58 -07:00
2019-12-09 10:36:44 -08:00
2017-11-02 11:10:55 +01:00
2021-11-23 11:51:37 +00:00
2022-02-02 20:30:18 -08:00
2018-05-28 22:59:54 -04:00
2021-12-10 06:38:26 -08:00
2017-11-02 11:10:55 +01:00
2021-12-10 06:38:26 -08:00
2018-08-01 09:52:30 -07:00
2019-05-21 11:28:45 +02:00
2021-07-27 11:43:50 +01:00
2019-11-12 08:18:03 -08:00
2019-04-11 13:59:49 -07:00
2021-09-24 14:07:10 +01:00
2021-11-16 18:02:46 +01:00
2017-11-08 16:12:33 +09:00
2017-11-02 11:10:55 +01:00
2022-01-05 19:46:32 -08:00
2020-03-04 13:25:55 -08:00
2019-05-30 11:26:32 -07:00
2022-01-11 20:40:16 -08:00
2022-01-09 16:24:12 -08:00
2017-11-02 11:10:55 +01:00
2021-05-17 15:29:35 -07:00
2021-08-09 15:34:21 -07:00
2017-11-02 11:10:55 +01:00
2019-05-30 11:26:32 -07:00
2017-11-02 11:10:55 +01:00
2021-03-25 17:40:43 -07:00
2020-07-31 09:24:23 +02:00
2020-08-24 14:35:00 -07:00
2021-10-13 09:40:45 -07:00
2022-01-27 08:38:33 -08:00
2020-06-23 20:27:09 -07:00
2018-03-13 18:37:02 +02:00
2021-08-04 10:01:26 +01:00
2019-04-22 21:47:25 -07:00
2022-01-13 11:06:42 -08:00
2020-07-13 11:03:44 -07:00
2017-11-02 11:10:55 +01:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2022-01-04 12:17:35 +00:00
2021-04-28 14:06:45 -07:00
2018-04-11 10:33:46 -04:00
2020-09-28 15:19:03 -07:00
2019-10-05 16:29:00 -07:00
2021-06-15 18:01:05 +02:00
2022-02-18 11:14:52 +00:00
2021-08-03 13:05:26 +01:00
2017-11-02 11:10:55 +01:00
2021-11-09 01:05:34 +01:00
2021-10-27 14:54:02 +01:00
2019-05-30 11:26:32 -07:00
2022-01-20 20:17:32 -08:00
2019-05-30 11:26:32 -07:00
2018-05-08 00:02:41 -04:00
2019-10-04 14:07:07 -07:00
2021-10-28 10:43:58 -07:00
2020-06-23 20:10:15 -07:00
2020-06-18 20:46:23 -07:00
2021-02-04 18:37:14 -08:00
2021-11-16 13:16:54 +00:00
2018-02-16 15:57:42 -05:00
2019-11-14 18:12:17 -08:00
2021-11-29 12:19:53 +00:00
2018-01-24 19:13:45 -05:00
2019-12-09 10:28:43 -08:00
2017-11-02 11:10:55 +01:00
2021-12-14 00:24:24 +01:00
2021-09-28 00:18:34 +02:00
2021-12-29 08:48:14 -08:00
2022-01-05 19:46:32 -08:00
2022-01-09 17:00:17 -08:00
2021-09-28 00:18:35 +02:00