[Double commit]

-Should not touch checksum type and value, if it is really not required.
One side effect was that we were overwriting the field indicating that
checksum is unnecessary.

For mpls over udp, we calculate checksum of the entire packet and store it in
udp header. In the receiving end, we will verify the outer checksum, and mark
the packet as one where calculation of checksum is unnecessary, indicating to
the vm that it should not calculate checksum of the inner packet (since inner
packet checksum was not calculated even at the sending end). Once the type was
overwritten, packets were dropped in vm.