wireguard: fix ipv6 payload_length computation

The ipv6 header length should not be counted in the ipv6 payload length.
This is similar to https://gerrit.fd.io/r/c/vpp/+/36945.

Type: fix
Change-Id: I22de0ff828175829102a85288513ee3f55709108
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
This commit is contained in:
Aloys Augustin
2022-08-25 13:00:31 +02:00
parent d3456b8d85
commit 9a6ad01c0d

View File

@ -504,12 +504,11 @@ wg_output_tun_inline (vlib_main_t *vm, vlib_node_runtime_t *node,
else
{
hdr6_out->wg.header.type = MESSAGE_DATA;
hdr6_out->udp.length = clib_host_to_net_u16 (encrypted_packet_len +
sizeof (udp_header_t));
hdr6_out->ip6.payload_length = hdr6_out->udp.length =
clib_host_to_net_u16 (encrypted_packet_len +
sizeof (udp_header_t));
b[0]->current_length =
(encrypted_packet_len + sizeof (ip6_udp_header_t));
hdr6_out->ip6.payload_length =
clib_host_to_net_u16 (b[0]->current_length);
}
out: