#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 */
* 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. */
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
* 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);
* 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);
* @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
* @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);
/**
* @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);
/**
* @param owner_id
* The owner identifier.
*/
-void __rte_experimental rte_eth_dev_owner_delete(const uint64_t owner_id);
+__rte_experimental
+void rte_eth_dev_owner_delete(const uint64_t owner_id);
/**
* @warning
* @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);
/**
* @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);
/**
* .nb_max = UINT16_MAX,
* .nb_min = 0,
* .nb_align = 1,
+ * .nb_seg_max = UINT16_MAX,
+ * .nb_mtu_seg_max = UINT16_MAX,
* };
*
* device = dev->device
* @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.
* 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.
* 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.
*/
* 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.
*/
* 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.
*/
* 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);
* 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);
/**
* - (-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);
* - (-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);
* - -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);
/**
* 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
*
*/