2016-03-23 05:57, Yong Wang: > From: Ding, HengX > > Testpmd will fail to start up with vmxnet3 port. [...] > Currently vmxnet3?s default_txconf.txq_flags is set to the following, which > is used by testpmd > as there is no explicit txconf passed when initializing tx queue: > > dev_info->default_txconf.txq_flags = ETH_TXQ_FLAGS_NOMULTSEGS | > ETH_TXQ_FLAGS_NOOFFLOADS;
In vmxnet3_dev_tx_queue_setup: if ((tx_conf->txq_flags & ETH_TXQ_FLAGS_NOXSUMS) != ETH_TXQ_FLAGS_NOXSUMSCTP) { PMD_INIT_LOG(ERR, "SCTP checksum offload not supported"); return -EINVAL; } It means we cannot disable TCP or UDP checksum offload. ETH_TXQ_FLAGS_NOXSUMS = NOXSUMSCTP + NOXSUMUDP + NOXSUMTCP I think it should be: if ((tx_conf->txq_flags & ETH_TXQ_FLAGS_NOXSUMSCTP) != ETH_TXQ_FLAGS_NOXSUMSCTP) { > With the referred patch that introduced l4 cksum offload, we should update > the default txq > flags check accordingly. Heng, can you post the error logs to confirm this > is indeed the cause > of the error you reported? The default conf is ETH_TXQ_FLAGS_NOOFFLOADS (= NOVLANOFFL + NOXSUMS). Yes you can update the default conf, *and* fix the check above. > Related to this, I saw that the check for NOMULTISEGS has been removed and > the check for > NOVLANOFF was never implemented. Should we just remove the offload flags > check as well > as I don?t see much value of this check. Basically we know that the device > does not support > certain offload and we have to set those flags to let the device initialize. > But doing this does > nothing to prevent users to request these non-supported offload. I also saw > another thread > discussing better device capability APIs and hopefully this will not be > needed then These checks are important to throw an error if an offload is requested but not supported.