34 #define BUFFER_SIZE 2048
47 const char *mem_region,
48 const char *os_symbols)
51 int num_interfaces, i;
52 struct doca_apsh_ctx *apsh_ctx;
53 struct doca_apsh_system *sys;
54 struct doca_apsh_interface **interfaces;
77 DOCA_LOG_INFO(
"Successfully performed %s. Host system contains %d interfaces", __func__, num_interfaces);
79 for (i = 0; i < num_interfaces; i++) {
82 offset += snprintf(buffer + offset,
84 "Interface number %d\nname: %s\n",
87 uint32_t ipv4_arr_size =
89 if (ipv4_arr_size > 0) {
90 offset += snprintf(buffer + offset,
BUFFER_SIZE - offset,
"IPV4:\n");
91 char **ipv4_addr_arr =
93 unsigned char *ipv4_prefixlen_arr =
97 for (uint32_t j = 0; j < ipv4_arr_size && j < 5; j++) {
98 offset += snprintf(buffer + offset,
100 "%s, prefixlen: %u\n",
102 ipv4_prefixlen_arr[j]);
105 uint32_t ipv6_arr_size =
107 if (ipv6_arr_size > 0) {
108 offset += snprintf(buffer + offset,
BUFFER_SIZE - offset,
"IPV6:\n");
109 char **ipv6_addr_arr =
111 uint32_t *ipv6_prefixlen_arr =
115 for (uint32_t j = 0; j < ipv6_arr_size && j < 5; j++) {
116 offset += snprintf(buffer + offset,
118 "%s, prefixlen: %u\n",
120 ipv6_prefixlen_arr[j]);
123 uint32_t mac_arr_size =
125 if (mac_arr_size > 0) {
126 offset += snprintf(buffer + offset,
BUFFER_SIZE - offset,
"MAC address:\n");
127 char **mac_addr_arr =
130 for (uint32_t j = 0; j < mac_arr_size && j < 5; j++) {
131 offset += snprintf(buffer + offset,
BUFFER_SIZE - offset,
"%s\n", mac_addr_arr[j]);
doca_error_t cleanup_doca_apsh(struct doca_apsh_ctx *ctx, struct doca_apsh_system *system)
doca_error_t init_doca_apsh_system(struct doca_apsh_ctx *ctx, enum doca_apsh_system_os os_type, const char *os_symbols, const char *mem_region, const char *pci_vuid, struct doca_apsh_system **system)
doca_error_t init_doca_apsh(const char *dma_device_name, struct doca_apsh_ctx **ctx)
DOCA_LOG_REGISTER(INTERFACES_GET)
doca_error_t interfaces_get(const char *dma_device_name, const char *pci_vuid, enum doca_apsh_system_os os_type, const char *mem_region, const char *os_symbols)
doca_apsh_system_os
system os types
@ DOCA_APSH_LINUX_INTERFACE_IPV6_PREFIX_LEN_ARR
@ DOCA_APSH_LINUX_INTERFACE_IPV4_ARR
@ DOCA_APSH_LINUX_INTERFACE_IPV6_ARR
@ DOCA_APSH_LINUX_INTERFACE_MAC_ARR_SIZE
@ DOCA_APSH_LINUX_INTERFACE_MAC_ARR
@ DOCA_APSH_LINUX_INTERFACE_IPV4_ARR_SIZE
@ DOCA_APSH_LINUX_INTERFACE_NAME
@ DOCA_APSH_LINUX_INTERFACE_IPV6_ARR_SIZE
@ DOCA_APSH_LINUX_INTERFACE_IPV4_PREFIX_LEN_ARR
DOCA_EXPERIMENTAL doca_error_t doca_apsh_interfaces_get(struct doca_apsh_system *system, struct doca_apsh_interface ***interfaces, int *interfaces_size)
Get array of all interfaces.
DOCA_EXPERIMENTAL void doca_apsh_interfaces_free(struct doca_apsh_interface **interfaces)
Destroys an interfaces data array.
#define doca_apsh_interface_info_get(interface, attr)
Get attribute value for an interface.
enum doca_error doca_error_t
DOCA API return codes.
#define DOCA_LOG_ERR(format,...)
Generates an ERROR application log message.
#define DOCA_LOG_INFO(format,...)
Generates an INFO application log message.