34 #define BUFFER_SIZE 2048
40 if (interface_name ==
NULL) {
45 offset += snprintf(buffer + offset,
50 uint32_t ipv4_arr_size =
52 if (ipv4_arr_size > 0) {
53 offset += snprintf(buffer + offset,
BUFFER_SIZE - offset,
", IPV4: ");
54 char **ipv4_addr_arr =
57 for (uint32_t j = 0; j < ipv4_arr_size && j < 5; j++) {
58 offset += snprintf(buffer + offset,
BUFFER_SIZE - offset,
"%s ", ipv4_addr_arr[j]);
61 uint32_t ipv6_arr_size =
63 if (ipv6_arr_size > 0) {
64 offset += snprintf(buffer + offset,
BUFFER_SIZE - offset,
", IPV6: ");
65 char **ipv6_addr_arr =
68 for (uint32_t j = 0; j < ipv6_arr_size && j < 5; j++) {
69 offset += snprintf(buffer + offset,
BUFFER_SIZE - offset,
"%s ", ipv6_addr_arr[j]);
73 if (mac_arr_size > 0) {
74 offset += snprintf(buffer + offset,
BUFFER_SIZE - offset,
", MAC address: ");
77 for (uint32_t j = 0; j < mac_arr_size && j < 5; j++) {
78 offset += snprintf(buffer + offset,
BUFFER_SIZE - offset,
"%s ", mac_addr_arr[j]);
93 const char *mem_region,
94 const char *os_symbols)
97 int num_connections, i;
98 struct doca_apsh_ctx *apsh_ctx;
99 struct doca_apsh_system *sys;
100 struct doca_apsh_netscan **connections;
123 DOCA_LOG_INFO(
"Successfully performed %s. Host system contains %d connections", __func__, num_connections);
127 for (i = 0; i < num_connections; ++i) {
129 "\tConnection %d - PID: %u, COMM: %s, Protocol: %s, local address: %s:%lu, local address: %s:%lu, state %s",
142 DOCA_LOG_INFO(
"\tConnection %d - FD: %u, family: %s, type: %s, filter %s, Interface data: %s",
148 interfaces_data_buffer);
153 "\tConnection %d - TCP connection - Bytes sent: %lu, Bytes acked: %lu, Bytes received: %lu, Segs in: %u, Segs out: %u, Data segs in: %u, Data segs out: %u",
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(NETSCAN_GET)
doca_error_t netscan_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)
void collect_interface_data(struct doca_apsh_netscan *connection, char *buffer)
doca_apsh_system_os
system os types
@ DOCA_APSH_NETSCAN_LINUX_TCP_DATA_SEGS_IN
@ DOCA_APSH_NETSCAN_LINUX_TCP_BYTES_ACKED
@ DOCA_APSH_NETSCAN_REMOTE_PORT
@ DOCA_APSH_NETSCAN_STATE
@ DOCA_APSH_NETSCAN_LINUX_TCP_BYTES_SENT
@ DOCA_APSH_NETSCAN_LINUX_TCP_DATA_SEGS_OUT
@ DOCA_APSH_NETSCAN_LINUX_INTERFACE_IPV4_ARR_SIZE
@ DOCA_APSH_NETSCAN_LINUX_FD
@ DOCA_APSH_NETSCAN_LINUX_TCP_BYTES_RECEIVED
@ DOCA_APSH_NETSCAN_LINUX_INTERFACE_MAC_ARR_SIZE
@ DOCA_APSH_NETSCAN_LINUX_FILTER
@ DOCA_APSH_NETSCAN_LINUX_INTERFACE_NAME
@ DOCA_APSH_NETSCAN_LINUX_INTERFACE_IPV4_ARR
@ DOCA_APSH_NETSCAN_LINUX_INTERFACE_MAC_ARR
@ DOCA_APSH_NETSCAN_LINUX_INTERFACE_IPV6_ARR
@ DOCA_APSH_NETSCAN_LINUX_TCP_SEGS_IN
@ DOCA_APSH_NETSCAN_LINUX_INTERFACE_IPV6_ARR_SIZE
@ DOCA_APSH_NETSCAN_PROTOCOL
@ DOCA_APSH_NETSCAN_REMOTE_ADDR
@ DOCA_APSH_NETSCAN_LOCAL_PORT
@ DOCA_APSH_NETSCAN_LINUX_TYPE
@ DOCA_APSH_NETSCAN_LINUX_FAMILY
@ DOCA_APSH_NETSCAN_LINUX_TCP_SEGS_OUT
@ DOCA_APSH_NETSCAN_LOCAL_ADDR
DOCA_EXPERIMENTAL void doca_apsh_netscan_free(struct doca_apsh_netscan **connections)
Destroys a netscan context.
#define doca_apsh_netscan_info_get(connection, attr)
Get attribute value for a connection.
DOCA_EXPERIMENTAL doca_error_t doca_apsh_netscan_get(struct doca_apsh_system *system, struct doca_apsh_netscan ***connections, int *connections_size)
Get array of current connections.
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.