vhost: fix IPv4 checksum
authorFlavio Leitner <fbl@sysclose.org>
Thu, 24 Oct 2019 16:29:19 +0000 (13:29 -0300)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 25 Oct 2019 17:23:22 +0000 (19:23 +0200)
commit84c39beb2fdbef86b917a18ade8d2e2baa3de732
treebe8aed6a44d4a04417845a7369ea54765072c740
parent19b8d75f648021b2fc1e607311aea1c5e9063ff4
vhost: fix IPv4 checksum

Currently the IPv4 header checksum is calculated including its
current value, which can be a valid checksum or just garbage.
In any case, if the original value is not zero, then the result
is always wrong.

The IPv4 checksum is defined in RFC791, page 14 says:
  Header Checksum:  16 bits

  The checksum algorithm is:
  The checksum field is the 16 bit one's complement of the one's
  complement sum of all 16 bit words in the header.  For purposes of
  computing the checksum, the value of the checksum field is zero.

Thus force the csum field to always be zero.

Fixes: b08b8cfeb2ae ("vhost: fix IP checksum")
Cc: stable@dpdk.org
Signed-off-by: Flavio Leitner <fbl@sysclose.org>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
lib/librte_vhost/virtio_net.c