Hi,
> -----Original Message----- > From: Iremonger, Bernard <bernard.iremon...@intel.com> > Sent: Wednesday, January 8, 2020 6:17 PM > To: Ori Kam <or...@mellanox.com>; dev@dpdk.org; Xing, Beilei > <beilei.x...@intel.com>; Zhang, Qi Z <qi.z.zh...@intel.com>; Doherty, > Declan <declan.dohe...@intel.com> > Cc: Ananyev, Konstantin <konstantin.anan...@intel.com> > Subject: RE: [dpdk-dev] [PATCH v2 01/10] app/testpmd: parse flow > command line for ESP > > Hi Ori, > > Thanks for the review. > > <snip> > > > Subject: RE: [dpdk-dev] [PATCH v2 01/10] app/testpmd: parse flow > > command line for ESP > > > > Hi just small comment inside. > > Thanks, > > Ori > > > > > -----Original Message----- > > > From: dev <dev-boun...@dpdk.org> On Behalf Of Bernard Iremonger > > > Sent: Tuesday, December 17, 2019 12:16 PM > > > To: dev@dpdk.org; beilei.x...@intel.com; qi.z.zh...@intel.com; > > > declan.dohe...@intel.com > > > Cc: konstantin.anan...@intel.com; bernard.iremon...@intel.com > > > Subject: [dpdk-dev] [PATCH v2 01/10] app/testpmd: parse flow > command > > > line for ESP > > > > > > add ITEM_ESP > > > add ITEM_ESP_SPI > > > add debug to cmdline_flow.c > > > > > > Signed-off-by: Bernard Iremonger <bernard.iremon...@intel.com> > > > --- > > > app/test-pmd/cmdline_flow.c | 37 > > > ++++++++++++++++++++++++++++++++++--- > > > 1 file changed, 34 insertions(+), 3 deletions(-) > > > > > > diff --git a/app/test-pmd/cmdline_flow.c b/app/test- > pmd/cmdline_flow.c > > > index 99dade7..f1b0610 100644 > > > --- a/app/test-pmd/cmdline_flow.c > > > +++ b/app/test-pmd/cmdline_flow.c > > > @@ -213,6 +213,8 @@ enum index { > > > ITEM_TAG, > > > ITEM_TAG_DATA, > > > ITEM_TAG_INDEX, > > > + ITEM_ESP, > > > + ITEM_ESP_SPI, > > > > > > /* Validate/create actions. */ > > > ACTIONS, > > > @@ -746,6 +748,7 @@ static const enum index next_item[] = { > > > ITEM_PPPOE_PROTO_ID, > > > ITEM_HIGIG2, > > > ITEM_TAG, > > > + ITEM_ESP, > > > END_SET, > > > ZERO, > > > }; > > > @@ -1017,6 +1020,12 @@ static const enum index item_higig2[] = { > > > ZERO, > > > }; > > > > > > +static const enum index item_esp[] = { > > > + ITEM_ESP_SPI, > > > + ITEM_NEXT, > > > + ZERO, > > > +}; > > > + > > > static const enum index next_set_raw[] = { > > > SET_RAW_INDEX, > > > ITEM_ETH, > > > @@ -2593,6 +2602,20 @@ static const struct token token_list[] = { > > > NEXT_ENTRY(ITEM_PARAM_IS)), > > > .args = ARGS(ARGS_ENTRY(struct rte_flow_item_tag, > > index)), > > > }, > > > + [ITEM_ESP] = { > > > + .name = "esp", > > > + .help = "match ESP header", > > > + .priv = PRIV_ITEM(ESP, sizeof(struct rte_flow_item_esp)), > > > + .next = NEXT(item_esp), > > > + .call = parse_vc, > > > + }, > > > + [ITEM_ESP_SPI] = { > > > + .name = "spi", > > > + .help = "security policy index", > > > + .next = NEXT(item_esp, NEXT_ENTRY(UNSIGNED), > > > item_param), > > > + .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_esp, > > > + hdr.spi)), > > > + }, > > > /* Validate/create actions. */ > > > [ACTIONS] = { > > > .name = "actions", > > > @@ -6052,6 +6075,9 @@ cmd_flow_tok(cmdline_parse_token_hdr_t > > **hdr, > > > static void cmd_flow_parsed(const struct buffer *in) { > > > + printf("Flow command line parsed successfully for > > > command=%d.\n", > > > + in->command); > > > + > > > > Why adding this printf? > > It is useful to know that the parsing of the flow command line is successful > before going into the PMD code. > I will remove in the v3 if you think it is too verbose. > I think it is to verbose, due to the fact that in normal case the parsing will succeed, Which means there will be a lot of print (In our testing we can have more then 200K commands). So I prefer to remove it, but if you think it is critical you can use the verbose_level with high value. If you remove it feel free to add my ack on v3. > > > > > switch (in->command) { > > > case VALIDATE: > > > port_flow_validate(in->port, &in->args.vc.attr, @@ -6230,14 > > > +6256,15 @@ flow_item_default_mask(const struct rte_flow_item > *item) > > > case RTE_FLOW_ITEM_TYPE_GTP: > > > mask = &rte_flow_item_gtp_mask; > > > break; > > > - case RTE_FLOW_ITEM_TYPE_ESP: > > > - mask = &rte_flow_item_esp_mask; > > > - break; > > > case RTE_FLOW_ITEM_TYPE_GTP_PSC: > > > mask = &rte_flow_item_gtp_psc_mask; > > > break; > > > case RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID: > > > mask = &rte_flow_item_pppoe_proto_id_mask; > > > + break; > > > + case RTE_FLOW_ITEM_TYPE_ESP: > > > + mask = &rte_flow_item_esp_mask; > > > + break; > > > default: > > > break; > > > } > > > @@ -6327,6 +6354,10 @@ cmd_set_raw_parsed(const struct buffer *in) > > > case RTE_FLOW_ITEM_TYPE_GENEVE: > > > size = sizeof(struct rte_flow_item_geneve); > > > break; > > > + case RTE_FLOW_ITEM_TYPE_ESP: > > > + size = sizeof(struct rte_flow_item_esp); > > > + proto = 0x32; > > > + break; > > > default: > > > printf("Error - Not supported item\n"); > > > *total_size = 0; > > > -- > > > 2.7.4 > > Regards, > > Bernard.