net/ngbe: support MTU set
[dpdk.git] / lib / eventdev / rte_event_eth_rx_adapter.h
index 470543e..ab625f7 100644 (file)
@@ -26,6 +26,7 @@
  * The ethernet Rx event adapter's functions are:
  *  - rte_event_eth_rx_adapter_create_ext()
  *  - rte_event_eth_rx_adapter_create()
+ *  - rte_event_eth_rx_adapter_create_with_params()
  *  - rte_event_eth_rx_adapter_free()
  *  - rte_event_eth_rx_adapter_queue_add()
  *  - rte_event_eth_rx_adapter_queue_del()
@@ -37,7 +38,7 @@
  *
  * The application creates an ethernet to event adapter using
  * rte_event_eth_rx_adapter_create_ext() or rte_event_eth_rx_adapter_create()
- * functions.
+ * or rte_event_eth_rx_adapter_create_with_params() functions.
  * The adapter needs to know which ethernet rx queues to poll for mbufs as well
  * as event device parameters such as the event queue identifier, event
  * priority and scheduling type that the adapter should use when constructing
@@ -199,6 +200,8 @@ struct rte_event_eth_rx_adapter_queue_conf {
         * Valid when RTE_EVENT_ETH_RX_ADAPTER_QUEUE_EVENT_VECTOR flag is set in
         * @see rte_event_eth_rx_adapter_queue_conf::rx_queue_flags.
         */
+       uint16_t event_buf_size;
+       /**< event buffer size for this queue */
 };
 
 /**
@@ -229,6 +232,10 @@ struct rte_event_eth_rx_adapter_stats {
         */
        uint64_t rx_intr_packets;
        /**< Received packet count for interrupt mode Rx queues */
+       uint64_t rx_event_buf_count;
+       /**< Rx event buffered count */
+       uint64_t rx_event_buf_size;
+       /**< Rx event buffer size */
 };
 
 /**
@@ -257,6 +264,19 @@ struct rte_event_eth_rx_adapter_vector_limits {
         */
 };
 
+/**
+ * A structure to hold adapter config params
+ */
+struct rte_event_eth_rx_adapter_params {
+       uint16_t event_buf_size;
+       /**< size of event buffer for the adapter.
+        * This value is rounded up for better buffer utilization
+        * and performance.
+        */
+       bool use_queue_event_buf;
+       /**< flag to indicate that event buffer is separate for each queue */
+};
+
 /**
  *
  * Callback function invoked by the SW adapter before it continues
@@ -357,6 +377,33 @@ int rte_event_eth_rx_adapter_create_ext(uint8_t id, uint8_t dev_id,
 int rte_event_eth_rx_adapter_create(uint8_t id, uint8_t dev_id,
                                struct rte_event_port_conf *port_config);
 
+/**
+ * This is a variant of rte_event_eth_rx_adapter_create() with additional
+ * adapter params specified in ``struct rte_event_eth_rx_adapter_params``.
+ *
+ * @param id
+ *  The identifier of the ethernet Rx event adapter.
+ *
+ * @param dev_id
+ *  The identifier of the event device to configure.
+ *
+ * @param port_config
+ *  Argument of type *rte_event_port_conf* that is passed to the conf_cb
+ *  function.
+ *
+ * @param rxa_params
+ *  Pointer to struct rte_event_eth_rx_adapter_params.
+ *  In case of NULL, default values are used.
+ *
+ * @return
+ *   - 0: Success
+ *   - <0: Error code on failure
+ */
+__rte_experimental
+int rte_event_eth_rx_adapter_create_with_params(uint8_t id, uint8_t dev_id,
+                       struct rte_event_port_conf *port_config,
+                       struct rte_event_eth_rx_adapter_params *rxa_params);
+
 /**
  * Free an event adapter
  *
@@ -541,7 +588,6 @@ int rte_event_eth_rx_adapter_cb_register(uint8_t id, uint16_t eth_dev_id,
  *  - 0: Success.
  *  - <0: Error code on failure.
  */
-__rte_experimental
 int rte_event_eth_rx_adapter_vector_limits_get(
        uint8_t dev_id, uint16_t eth_port_id,
        struct rte_event_eth_rx_adapter_vector_limits *limits);