From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qa0-f47.google.com (mail-qa0-f47.google.com [209.85.216.47]) by dpdk.org (Postfix) with ESMTP id 152046832 for ; Fri, 13 Jun 2014 13:51:15 +0200 (CEST) Received: by mail-qa0-f47.google.com with SMTP id hw13so2010277qab.20 for ; Fri, 13 Jun 2014 04:51:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=JZ67sVU3MjQI6cAG3v6hJ7MMEuXHbLAGtYXaKmtxJSM=; b=bZJHPysdyOSOsn9jYsdzDtDpDOHKw8rCxsAcNXF7YLedNVPA40Q5YYqhxqfEZQ0yY+ mdbg4DxlCvNkHKfT2hotC0kEvzNuh4OYOwfnpjIrsk5fwzHIrbgN7ei7TJC3NNyFF1uP QYENqGn0JY9cOKDU+P1aNA2psRIyrIXrmokSASKGYFzrdQXvJOAasQQDZSB7KENKgm6A r6ie7lXQke35K9cvv7RCukoPm0IEHcbYgOJB22ZmYcVMOc8NX5g80LgXpHXsb1dtlKGP kz6y6B1NXz2ifpoZQBJpwxd7uOtQsAr7F4mFliAHq+OBEVX0aHLZOCEHk5u5v94is98y OiVQ== MIME-Version: 1.0 X-Received: by 10.140.93.2 with SMTP id c2mr2522779qge.53.1402660291096; Fri, 13 Jun 2014 04:51:31 -0700 (PDT) Received: by 10.140.30.55 with HTTP; Fri, 13 Jun 2014 04:51:31 -0700 (PDT) In-Reply-To: <27520622.tiYQNKLyvh@xps13> References: <1400895442-32433-1-git-send-email-jingjing.wu@intel.com> <2116871.SYCYqgDKRI@xps13> <9BB6961774997848B5B42BEC655768F8A8BBB5@SHSMSX104.ccr.corp.intel.com> <27520622.tiYQNKLyvh@xps13> Date: Fri, 13 Jun 2014 15:51:31 +0400 Message-ID: From: Vladimir Medvedkin To: Thomas Monjalon Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH v2 0/4] NIC filters support for generic filter 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: Fri, 13 Jun 2014 11:51:17 -0000 Hi all, The 82599 datasheet (p. 284 and p.287) has only recommendations and only when possible about assign rx queue not used by RSS/DCB. I do not see any serious restrictions do not assign the rx queue used by RSS/DCB. For cases with only 1 queue if I understand correctly this patch http://dpdk.org/ml/archives/dev/2014-May/002589.html we can init second queue in pool and assign it by filter. In *ETH_MQ_RX_VMDQ_ONLY* mode init all possible queues (even if hardware route packets to zero queue in pools) so there no problem. Moreover, it is not necesary for rx queue to be set in the same pool. About genericity. I agree with Jingjing, different controllers have different definitions for pools or VFs. And it is only Intel controllers! It is very hard to predict hardware implementation. For example for Fortville I can not find 5-tuple filters at all. API. I have several remarks. 1. You use rx_queue as separate arg. For example: rte_eth_dev_add_ethertype_filter(uint8_t port_id, uint16_t index, struct rte_ethertype_filter *filter, uint8_t rx_queue) rte_eth_dev_get_ethertype_filter(uint8_t port_id, uint16_t index, struct rte_ethertype_filter *filter, uint8_t *rx_queue) you can move uint8_t rx_queue into struct rte_ethertype_filter *filter. 2. In SYN filter: rte_eth_dev_add_syn_filter(uint8_t port_id, uint8_t high_pri, uint8_t rx_queue) rte_eth_dev_get_syn_filter(uint8_t port_id, struct rte_syn_filter *filter, uint8_t *rx_queue) In first ADD func you alloc struct rte_syn_filter inside func, but in GET func you have to alloc struct rte_syn_filter in your app. May be better to do rte_eth_dev_add_syn_filter(uint8_t port_id, struct rte_syn_filter *filter, uint8_t *rx_queue) ? So, Jingjing made a lot of work, much more then I (igb filters, testpmd commands). It works the same as mine (not counting pools logic), so let's integrate it (it's will be great if jingjing change api according to my remarks). Regards, Vladimir 2014-06-12 19:36 GMT+04:00 Thomas Monjalon : > > 2014-06-11 17:45, Thomas Monjalon: > > > My main concern is that Vladimir Medvedkin suggested another API and > I'd > > > like you give your opinion about it: > > > http://dpdk.org/ml/archives/dev/2014-June/003053.html > > > It offers pool number in configuration of the filters. > > 2014-06-12 08:08, Wu, Jingjing: > > The pool field is used in virtualization scenario. It is acting as one of > > input set during filter matching in ixgbe. > > My patch didn't consider the virtualization scenario in generic filter > > feature. Because in 82599 datasheet, it is recommended to assign rx > queues > > not used by DCB/RSS, that is virtualization without RSS and DCB mode. For > > this mode, current DPDK version makes the number of queue to 1 by > default in > > IOV mode. So in this case it makes no sense make pool as a input set and > the > > rx queue also need to be set to in this pool, so just keep the consistent > > with flow director who also ignore it in previous version. > > And further E1000/Niantic/Fortville have different definitions for VF, we > > need to think how to define it more generic. > > And even just need offer pool number in configuration of the filters as > what > > Vladimir did, it also need to verify the interworking with Virtualization > > for different kinds of NICs, and the interworking with DCB and RSS which > is > > not recommended in 82599's datasheet. > > So I think it will be a good choice to implement generic filter > interworking > > with virtualization in future patch. If there is any volunteer to send > patch > > for support this concern later, it will be also cool. > > Vladimir, do you agree with this analysis? > As you suggested another implementation, I need you acknowledgment for this > patchset to be integrated. > > Thanks > -- > Thomas >