> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Tetsuya Mukawa
> Sent: Tuesday, September 29, 2015 4:25 AM
> To: Kulasek, TomaszX; dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCHv4 4/9] null: virtual dynamic rss configuration
> 
> 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 <tomaszx.kulasek at intel.com>
> > ---
> >  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

Hi Tetsuya,
Could You please review v5 that Tomasz sent and if You agree with this 
implementation could You also ACK this patch-set?

Reply via email to