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>
Go to the source code of this file.
Macros | |
#define | DAO_PORT_GROUP_MAX 8 |
#define | DAO_PORT_GROUP_NAMELEN 64 |
#define | DAO_PORT_INVALID_VALUE ((dao_port_t)(~0)) |
#define | DAO_PORT_GROUP_FOREACH_PORT(epg, port, index) |
Typedefs | |
typedef uint32_t | dao_port_group_t |
typedef uint64_t | dao_port_t |
Functions | |
int | dao_port_group_create (const char *group_name, uint32_t max_num_ports, dao_port_group_t *epg) |
int | dao_port_group_get_by_name (const char *group_name, dao_port_group_t *epg) |
int | dao_port_group_port_add (dao_port_group_t epg, dao_port_t port, int32_t *returned_index) |
int | dao_port_group_port_get (dao_port_group_t epg, int32_t returned_index, dao_port_t *port) |
int32_t | dao_port_group_port_get_next (dao_port_group_t epg, dao_port_t *port, int32_t index) |
int | dao_port_group_port_get_num (dao_port_group_t epg, uint32_t *num_ports) |
int | dao_port_group_port_delete (dao_port_group_t epg, int32_t returned_index) |
int | dao_port_group_destroy (dao_port_group_t epg) |
DAO Port group
Definition in file dao_port_group.h.
#define DAO_PORT_GROUP_MAX 8 |
Default number of port_groups which are supported
Definition at line 31 of file dao_port_group.h.
#define DAO_PORT_GROUP_NAMELEN 64 |
Max Length of port_group name Initializer for dao_port_group_t
Definition at line 33 of file dao_port_group.h.
#define DAO_PORT_INVALID_VALUE ((dao_port_t)(~0)) |
Initializer value for dao_port_t
Definition at line 35 of file dao_port_group.h.
#define DAO_PORT_GROUP_FOREACH_PORT | ( | epg, | |
port, | |||
index | |||
) |
Loop for all ports in a dao_port_group_t
Recommended to be used in control path
epg | (dao_port_group_t) |
port | (dao_port_t ) value set by application at index iter |
index | (int32_t). Array Index where port is saved. Caller can use index to call dao_port_group_delete_port(epg, index) |
Definition at line 194 of file dao_port_group.h.
typedef uint32_t dao_port_group_t |
dao port_group object holding list of dao_port_t
Definition at line 37 of file dao_port_group.h.
typedef uint64_t dao_port_t |
Application level identifier to represent port
Definition at line 38 of file dao_port_group.h.
int dao_port_group_create | ( | const char * | group_name, |
uint32_t | max_num_ports, | ||
dao_port_group_t * | epg | ||
) |
Port group library
Port group library allows applications to keep track of homogeneous ports (or ethdevs) created in the system and facilitates iterating over these ports in slow path seamlessly.
Typically, in a given system varieties of ports are probed like Ethernet PMD devices, LINUX TUN/TAP devices, virtio devices, DMA devices etc. Application, for instance, can create "dao_port_group_t" object (
Application can create (DAO_PORT_GROUP_MAX) number of "dao_port_group_t" objects in the system. Create port_group object
group_name | Name of the port_group name | |
max_num_ports | Maximum number of "dao_port_t" objects that application would like to add | |
[out] | epg | Pointer to newly created "dao_port_group_t" object. Valid if return is 0. |
int dao_port_group_get_by_name | ( | const char * | group_name, |
dao_port_group_t * | epg | ||
) |
Get already created port_group object by its name
group_name | Name of the group with which port_group was created | |
[out] | epg | Pointer to "dao_port_group_t" object. Valid if return is 0. |
int dao_port_group_port_add | ( | dao_port_group_t | epg, |
dao_port_t | port, | ||
int32_t * | returned_index | ||
) |
Add "dao_port_t" to port_group object
epg | "dao_port_group_t" object. | |
port | "dao_port_t" to be added to port_group object | |
[out] | returned_index | Pointer to returned index at which library stores provided port. Can be used by caller for port iteration. |
int dao_port_group_port_get | ( | dao_port_group_t | epg, |
int32_t | returned_index, | ||
dao_port_t * | port | ||
) |
Get "dao_port_t" from port_group object using returned_index retrieved from dao_port_group_port_add()
epg | "dao_port_group_t" object. | |
returned_index | Returned index retrieved from dao_port_group_port_add() | |
[out] | port | Pointer to dao_port_t. Valid if function returns 0 |
int32_t dao_port_group_port_get_next | ( | dao_port_group_t | epg, |
dao_port_t * | port, | ||
int32_t | index | ||
) |
Get first "dao_port_t" from a port_group whose returned_index (
epg | "dao_port_group_t" object. |
port | Pointer to "dao_port_t". Valid if function returns 0 |
index | -1 or Returned index from dao_port_group_port_get_next() or dao_port_group_port_add() |
int dao_port_group_port_get_num | ( | dao_port_group_t | epg, |
uint32_t * | num_ports | ||
) |
Get number of "dao_port_t" saved in a port_group.
epg | "dao_port_group_t" object. | |
[out] | num_ports | Pointer to num_ports saved by API. Valid if function returns 0 |
int dao_port_group_port_delete | ( | dao_port_group_t | epg, |
int32_t | returned_index | ||
) |
Delete already created "dao_port_t" from a port_group
epg | "dao_port_group_t" object. |
returned_index | Index either retrieved by dao_port_group_port_add() or dao_port_group_port_get_next_port() |
int dao_port_group_destroy | ( | dao_port_group_t | epg | ) |
Destroy port_group object
epg | "dao_port_group_t" object. |