int main(int argc, char *argv[]) { struct dpif_dpdk_message request; const struct ofpbuf test_ofpbuf[20]; const struct ofpbuf *const *test_ofpbuf_array = (const struct ofpbuf *const *) &test_ofpbuf; int result = 0; rte_eal_init(argc, argv); /* Init all rings and a fake mempool with 3 mbufs */ init_test_rings(3); /* Test dpdk_link_send_bulk(), num_pkts > PKT_BURST_SIZE */ result = dpdk_link_send_bulk(&request, test_ofpbuf_array, 500); assert(result == EINVAL); return 0; }
int main(int argc, char *argv[]) { struct dpif dpif; struct dpif *dpif_p = &dpif; struct dpif **dpifp = &dpif_p; int c = 0; rte_eal_init(argc, argv); init_test_rings(); dpif_create_and_open("br0", "dpdk", dpifp); while(1) { static struct option long_options[] = { {"dpif_dpdk_get_stats", no_argument, 0, 'a'}, {"dpif_dpdk_port_add", no_argument, 0, 'b'}, {"dpif_dpdk_port_del", no_argument, 0, 'c'}, {"dpif_dpdk_port_query_by_number", no_argument, 0, 'd'}, {"dpif_dpdk_port_query_by_name", no_argument, 0, 'e'}, {"dpif_dpdk_get_max_ports", no_argument, 0, 'f'}, {"dpif_dpdk_port_dump_start", no_argument, 0, 'g'}, {"dpif_dpdk_port_dump_next", no_argument, 0, 'h'}, {"dpif_dpdk_port_dump_done", no_argument, 0, 'i'}, {"dpif_dpdk_port_poll", no_argument, 0, 'j'}, {"dpif_dpdk_port_poll_wait", no_argument, 0, 'k'}, {"dpif_dpdk_flow_put", no_argument, 0, 'l'}, {"dpif_dpdk_flow_del", no_argument, 0, 'm'}, {"dpif_dpdk_flow_flush", no_argument, 0, 'n'}, {"dpif_dpdk_flow_dump_start", no_argument, 0, 'o'}, {"dpif_dpdk_flow_dump_next", no_argument, 0, 'p'}, {0, 0, 0, 0} }; int option_index = 0; c = getopt_long(argc-4, argv+4, "abcdefghijklmnop", long_options, &option_index); /* Can run any function from the dpif_p */ dpif_p->dpif_class->destroy(dpif_p); if (c == -1) break; switch (c) { case 'a': test_dpif_dpdk_get_stats(dpif_p); break; case 'b': test_dpif_dpdk_port_add(dpif_p); break; case 'c': test_dpif_dpdk_port_del(dpif_p); break; case 'd': test_dpif_dpdk_port_query_by_number(dpif_p); break; case 'e': test_dpif_dpdk_port_query_by_name(dpif_p); break; case 'f': test_dpif_dpdk_get_max_ports(dpif_p); break; case 'g': test_dpif_dpdk_port_dump_start(dpif_p); break; case 'h': test_dpif_dpdk_port_dump_next(dpif_p); break; case 'i': test_dpif_dpdk_port_dump_done(dpif_p); break; case 'j': test_dpif_dpdk_port_poll(dpif_p); break; case 'k': test_dpif_dpdk_port_poll_wait(dpif_p); break; case 'l': test_dpif_dpdk_flow_put(dpif_p); break; case 'm': test_dpif_dpdk_flow_del(dpif_p); break; case 'n': test_dpif_dpdk_flow_flush(dpif_p); break; case 'o': test_dpif_dpdk_flow_dump_start(dpif_p); break; case 'p': test_dpif_dpdk_flow_dump_next(dpif_p); break; default: abort(); } } dpif_close(dpif_p); return 0; }