From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by inbox.dpdk.org (Postfix) with ESMTP id B5E48A034E;
	Thu,  7 Nov 2019 16:00:39 +0100 (CET)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id AF0181BF1B;
	Thu,  7 Nov 2019 16:00:38 +0100 (CET)
Received: from mga11.intel.com (mga11.intel.com [192.55.52.93])
 by dpdk.org (Postfix) with ESMTP id 996E21BF19
 for <dev@dpdk.org>; Thu,  7 Nov 2019 16:00:36 +0100 (CET)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from orsmga008.jf.intel.com ([10.7.209.65])
 by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 07 Nov 2019 07:00:35 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.68,278,1569308400"; d="scan'208";a="196578266"
Received: from irsmsx103.ger.corp.intel.com ([163.33.3.157])
 by orsmga008.jf.intel.com with ESMTP; 07 Nov 2019 07:00:33 -0800
Received: from irsmsx112.ger.corp.intel.com (10.108.20.5) by
 IRSMSX103.ger.corp.intel.com (163.33.3.157) with Microsoft SMTP Server (TLS)
 id 14.3.439.0; Thu, 7 Nov 2019 15:00:32 +0000
Received: from irsmsx108.ger.corp.intel.com ([169.254.11.131]) by
 irsmsx112.ger.corp.intel.com ([169.254.1.60]) with mapi id 14.03.0439.000;
 Thu, 7 Nov 2019 15:00:32 +0000
From: "Iremonger, Bernard" <bernard.iremonger@intel.com>
To: Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>, "Yigit, Ferruh"
 <ferruh.yigit@intel.com>, "arybchenko@solarflare.com"
 <arybchenko@solarflare.com>, Jerin Jacob Kollanukkaran <jerinj@marvell.com>,
 "thomas@monjalon.net" <thomas@monjalon.net>, "Lu, Wenzhuo"
 <wenzhuo.lu@intel.com>, "Wu, Jingjing" <jingjing.wu@intel.com>, "Mcnamara,
 John" <john.mcnamara@intel.com>, "Kovacevic, Marko"
 <marko.kovacevic@intel.com>
CC: "dev@dpdk.org" <dev@dpdk.org>
Thread-Topic: [dpdk-dev] [PATCH v16 8/8] app/testpmd: add command to set
 supported ptype mask
Thread-Index: AQHVlNckWqswXl6VzkC+ZF9cXpw77Kd/muqwgAAGfkCAACZaAIAABYOQ
Date: Thu, 7 Nov 2019 15:00:31 +0000
Message-ID: <8CEF83825BEC744B83065625E567D7C260E22F8C@IRSMSX108.ger.corp.intel.com>
References: <20191029153722.4547-1-pbhagavatula@marvell.com>
 <20191106191803.15098-1-pbhagavatula@marvell.com>
 <20191106191803.15098-9-pbhagavatula@marvell.com>
 <8CEF83825BEC744B83065625E567D7C260E22E87@IRSMSX108.ger.corp.intel.com>
 <8CEF83825BEC744B83065625E567D7C260E22EB4@IRSMSX108.ger.corp.intel.com>
 <CY4PR1801MB1863F11E5A4F2A1EACCCBF45DE780@CY4PR1801MB1863.namprd18.prod.outlook.com>
In-Reply-To: <CY4PR1801MB1863F11E5A4F2A1EACCCBF45DE780@CY4PR1801MB1863.namprd18.prod.outlook.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZThiOWIwNGItOWQxNC00NmNjLWFiNjItMTc0YmZmNmY5MWQxIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiZjkxZ21JOFRXa2xUREFTRTc5eFZkVTBxT0ZSYjZpSXpCaFZDYUVyTWprU1l5WXRrWGZLN1VjeDhSTlUxOEJ5aiJ9
x-ctpclassification: CTP_NT
dlp-product: dlpe-windows
dlp-version: 11.2.0.6
dlp-reaction: no-action
x-originating-ip: [163.33.239.181]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [dpdk-dev] [PATCH v16 8/8] app/testpmd: add command to set
 supported ptype mask
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

Hi Pavin,

<snip>

