|
Data Accelerator Offload
|
#include <errno.h>#include <stdint.h>#include <stdlib.h>#include <string.h>#include <stdio.h>#include <stddef.h>#include <signal.h>#include <assert.h>#include <rte_common.h>#include <rte_compat.h>#include <rte_debug.h>#include <dao_portq_group.h>#include <dao_log.h>#include <dao_util.h>Go to the source code of this file.
Data Structures | |
| struct | dao_portq_list |
| struct | dao_portq_group |
| struct | dao_portq_group_main |
Macros | |
| #define | DAO_PORTQ_GROUP_NAMELEN 64 |
| #define | DAO_PORTQ_INVALID_VALUE ((uint32_t)(~1)) |
| #define | DAO_PORTQ_GROUP_FOREACH_CORE(epg, core_id, portq, i) |
Typedefs | |
| typedef struct dao_portq_list | dao_portq_list_t |
| typedef struct dao_portq_group_main | dao_portq_group_main_t |
Functions | |
| static struct dao_portq_group * | dao_portq_group_get (dao_portq_group_t epg) |
| static dao_portq_list_t * | __dao_portq_group_list_get (struct dao_portq_group *epg, uint32_t core_id) |
| static dao_portq_list_t * | dao_portq_group_list_get (dao_portq_group_t epg, uint32_t core_id) |
| static int32_t | dao_portq_group_portq_get_next (dao_portq_group_t epg, uint32_t core_id, dao_portq_t **portq, int32_t index) |
Fast Path PortQ [port, queue] group APIs
Once application creates dao_portq_group_t and assign dao_portq_t by core_id in control path, on each worker, list of dao_portq_t (aka dao_portq_list_t) can be retrieved using dao_portq_group_list_get().
Caller either can manually iterate over dao_portq_list_t OR use fast path defined macro DAO_PORTQ_GROUP_FOREACH_CORE()
Definition in file dao_portq_group_worker.h.
| #define DAO_PORTQ_GROUP_NAMELEN 64 |
Max length of portq group name
Definition at line 44 of file dao_portq_group_worker.h.
| #define DAO_PORTQ_INVALID_VALUE ((uint32_t)(~1)) |
Default value, if uninitialized
Definition at line 45 of file dao_portq_group_worker.h.
| #define DAO_PORTQ_GROUP_FOREACH_CORE | ( | epg, | |
| core_id, | |||
| portq, | |||
| i | |||
| ) |
Fast path macro for iterating over dao_portq_t
Usage:
| epg | dao_portq_group_t object. |
| core_id | core_id ranging from 0 to "num_cores-1" (provided in dao_portq_group_create()) Type: (uint32_t) |
| portq | Pointer to dao_portq_t |
| i | Iterator. (int32_t) |
Definition at line 237 of file dao_portq_group_worker.h.
| typedef struct dao_portq_list dao_portq_list_t |
List/Array of dao_portq_t
| typedef struct dao_portq_group_main dao_portq_group_main_t |
dao portq_group main
|
inlinestatic |
Function definitions Translate from public portq_group object to internal structure
Definition at line 126 of file dao_portq_group_worker.h.
|
inlinestatic |
Fast path API: Get list of dao_portq_t for core_id in a portq_group object
| epg | Pointer to struct dao_portq_group |
| core_id | Core_id ranging from 0 to "num_cores -1" (dao_portq_group_create()) |
Definition at line 147 of file dao_portq_group_worker.h.
|
inlinestatic |
Per core Fast path API: Get list of dao_portq_t for core_id in a portq_group object
| epg | dao_portq_group_t object |
| core_id | Core_id ranging from 0 to "num_cores -1" (dao_portq_group_create()) |
Definition at line 171 of file dao_portq_group_worker.h.
|
inlinestatic |
Fast path API for getting first "dao_portq_t" from a portq_group whose returned_index (
| epg | "dao_port_group_t" object. | |
| core_id | core_id ranging from 0 to "num_cores-1" (provided in dao_portq_group_create()) | |
| [out] | portq | Pointer to "dao_portq_t *". Valid if function returns 0 |
| [out] | index | -1 or Returned index from dao_port_group_port_get_next() or dao_port_group_port_add() |
Definition at line 195 of file dao_portq_group_worker.h.