dpdk: configure ip4 header checksum rx offload properly 46/15846/1
authorDamjan Marion <damarion@cisco.com>
Fri, 9 Nov 2018 22:30:20 +0000 (23:30 +0100)
committerDamjan Marion <damarion@cisco.com>
Fri, 9 Nov 2018 22:34:36 +0000 (23:34 +0100)
Change-Id: I3daf8d473aa37b4597d130d19913b782cf7b8511
Signed-off-by: Damjan Marion <damarion@cisco.com>
src/plugins/dpdk/device/dpdk.h
src/plugins/dpdk/device/init.c

index 46d53f1..007a7b9 100644 (file)
@@ -169,7 +169,8 @@ typedef struct
   _( 8, BOND_SLAVE_UP, "bond-slave-up") \
   _( 9, TX_OFFLOAD, "tx-offload") \
   _(10, INTEL_PHDR_CKSUM, "intel-phdr-cksum") \
-  _(11, RX_FLOW_OFFLOAD, "rx-flow-offload")
+  _(11, RX_FLOW_OFFLOAD, "rx-flow-offload") \
+  _(12, RX_IP4_CKSUM, "rx-ip4-cksum")
 
 enum
 {
index fcdc29b..d67540c 100644 (file)
@@ -363,6 +363,12 @@ dpdk_lib_init (dpdk_main_t * dm)
       clib_memcpy (&xd->tx_conf, &dev_info.default_txconf,
                   sizeof (struct rte_eth_txconf));
 
+      if (dev_info.rx_offload_capa & DEV_RX_OFFLOAD_IPV4_CKSUM)
+       {
+         xd->port_conf.rxmode.offloads |= DEV_RX_OFFLOAD_IPV4_CKSUM;
+         xd->flags |= DPDK_DEVICE_FLAG_RX_IP4_CKSUM;
+       }
+
       if (dm->conf->no_multi_seg)
        {
 #if RTE_VERSION < RTE_VERSION_NUM(18, 8, 0, 0)