Hi Ting,

> -----Original Message-----
> From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Iremonger, Bernard
> Sent: Monday, October 14, 2019 12:26 PM
> To: Xu, Ting <ting...@intel.com>; dev@dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo...@intel.com>; Wu, Jingjing
> <jingjing...@intel.com>; sta...@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v1] app/testpmd: fix CRC strip config error
> 
> Hi Ting,
> 
> > -----Original Message-----
> > From: Xu, Ting
> > Sent: Saturday, October 12, 2019 1:19 PM
> > To: dev@dpdk.org
> > Cc: Lu, Wenzhuo <wenzhuo...@intel.com>; Wu, Jingjing
> > <jingjing...@intel.com>; Iremonger, Bernard
> > <bernard.iremon...@intel.com>; sta...@dpdk.org
> > Subject: [PATCH v1] app/testpmd: fix CRC strip config error
> >
> > This patch fixed the bug that an error appears when config rx_offload
> > crc_strip using command "port config all crc-strip on|off". The reason
> > is that this command was removed previously. However, the current
> > command does not enable "crc_strip" option properly, so that testpmd
> > returns error when config crc_strip.
> >
> > In this patch, an additional operation is added to recognize "crc_strip"
> > option, since "crc_strip" and "keep_crc" are using the same flag
> > "DEV_RX_OFFLOAD_KEEP_CRC". The current command is "port config
> > <port_id> rx_offload crc_strip on|off".
> >
> > Fixes: e5db17a1e54e ("app/testpmd: remove duplicated Rx offload
> > commands")
> > Cc: sta...@dpdk.org
> >
> > Signed-off-by: Ting Xu <ting...@intel.com>
> > ---
> >  app/test-pmd/cmdline.c | 10 +++++++++-
> >  1 file changed, 9 insertions(+), 1 deletion(-)
> >
> > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index
> > def471d97..31dbe4a07 100644
> > --- a/app/test-pmd/cmdline.c
> > +++ b/app/test-pmd/cmdline.c
> > @@ -18084,6 +18084,9 @@ search_rx_offload(const char *name)
> >     int found = 0;
> >     unsigned int bit;
> >
> > +   if (!strcmp(name, "crc_strip"))
> > +           name = "keep_crc";
> > +


I don't understand why the name is being changed from "crc_strip" to "keep_crc" 
here?

> >     single_offload = 1;
> >     for (bit = 0; bit < sizeof(single_offload) * CHAR_BIT; bit++) {
> >             single_name =
> > rte_eth_dev_rx_offload_name(single_offload);
> > @@ -18113,6 +18116,7 @@ cmd_config_per_port_rx_offload_parsed(void
> > *parsed_result,
> >     uint16_t nb_rx_queues;
> >     int q;
> >     int ret;
> > +   int res_on_off = 1;
> >
> >     if (port->port_status != RTE_PORT_STOPPED) {
> >             printf("Error: Can't config offload when Port %d "
> > @@ -18131,7 +18135,11 @@
> cmd_config_per_port_rx_offload_parsed(void
> > *parsed_result,
> >             return;
> >
> >     nb_rx_queues = dev_info.nb_rx_queues;
> > -   if (!strcmp(res->on_off, "on")) {
> > +   res_on_off = strcmp(res->on_off, "on");
> > +
> > +   if (!strcmp(res->offload, "crc_strip"))
> > +           res_on_off = ~res_on_off;
> 
> It looks as if res_on_off is intended to have a value of 0 or 1.
> The above line gives it a value of -1, is this intended ?
> 
> > +   if (!res_on_off) {
> >             port->dev_conf.rxmode.offloads |= single_offload;
> >             for (q = 0; q < nb_rx_queues; q++)
> >                     port->rx_conf[q].offloads |= single_offload;
> > --
> > 2.17.1
> 
> Regards,
> 
> Bernard.

Regards,

Bernard.

Reply via email to