Hi, > > Commit 1bbcc5d21129 ("i40evf: report error for unsupported CRC > stripping config") broke l3fwd, since it was forcing that CRC was > kept. Now, if i40evf is running, CRC stripping will be enabled. > > Signed-off-by: Bj?rn T?pel <bjorn.topel at intel.com> > --- > examples/l3fwd/main.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c > index 7223e773107e..b60278794135 100644 > --- a/examples/l3fwd/main.c > +++ b/examples/l3fwd/main.c > @@ -906,6 +906,14 @@ main(int argc, char **argv) > n_tx_queue = MAX_TX_QUEUE_PER_PORT; > printf("Creating queues: nb_rxq=%d nb_txq=%u... ", > nb_rx_queue, (unsigned)n_tx_queue ); > + rte_eth_dev_info_get(portid, &dev_info); > + if (dev_info.driver_name && > + strcmp(dev_info.driver_name, "net_i40e_vf") == 0) { > + /* i40evf require that CRC stripping is enabled. */ > + port_conf.rxmode.hw_strip_crc = 1; > + } else { > + port_conf.rxmode.hw_strip_crc = 0; > + }
That's a common problem across Intel VF devices. Bothe igb and ixgbe overcomes that problem just by forcing ' rxmode.hw_strip_crc = 1;' at PMD itself: static int ixgbevf_dev_configure(struct rte_eth_dev *dev) { ... /* * 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 Wonder, can't i40e VF do the same? BTW, all other examples would experience same problem too, right? Konstantin > ret = rte_eth_dev_configure(portid, nb_rx_queue, > (uint16_t)n_tx_queue, &port_conf); > if (ret < 0) > @@ -946,7 +954,6 @@ main(int argc, char **argv) > printf("txq=%u,%d,%d ", lcore_id, queueid, socketid); > fflush(stdout); > > - rte_eth_dev_info_get(portid, &dev_info); > txconf = &dev_info.default_txconf; > if (port_conf.rxmode.jumbo_frame) > txconf->txq_flags = 0; > -- > 2.9.3