From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pa0-f43.google.com (mail-pa0-f43.google.com [209.85.220.43]) by dpdk.org (Postfix) with ESMTP id 7CA4658EF for ; Tue, 29 Sep 2015 04:24:52 +0200 (CEST) Received: by pacfv12 with SMTP id fv12so195101473pac.2 for ; Mon, 28 Sep 2015 19:24:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=RRR+Zr/Sm7yRvdg23+zeD41HmjEEQ6T73i67ps1XCn8=; b=JW8OdWpXldRddQQ1ajKh6toXyicQHjau+zJ/OVI7OQ8uMByr5/I7eq47iKLbrVGUC4 t3trrDfpiMNWSUUSOnoHelcJKOrK0QRyij5nGWlI4tpG8rz9q6Vuhaq7nR3rDpvfER3T 8d09A73vf5MrfqrEURAqjSSDnIFMufaxVrmfViPqeL2TbigJA7QC0FojwMX4bEpWrD6E koipxMQdVWRIiTMazBkj1Dt4kGjoHf3uhaKBntzDVZTsjizyCOsftJfSW6cBEyfAOizH ngdNFb+pPXpdLySRw0NLkWosfypQA/kCfUEFib2mfGD9zw6tmXuIopJ+61yDhvF6LMmi jSnQ== X-Gm-Message-State: ALoCoQkGWS20CVlU1CjVzvUJmE0XofLRhLsyjokXKrhpgCZZLOCGu3jbJHdPzmOYh/03EO3nbUIf X-Received: by 10.68.253.65 with SMTP id zy1mr30469497pbc.159.1443493491876; Mon, 28 Sep 2015 19:24:51 -0700 (PDT) Received: from [10.16.129.101] (napt.igel.co.jp. [219.106.231.132]) by smtp.googlemail.com with ESMTPSA id fe8sm22173179pab.40.2015.09.28.19.24.50 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Sep 2015 19:24:51 -0700 (PDT) To: Tomasz Kulasek , dev@dpdk.org References: <1435589444-1988-1-git-send-email-tomaszx.kulasek@intel.com> <1436981189-3320-1-git-send-email-tomaszx.kulasek@intel.com> <1436981189-3320-5-git-send-email-tomaszx.kulasek@intel.com> From: Tetsuya Mukawa X-Enigmail-Draft-Status: N1110 Message-ID: <5609F673.80405@igel.co.jp> Date: Tue, 29 Sep 2015 11:24:51 +0900 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <1436981189-3320-5-git-send-email-tomaszx.kulasek@intel.com> Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCHv4 4/9] null: virtual dynamic rss configuration 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: Tue, 29 Sep 2015 02:24:53 -0000 On 2015/07/16 2:26, Tomasz Kulasek wrote: > This implementation allows to set and read RSS configuration for null > device, and is used to validate right values propagation over the slaves, > in test units for dynamic RSS configuration for bonding. > > Signed-off-by: Tomasz Kulasek > --- > drivers/net/null/rte_eth_null.c | 116 +++++++++++++++++++++++++++++++++++++++ > 1 file changed, 116 insertions(+) > > diff --git a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c > index 39ffcde..f393422 100644 > --- a/drivers/net/null/rte_eth_null.c > +++ b/drivers/net/null/rte_eth_null.c > +static int > +eth_rss_hash_update(struct rte_eth_dev *dev, struct rte_eth_rss_conf *rss_conf) > +{ > + struct pmd_internals *internal = dev->data->dev_private; > + > + rte_spinlock_lock(&internal->rss_lock); > + > + if ((rss_conf->rss_hf & internal->flow_type_rss_offloads) != 0) > + dev->data->dev_conf.rx_adv_conf.rss_conf.rss_hf = > + rss_conf->rss_hf & internal->flow_type_rss_offloads; > + > + if (rss_conf->rss_key) > + memcpy(internal->rss_key, rss_conf->rss_key, 40); > + > + rte_spinlock_unlock(&internal->rss_lock); > + > + return 0; > +} > + > +static int > +eth_rss_hash_conf_get(struct rte_eth_dev *dev, > + struct rte_eth_rss_conf *rss_conf) > +{ > + struct pmd_internals *internal = dev->data->dev_private; > + > + rte_spinlock_lock(&internal->rss_lock); > + > + rss_conf->rss_hf = dev->data->dev_conf.rx_adv_conf.rss_conf.rss_hf; > + if (rss_conf->rss_key) > + memcpy(rss_conf->rss_key, internal->rss_key, 40); > + > + rte_spinlock_unlock(&internal->rss_lock); > + > + return 0; > +} > + > static const struct eth_dev_ops ops = { > .dev_start = eth_dev_start, > .dev_stop = eth_dev_stop, > @@ -436,6 +547,11 @@ eth_dev_null_create(const char *name, > internals->packet_copy = packet_copy; > internals->numa_node = numa_node; > > + internals->flow_type_rss_offloads = ETH_RSS_PROTO_MASK; > + internals->reta_size = RTE_DIM(internals->reta_conf) * RTE_RETA_GROUP_SIZE; > + > + memcpy(internals->rss_key, default_rss_key, 40); > + > eth_drv->pci_drv.name = drivername; > > pci_dev->numa_node = numa_node; Hi Thomasz, I am just curious. Is it possible to use rte_memcpy instead of memcpy? if we can, rte_memcpy may be faster. Tetsuya