wireguard: fix ipv6 handshake packet 45/36945/2
authorBenoît Ganne <bganne@cisco.com>
Thu, 18 Aug 2022 14:49:17 +0000 (16:49 +0200)
committerMatthew Smith <mgsmith@netgate.com>
Thu, 18 Aug 2022 15:34:40 +0000 (15:34 +0000)
IPv6 payload length should not include the size of the IPv6 header.

Type: fix

Change-Id: Iedcd17d0af8d72d9b5f8f9b605da7c99e151bc9d
Signed-off-by: Benoît Ganne <bganne@cisco.com>
src/plugins/wireguard/wireguard_send.c

index 93e808a..91d993b 100644 (file)
@@ -70,10 +70,8 @@ wg_buffer_prepend_rewrite (vlib_buffer_t *b0, const u8 *rewrite, u8 is_ip4)
       /* copy only ip6 and udp header; wireguard header not needed */
       clib_memcpy (hdr6, rewrite, sizeof (ip6_udp_header_t));
 
-      hdr6->udp.length =
+      hdr6->ip6.payload_length = hdr6->udp.length =
        clib_host_to_net_u16 (b0->current_length - sizeof (ip6_header_t));
-
-      hdr6->ip6.payload_length = clib_host_to_net_u16 (b0->current_length);
     }
 }