> >> > Subject: [dpdk-dev] [PATCH v16 8/8] app/testpmd: add command
> >to set
> >> > supported ptype mask
> >> >
> >> > From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> >> >
> >> > Add command to set supported ptype mask.
> >> > Usage:
> >> > 	set port <port_id> ptype_mask <ptype_mask>
> >> >
> >> > Disable ptype parsing by default.
> >> >
> >> > Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> >> > ---
> >> >  app/test-pmd/cmdline.c                      | 83 ++++++++++++++++++=
+++
> >> >  app/test-pmd/testpmd.c                      |  5 ++
> >> >  doc/guides/testpmd_app_ug/testpmd_funcs.rst |  7 ++
> >> >  3 files changed, 95 insertions(+)
> >> >
> >> > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
> >index
> >> > 49c45a3f0..7af2c58c3 100644
> >> > --- a/app/test-pmd/cmdline.c
> >> > +++ b/app/test-pmd/cmdline.c
> >>
> >> The help text should be updated to describe the new command at
> >line 240 in
> >> cmdline.c
> >>
> >> > @@ -668,6 +668,9 @@ static void cmd_help_long_parsed(void
> >> > *parsed_result,
> >> >  			"ptype mapping update (port_id) (hw_ptype)
> >> (sw_ptype)\n"
> >> >  			"    Update a ptype mapping item on a port\n\n"
> >> >
> >> > +			"set port (port_id) ptype_mask
> >(ptype_mask)\n"
> >> > +			"    set packet types classification for a specific
> >> > port\n\n"
> >> > +
> >> >  			"set port (port_id) queue-region region_id
> >(value) "
> >> >  			"queue_start_index (value) queue_num
> >(value)\n"
> >> >  			"    Set a queue region on a port\n\n"
> >> > @@ -18916,6 +18919,85 @@ cmdline_parse_inst_t
> >> > cmd_show_port_supported_ptypes =3D {
> >> >  	},
> >> >  };
> >> >
> >> > +/* Common result structure for set port ptypes */ struct
> >> > +cmd_set_port_ptypes_result {
> >> > +	cmdline_fixed_string_t set;
> >> > +	cmdline_fixed_string_t port;
> >> > +	portid_t port_id;
> >> > +	cmdline_fixed_string_t ptype_mask;
> >> > +	uint32_t mask;
> >> > +};
> >> > +
> >> > +/* Common CLI fields for set port ptypes */
> >> > +cmdline_parse_token_string_t cmd_set_port_ptypes_set =3D
> >> > +	TOKEN_STRING_INITIALIZER
> >> > +		(struct cmd_set_port_ptypes_result,
> >> > +		 set, "set");
> >> > +cmdline_parse_token_string_t cmd_set_port_ptypes_port =3D
> >> > +	TOKEN_STRING_INITIALIZER
> >> > +		(struct cmd_set_port_ptypes_result,
> >> > +		 port, "port");
> >> > +cmdline_parse_token_num_t cmd_set_port_ptypes_port_id =3D
> >> > +	TOKEN_NUM_INITIALIZER
> >> > +		(struct cmd_set_port_ptypes_result,
> >> > +		 port_id, UINT16);
> >> > +cmdline_parse_token_string_t cmd_set_port_ptypes_mask_str =3D
> >> > +	TOKEN_STRING_INITIALIZER
> >> > +		(struct cmd_set_port_ptypes_result,
> >> > +		 ptype_mask, "ptype_mask");
> >> > +cmdline_parse_token_num_t cmd_set_port_ptypes_mask_u32 =3D
> >> > +	TOKEN_NUM_INITIALIZER
> >> > +		(struct cmd_set_port_ptypes_result,
> >> > +		 mask, UINT32);
> >> > +
> >> > +static void
> >> > +cmd_set_port_ptypes_parsed(
> >> > +	void *parsed_result,
> >> > +	__attribute__((unused)) struct cmdline *cl,
> >> > +	__attribute__((unused)) void *data) {
> >> > +	struct cmd_set_port_ptypes_result *res =3D parsed_result;
> >> > +#define PTYPE_NAMESIZE        256
> >> > +	char ptype_name[PTYPE_NAMESIZE];
> >> > +	uint16_t port_id =3D res->port_id;
> >> > +	uint32_t ptype_mask =3D res->mask;
> >> > +	int ret, i;
> >> > +
> >> > +	ret =3D rte_eth_dev_get_supported_ptypes(port_id,
> >ptype_mask,
> >> > NULL, 0);
> >
> >The last 2 parameters to the above function do not look correct, here
> >is the function declaration:
> >int rte_eth_dev_get_supported_ptypes(uint16_t port_id, uint32_t
> >ptype_mask,  uint32_t *ptypes, int num);
> >
> >ptypes should be a pointer to an array to hold the ptypes, and num
> >should be the size of the array.
>=20
> We can use the same API to get the number of ptypes supported to initiali=
ze
> the array below.
>=20
> @see examples/l3fwd/l3fwd_lpm.c +424

Yes, you are correct, sorry for the noise.

> >> > +	if (ret <=3D 0) {
> >> > +		printf("Port %d doesn't support any ptypes.\n",
> >port_id);
> >> > +		return;
> >> > +	}
> >> > +
> >> > +	uint32_t ptypes[ret];
> >
> >The above declaration can then be moved to the top of the function with
> >the other declarations.
>=20
>=20
> I intentionally placed it here as the array size depends on ret and there=
 is no
> readily available macro for max number of packet types.

Yes, this is correct too

<snip>

Regards,

Bernard.