From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerin Jacob Subject: Re: [PATCH V2, 1/2] eventdev: add caps API and PMD callback for crypto adapter Date: Thu, 15 Feb 2018 18:39:46 +0530 Message-ID: <20180215130944.GA808@jerin> References: <1516013570-146070-1-git-send-email-abhinandan.gujjar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: dev@dpdk.org, Nikhil Rao To: Abhinandan Gujjar Return-path: Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0052.outbound.protection.outlook.com [104.47.33.52]) by dpdk.org (Postfix) with ESMTP id 8EBAC1B2B8 for ; Thu, 15 Feb 2018 14:10:04 +0100 (CET) Content-Disposition: inline In-Reply-To: <1516013570-146070-1-git-send-email-abhinandan.gujjar@intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" -----Original Message----- > Date: Mon, 15 Jan 2018 16:22:50 +0530 > From: Abhinandan Gujjar > To: jerin.jacob@caviumnetworks.com > CC: dev@dpdk.org, Abhinandan Gujjar , Nikhil > Rao > Subject: [PATCH V2, 1/2] eventdev: add caps API and PMD callback for crypto > adapter > X-Mailer: git-send-email 1.9.1 > > Application gets required information to configure crypto > adapter for cryptodev and eventdev using caps API. > > Signed-off-by: Abhinandan Gujjar > Signed-off-by: Nikhil Rao > --- > > Notes: > V2: > 1. Removed _MULTI_EVENTQ & _MULTI_EVENTQ capabilities Please fix the shared build issue target: x86_64-native-linuxapp-gcc+shared rte_eventdev.o: In function `rte_event_crypto_adapter_caps_get': rte_eventdev.c:(.text+0x4e4): undefined reference to `rte_cryptodev_pmd_is_valid_dev' rte_eventdev.c:(.text+0x4f7): undefined reference to `rte_cryptodev_pmd_get_dev' collect2: error: ld returned 1 exit status > > lib/librte_eventdev/rte_eventdev.c | 25 +++++++++++++++++++++++++ > lib/librte_eventdev/rte_eventdev.h | 33 +++++++++++++++++++++++++++++++++ > lib/librte_eventdev/rte_eventdev_pmd.h | 32 ++++++++++++++++++++++++++++++++ > 3 files changed, 90 insertions(+) > > diff --git a/lib/librte_eventdev/rte_eventdev.c b/lib/librte_eventdev/rte_eventdev.c > index f32c53f..e453667 100644 > --- a/lib/librte_eventdev/rte_eventdev.c > +++ b/lib/librte_eventdev/rte_eventdev.c > @@ -29,6 +29,8 @@ > #include > #include > #include > +#include > +#include > > #include "rte_eventdev.h" > #include "rte_eventdev_pmd.h" > @@ -123,6 +125,29 @@ > : 0; > } > > +int > +rte_event_crypto_adapter_caps_get(uint8_t dev_id, uint8_t cdev_id, > + uint32_t *caps) > +{ > + struct rte_eventdev *dev; > + struct rte_cryptodev *cdev; > + > + RTE_EVENTDEV_VALID_DEVID_OR_ERR_RET(dev_id, -EINVAL); > + if (!rte_cryptodev_pmd_is_valid_dev(cdev_id)) > + return -EINVAL; > + > + dev = &rte_eventdevs[dev_id]; > + cdev = rte_cryptodev_pmd_get_dev(cdev_id); > + > + if (caps == NULL) > + return -EINVAL; Could move the caps check to beginning. > + *caps = 0; > + > + return dev->dev_ops->crypto_adapter_caps_get ? > + (*dev->dev_ops->crypto_adapter_caps_get) > + (dev, cdev, caps) : 0; > +} > + > static inline int > rte_event_dev_queue_config(struct rte_eventdev *dev, uint8_t nb_queues) > { > diff --git a/lib/librte_eventdev/rte_eventdev.h b/lib/librte_eventdev/rte_eventdev.h > index f1949ff..b442fa2 100644 > --- a/lib/librte_eventdev/rte_eventdev.h > +++ b/lib/librte_eventdev/rte_eventdev.h > @@ -1048,6 +1048,39 @@ struct rte_event { > rte_event_eth_rx_adapter_caps_get(uint8_t dev_id, uint8_t eth_port_id, > uint32_t *caps); > > + > +/* Crypto adapter capability bitmap flag */ > +#define RTE_EVENT_CYRPTO_ADAPTER_CAP_INTERNAL_PORT 0x1 s/CYRPTO/CRYPTO > +/**< Flag indicates HW is capable of generating events. How about, generating "crypto completion" events or something similar, > + * Cryptodev can send packets to the event device using internal event port. > + */ > + > +/** > + * @warning > + * @b EXPERIMENTAL: this API may change without prior notice Use the new __experimental tag > + * > + * Retrieve the event device's crypto adapter capabilities for the > + * specified cryptodev device > + * > + * @param dev_id > + * The identifier of the device. > + * > + * @param cdev_id > + * The identifier of the cryptodev device. > + * > + * @param[out] caps > + * A pointer to memory filled with event adapter capabilities. > + * > + * @return > + * - 0: Success, driver provides event adapter capabilities for the > + * cryptodev device. > + * - <0: Error code returned by the driver function. > + * > + */ > +int > +rte_event_crypto_adapter_caps_get(uint8_t dev_id, uint8_t cdev_id, > + uint32_t *caps); > + > struct rte_eventdev_driver; > struct rte_eventdev_ops; > struct rte_eventdev; > diff --git a/lib/librte_eventdev/rte_eventdev_pmd.h b/lib/librte_eventdev/rte_eventdev_pmd.h > index c2fd09c..0c10d99 100644 > --- a/lib/librte_eventdev/rte_eventdev_pmd.h > +++ b/lib/librte_eventdev/rte_eventdev_pmd.h > @@ -569,6 +569,35 @@ typedef int (*eventdev_eth_rx_adapter_stats_reset) > (const struct rte_eventdev *dev, > const struct rte_eth_dev *eth_dev); > > + > +struct rte_cryptodev; > +/** > + * @warning > + * @b EXPERIMENTAL: this API may change without prior notice This is a internal PMD API. So, I think, it does not come in EXPERIMENTAL tag > + * > + * Retrieve the event device's crypto adapter capabilities for the > + * specified cryptodev > + * > + * @param dev > + * Event device pointer > + * > + * @param cdev > + * cryptodev pointer > + * > + * @param[out] caps > + * A pointer to memory filled with event adapter capabilities. > + * > + * @return > + * - 0: Success, driver provides event adapter capabilities for the > + * cryptodev. > + * - <0: Error code returned by the driver function. > + * > + */ > +typedef int (*eventdev_crypto_adapter_caps_get_t) > + (const struct rte_eventdev *dev, > + const struct rte_cryptodev *cdev, > + uint32_t *caps); > + > /** Event device operations function pointer table */ > struct rte_eventdev_ops { > eventdev_info_get_t dev_infos_get; /**< Get device info. */ > @@ -623,6 +652,9 @@ struct rte_eventdev_ops { > /**< Get ethernet Rx stats */ > eventdev_eth_rx_adapter_stats_reset eth_rx_adapter_stats_reset; > /**< Reset ethernet Rx stats */ > + > + eventdev_crypto_adapter_caps_get_t crypto_adapter_caps_get; > + /**< Get crypto adapter capabilities */ Please rebase to latest dpdk-event-next tree. > }; > > /** > -- > 1.9.1 >