[dpdk-dev] transmit functions of dpdk

Bruce Richardson bruce.richardson at intel.com
Wed Dec 10 12:45:17 CET 2014


On Wed, Dec 10, 2014 at 12:31:27PM +0100, Sachin Sharma wrote:
> Hi Bruce,
> 
> In my use case, I want to have three NIC TX queues per port, and want to
> fill one NIC TX queue and want to empty the other queue. Is it possible
> this through tx_burst or do I need to implement these queues in
> applications as you suggested before. However, in this case, I would have
> then one NIC TX queues and three queues in an application which actually
> transmits packets to this NIC TX queue. Am I right?
> 

For the suggestion I made, yes, you would have three software queues in your
application, and a single TX on the NIC - though you could also have a 1:1 mapping
of software to HW queues if you wanted.
However, I'm not entirely clear on what you mean by filling one queue and emptying
another. Is this just a form of buffering you are trying to implement?

> Thanks,
> Sachin.
> 
> On Wed, Dec 10, 2014 at 12:22 PM, Bruce Richardson <
> bruce.richardson at intel.com> wrote:
> 
> > On Wed, Dec 10, 2014 at 12:03:41PM +0100, Sachin Sharma wrote:
> > > Dear all,
> > >
> > >  In my algorithm, I am interested to perform  two activities - (1)
> > > transmitting packets to a tx_queue and (2) transmitting packets from
> > > tx_queue to a wire - separately. I have gone through the code by putting
> > > logs in the dpdk code and found that there is a function rte_eth_tx_burst
> > > which transmits packets to a specific queue. However, when I debugged
> > more
> > > then I found that this function just calls eth_igb_xmit_pkts
> > > from librte_pmd_e1000, and this function just directly write the packets
> > to
> > > the wire by writing all packets into registers. Could you please suggest
> > > how to implement these two functions if these are not implemented already
> > > in dpdk?
> > >
> > >
> > >
> > > Thanks & Regards,
> > > Sachin.
> >
> > Hi Sachin,
> >
> > anything written to the NIC TX queue is automatically put onto the wire
> > unless
> > the NIC port is down or the wire is unplugged etc. What is your use-case
> > that you
> > need to do this? I would suggest doing internal buffering in your
> > application,
> > as many DPDK example applications do, and then call tx_burst to put your
> > packets
> > on the wire when you want this capability.
> >
> > Regards,
> > /Bruce
> >


More information about the dev mailing list