Hi,

Re:
>    Subject: Re: [dpdk-dev] [PATCH] examples/l3fwd: force CRC stripping
>       for     i40evf
>    Message-ID: <cce4d31c-8a84-07aa-3361-327dba1ec77a at intel.com>
>    Thomas wrote:
>     > Just to make it sure, you mean returning an error in the driver when
>     > a configuration cannot be applied, right?
>    
>    Yes, as in 1bbcc5d21129 ("i40evf: report error for unsupported CRC
>    stripping config"), where -EINVAL is returned.
>    
>    Bj?rn

On my experience, OvS+DPDK has same issue.
You cannot run OvS on i40evf due to this CRC config mismatch, while OvS on 
ixgbevf works fine.
So, changing on i40evf PMD side would have more benefit, I believe.


[Details below]
ovs-vswitchd.log:
2016-11-10T08:53:31.290Z|00054|netdev_dpdk|WARN|Interface dpdk0 eth_dev setup 
error Invalid argument

because of
i40evf_dev_configure() returns ?EINVAL.
At here
---
i40evf_dev_configure(struct rte_eth_dev *dev)
{
<snip>
        /* For non-DPDK PF drivers, VF has no ability to disable HW
         * CRC strip, and is implicitly enabled by the PF.
         */
        if (!conf->rxmode.hw_strip_crc) {
                vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
                if ((vf->version_major == I40E_VIRTCHNL_VERSION_MAJOR) &&
                    (vf->version_minor <= I40E_VIRTCHNL_VERSION_MINOR)) {
                        /* Peer is running non-DPDK PF driver. */
                        PMD_INIT_LOG(ERR, "VF can't disable HW CRC Strip");
                        return -EINVAL;
                }
        }
<snip>
}
---

ixgbevf is same Intel NIC but implementation is different. It won?t return 
error.

ixgbevf_dev_configure(struct rte_eth_dev *dev)
{
<snip>
        /*
         * VF has no ability to enable/disable HW CRC
         * Keep the persistent behavior the same as Host PF
         */
#ifndef RTE_LIBRTE_IXGBE_PF_DISABLE_STRIP_CRC
        if (!conf->rxmode.hw_strip_crc) {
                PMD_INIT_LOG(NOTICE, "VF can't disable HW CRC Strip");
                conf->rxmode.hw_strip_crc = 1;
        }
#else
        if (conf->rxmode.hw_strip_crc) {
                PMD_INIT_LOG(NOTICE, "VF can't enable HW CRC Strip");
                conf->rxmode.hw_strip_crc = 0;
        }
#endif
<snip>
}

Regards and Thanks,
Mori

Reply via email to