Currently we open code the calculation of the UDP checksum, which involves
temporarily mangling the IPv6 header to match the UDP checksum
pseudo-header. It also assumes that the payload is contiguous with the
headers, which is true for now, but we want to change in future.
We already have a helper which correcly calculates UDP over IPv6 checksums,
which doesn't require temporarily modifying the headers and which handles
a non-contiguous payload, so use it. It turns out we were already
initializing the IPv6 version, nexthdr and hop_limit fields, even though
we overwrote them for each packet here, so we can just leave those in
place now.
Signed-off-by: David Gibson