X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2Flibrte_ethdev%2Frte_ethdev.h;h=d937fb4293392c5f6e97b2bae0b286af50197f89;hb=07737474ece260fc4adbc46a0b2e7352887fa0c2;hp=5dd11afffd3e6e89b18fd0d447c0b6cfea571fc1;hpb=5e741377657c8fce28037e025ea2f12371400476;p=dpdk.git diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index 5dd11afffd..d937fb4293 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -584,11 +584,13 @@ struct rte_eth_rss_conf { #define ETH_VLAN_STRIP_OFFLOAD 0x0001 /**< VLAN Strip On/Off */ #define ETH_VLAN_FILTER_OFFLOAD 0x0002 /**< VLAN Filter On/Off */ #define ETH_VLAN_EXTEND_OFFLOAD 0x0004 /**< VLAN Extend On/Off */ +#define ETH_QINQ_STRIP_OFFLOAD 0x0008 /**< QINQ Strip On/Off */ /* Definitions used for mask VLAN setting */ #define ETH_VLAN_STRIP_MASK 0x0001 /**< VLAN Strip setting mask */ #define ETH_VLAN_FILTER_MASK 0x0002 /**< VLAN Filter setting mask*/ #define ETH_VLAN_EXTEND_MASK 0x0004 /**< VLAN Extend setting mask*/ +#define ETH_QINQ_STRIP_MASK 0x0008 /**< QINQ Strip setting mask */ #define ETH_VLAN_ID_MAX 0x0FFF /**< VLAN ID is in lower 12 bits*/ /* Definitions used for receive MAC address */ @@ -909,7 +911,7 @@ enum rte_fdir_status_mode { * A structure used to configure the Flow Director (FDIR) feature * of an Ethernet port. * - * If mode is RTE_FDIR_DISABLE, the pballoc value is ignored. + * If mode is RTE_FDIR_MODE_NONE, the pballoc value is ignored. */ struct rte_fdir_conf { enum rte_fdir_mode mode; /**< Flow Director mode. */ @@ -1017,7 +1019,8 @@ struct rte_eth_conf { DEV_RX_OFFLOAD_TCP_CKSUM) #define DEV_RX_OFFLOAD_VLAN (DEV_RX_OFFLOAD_VLAN_STRIP | \ DEV_RX_OFFLOAD_VLAN_FILTER | \ - DEV_RX_OFFLOAD_VLAN_EXTEND) + DEV_RX_OFFLOAD_VLAN_EXTEND | \ + DEV_RX_OFFLOAD_QINQ_STRIP) /* * If new Rx offload capabilities are defined, they also must be @@ -1453,7 +1456,8 @@ uint16_t rte_eth_find_next(uint16_t port_id); * Next port id of the device, possibly port_id_start, * RTE_MAX_ETHPORTS if there is none. */ -uint16_t __rte_experimental +__rte_experimental +uint16_t rte_eth_find_next_of(uint16_t port_id_start, const struct rte_device *parent); @@ -1484,7 +1488,8 @@ rte_eth_find_next_of(uint16_t port_id_start, * Next sibling port id, possibly port_id_start or ref_port_id itself, * RTE_MAX_ETHPORTS if there is none. */ -uint16_t __rte_experimental +__rte_experimental +uint16_t rte_eth_find_next_sibling(uint16_t port_id_start, uint16_t ref_port_id); @@ -1516,7 +1521,8 @@ rte_eth_find_next_sibling(uint16_t port_id_start, * @return * Negative errno value on error, 0 on success. */ -int __rte_experimental rte_eth_dev_owner_new(uint64_t *owner_id); +__rte_experimental +int rte_eth_dev_owner_new(uint64_t *owner_id); /** * @warning @@ -1531,7 +1537,8 @@ int __rte_experimental rte_eth_dev_owner_new(uint64_t *owner_id); * @return * Negative errno value on error, 0 on success. */ -int __rte_experimental rte_eth_dev_owner_set(const uint16_t port_id, +__rte_experimental +int rte_eth_dev_owner_set(const uint16_t port_id, const struct rte_eth_dev_owner *owner); /** @@ -1547,7 +1554,8 @@ int __rte_experimental rte_eth_dev_owner_set(const uint16_t port_id, * @return * 0 on success, negative errno value on error. */ -int __rte_experimental rte_eth_dev_owner_unset(const uint16_t port_id, +__rte_experimental +int rte_eth_dev_owner_unset(const uint16_t port_id, const uint64_t owner_id); /** @@ -1558,8 +1566,11 @@ int __rte_experimental rte_eth_dev_owner_unset(const uint16_t port_id, * * @param owner_id * The owner identifier. + * @return + * 0 on success, negative errno value on error. */ -void __rte_experimental rte_eth_dev_owner_delete(const uint64_t owner_id); +__rte_experimental +int rte_eth_dev_owner_delete(const uint64_t owner_id); /** * @warning @@ -1574,7 +1585,8 @@ void __rte_experimental rte_eth_dev_owner_delete(const uint64_t owner_id); * @return * 0 on success, negative errno value on error.. */ -int __rte_experimental rte_eth_dev_owner_get(const uint16_t port_id, +__rte_experimental +int rte_eth_dev_owner_get(const uint16_t port_id, struct rte_eth_dev_owner *owner); /** @@ -1700,7 +1712,8 @@ int rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_queue, * @return * 1 when the Ethernet device is removed, otherwise 0. */ -int __rte_experimental +__rte_experimental +int rte_eth_dev_is_removed(uint16_t port_id); /** @@ -1745,9 +1758,9 @@ rte_eth_dev_is_removed(uint16_t port_id); * @return * - 0: Success, receive queue correctly set up. * - -EIO: if device is removed. - * - -EINVAL: The size of network buffers which can be allocated from the - * memory pool does not fit the various buffer sizes allowed by the - * device controller. + * - -EINVAL: The memory pool pointer is null or the size of network buffers + * which can be allocated from this memory pool does not fit the various + * buffer sizes allowed by the device controller. * - -ENOMEM: Unable to allocate the receive ring descriptors or to * allocate network memory buffers from the memory pool when * initializing receive descriptors. @@ -2011,16 +2024,26 @@ int rte_eth_dev_reset(uint16_t port_id); * * @param port_id * The port identifier of the Ethernet device. + * @return + * - (0) if successful. + * - (-ENOTSUP) if support for promiscuous_enable() does not exist + * for the device. + * - (-ENODEV) if *port_id* invalid. */ -void rte_eth_promiscuous_enable(uint16_t port_id); +int rte_eth_promiscuous_enable(uint16_t port_id); /** * Disable receipt in promiscuous mode for an Ethernet device. * * @param port_id * The port identifier of the Ethernet device. + * @return + * - (0) if successful. + * - (-ENOTSUP) if support for promiscuous_disable() does not exist + * for the device. + * - (-ENODEV) if *port_id* invalid. */ -void rte_eth_promiscuous_disable(uint16_t port_id); +int rte_eth_promiscuous_disable(uint16_t port_id); /** * Return the value of promiscuous mode for an Ethernet device. @@ -2039,16 +2062,26 @@ int rte_eth_promiscuous_get(uint16_t port_id); * * @param port_id * The port identifier of the Ethernet device. + * @return + * - (0) if successful. + * - (-ENOTSUP) if support for allmulticast_enable() does not exist + * for the device. + * - (-ENODEV) if *port_id* invalid. */ -void rte_eth_allmulticast_enable(uint16_t port_id); +int rte_eth_allmulticast_enable(uint16_t port_id); /** * Disable the receipt of all multicast frames by an Ethernet device. * * @param port_id * The port identifier of the Ethernet device. + * @return + * - (0) if successful. + * - (-ENOTSUP) if support for allmulticast_disable() does not exist + * for the device. + * - (-ENODEV) if *port_id* invalid. */ -void rte_eth_allmulticast_disable(uint16_t port_id); +int rte_eth_allmulticast_disable(uint16_t port_id); /** * Return the value of allmulticast mode for an Ethernet device. @@ -2072,8 +2105,12 @@ int rte_eth_allmulticast_get(uint16_t port_id); * @param link * A pointer to an *rte_eth_link* structure to be filled with * the status, the speed and the mode of the Ethernet device link. + * @return + * - (0) if successful. + * - (-ENOTSUP) if the function is not supported in PMD driver. + * - (-ENODEV) if *port_id* invalid. */ -void rte_eth_link_get(uint16_t port_id, struct rte_eth_link *link); +int rte_eth_link_get(uint16_t port_id, struct rte_eth_link *link); /** * Retrieve the status (ON/OFF), the speed (in Mbps) and the mode (HALF-DUPLEX @@ -2085,8 +2122,12 @@ void rte_eth_link_get(uint16_t port_id, struct rte_eth_link *link); * @param link * A pointer to an *rte_eth_link* structure to be filled with * the status, the speed and the mode of the Ethernet device link. + * @return + * - (0) if successful. + * - (-ENOTSUP) if the function is not supported in PMD driver. + * - (-ENODEV) if *port_id* invalid. */ -void rte_eth_link_get_nowait(uint16_t port_id, struct rte_eth_link *link); +int rte_eth_link_get_nowait(uint16_t port_id, struct rte_eth_link *link); /** * Retrieve the general I/O statistics of an Ethernet device. @@ -2116,6 +2157,7 @@ int rte_eth_stats_get(uint16_t port_id, struct rte_eth_stats *stats); * - (0) if device notified to reset stats. * - (-ENOTSUP) if hardware doesn't support. * - (-ENODEV) if *port_id* invalid. + * - (<0): Error code of the driver stats reset function. */ int rte_eth_stats_reset(uint16_t port_id); @@ -2263,8 +2305,14 @@ int rte_eth_xstats_get_id_by_name(uint16_t port_id, const char *xstat_name, * * @param port_id * The port identifier of the Ethernet device. + * @return + * - (0) if device notified to reset extended stats. + * - (-ENOTSUP) if pmd doesn't support both + * extended stats and basic stats reset. + * - (-ENODEV) if *port_id* invalid. + * - (<0): Error code of the driver xstats reset function. */ -void rte_eth_xstats_reset(uint16_t port_id); +int rte_eth_xstats_reset(uint16_t port_id); /** * Set a mapping for the specified transmit queue to the specified per-queue @@ -2315,8 +2363,11 @@ int rte_eth_dev_set_rx_queue_stats_mapping(uint16_t port_id, * @param mac_addr * A pointer to a structure of type *ether_addr* to be filled with * the Ethernet address of the Ethernet device. + * @return + * - (0) if successful + * - (-ENODEV) if *port_id* invalid. */ -void rte_eth_macaddr_get(uint16_t port_id, struct rte_ether_addr *mac_addr); +int rte_eth_macaddr_get(uint16_t port_id, struct rte_ether_addr *mac_addr); /** * Retrieve the contextual information of an Ethernet device. @@ -2333,6 +2384,8 @@ void rte_eth_macaddr_get(uint16_t port_id, struct rte_ether_addr *mac_addr); * .nb_max = UINT16_MAX, * .nb_min = 0, * .nb_align = 1, + * .nb_seg_max = UINT16_MAX, + * .nb_mtu_seg_max = UINT16_MAX, * }; * * device = dev->device @@ -2353,8 +2406,12 @@ void rte_eth_macaddr_get(uint16_t port_id, struct rte_ether_addr *mac_addr); * @param dev_info * A pointer to a structure of type *rte_eth_dev_info* to be filled with * the contextual information of the Ethernet device. + * @return + * - (0) if successful. + * - (-ENOTSUP) if support for dev_infos_get() does not exist for the device. + * - (-ENODEV) if *port_id* invalid. */ -void rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info); +int rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info); /** * Retrieve the firmware version of a device. @@ -2464,7 +2521,7 @@ int rte_eth_dev_set_mtu(uint16_t port_id, uint16_t mtu); * Otherwise, disable VLAN filtering of VLAN packets tagged with *vlan_id*. * @return * - (0) if successful. - * - (-ENOSUP) if hardware-assisted VLAN filtering not configured. + * - (-ENOTSUP) if hardware-assisted VLAN filtering not configured. * - (-ENODEV) if *port_id* invalid. * - (-EIO) if device is removed. * - (-ENOSYS) if VLAN filtering on *port_id* disabled. @@ -2487,7 +2544,7 @@ int rte_eth_dev_vlan_filter(uint16_t port_id, uint16_t vlan_id, int on); * If 0, Disable VLAN Stripping of the receive queue of the Ethernet port. * @return * - (0) if successful. - * - (-ENOSUP) if hardware-assisted VLAN stripping not configured. + * - (-ENOTSUP) if hardware-assisted VLAN stripping not configured. * - (-ENODEV) if *port_id* invalid. * - (-EINVAL) if *rx_queue_id* invalid. */ @@ -2507,7 +2564,7 @@ int rte_eth_dev_set_vlan_strip_on_queue(uint16_t port_id, uint16_t rx_queue_id, * The Tag Protocol ID * @return * - (0) if successful. - * - (-ENOSUP) if hardware-assisted VLAN TPID setup is not supported. + * - (-ENOTSUP) if hardware-assisted VLAN TPID setup is not supported. * - (-ENODEV) if *port_id* invalid. * - (-EIO) if device is removed. */ @@ -2530,9 +2587,10 @@ int rte_eth_dev_set_vlan_ether_type(uint16_t port_id, * ETH_VLAN_STRIP_OFFLOAD * ETH_VLAN_FILTER_OFFLOAD * ETH_VLAN_EXTEND_OFFLOAD + * ETH_QINQ_STRIP_OFFLOAD * @return * - (0) if successful. - * - (-ENOSUP) if hardware-assisted VLAN filtering not configured. + * - (-ENOTSUP) if hardware-assisted VLAN filtering not configured. * - (-ENODEV) if *port_id* invalid. * - (-EIO) if device is removed. */ @@ -2548,6 +2606,7 @@ int rte_eth_dev_set_vlan_offload(uint16_t port_id, int offload_mask); * ETH_VLAN_STRIP_OFFLOAD * ETH_VLAN_FILTER_OFFLOAD * ETH_VLAN_EXTEND_OFFLOAD + * ETH_QINQ_STRIP_OFFLOAD * - (-ENODEV) if *port_id* invalid. */ int rte_eth_dev_get_vlan_offload(uint16_t port_id); @@ -2926,7 +2985,8 @@ int rte_eth_dev_rx_intr_ctl_q(uint16_t port_id, uint16_t queue_id, * successful. * - (-1) on error. */ -int __rte_experimental +__rte_experimental +int rte_eth_dev_rx_intr_ctl_q_get_fd(uint16_t port_id, uint16_t queue_id); /** @@ -3624,7 +3684,8 @@ int rte_eth_dev_set_eeprom(uint16_t port_id, struct rte_dev_eeprom_info *info); * - (-EIO) if device is removed. * - others depends on the specific operations implementation. */ -int __rte_experimental +__rte_experimental +int rte_eth_dev_get_module_info(uint16_t port_id, struct rte_eth_dev_module_info *modinfo); @@ -3646,7 +3707,8 @@ rte_eth_dev_get_module_info(uint16_t port_id, * - (-EIO) if device is removed. * - others depends on the specific operations implementation. */ -int __rte_experimental +__rte_experimental +int rte_eth_dev_get_module_eeprom(uint16_t port_id, struct rte_dev_eeprom_info *info); @@ -3838,7 +3900,8 @@ int rte_eth_timesync_write_time(uint16_t port_id, const struct timespec *time); * - -ENODEV: The port ID is invalid. * - -ENOTSUP: The function is not supported by the Ethernet driver. */ -int __rte_experimental +__rte_experimental +int rte_eth_read_clock(uint16_t port_id, uint64_t *clock); /** @@ -4405,8 +4468,8 @@ rte_eth_tx_burst(uint16_t port_id, uint16_t queue_id, * The number of packets correct and ready to be sent. The return value can be * less than the value of the *tx_pkts* parameter when some packet doesn't * meet devices requirements with rte_errno set appropriately: - * - -EINVAL: offload flags are not correctly set - * - -ENOTSUP: the offload feature is not supported by the hardware + * - EINVAL: offload flags are not correctly set + * - ENOTSUP: the offload feature is not supported by the hardware * */