The ICMPv6 code was set to 1 which is wrong for the packet too big
which is wrong, the code should always remain 0. This resulted in
wrong csum being computed. Set the code to 0 explicitly.
Fixes: 4725ad125b42 ("controller: Avoid double controller action for ICMP
errors.")
Reported-at: https://issues.redhat.com/browse/FDP-763
Acked-by: Dumitru Ceara <[email protected]>
Signed-off-by: Ales Musil <[email protected]>
---
v2: Add missing dot for the subject.
Add missing fixes tag.
---
controller/pinctrl.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/controller/pinctrl.c b/controller/pinctrl.c
index 7cbb0cf81..c86b4f940 100644
--- a/controller/pinctrl.c
+++ b/controller/pinctrl.c
@@ -1756,6 +1756,7 @@ pinctrl_handle_icmp(struct rconn *swconn, const struct
flow *ip_flow,
if (mtu) {
put_16aligned_be32(ih->icmp6_data.be32, *mtu);
ih->icmp6_base.icmp6_type = ICMP6_PACKET_TOO_BIG;
+ ih->icmp6_base.icmp6_code = 0;
}
void *data = ih + 1;
--
2.46.0
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev