<div dir="ltr">Ok Stephen, thanks for the information, I can try that.<div><br></div><div>One of the problems I see with single Tx Queue mode is that Ixia reports packet drops, though I confirmed with the help of counters (before invoking tx burst) that all packets are being sent-out. Dumping HW counters don't report any drops in TX. </div><div>Is there a mechanism in DPDK to debug this?</div><div><br></div><div>Thanks & Regards,</div><div>Rajasekhar</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Feb 17, 2023 at 1:21 AM Stephen Hemminger <<a href="mailto:stephen@networkplumber.org">stephen@networkplumber.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, 16 Feb 2023 23:40:27 +0530<br>
Rajasekhar Pulluru <<a href="mailto:pullururajasekhar@gmail.com" target="_blank">pullururajasekhar@gmail.com</a>> wrote:<br>
<br>
> Hi Team,<br>
> <br>
> I am trying to set-up 8 Tx-Queues (but only 1 Rx-Queue) and burst traffic<br>
> out of different Tx-Queues from the same cpu core on an ixgbe nic (10G).<br>
> Although transmitted packets reach the peer, reading the statistics<br>
> indicates only the Tx-q[0] has non-zero packets and bytes count, the rest<br>
> of the Tx-q[1] to Tx-q[7] all have zero packets and bytes count.<br>
> <br>
> I am following the below sequence.<br>
> <br>
> 1. configuration<br>
> rte_eth_dev_configure(port-id, 1 /* only 1 rx-q */, 8 /* tx-queues */,<br>
> &dev_conf /* memset of 0 on this dev_conf done */);<br>
> <br>
> 2. tx queue set-up<br>
> struct rte_eth_dev_info dev_info;<br>
> rte_eth_dev_info_get(port-id, &dev_info);<br>
> <br>
> struct rte_eth_txconf tx_conf;<br>
> memcpy(&tx_conf, &dev_info.default_txconf, sizeof tx_conf);<br>
> for(i=0; i<8; i++) {<br>
> rte_eth_tx_queue_setup(port-id, i /* queue-id */, 1024 /* num_of_txdesc */,<br>
> numa_node, &tx_conf;)<br>
> }<br>
> <br>
> 3. rx queue set-up<br>
> rte_eth_rx_queue_setup(port-id, 0, 1024 /* num_of_rxdesc */, &rx_conf,<br>
> mbuf_pool);<br>
> <br>
> 4. start the port<br>
> rte_eth_dev_start(port-id);<br>
> <br>
> 5. call the below tx burst function with different queue-id (range 0 to 7)<br>
> every-time for every burst of new packets to be transmitted<br>
> rte_eth_tx_burst(port-id, queue-id, pkts_burst, nb_pkts_burst);<br>
> <br>
> 6. read stats using rte_eth_xstats_get and verified that only the first<br>
> tx-q has non-zero packets and bytes count, rest of the tx-q's have 0<br>
> packets and bytes count.<br>
> <br>
> What could be wrong here? Appreciate any help.<br>
> <br>
> Thanks & Regards,<br>
> Rajasekhar<br>
> ReplyForward<br>
<br>
Depending on the type of NIC, some share a signal completion channel<br>
for both RX and TX. If the Rx channel is not polled, than transmit completions<br>
may not happen.<br>
</blockquote></div>