diff mbox series

[ovs-dev,v2] pinctrl: Explicitly set ICMPv6 code for packet too big.

Message ID 20240829151236.390710-1-amusil@redhat.com
State Accepted
Headers show
Series [ovs-dev,v2] pinctrl: Explicitly set ICMPv6 code for packet too big. | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/github-robot-_ovn-kubernetes success github build: passed

Commit Message

Ales Musil Aug. 29, 2024, 3:12 p.m. UTC
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 <dceara@redhat.com>
Signed-off-by: Ales Musil <amusil@redhat.com>
---
v2: Add missing dot for the subject.
    Add missing fixes tag.
---
 controller/pinctrl.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Numan Siddique Aug. 29, 2024, 3:41 p.m. UTC | #1
On Thu, Aug 29, 2024 at 11:13 AM Ales Musil <amusil@redhat.com> wrote:
>
> 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 <dceara@redhat.com>
> Signed-off-by: Ales Musil <amusil@redhat.com>

Thanks.  Applied to main and backported to branch-24.09.

Numan

> ---
> 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
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
diff mbox series

Patch

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;