Hi,  Kevin Traynor
        This patch is based on Yigit Ferruh's suggestion in the following mail.
https://mails.dpdk.org/archives/dev/2019-May/132178.html
If we take your propose, it means we do need any patch at all.
Because the code implement now is just that scheme, we will do "or" for 
offloads.
Hello Ferruh,What is your comment?

> -----Original Message-----
> From: Kevin Traynor [mailto:ktray...@redhat.com]
> Sent: Monday, June 10, 2019 6:10 PM
> To: Zhao1, Wei <wei.zh...@intel.com>; dev@dpdk.org
> Cc: sta...@dpdk.org; Yigit, Ferruh <ferruh.yi...@intel.com>
> Subject: Re: [dpdk-dev] [PATCH] app/testpmd: fix offloads default set error
> 
> On 10/06/2019 07:45, Wei Zhao wrote:
> > There is no need to use default offloads configuration if offloads
> > configuration has been pass down from uplayer.
> >
> 
> It doesn't seem like the right fix to me. It means if a user enable/disable 
> one
> offload in the command line they are silently changing from the default
> behaviour of other offloads? I could understand if the user set all offloads 
> in
> one go through a mask but not when they are set seemingly independent.
> 
> It looks like you need to track which ones have been enabled/disabled by the
> user, and use the default for for the other offloads.
> 
> > Fixes: 5e91aeef218c ("app/testpmd: fix offload flags after port
> > config")
> >
> > Signed-off-by: Wei Zhao <wei.zh...@intel.com>
> > ---
> >  app/test-pmd/testpmd.c | 6 ++++--
> >  1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index
> > 0148b0a..b5f5801 100644
> > --- a/app/test-pmd/testpmd.c
> > +++ b/app/test-pmd/testpmd.c
> > @@ -2815,7 +2815,8 @@ rxtx_port_config(struct rte_port *port)
> >     for (qid = 0; qid < nb_rxq; qid++) {
> >             offloads = port->rx_conf[qid].offloads;
> >             port->rx_conf[qid] = port->dev_info.default_rxconf;
> > -           port->rx_conf[qid].offloads |= offloads;
> > +           if (offloads)
> > +                   port->rx_conf[qid].offloads = offloads;
> >
> >             /* Check if any Rx parameters have been passed */
> >             if (rx_pthresh != RTE_PMD_PARAM_UNSET) @@ -2839,7
> +2840,8 @@
> > rxtx_port_config(struct rte_port *port)
> >     for (qid = 0; qid < nb_txq; qid++) {
> >             offloads = port->tx_conf[qid].offloads;
> >             port->tx_conf[qid] = port->dev_info.default_txconf;
> > -           port->tx_conf[qid].offloads |= offloads;
> > +           if (offloads)
> > +                   port->tx_conf[qid].offloads = offloads;
> >
> >             /* Check if any Tx parameters have been passed */
> >             if (tx_pthresh != RTE_PMD_PARAM_UNSET)
> >

Reply via email to