X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_ethdev%2Frte_ethdev_driver.h;h=99d4cd6cd0fc22362b820b5f5c504359181f485d;hb=0962b6055c080699f93ef986327e536d4707853a;hp=f158462a015760840f30314981000051525ec8b4;hpb=323e7b667f18376c60351282950b28d4d0cc6165;p=dpdk.git diff --git a/lib/librte_ethdev/rte_ethdev_driver.h b/lib/librte_ethdev/rte_ethdev_driver.h index f158462a01..99d4cd6cd0 100644 --- a/lib/librte_ethdev/rte_ethdev_driver.h +++ b/lib/librte_ethdev/rte_ethdev_driver.h @@ -21,6 +21,41 @@ extern "C" { #endif +/** + * RX/TX queue states + */ +#define RTE_ETH_QUEUE_STATE_STOPPED 0 +#define RTE_ETH_QUEUE_STATE_STARTED 1 +#define RTE_ETH_QUEUE_STATE_HAIRPIN 2 + +/** + * @internal + * Check if the selected Rx queue is hairpin queue. + * + * @param dev + * Pointer to the selected device. + * @param queue_id + * The selected queue. + * + * @return + * - (1) if the queue is hairpin queue, 0 otherwise. + */ +int rte_eth_dev_is_rx_hairpin_queue(struct rte_eth_dev *dev, uint16_t queue_id); + +/** + * @internal + * Check if the selected Tx queue is hairpin queue. + * + * @param dev + * Pointer to the selected device. + * @param queue_id + * The selected queue. + * + * @return + * - (1) if the queue is hairpin queue, 0 otherwise. + */ +int rte_eth_dev_is_tx_hairpin_queue(struct rte_eth_dev *dev, uint16_t queue_id); + /** * @internal * Returns a ethdev slot specified by the unique identifier name. @@ -58,10 +93,17 @@ struct rte_eth_dev *rte_eth_dev_attach_secondary(const char *name); /** * @internal - * Release the specified ethdev port. + * Notify RTE_ETH_EVENT_DESTROY and release the specified ethdev port. + * + * The following PMD-managed data fields will be freed: + * - dev_private + * - mac_addrs + * - hash_mac_addrs + * If one of these fields should not be freed, + * it must be reset to NULL by the PMD, typically in dev_close method. * * @param eth_dev - * The *eth_dev* pointer is the address of the *rte_eth_dev* structure. + * Device to be detached. * @return * - 0 on success, negative on error */ @@ -218,7 +260,8 @@ rte_eth_linkstatus_get(const struct rte_eth_dev *dev, * @return * Negative errno value on error, 0 on success. */ -int __rte_experimental +__rte_experimental +int rte_eth_switch_domain_alloc(uint16_t *domain_id); /** @@ -236,7 +279,8 @@ rte_eth_switch_domain_alloc(uint16_t *domain_id); * @return * Negative errno value on error, 0 on success. */ -int __rte_experimental +__rte_experimental +int rte_eth_switch_domain_free(uint16_t domain_id); /** Generic Ethernet device arguments */ @@ -265,7 +309,8 @@ struct rte_eth_devargs { * @return * Negative errno value on error, 0 on success. */ -int __rte_experimental +__rte_experimental +int rte_eth_devargs_parse(const char *devargs, struct rte_eth_devargs *eth_devargs); @@ -297,7 +342,8 @@ typedef int (*ethdev_bus_specific_init)(struct rte_eth_dev *ethdev, * @return * Negative errno value on error, 0 on success. */ -int __rte_experimental +__rte_experimental +int rte_eth_dev_create(struct rte_device *device, const char *name, size_t priv_data_size, ethdev_bus_specific_init bus_specific_init, void *bus_init_params, @@ -310,7 +356,7 @@ typedef int (*ethdev_uninit_t)(struct rte_eth_dev *ethdev); * @warning * @b EXPERIMENTAL: this API may change without prior notice. * - * PMD helper function for cleaing up the resources of a ethdev port on it's + * PMD helper function for cleaning up the resources of a ethdev port on it's * destruction. * * @param ethdev @@ -321,7 +367,8 @@ typedef int (*ethdev_uninit_t)(struct rte_eth_dev *ethdev); * @return * Negative errno value on error, 0 on success. */ -int __rte_experimental +__rte_experimental +int rte_eth_dev_destroy(struct rte_eth_dev *ethdev, ethdev_uninit_t ethdev_uninit); #ifdef __cplusplus