From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 31BB8A00E6 for ; Thu, 18 Apr 2019 06:43:23 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 379A31B20E; Thu, 18 Apr 2019 06:43:22 +0200 (CEST) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10077.outbound.protection.outlook.com [40.107.1.77]) by dpdk.org (Postfix) with ESMTP id DE2EA1B142 for ; Thu, 18 Apr 2019 06:43:20 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=C6ZPqnHjIeHz1ZHPZTWxDnfaqB1GzxQgR391saYpnf4=; b=NVMJZqIZ9iu0TKWbH5bqWww7aRmDzC5/mL0vL2cnv/dr7smMR/YxZ/8o7pfhzO9lERqKmxbCFLFbPtrjluwV7R8frCdYaMXwEoWUtlEi08iyBh70JB4vUwOQRh9mK8IhB49MuBxF9o5R8o1KrweYLPX9u7N+de1Iev50e2nsAak= Received: from AM4PR05MB3425.eurprd05.prod.outlook.com (10.171.190.15) by AM4PR05MB3282.eurprd05.prod.outlook.com (10.171.187.159) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1792.19; Thu, 18 Apr 2019 04:43:19 +0000 Received: from AM4PR05MB3425.eurprd05.prod.outlook.com ([fe80::a4d7:6c70:9829:2cc8]) by AM4PR05MB3425.eurprd05.prod.outlook.com ([fe80::a4d7:6c70:9829:2cc8%6]) with mapi id 15.20.1813.013; Thu, 18 Apr 2019 04:43:19 +0000 From: Ori Kam To: Yongseok Koh CC: Shahaf Shuler , Matan Azrad , Slava Ovsiienko , Moti Haimovsky , "dev@dpdk.org" Thread-Topic: [PATCH 5/9] net/mlx5: add port ID item to Direct Verbs Thread-Index: AQHU8wb09AeNBXBSQkiUPh292/VxcqZBEtYAgABI2RA= Date: Thu, 18 Apr 2019 04:43:19 +0000 Message-ID: References: <1555276357-4892-1-git-send-email-orika@mellanox.com> <1555276357-4892-6-git-send-email-orika@mellanox.com> <20190418001944.GB31179@mtidpdk.mti.labs.mlnx> In-Reply-To: <20190418001944.GB31179@mtidpdk.mti.labs.mlnx> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=orika@mellanox.com; x-originating-ip: [185.175.35.255] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1c3b7216-6fb4-4843-186b-08d6c3b8618b x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600141)(711020)(4605104)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020); SRVR:AM4PR05MB3282; x-ms-traffictypediagnostic: AM4PR05MB3282: x-microsoft-antispam-prvs: x-forefront-prvs: 0011612A55 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(136003)(396003)(39860400002)(376002)(346002)(199004)(13464003)(189003)(55016002)(74316002)(478600001)(11346002)(8676002)(14454004)(8936002)(99286004)(476003)(26005)(81156014)(186003)(6246003)(7696005)(9686003)(6636002)(2906002)(71190400001)(6116002)(25786009)(446003)(3846002)(76176011)(305945005)(53546011)(52536014)(4326008)(68736007)(71200400001)(66066001)(229853002)(54906003)(486006)(33656002)(53936002)(6436002)(316002)(14444005)(7736002)(97736004)(6506007)(102836004)(6862004)(5660300002)(256004)(86362001)(81166006)(7756004); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR05MB3282; H:AM4PR05MB3425.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: uk+i4PccZXpdRJ/GvQkw2tJZLfJgdBE2rvESfU2N9tTJYipdKDa8q5pGhgT+77XGe9pDuDhd+ejvvz9VPRF+TMRo6bfg7YzSjOUTndlIlBN7PYFf459b6gw2Vn9NfNGeX61BeYqhEQE0RGcsm7TUnOVVjVaiF6qKiOBiDTEP6pbi+Rs6kZcTajrrv7by7IXHUMt7QUVgXKnLwNDcjl4/8j3EzH8ftgEPi84ra7/IqfuIrHuohp/VDUEE1J8hired2PWaDIuMVYUj/RC6rNLx4iNfHAJWN8PcY/zqF49xLddIIElZJZMTN4Uz29R6Th4WRAs8/7QkvWXKmbj/wKOg5sDSSnAmNm/TMYRcg1evppqTsTv6hHIytVMZqVyidGFIqY6XkPAU2htSvGWaJNJn4U2eESUxlZDTrgWeqJhZoKI= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1c3b7216-6fb4-4843-186b-08d6c3b8618b X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Apr 2019 04:43:19.6437 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3282 Subject: Re: [dpdk-dev] [PATCH 5/9] net/mlx5: add port ID item to Direct Verbs X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Message-ID: <20190418044319.qP8QbHsavPM99bzdlBAuLlXPKNz-H3623gf74waMB2A@z> Hi Yongseok, PSB > -----Original Message----- > From: Yongseok Koh > Sent: Thursday, April 18, 2019 3:20 AM > To: Ori Kam > Cc: Shahaf Shuler ; Matan Azrad > ; Slava Ovsiienko ; Moti > Haimovsky ; dev@dpdk.org > Subject: Re: [PATCH 5/9] net/mlx5: add port ID item to Direct Verbs >=20 > On Sun, Apr 14, 2019 at 09:12:33PM +0000, Ori Kam wrote: > > Adds the port ID item to the DV steering code. > > > > Signed-off-by: Ori Kam > > --- > > drivers/net/mlx5/mlx5_flow_dv.c | 86 ++++++++++++++++++++++++++++++-- > --------- > > 1 file changed, 63 insertions(+), 23 deletions(-) > > > > diff --git a/drivers/net/mlx5/mlx5_flow_dv.c > b/drivers/net/mlx5/mlx5_flow_dv.c > > index fedc6cb..e66ee34 100644 > > --- a/drivers/net/mlx5/mlx5_flow_dv.c > > +++ b/drivers/net/mlx5/mlx5_flow_dv.c > > @@ -3095,6 +3095,64 @@ struct field_modify_info modify_tcp[] =3D { > > } > > } > > > > +/** > > + * Add source vport match to the specified matcher. > > + * > > + * @param[in, out] matcher > > + * Flow matcher. > > + * @param[in, out] key > > + * Flow matcher value. > > + * @param[in] port > > + * Source vport value to match > > + * @param[in] mask > > + * Mask > > + */ > > +static void > > +flow_dv_translate_item_source_vport(void *matcher, void *key, > > + int16_t port, uint16_t mask) > > +{ > > + void *misc_m =3D MLX5_ADDR_OF(fte_match_param, matcher, > misc_parameters); > > + void *misc_v =3D MLX5_ADDR_OF(fte_match_param, key, > misc_parameters); > > + > > + MLX5_SET(fte_match_set_misc, misc_m, source_port, mask); > > + MLX5_SET(fte_match_set_misc, misc_v, source_port, port); > > +} > > + > > +/** > > + * Translate port-id item to eswitch match on port-id. > > + * > > + * @param[in] dev > > + * The devich to configure through. > > + * @param[in, out] matcher > > + * Flow matcher. > > + * @param[in, out] key > > + * Flow matcher value. > > + * @param[in] item > > + * Flow pattern to translate. > > + * > > + * @return > > + * 0 on success, a negative errno value otherwise. > > + */ > > +static int > > +flow_dv_eswitch_translate_item_port_id(struct rte_eth_dev *dev, >=20 > Why did you put _eswitch in the function name unlike > flow_dv_validate_item_port_id()? It sounds awkward. >=20 Right will fix. > > + void *matcher, void *key, > > + const struct rte_flow_item *item) > > +{ > > + const struct rte_flow_item_port_id *pid_m =3D item ? item->mask : > NULL; > > + const struct rte_flow_item_port_id *pid_v =3D item ? item->spec : NUL= L; > > + uint16_t mask, val, id; > > + int ret; > > + > > + mask =3D pid_m ? pid_m->id : 0xffff; > > + id =3D pid_v ? pid_v->id : dev->data->port_id; > > + id =3D mask ? id : dev->data->port_id; >=20 > Again, doesn't zero mask mean 'any' value? >=20 Will double check. In any case I think we can agree that it doesn't make se= nse to=20 Have rules for different flows. So even if the Nic allows we can disable th= is feature. What do you think? > Thanks, > Yongseok >=20 > > + ret =3D mlx5_port_to_eswitch_info(id, NULL, &val); > > + if (ret) > > + return ret; > > + flow_dv_translate_item_source_vport(matcher, key, val, mask); > > + return 0; > > +} > > + > > static uint32_t matcher_zero[MLX5_ST_SZ_DW(fte_match_param)] =3D { 0 }= ; > > > > #define HEADER_IS_ZERO(match_criteria, headers) > \ > > @@ -3305,29 +3363,6 @@ struct field_modify_info modify_tcp[] =3D { > > } > > > > /** > > - * Add source vport match to the specified matcher. > > - * > > - * @param[in, out] matcher > > - * Flow matcher. > > - * @param[in, out] key > > - * Flow matcher value. > > - * @param[in] port > > - * Source vport value to match > > - * @param[in] mask > > - * Mask > > - */ > > -static void > > -flow_dv_translate_item_source_vport(void *matcher, void *key, > > - int16_t port, uint16_t mask) > > -{ > > - void *misc_m =3D MLX5_ADDR_OF(fte_match_param, matcher, > misc_parameters); > > - void *misc_v =3D MLX5_ADDR_OF(fte_match_param, key, > misc_parameters); > > - > > - MLX5_SET(fte_match_set_misc, misc_m, source_port, mask); > > - MLX5_SET(fte_match_set_misc, misc_v, source_port, port); > > -} > > - > > -/** > > * Find existing tag resource or create and register a new one. > > * > > * @param dev[in, out] > > @@ -3733,6 +3768,11 @@ struct field_modify_info modify_tcp[] =3D { > > void *match_value =3D dev_flow->dv.value.buf; > > > > switch (items->type) { > > + case RTE_FLOW_ITEM_TYPE_PORT_ID: > > + flow_dv_eswitch_translate_item_port_id > > + (dev, match_mask, match_value, > items); > > + last_item =3D MLX5_FLOW_ITEM_PORT_ID; > > + break; > > case RTE_FLOW_ITEM_TYPE_ETH: > > flow_dv_translate_item_eth(match_mask, > match_value, > > items, tunnel); > > -- > > 1.8.3.1 > >