Go to the source code of this file.
|
enum | rte_intr_handle_type {
RTE_INTR_HANDLE_UNKNOWN = 0,
RTE_INTR_HANDLE_UIO,
RTE_INTR_HANDLE_UIO_INTX,
RTE_INTR_HANDLE_VFIO_LEGACY,
RTE_INTR_HANDLE_VFIO_MSI,
RTE_INTR_HANDLE_VFIO_MSIX,
RTE_INTR_HANDLE_ALARM,
RTE_INTR_HANDLE_EXT,
RTE_INTR_HANDLE_VDEV,
RTE_INTR_HANDLE_DEV_EVENT,
RTE_INTR_HANDLE_VFIO_REQ,
RTE_INTR_HANDLE_MAX
} |
|
enum | { ,
RTE_QDMA_MODE_HW,
RTE_QDMA_MODE_VIRTUAL
, RTE_MIN_ERRNO = __ELASTERROR,
E_RTE_SECONDARY,
E_RTE_NO_CONFIG,
RTE_MAX_ERRNO
, CFG_FLAG_GLOBAL_SECTION = 1,
CFG_FLAG_EMPTY_VALUES = 2,
IP_LAST_FRAG_IDX,
IP_FIRST_FRAG_IDX,
IP_MIN_FRAG_NUM,
IP_MAX_FRAG_NUM = RTE_LIBRTE_IP_FRAG_MAX_FRAG
,
RTE_RIB_GET_NXT_ALL,
RTE_RIB_GET_NXT_COVER,
RTE_RIB6_GET_NXT_ALL,
RTE_RIB6_GET_NXT_COVER
} |
|
|
int | rte_epoll_wait (int epfd, struct rte_epoll_event *events, int maxevents, int timeout) |
|
int | rte_epoll_ctl (int epfd, int op, int fd, struct rte_epoll_event *event) |
|
int | rte_intr_tls_epfd (void) |
|
int | rte_intr_rx_ctl (struct rte_intr_handle *intr_handle, int epfd, int op, unsigned int vec, void *data) |
|
void | rte_intr_free_epoll_fd (struct rte_intr_handle *intr_handle) |
|
int | rte_intr_efd_enable (struct rte_intr_handle *intr_handle, uint32_t nb_efd) |
|
void | rte_intr_efd_disable (struct rte_intr_handle *intr_handle) |
|
int | rte_intr_dp_is_en (struct rte_intr_handle *intr_handle) |
|
int | rte_intr_allow_others (struct rte_intr_handle *intr_handle) |
|
int | rte_intr_cap_multiple (struct rte_intr_handle *intr_handle) |
|
◆ RTE_EPOLL_PER_THREAD
#define RTE_EPOLL_PER_THREAD -1 |
◆ rte_intr_handle_type
The interrupt source type, e.g. UIO, VFIO, ALARM etc.
Enumerator |
---|
RTE_INTR_HANDLE_UNKNOWN | generic unknown handle
|
RTE_INTR_HANDLE_UIO | uio device handle
|
RTE_INTR_HANDLE_UIO_INTX | uio generic handle
|
RTE_INTR_HANDLE_VFIO_LEGACY | vfio device handle (legacy)
|
RTE_INTR_HANDLE_VFIO_MSI | vfio device handle (MSI)
|
RTE_INTR_HANDLE_VFIO_MSIX | vfio device handle (MSIX)
|
RTE_INTR_HANDLE_ALARM | alarm handle
|
RTE_INTR_HANDLE_EXT | external handler
|
RTE_INTR_HANDLE_VDEV | virtual device
|
RTE_INTR_HANDLE_DEV_EVENT | device event handle
|
RTE_INTR_HANDLE_VFIO_REQ | VFIO request handle
|
RTE_INTR_HANDLE_MAX | count of elements
|
Definition at line 27 of file rte_eal_interrupts.h.
◆ anonymous enum
Enumerator |
---|
RTE_QDMA_MODE_HW | Allocate a H/W queue per VQ i.e. Exclusive hardware queue for a VQ. This mode will have best performance.
|
RTE_QDMA_MODE_VIRTUAL | A VQ shall not have an exclusive associated H/W queue. Rather a H/W Queue will be shared by multiple Virtual Queues. This mode will have intermediate data structures to support multi VQ to PQ mappings thus having some performance implications. Note: Even in this mode there is an option to allocate a H/W queue for a VQ. Please see 'RTE_QDMA_VQ_EXCLUSIVE_PQ' flag.
|
RTE_MIN_ERRNO | Start numbering above std errno vals
|
E_RTE_SECONDARY | Operation not allowed in secondary processes
|
E_RTE_NO_CONFIG | Missing rte_config
|
RTE_MAX_ERRNO | Max RTE error number
|
CFG_FLAG_GLOBAL_SECTION | Indicates that the file supports key value entries before the first defined section. These entries can be accessed in the "GLOBAL" section.
|
CFG_FLAG_EMPTY_VALUES | Indicates that file supports key value entries where the value can be zero length (e.g., "key=").
|
IP_LAST_FRAG_IDX | index of last fragment
|
IP_FIRST_FRAG_IDX | index of first fragment
|
IP_MIN_FRAG_NUM | minimum number of fragments
|
IP_MAX_FRAG_NUM | maximum number of fragments per packet
|
RTE_RIB_GET_NXT_ALL | flag to get all subroutes in a RIB tree
|
RTE_RIB_GET_NXT_COVER | flag to get first matched subroutes in a RIB tree
|
RTE_RIB6_GET_NXT_ALL | flag to get all subroutes in a RIB tree
|
RTE_RIB6_GET_NXT_COVER | flag to get first matched subroutes in a RIB tree
|
Definition at line 54 of file rte_eal_interrupts.h.
◆ rte_epoll_wait()
int rte_epoll_wait |
( |
int |
epfd, |
|
|
struct rte_epoll_event * |
events, |
|
|
int |
maxevents, |
|
|
int |
timeout |
|
) |
| |
It waits for events on the epoll instance.
- Parameters
-
epfd | Epoll instance fd on which the caller wait for events. |
events | Memory area contains the events that will be available for the caller. |
maxevents | Up to maxevents are returned, must greater than zero. |
timeout | Specifying a timeout of -1 causes a block indefinitely. Specifying a timeout equal to zero cause to return immediately. |
- Returns
- On success, returns the number of available event.
- On failure, a negative value.
- Examples
- examples/l3fwd-power/main.c.
◆ rte_epoll_ctl()
int rte_epoll_ctl |
( |
int |
epfd, |
|
|
int |
op, |
|
|
int |
fd, |
|
|
struct rte_epoll_event * |
event |
|
) |
| |
It performs control operations on epoll instance referred by the epfd. It requests that the operation op be performed for the target fd.
- Parameters
-
epfd | Epoll instance fd on which the caller perform control operations. |
op | The operation be performed for the target fd. |
fd | The target fd on which the control ops perform. |
event | Describes the object linked to the fd. Note: The caller must take care the object deletion after CTL_DEL. |
- Returns
- On success, zero.
- On failure, a negative value.
◆ rte_intr_tls_epfd()
int rte_intr_tls_epfd |
( |
void |
| ) |
|
The function returns the per thread epoll instance.
- Returns
- epfd the epoll instance referred to.
◆ rte_intr_rx_ctl()
int rte_intr_rx_ctl |
( |
struct rte_intr_handle * |
intr_handle, |
|
|
int |
epfd, |
|
|
int |
op, |
|
|
unsigned int |
vec, |
|
|
void * |
data |
|
) |
| |
- Parameters
-
intr_handle | Pointer to the interrupt handle. |
epfd | Epoll instance fd which the intr vector associated to. |
op | The operation be performed for the vector. Operation type of {ADD, DEL}. |
vec | RX intr vector number added to the epoll instance wait list. |
data | User raw data. |
- Returns
- On success, zero.
- On failure, a negative value.
◆ rte_intr_free_epoll_fd()
It deletes registered eventfds.
- Parameters
-
intr_handle | Pointer to the interrupt handle. |
◆ rte_intr_efd_enable()
int rte_intr_efd_enable |
( |
struct rte_intr_handle * |
intr_handle, |
|
|
uint32_t |
nb_efd |
|
) |
| |
It enables the packet I/O interrupt event if it's necessary. It creates event fd for each interrupt vector when MSIX is used, otherwise it multiplexes a single event fd.
- Parameters
-
intr_handle | Pointer to the interrupt handle. |
nb_efd | Number of interrupt vector trying to enable. The value 0 is not allowed. |
- Returns
- On success, zero.
- On failure, a negative value.
◆ rte_intr_efd_disable()
It disables the packet I/O interrupt event. It deletes registered eventfds and closes the open fds.
- Parameters
-
intr_handle | Pointer to the interrupt handle. |
◆ rte_intr_dp_is_en()
The packet I/O interrupt on datapath is enabled or not.
- Parameters
-
intr_handle | Pointer to the interrupt handle. |
◆ rte_intr_allow_others()
The interrupt handle instance allows other causes or not. Other causes stand for any none packet I/O interrupts.
- Parameters
-
intr_handle | Pointer to the interrupt handle. |
◆ rte_intr_cap_multiple()
The multiple interrupt vector capability of interrupt handle instance. It returns zero if no multiple interrupt vector support.
- Parameters
-
intr_handle | Pointer to the interrupt handle. |