4 print_memif_ring_details (memif_connection_t *c, uint16_t qid, uint8_t is_rx)
6 /* TODO: print memif shared memory details */
10 print_memif_rx_ring_details (memif_connection_t *c, uint16_t qid)
12 print_memif_ring_details (c, qid, /* RX */ 1);
16 print_memif_tx_ring_details (memif_connection_t *c, uint16_t qid)
18 print_memif_ring_details (c, qid, /* TX */ 0);
24 printf ("libmemif version: %s, memif version: %s\n", LIBMEMIF_VERSION,
25 memif_get_version_str ());
29 parse_ip4 (const char *input, uint8_t out[4])
32 char *tmp = strdup (input);
34 ui = strtok (tmp, ".");
37 out[0] = strtol (ui, &end, 10);
39 ui = strtok (NULL, ".");
42 out[1] = strtol (ui, &end, 10);
44 ui = strtok (NULL, ".");
47 out[2] = strtol (ui, &end, 10);
49 ui = strtok (NULL, ".");
52 out[3] = strtol (ui, &end, 10);
60 parse_mac (const char *input, uint8_t out[6])
63 char *tmp = strdup (input);
65 ui = strtok (tmp, ":");
68 out[0] = strtol (ui, &end, 16);
69 ui = strtok (NULL, ":");
72 out[1] = strtol (ui, &end, 16);
73 ui = strtok (NULL, ":");
76 out[2] = strtol (ui, &end, 16);
77 ui = strtok (NULL, ":");
80 out[3] = strtol (ui, &end, 16);
81 ui = strtok (NULL, ":");
84 out[4] = strtol (ui, &end, 16);
85 ui = strtok (NULL, ":");
88 out[5] = strtol (ui, &end, 16);
96 alloc_memif_buffers (memif_connection_t *c)
99 (memif_buffer_t *) malloc (sizeof (memif_buffer_t) * MAX_MEMIF_BUFS);
102 (memif_buffer_t *) malloc (sizeof (memif_buffer_t) * MAX_MEMIF_BUFS);
107 free_memif_buffers (memif_connection_t *c)
109 if (c->rx_bufs != NULL)
113 if (c->tx_bufs != NULL)
120 print_memif_details (memif_connection_t *c)
122 printf ("MEMIF DETAILS\n");
123 printf ("==============================\n");
126 memset (&md, 0, sizeof (md));
127 ssize_t buflen = 2048;
128 char *buf = (char *) malloc (buflen);
129 memset (buf, 0, buflen);
132 err = memif_get_details (c->conn, &md, buf, buflen);
133 if (err != MEMIF_ERR_SUCCESS)
135 INFO ("%s", memif_strerror (err));
136 if (err == MEMIF_ERR_NOCONN)
143 printf ("\tinterface name: %s\n", (char *) md.if_name);
144 printf ("\tapp name: %s\n", (char *) md.inst_name);
145 printf ("\tremote interface name: %s\n", (char *) md.remote_if_name);
146 printf ("\tremote app name: %s\n", (char *) md.remote_inst_name);
147 printf ("\tid: %u\n", md.id);
148 printf ("\tsecret: %s\n", (char *) md.secret);
158 printf ("ethernet\n");
164 printf ("punt/inject\n");
167 printf ("unknown\n");
170 printf ("\tsocket path: %s\n", (char *) md.socket_path);
171 printf ("\trx queues:\n");
172 for (e = 0; e < md.rx_queues_num; e++)
174 printf ("\t\tqueue id: %u\n", md.rx_queues[e].qid);
175 printf ("\t\tring size: %u\n", md.rx_queues[e].ring_size);
176 printf ("\t\tbuffer size: %u\n", md.rx_queues[e].buffer_size);
178 printf ("\ttx queues:\n");
179 for (e = 0; e < md.tx_queues_num; e++)
181 printf ("\t\tqueue id: %u\n", md.tx_queues[e].qid);
182 printf ("\t\tring size: %u\n", md.tx_queues[e].ring_size);
183 printf ("\t\tbuffer size: %u\n", md.tx_queues[e].buffer_size);