avf: fix checksum offload configuration 17/38117/2
authorTing Xu <ting.xu@intel.com>
Thu, 2 Feb 2023 02:06:12 +0000 (02:06 +0000)
committerDamjan Marion <dmarion@0xa5.net>
Wed, 8 Feb 2023 10:09:04 +0000 (10:09 +0000)
Fix some configurations of avf checksum offload to get the correct
udp and tcp checksum. Change Tx checksum offload capability since
avf supports ipv4, tcp and udp offload all. Remove the operation to
swap bit of checksum.

Type: fix

Signed-off-by: Ting Xu <ting.xu@intel.com>
Change-Id: I55a916cc9ee6bef5b2074b5b6bb5f517fc2c178d

src/plugins/avf/device.c
src/plugins/avf/output.c

index b0f6244..c405d2e 100644 (file)
@@ -1763,7 +1763,7 @@ avf_create_if (vlib_main_t * vm, avf_create_if_args_t * args)
   /* set hw interface caps */
   vnet_hw_if_set_caps (vnm, ad->hw_if_index,
                       VNET_HW_IF_CAP_INT_MODE | VNET_HW_IF_CAP_MAC_FILTER |
-                        VNET_HW_IF_CAP_L4_TX_CKSUM | VNET_HW_IF_CAP_TCP_GSO);
+                        VNET_HW_IF_CAP_TX_CKSUM | VNET_HW_IF_CAP_TCP_GSO);
 
   for (i = 0; i < ad->n_rx_queues; i++)
     {
index 8cc76a6..116b055 100644 (file)
@@ -123,8 +123,6 @@ avf_tx_prepare_cksum (vlib_buffer_t * b, u8 is_tso)
          sum = ~clib_ip_csum ((u8 *) &psh, sizeof (psh));
        }
 
-  /* ip_csum does a byte swap for some reason... */
-  sum = clib_net_to_host_u16 (sum);
   if (is_tcp)
     tcp->checksum = sum;
   else