Example #1
0
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;
}