virtio: check for transmit checksum config error
authorStephen Hemminger <stephen@networkplumber.org>
Sat, 14 Jun 2014 01:06:21 +0000 (18:06 -0700)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 22 Jul 2014 13:00:01 +0000 (15:00 +0200)
This driver does not support transmit checksum or vlan offload
therefore check for this when device is configured.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Alan Carew <alan.carew@intel.com>
lib/librte_pmd_virtio/virtio_rxtx.c

index 4c45cdb..2c68f40 100644 (file)
@@ -391,13 +391,20 @@ virtio_dev_tx_queue_setup(struct rte_eth_dev *dev,
                        uint16_t queue_idx,
                        uint16_t nb_desc,
                        unsigned int socket_id,
-                       __rte_unused const struct rte_eth_txconf *tx_conf)
+                       const struct rte_eth_txconf *tx_conf)
 {
        uint8_t vtpci_queue_idx = 2 * queue_idx + VTNET_SQ_TQ_QUEUE_IDX;
        struct virtqueue *vq;
        int ret;
 
        PMD_INIT_FUNC_TRACE();
+
+       if ((tx_conf->txq_flags & ETH_TXQ_FLAGS_NOOFFLOADS)
+           != ETH_TXQ_FLAGS_NOOFFLOADS) {
+               PMD_INIT_LOG(ERR, "TX checksum offload not supported\n");
+               return -EINVAL;
+       }
+
        ret = virtio_dev_queue_setup(dev, VTNET_TQ, queue_idx, vtpci_queue_idx,
                        nb_desc, socket_id, &vq);
        if (ret < 0) {