On 4/23/2018 12:32 PM, Ophir Munk wrote: > Hi Ferruh, > The exact same setup works without your patch (done before sending my first > email). > I started debugging your patch and noticed you have dropped the setting of > txq->csum which always remains 0 therefore [1] is never executed.
I see it now, missed nested if and assumed all block is for verifying offload, thanks for pointing, I will send a new version soon, and will wait your tests. > > I am adding a patch on top of yours which fixes this issue. > FYI - I plan doing more tests to confirm that everything works as expected, > then will update. > > diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c > index a0b8922..19c7ba0 100644 > --- a/drivers/net/tap/rte_eth_tap.c > +++ b/drivers/net/tap/rte_eth_tap.c > @@ -1108,7 +1108,13 @@ enum ioctl_mode { > return -1; > dev->data->tx_queues[tx_queue_id] = &internals->txq[tx_queue_id]; > txq = dev->data->tx_queues[tx_queue_id]; > - > + if (tx_conf != NULL && > + !!(tx_conf->txq_flags & ETH_TXQ_FLAGS_IGNORE)) { > + txq->csum = !!(tx_conf->offloads & > + (DEV_TX_OFFLOAD_IPV4_CKSUM | > + DEV_TX_OFFLOAD_UDP_CKSUM | > + DEV_TX_OFFLOAD_TCP_CKSUM)); > + } > ret = tap_setup_queue(dev, internals, tx_queue_id, 0); > if (ret == -1) > return -1; > > Regards, > Ophir