From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 40B48282 for ; Wed, 10 Dec 2014 12:45:22 +0100 (CET) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP; 10 Dec 2014 03:43:24 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.07,552,1413270000"; d="scan'208";a="621530742" Received: from bricha3-mobl3.ger.corp.intel.com ([10.243.20.31]) by orsmga001.jf.intel.com with SMTP; 10 Dec 2014 03:45:19 -0800 Received: by (sSMTP sendmail emulation); Wed, 10 Dec 2014 11:45:17 +0025 Date: Wed, 10 Dec 2014 11:45:17 +0000 From: Bruce Richardson To: Sachin Sharma Message-ID: <20141210114517.GD10056@bricha3-MOBL3> References: <20141210112233.GC10056@bricha3-MOBL3> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Organization: Intel Shannon Ltd. User-Agent: Mutt/1.5.23 (2014-03-12) Cc: dev@dpdk.org Subject: Re: [dpdk-dev] transmit functions of dpdk X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Dec 2014 11:45:23 -0000 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@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 > >