• D
    net/vmxnet3: Fix RX TCP/UDP checksum on partially summed packets · 80da311d
    Dana Rubin 提交于
    Convert partially summed packets to be fully checksummed.
    
    In case csum offloaded packet, vmxnet3 implementation always passes an
    RxCompDesc with the "Checksum calculated and found correct" notification
    to the OS. This emulates the observed ESXi behavior.
    
    Therefore, if packet has the NEEDS_CSUM bit set, we must calculate and
    place a fully computed checksum into the tcp/udp header. Otherwise, the
    OS driver will receive a checksum-correct indication but with the actual
    tcp/udp checksum field having just the pseudo header csum value.
    
    If host OS performs forwarding, it will forward an incorrectly
    checksummed packet.
    Signed-off-by: NDana Rubin <dana.rubin@ravellosystems.com>
    Signed-off-by: NShmulik Ladkani <shmulik.ladkani@ravellosystems.com>
    Message-id: 1436864116-19154-3-git-send-email-shmulik.ladkani@ravellosystems.com
    Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
    80da311d
vmxnet3.c 75.6 KB