From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0042.outbound.protection.outlook.com [104.47.2.42]) by dpdk.org (Postfix) with ESMTP id 4D850A48B for ; Wed, 17 Jan 2018 07:57:39 +0100 (CET) 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; bh=b3Be5Gx9fuEjqm5ZCZAzOniGSiHfUeh3JeDtVocDEY8=; b=rZ480TwB8nJH4Es+qCBLxy2d93B+hMTF31co8HMiPGZKO/9Gt6v7Xb5KgZXjo1jRAUe6s2fO7pgdBBSBeBd4tlUmFWx5F0MZyrvv5jyvoalmQMewl2uiEFeKFjoH1PbK7Ffzh5wyfONcqQytgJxZut8a2A6uv1ICs2Si8igfhjA= Received: from VI1PR05MB3149.eurprd05.prod.outlook.com (10.170.237.142) by VI1PR05MB1615.eurprd05.prod.outlook.com (10.165.235.29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.407.7; Wed, 17 Jan 2018 06:57:36 +0000 Received: from VI1PR05MB3149.eurprd05.prod.outlook.com ([fe80::789c:3f06:bb88:e29c]) by VI1PR05MB3149.eurprd05.prod.outlook.com ([fe80::789c:3f06:bb88:e29c%13]) with mapi id 15.20.0407.012; Wed, 17 Jan 2018 06:57:36 +0000 From: Shahaf Shuler To: Rafal Kozik , "dev@dpdk.org" CC: "mw@semihalf.com" , "mk@semihalf.com" , "gtzalik@amazon.com" , "evgenys@amazon.com" , "matua@amazon.com" , "igorch@amazon.com" Thread-Topic: [dpdk-dev] [PATCH 2/2] net/ena: convert to new Rx offloads API Thread-Index: AQHTjsCl+1924Ieyc0mHXAYtADtAJ6N3ozAw Date: Wed, 17 Jan 2018 06:57:36 +0000 Message-ID: References: <1516103563-9275-1-git-send-email-rk@semihalf.com> <1516103563-9275-3-git-send-email-rk@semihalf.com> In-Reply-To: <1516103563-9275-3-git-send-email-rk@semihalf.com> 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=shahafs@mellanox.com; x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR05MB1615; 6:2R5Nk3QunFjLqDOs/jqKhLL2q2F9B0uqG9Vp6cH6oGzPXXqlKexZE9SKzXPbEn32SLYh/dl5xwYz9hHQfITs8LW/cuAGc83/gw0xvoja5a0kOnJDZZzFMeDwPDUgHj7tvk59zsBkjiG9nPmDt7lXXG3x2tJp54kYNFKvT5sqsFCwnVK9CLbl59OUFbIho7l6TFeW3K2Y4ASaLZp02jB57yYJ7Q88tMxm+o614N5v2WVekSbOj0NNrWlv8L+6WAe95bDXT+ViZOBMmn4GdInQxWTxyk3DZOpqgAU4GvQWj2KQQIhKCBDQGQdpTSXfW7TgWECGVZzv7ZnSDiWKW5OaTKiphBTjC0boYttZpAmZPGTmP+jACx+XyCTJkthQBDTt; 5:ABtsKOpM3iNK1q7aQr9P2bkkwiqSbjF9YqyuVKg0Ek28RVWYLj9KfOCOEhdQXidlJE29FlR3xEY+CKUGI0Px8dE7MhwNapAZ7Lo4gamkSfISkvvK/drA6oTVpcFqzVP/5zkq6k+Gjm1jVAleOMwG6zDUvmeSsPJneyc141DLVU8=; 24:oXGhVcd/hqlz6QSHpY16mctiVJ0XISiLbJgfzJRE+yk5Lwb5Tc7OQR4Y13gUP7XQgk6859xUG4OEgmvlsuG1vEzpRuLEAY3RlPkp0ULU7sw=; 7:6vjtl/4BGMI4RQf1MxZvj9p39YQeTNhoVxo9FgfCRdYpK4pfdr07pPOCyNpmRtX/rhy8jgwHlvvYr0i7paU90tgi93M+mbkYH3oHyCx25Qu+EB7ILSWEa0FkGMP2tSyVO5u2o8qhEqp9ELdK++GGgmrF0VvdvZw0ocm9Vd/5/ZpnBBR+1oHwGuRwl8Q3ys8NPyiomAEp1djBJulmk38TZMQu+mQwf8S6ZEcXil87Osi7pADCpDy279ZSD1XNEnBT x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: b7feaaaf-1033-49d7-902f-08d55d77978d x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(3008032)(48565401081)(2017052603307)(7153060)(7193020); SRVR:VI1PR05MB1615; x-ms-traffictypediagnostic: VI1PR05MB1615: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(8121501046)(5005006)(3002001)(3231023)(944501161)(10201501046)(93006095)(93001095)(6055026)(6041268)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(6072148)(201708071742011); SRVR:VI1PR05MB1615; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:VI1PR05MB1615; x-forefront-prvs: 0555EC8317 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39380400002)(366004)(376002)(39860400002)(396003)(346002)(189003)(199004)(229853002)(106356001)(316002)(2900100001)(110136005)(54906003)(105586002)(5660300001)(8676002)(81156014)(33656002)(97736004)(81166006)(99286004)(6506007)(9686003)(55016002)(7696005)(2950100002)(3660700001)(8936002)(76176011)(102836004)(2906002)(53936002)(3280700002)(74316002)(305945005)(6246003)(68736007)(2501003)(66066001)(7736002)(6116002)(26005)(25786009)(6436002)(5250100002)(14454004)(4326008)(478600001)(86362001)(3846002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB1615; H:VI1PR05MB3149.eurprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: 0kDebv744U32y6hLsLCdM9/9ewz86LKhq9XpcxiIZzu/V99gY6vCjgBdr2al8iUQ/t6Wb6ONTONjJdeNnjyXHQ== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: b7feaaaf-1033-49d7-902f-08d55d77978d X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2018 06:57:36.7609 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB1615 Subject: Re: [dpdk-dev] [PATCH 2/2] net/ena: convert to new Rx offloads API 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: , X-List-Received-Date: Wed, 17 Jan 2018 06:57:39 -0000 Tuesday, January 16, 2018 1:53 PM, Rafal Kozik: > Ethdev Rx offloads API has changed since: >=20 > commit ce17eddefc20 ("ethdev: introduce Rx queue offloads API") >=20 > This commit support the new Rx offloads API. >=20 > Signed-off-by: Rafal Kozik > --- > drivers/net/ena/ena_ethdev.c | 36 > ++++++++++++++++++++++++++++++++++-- > drivers/net/ena/ena_ethdev.h | 2 ++ > 2 files changed, 36 insertions(+), 2 deletions(-) >=20 > diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c > index 6473776..f069ca8 100644 > --- a/drivers/net/ena/ena_ethdev.c > +++ b/drivers/net/ena/ena_ethdev.c > @@ -237,6 +237,8 @@ static int ena_rss_reta_query(struct rte_eth_dev > *dev, static int ena_get_sset_count(struct rte_eth_dev *dev, int sset); > static bool ena_are_tx_queue_offloads_allowed(struct ena_adapter > *adapter, > uint64_t offloads); > +static bool ena_are_rx_queue_offloads_allowed(struct ena_adapter > *adapter, > + uint64_t offloads); >=20 > static const struct eth_dev_ops ena_dev_ops =3D { > .dev_configure =3D ena_dev_configure, > @@ -766,7 +768,8 @@ static uint32_t ena_get_mtu_conf(struct > ena_adapter *adapter) { > uint32_t max_frame_len =3D adapter->max_mtu; >=20 > - if (adapter->rte_eth_dev_data->dev_conf.rxmode.jumbo_frame =3D=3D > 1) > + if (adapter->rte_eth_dev_data->dev_conf.rxmode.offloads & > + DEV_RX_OFFLOAD_JUMBO_FRAME) > max_frame_len =3D > adapter->rte_eth_dev_data- > >dev_conf.rxmode.max_rx_pkt_len; >=20 > @@ -1065,7 +1068,7 @@ static int ena_rx_queue_setup(struct rte_eth_dev > *dev, > uint16_t queue_idx, > uint16_t nb_desc, > __rte_unused unsigned int socket_id, > - __rte_unused const struct rte_eth_rxconf > *rx_conf, > + const struct rte_eth_rxconf *rx_conf, > struct rte_mempool *mp) > { > struct ena_com_create_io_ctx ctx =3D > @@ -1101,6 +1104,11 @@ static int ena_rx_queue_setup(struct > rte_eth_dev *dev, > return -EINVAL; > } >=20 > + if (!ena_are_rx_queue_offloads_allowed(adapter, rx_conf- > >offloads)) { > + RTE_LOG(ERR, PMD, "Unsupported queue offloads\n"); > + return -EINVAL; > + } > + > ena_qid =3D ENA_IO_RXQ_IDX(queue_idx); >=20 > ctx.qid =3D ena_qid; > @@ -1405,6 +1413,7 @@ static int ena_dev_configure(struct rte_eth_dev > *dev) > struct ena_adapter *adapter =3D > (struct ena_adapter *)(dev->data->dev_private); > uint64_t tx_offloads =3D dev->data->dev_conf.txmode.offloads; > + uint64_t rx_offloads =3D dev->data->dev_conf.rxmode.offloads; >=20 > if ((tx_offloads & adapter->tx_supported_offloads) !=3D tx_offloads) { > RTE_LOG(ERR, PMD, "Some Tx offloads are not supported " > @@ -1413,6 +1422,13 @@ static int ena_dev_configure(struct rte_eth_dev > *dev) > return -ENOTSUP; > } >=20 > + if ((rx_offloads & adapter->rx_supported_offloads) !=3D rx_offloads) { > + RTE_LOG(ERR, PMD, "Some Rx offloads are not supported " > + "requested 0x%lx supported 0x%lx\n", > + rx_offloads, adapter->rx_supported_offloads); > + return -ENOTSUP; > + } > + Same comment about the 32b compilation.=20 > if (!(adapter->state =3D=3D ENA_ADAPTER_STATE_INIT || > adapter->state =3D=3D ENA_ADAPTER_STATE_STOPPED)) { > PMD_INIT_LOG(ERR, "Illegal adapter state: %d", @@ -1434,6 > +1450,7 @@ static int ena_dev_configure(struct rte_eth_dev *dev) > } >=20 > adapter->tx_selected_offloads =3D tx_offloads; > + adapter->rx_selected_offloads =3D rx_offloads; > return 0; > } >=20 > @@ -1475,6 +1492,19 @@ static bool > ena_are_tx_queue_offloads_allowed(struct ena_adapter *adapter, > return true; > } >=20 > +static bool ena_are_rx_queue_offloads_allowed(struct ena_adapter > *adapter, > + uint64_t offloads) > +{ > + uint64_t port_offloads =3D adapter->rx_selected_offloads; > + > + /* Check if port supports all requested offloads. > + * True if all offloads selected for queue are set for port. > + */ > + if ((offloads & port_offloads) !=3D offloads) > + return false; > + return true; > +} > + > static void ena_infos_get(struct rte_eth_dev *dev, > struct rte_eth_dev_info *dev_info) { @@ -1529,6 > +1559,7 @@ static void ena_infos_get(struct rte_eth_dev *dev, >=20 > /* Inform framework about available features */ > dev_info->rx_offload_capa =3D rx_feat; > + dev_info->rx_queue_offload_capa =3D rx_feat; > dev_info->tx_offload_capa =3D tx_feat; > dev_info->tx_queue_offload_capa =3D tx_feat; >=20 > @@ -1541,6 +1572,7 @@ static void ena_infos_get(struct rte_eth_dev *dev, > dev_info->reta_size =3D ENA_RX_RSS_TABLE_SIZE; >=20 > adapter->tx_supported_offloads =3D tx_feat; > + adapter->rx_supported_offloads =3D rx_feat; > } >=20 > static uint16_t eth_ena_recv_pkts(void *rx_queue, struct rte_mbuf > **rx_pkts, diff --git a/drivers/net/ena/ena_ethdev.h > b/drivers/net/ena/ena_ethdev.h index 3e72777..394d05e 100644 > --- a/drivers/net/ena/ena_ethdev.h > +++ b/drivers/net/ena/ena_ethdev.h > @@ -178,6 +178,8 @@ struct ena_adapter { >=20 > uint64_t tx_supported_offloads; > uint64_t tx_selected_offloads; > + uint64_t rx_supported_offloads; > + uint64_t rx_selected_offloads; > }; >=20 > #endif /* _ENA_ETHDEV_H_ */ Reviewed-By: Shahaf Shuler > -- > 2.7.4