From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 31547A052A; Wed, 23 Dec 2020 10:40:10 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 08E71CA6A; Wed, 23 Dec 2020 10:40:09 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 3C1562A62 for ; Wed, 23 Dec 2020 10:40:07 +0100 (CET) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 0BN9UiNA002408 for ; Wed, 23 Dec 2020 01:40:05 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0220; bh=41+SygMjLF8drmwQCCECa1+j6sTIczZurrsUZXAk964=; b=SeMy93XJe+121ah6cN9Dz0p2esqDyboep4RBN9Rxz/YRU98qLTBXWw78mKiYNJf64JDA VJijoQJUYhdzKPk4xuETP3Jd1jM+v4k5PTijCjvUK1hv7/tpVsxFjDS/69gEY/rLXdHe RtBprJ2+fU8GirGxtc0FhnwKfjn52yaet3myBSyDIgMzSENA9m89885VMiEHD/o5zA9V qe4q01g54/HEBhPuX7xSixKVFqqlnph51cV+8spNAvlXIEk4UWz/fzKY2mXIMfmSLNoe WnAtdXy8TEFyHR3DwI+SybVcSisYDVFj94f7zY/DHF1kfPgJcNb0LbShaeHvss85TubZ Wg== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0b-0016f401.pphosted.com with ESMTP id 35k0hx5n4v-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Wed, 23 Dec 2020 01:40:05 -0800 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 23 Dec 2020 01:40:03 -0800 Received: from SC-EXCH03.marvell.com (10.93.176.83) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 23 Dec 2020 01:40:03 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.172) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Wed, 23 Dec 2020 01:40:02 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h8JbfXgZJtkLAR13SBXkv9iAQjugxcLYLbdNLWpDIdkDAZuuwnqxob04qidINYHmpUuKMkpFEFvN4mmAwzd4LiSA7RJyCqSh5Gb8rrhbNM7o8rPvAgVZbJ1FgeUNJ1wk6tuaUHOyM2vsYcg94k7CwTJN/vXPkzKIzzcM9QObhLqzdn3tOIY4jiWhGmkgwKffaj4OM+AA9U1F7rp0BaRWQPMGjIYqmBIVFCWdMg9htdZkxgGkJ3SjH7tUqwJBHWiJY48cpXOvdpOx7VniTAmtJ16jcQNTmKk8mHqHQmXUMq3gApcVHFJj53RXaTY2QCTYwGrPw1IhSjxQs/kh/80bVg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=41+SygMjLF8drmwQCCECa1+j6sTIczZurrsUZXAk964=; b=SeFXAVE3eNxUiAqUkdIvzfVFg0UPVB9wgD+1tNnrZRZoSKgd5YkpvevKfc4Kh8SS6o0qGLJYgmjXPrEXmayU1+r63JoRl8f1hmRK0XTuOvRbA6hjUoLfC+VMvVD66qmOfpj0eF9k0dTg5z/rGH7v6nJfn2MFRRWdnDvB6wSSIXFKHJBcx/pxo3D+QbjwTmQD+dpZFgO3+eUHYYT5o//TI87YKh9QP4oDm4yHHN+7QrsLz0msxSuAHz/7tVaqfcW2sZ3i9fFRjrTIHBEYCAmws9Ojm++Sxa6Nfl2raqJtoyFGovr+p9SNmMGJ69ad1Ud+CRTuDJ+xLuOlrnie+Ua70g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=41+SygMjLF8drmwQCCECa1+j6sTIczZurrsUZXAk964=; b=bD0Rb7guBA6lZeuCUcXLEMPjuwfBqnbdx2GxPgUKjtXoNIg5v3qEWF5b74Cfqf2XyzgY7NkGUKWYkg2KNM6wHHVjQJPK+N4rT1W/bMJos7dzFswjGRtDJigd6eIP1w4Gp/3i4FkZIs8yfDpgYON7ntjW7SmlV2bM9+u/jGde7Yg= Received: from DM5PR1801MB2058.namprd18.prod.outlook.com (2603:10b6:4:67::31) by DM6PR18MB3603.namprd18.prod.outlook.com (2603:10b6:5:2a5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3700.27; Wed, 23 Dec 2020 09:40:02 +0000 Received: from DM5PR1801MB2058.namprd18.prod.outlook.com ([fe80::303b:5c79:93c7:b432]) by DM5PR1801MB2058.namprd18.prod.outlook.com ([fe80::303b:5c79:93c7:b432%7]) with mapi id 15.20.3676.033; Wed, 23 Dec 2020 09:40:01 +0000 From: Michael Shamis To: Liron Himi , Jerin Jacob Kollanukkaran CC: "dev@dpdk.org" , Yuri Chipchev , "Liron Himi" Thread-Topic: [dpdk-dev] [PATCH v1 14/38] net/mvpp2: add vlan offload support Thread-Index: AQHWyJSgiYjZWpVfpkaH9I+JELXMX6oEjfag Date: Wed, 23 Dec 2020 09:40:01 +0000 Message-ID: References: <20201202101212.4717-1-lironh@marvell.com> <20201202101212.4717-15-lironh@marvell.com> In-Reply-To: <20201202101212.4717-15-lironh@marvell.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [83.130.154.133] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b1d5e0d5-39fe-4f0a-750f-08d8a726b88e x-ms-traffictypediagnostic: DM6PR18MB3603: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2887; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +g3yU7cshrH2JedzN5d1irfHxTjezu7patmtpOGgunsc8VWOByVRr8DV+cnFtCu3pBo0jFnhG7T2I+GVqDPPo/mMYJ5rUoyzP0X/2rFfr1gL3vHSjZdwP4rNxkKoum4xVMtSNa9v9cWAtZax41OCHkG+ZVbV0+coTvylIFKPsMELUpvhNomD8xe5fRPEXYvdWDBkWUJAw4b0b/tO/Mbxu4r/ZggcaBpt6Gl/kXJDFGS0w1Lk6rtRu4VlebILPuXO7/EuMTpa/uDDYDAKz5vSpK/7OvYymxuhob6KJkdySiO1nKUjg36Gv7fOMxVFvBTV3P6QdzsaigK6y/UCygjaz6IeBkn+E9xwTSidZtMPwVDxX4C4Oce1Dk72ZWFCDzJTCYWYdfsoz/pgwuIzYbXHow== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM5PR1801MB2058.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(39860400002)(346002)(366004)(376002)(396003)(66446008)(53546011)(54906003)(66556008)(52536014)(66476007)(66946007)(4326008)(5660300002)(64756008)(107886003)(33656002)(8676002)(9686003)(6506007)(76116006)(55016002)(6636002)(86362001)(71200400001)(478600001)(7696005)(186003)(2906002)(110136005)(316002)(83380400001)(26005)(8936002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?lXD/a8Vo8TzM09Iqbb/FBWkpnc3nx24sLm99vI+J6CCbyAMThb7720IdcSYJ?= =?us-ascii?Q?LF4nSSqZPnboHdVzc8nIo9z8Wy0lwCRImKJfwbBrpIhdzL20qfrBYi2tt98W?= =?us-ascii?Q?s4XFIs8cFvG9tDO27VYC5d2OJmJHjpS2z6eDrM4/xALx4fLupDPrkKFeNb0j?= =?us-ascii?Q?nkVUM5CctviBbDiczejZfaFkyrNrDJdjmjVcjOYSg9GCuQw8wcledtfFSyXA?= =?us-ascii?Q?ca5RQkEykib6G3Hfum9cEjAFW/ppidoRaemSaAwvnu0Ncd6IR8B/q3IheqVM?= =?us-ascii?Q?TgQazzBLCyQSa6+zmtNsW5fEz0Jt/9iZ09f5qSFcfm7rXxrUJuS5axEi1O2L?= =?us-ascii?Q?c1Rohkb5xVz+P5qNFpMj/jFixcRjQ0UPw42MK9Sj9Dvqv+IQGcUsVueCtWZf?= =?us-ascii?Q?fb6Hptxjas+oMnfWIxbYCniLKOlvLFEHs3R0oAjq1esN/zHqv8GDLwCcfAnN?= =?us-ascii?Q?gmWgZnnrAb4Jyj3MeBP1XwehZaD7LN+XM8IPvaq/o6q2PNUqre+ISSG5lBra?= =?us-ascii?Q?trmgJG1oLdjgdyECWOcYY6BpPPdatssi02naLWZn3FR81THdXKTF131yFwxY?= =?us-ascii?Q?tpFKQShmtxcaPLRY5gWVH2+5iTPCvU3VwLYAVaeyyHiJ0RlSMnCdu85GDE3C?= =?us-ascii?Q?s3GbHPFDEGvnV3vDqh6CluQXGTJKOEnvrxPEU36+lw/7jKY8YjNTdkV/D9No?= =?us-ascii?Q?/OKOdhJ9Tk8r62YiFbEpwvuAxExXY9borHp0W33TzPQyMZoPmE76+BO8Jw2f?= =?us-ascii?Q?GB59DMjO8pldeioNAPqSCBjuZcsQUMHcI2cRY/vkKF0G2RHQAzdDVAe/n2ls?= =?us-ascii?Q?1kmJaJOdYkRxqDSDkKf1rq08GUUVnxGg4MyVrH5B96xI/kDvPJ9j70CdGhTu?= =?us-ascii?Q?9hpQHcabUUXfCXDCJs6IVRXVhZuTJARoSqf4y5t5MKK0Vg31NOz/w2sbQY/W?= =?us-ascii?Q?SHTRPN0c85DL7Mg+lTs4S3dcJag3qAx0D53BqGV6jaU=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM5PR1801MB2058.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b1d5e0d5-39fe-4f0a-750f-08d8a726b88e X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Dec 2020 09:40:01.8775 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: m4X1P8zSNDeuYZEvsnhAmLAEoht0gcLnBNUzNaITJKcNRn6FnK+z5wC49QhEz5eP/D25YN/qySQBnXYuBXWbSw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR18MB3603 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.343, 18.0.737 definitions=2020-12-23_04:2020-12-21, 2020-12-23 signatures=0 Subject: Re: [dpdk-dev] [PATCH v1 14/38] net/mvpp2: add vlan offload support 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" Reviewed-by: Michael Shamis -----Original Message----- From: dev On Behalf Of lironh@marvell.com Sent: Wednesday, December 2, 2020 12:12 PM To: Jerin Jacob Kollanukkaran Cc: dev@dpdk.org; Yuri Chipchev ; Liron Himi Subject: [dpdk-dev] [PATCH v1 14/38] net/mvpp2: add vlan offload support From: Yuri Chipchev enable vlan filter configuration Signed-off-by: Yuri Chipchev Reviewed-by: Liron Himi --- drivers/net/mvpp2/mrvl_ethdev.c | 110 +++++++++++++++++++++++++------- 1 file changed, 86 insertions(+), 24 deletions(-) diff --git a/drivers/net/mvpp2/mrvl_ethdev.c b/drivers/net/mvpp2/mrvl_ethde= v.c index 5cd9ee38d..a87336a4c 100644 --- a/drivers/net/mvpp2/mrvl_ethdev.c +++ b/drivers/net/mvpp2/mrvl_ethdev.c @@ -620,6 +620,51 @@ mrvl_tx_queue_stop(struct rte_eth_dev *dev, uint16_t q= ueue_id) return 0; } =20 +/** + * Populate Vlan Filter configuration. + * + * @param dev + * Pointer to Ethernet device structure. + * @param on + * Toggle filter. + * + * @return + * 0 on success, negative error value otherwise. + */ +static int mrvl_populate_vlan_table(struct rte_eth_dev *dev, int on) { + uint32_t j; + int ret; + struct rte_vlan_filter_conf *vfc; + + vfc =3D &dev->data->vlan_filter_conf; + for (j =3D 0; j < RTE_DIM(vfc->ids); j++) { + uint64_t vlan; + uint64_t vbit; + uint64_t ids =3D vfc->ids[j]; + + if (ids =3D=3D 0) + continue; + + while (ids) { + vlan =3D 64 * j; + /* count trailing zeroes */ + vbit =3D ~ids & (ids - 1); + /* clear least significant bit set */ + ids ^=3D (ids ^ (ids - 1)) ^ vbit; + for (; vbit; vlan++) + vbit >>=3D 1; + ret =3D mrvl_vlan_filter_set(dev, vlan, on); + if (ret) { + MRVL_LOG(ERR, "Failed to setup VLAN filter\n"); + return ret; + } + } + } + + return 0; +} + /** * DPDK callback to start the device. * @@ -635,8 +680,6 @@ mrvl_dev_start(struct rte_eth_dev *dev) struct mrvl_priv *priv =3D dev->data->dev_private; char match[MRVL_MATCH_LEN]; int ret =3D 0, i, def_init_size; - uint32_t j; - struct rte_vlan_filter_conf *vfc; struct rte_ether_addr *mac_addr; =20 if (priv->ppio) @@ -731,28 +774,11 @@ mrvl_dev_start(struct rte_eth_dev *dev) if (dev->data->all_multicast =3D=3D 1) mrvl_allmulticast_enable(dev); =20 - vfc =3D &dev->data->vlan_filter_conf; - for (j =3D 0; j < RTE_DIM(vfc->ids); j++) { - uint64_t vlan; - uint64_t vbit; - uint64_t ids =3D vfc->ids[j]; - - if (ids =3D=3D 0) - continue; - - while (ids) { - vlan =3D 64 * j; - /* count trailing zeroes */ - vbit =3D ~ids & (ids - 1); - /* clear least significant bit set */ - ids ^=3D (ids ^ (ids - 1)) ^ vbit; - for (; vbit; vlan++) - vbit >>=3D 1; - ret =3D mrvl_vlan_filter_set(dev, vlan, 1); - if (ret) { - MRVL_LOG(ERR, "Failed to setup VLAN filter\n"); - goto out; - } + if (dev->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_VLAN_FILTER) { + ret =3D mrvl_populate_vlan_table(dev, 1); + if (ret) { + MRVL_LOG(ERR, "Failed to populate vlan table"); + goto out; } } =20 @@ -1687,6 +1713,41 @@ mrvl_vlan_filter_set(struct rte_eth_dev *dev, uint16= _t vlan_id, int on) pp2_ppio_remove_vlan(priv->ppio, vlan_id); } =20 +/** + * DPDK callback to Configure VLAN offload. + * + * @param dev + * Pointer to Ethernet device structure. + * @param mask + * VLAN offload mask. + * + * @return + * 0 on success, negative error value otherwise. + */ +static int mrvl_vlan_offload_set(struct rte_eth_dev *dev, int mask) { + uint64_t rx_offloads =3D dev->data->dev_conf.rxmode.offloads; + int ret; + + if (mask & ETH_VLAN_STRIP_MASK) + MRVL_LOG(ERR, "VLAN stripping is not supported\n"); + + if (mask & ETH_VLAN_FILTER_MASK) { + if (rx_offloads & DEV_RX_OFFLOAD_VLAN_FILTER) + ret =3D mrvl_populate_vlan_table(dev, 1); + else + ret =3D mrvl_populate_vlan_table(dev, 0); + + if (ret) + return ret; + } + + if (mask & ETH_VLAN_EXTEND_MASK) + MRVL_LOG(ERR, "Extend VLAN not supported\n"); + + return 0; +} + /** * Release buffers to hardware bpool (buffer-pool) * @@ -2268,6 +2329,7 @@ static const struct eth_dev_ops mrvl_ops =3D { .rxq_info_get =3D mrvl_rxq_info_get, .txq_info_get =3D mrvl_txq_info_get, .vlan_filter_set =3D mrvl_vlan_filter_set, + .vlan_offload_set =3D mrvl_vlan_offload_set, .tx_queue_start =3D mrvl_tx_queue_start, .tx_queue_stop =3D mrvl_tx_queue_stop, .rx_queue_setup =3D mrvl_rx_queue_setup, -- 2.28.0