@@ -1157,10 +1157,6 @@ static void usage(char *progname)
"\n"
"Optional OPTIONS\n"
" -h, --help Display help and exit.\n"
- " environment variables: ODP_PKTIO_DISABLE_NETMAP\n"
- " ODP_PKTIO_DISABLE_SOCKET_MMAP\n"
- " ODP_PKTIO_DISABLE_SOCKET_MMSG\n"
- " can be used to advanced pkt I/O selection for odp-linux\n"
" -p, --packetsize payload length of the packets\n"
" -t, --timeout only for ping mode, wait ICMP reply timeout seconds\n"
" -i, --interval wait interval ms between sending each packet\n"
@@ -1587,11 +1587,7 @@ static void usage(char *progname)
"Optional OPTIONS\n"
" -c, --count <number> CPU count.\n"
" -h, --help Display help and exit.\n"
- " environment variables: ODP_PKTIO_DISABLE_NETMAP\n"
- " ODP_PKTIO_DISABLE_SOCKET_MMAP\n"
- " ODP_PKTIO_DISABLE_SOCKET_MMSG\n"
- " can be used to advanced pkt I/O selection for odp-linux\n"
- " ODP_IPSEC_USE_POLL_QUEUES\n"
+ " environment variables: ODP_IPSEC_USE_POLL_QUEUES\n"
" to enable use of poll queues instead of scheduled (default)\n"
" ODP_IPSEC_STREAM_VERIFY_MDEQ\n"
" to enable use of multiple dequeue for queue draining during\n"
@@ -732,10 +732,6 @@ static void usage(char *progname)
" 1: Receive and send via queues.\n"
" 2: Receive via scheduler, send via queues.\n"
" -h, --help Display help and exit.\n"
- " environment variables: ODP_PKTIO_DISABLE_NETMAP\n"
- " ODP_PKTIO_DISABLE_SOCKET_MMAP\n"
- " ODP_PKTIO_DISABLE_SOCKET_MMSG\n"
- " can be used to advanced pkt I/O selection for odp-linux\n"
"\n", NO_PATH(progname), NO_PATH(progname)
);
}
@@ -727,11 +727,6 @@ static void usage(char *progname)
" -a, --accuracy <number> Statistics print interval in seconds\n"
" (default is 10 second).\n"
" -h, --help Display help and exit.\n\n"
- " environment variables: ODP_PKTIO_DISABLE_DPDK\n"
- " ODP_PKTIO_DISABLE_NETMAP\n"
- " ODP_PKTIO_DISABLE_SOCKET_MMAP\n"
- " ODP_PKTIO_DISABLE_SOCKET_MMSG\n"
- " can be used to advanced pkt I/O selection for odp-linux\n"
"\n", NO_PATH(progname), NO_PATH(progname), MAX_PKTIOS
);
}
@@ -26,6 +26,8 @@
#include <rte_ethdev.h>
#include <rte_string_fns.h>
+static int disable_pktio; /** !0 this pktio disabled, 0 enabled */
+
/* Has dpdk_pktio_init() been called */
static odp_bool_t dpdk_initialized;
@@ -453,12 +455,20 @@ static int dpdk_pktio_init(void)
}
/* Placeholder for DPDK global init */
-static int odp_dpdk_pktio_init_global(void)
+static int dpdk_pktio_init_global(void)
{
+ if (getenv("ODP_PKTIO_DISABLE_DPDK")) {
+ ODP_PRINT("PKTIO: dpdk pktio skipped,"
+ " enabled export ODP_PKTIO_DISABLE_DPDK=1.\n");
+ disable_pktio = 1;
+ } else {
+ ODP_PRINT("PKTIO: initialized dpdk pktio,"
+ " use export ODP_PKTIO_DISABLE_DPDK=1 to disable.\n");
+ }
return 0;
}
-static int odp_dpdk_pktio_init_local(void)
+static int dpdk_pktio_init_local(void)
{
int cpu;
@@ -546,7 +556,7 @@ static int dpdk_open(odp_pktio_t id ODP_UNUSED,
uint32_t mtu;
int i;
- if (getenv("ODP_PKTIO_DISABLE_DPDK"))
+ if (disable_pktio)
return -1;
if (pool == ODP_POOL_INVALID)
@@ -993,8 +1003,8 @@ static int dpdk_stats_reset(pktio_entry_t *pktio_entry)
const pktio_if_ops_t dpdk_pktio_ops = {
.name = "dpdk",
- .init_global = odp_dpdk_pktio_init_global,
- .init_local = odp_dpdk_pktio_init_local,
+ .init_global = dpdk_pktio_init_global,
+ .init_local = dpdk_pktio_init_local,
.term = NULL,
.open = dpdk_open,
.close = dpdk_close,
@@ -775,6 +775,7 @@ static int ipc_close(pktio_entry_t *pktio_entry)
static int ipc_pktio_init_global(void)
{
_ring_tailq_init();
+ ODP_PRINT("PKTIO: initialized ipc interface.\n");
return 0;
}
@@ -243,10 +243,16 @@ static int loopback_stats_reset(pktio_entry_t *pktio_entry ODP_UNUSED)
return 0;
}
+static int loop_init_global(void)
+{
+ ODP_PRINT("PKTIO: initialized loop interface.\n");
+ return 0;
+}
+
const pktio_if_ops_t loopback_pktio_ops = {
.name = "loop",
.print = NULL,
- .init_global = NULL,
+ .init_global = loop_init_global,
.init_local = NULL,
.term = NULL,
.open = loopback_open,
@@ -37,6 +37,7 @@
#define NM_WAIT_TIMEOUT 10 /* netmap_wait_for_link() timeout in seconds */
#define NM_INJECT_RETRIES 10
+static int disable_pktio; /** !0 this pktio disabled, 0 enabled */
static int netmap_stats_reset(pktio_entry_t *pktio_entry);
static int netmap_do_ioctl(pktio_entry_t *pktio_entry, unsigned long cmd,
@@ -332,7 +333,7 @@ static int netmap_open(odp_pktio_t id ODP_UNUSED, pktio_entry_t *pktio_entry,
odp_pktin_hash_proto_t hash_proto;
odp_pktio_stats_t cur_stats;
- if (getenv("ODP_PKTIO_DISABLE_NETMAP"))
+ if (disable_pktio)
return -1;
if (pool == ODP_POOL_INVALID)
@@ -891,10 +892,25 @@ static void netmap_print(pktio_entry_t *pktio_entry)
rss_conf_print(&hash_proto);
}
+static int netmap_init_global(void)
+{
+ if (getenv("ODP_PKTIO_DISABLE_NETMAP")) {
+ ODP_PRINT("PKTIO: socket mmap skipped,"
+ " enabled export ODP_PKTIO_DISABLE_NETMAP=1.\n");
+ disable_pktio = 1;
+ } else {
+ ODP_PRINT("PKTIO: initialized socket mmap,"
+ " use export ODP_PKTIO_DISABLE_NETMAP=1 to disable.\n"
+ " Netmap refixes are netmap:eth0 or vale:eth0. Refer to"
+ " Netmap documentation for usage information.\n");
+ }
+ return 0;
+}
+
const pktio_if_ops_t netmap_pktio_ops = {
.name = "netmap",
.print = netmap_print,
- .init_global = NULL,
+ .init_global = netmap_init_global,
.init_local = NULL,
.term = NULL,
.open = netmap_open,
@@ -430,10 +430,16 @@ static int pcapif_stats(pktio_entry_t *pktio_entry,
return 0;
}
+static int pcapif_init_global(void)
+{
+ ODP_PRINT("PKTIO: initialized pcap interface.\n");
+ return 0;
+}
+
const pktio_if_ops_t pcap_pktio_ops = {
.name = "pcap",
.print = NULL,
- .init_global = NULL,
+ .init_global = pcapif_init_global,
.init_local = NULL,
.open = pcapif_init,
.close = pcapif_close,
@@ -46,6 +46,8 @@
#include <protocols/eth.h>
#include <protocols/ip.h>
+static int disable_pktio; /** !0 this pktio disabled, 0 enabled */
+
static int sock_stats_reset(pktio_entry_t *pktio_entry);
/** Provide a sendmmsg wrapper for systems with no libc or kernel support.
@@ -571,7 +573,7 @@ static int sock_mmsg_open(odp_pktio_t id ODP_UNUSED,
pktio_entry_t *pktio_entry,
const char *devname, odp_pool_t pool)
{
- if (getenv("ODP_PKTIO_DISABLE_SOCKET_MMSG"))
+ if (disable_pktio)
return -1;
return sock_setup_pkt(pktio_entry, devname, pool);
}
@@ -894,10 +896,23 @@ static int sock_stats_reset(pktio_entry_t *pktio_entry)
pktio_entry->s.pkt_sock.sockfd);
}
+static int sock_init_global(void)
+{
+ if (getenv("ODP_PKTIO_DISABLE_SOCKET_MMSG")) {
+ ODP_PRINT("PKTIO: socket mmsg skipped,"
+ " enabled export ODP_PKTIO_DISABLE_SOCKET_MMSG=1.\n");
+ disable_pktio = 1;
+ } else {
+ ODP_PRINT("PKTIO: initialized socket mmsg,"
+ "use export ODP_PKTIO_DISABLE_SOCKET_MMSG=1 to disable.\n");
+ }
+ return 0;
+}
+
const pktio_if_ops_t sock_mmsg_pktio_ops = {
.name = "socket",
.print = NULL,
- .init_global = NULL,
+ .init_global = sock_init_global,
.init_local = NULL,
.term = NULL,
.open = sock_mmsg_open,
@@ -35,6 +35,8 @@
#include <protocols/eth.h>
#include <protocols/ip.h>
+static int disable_pktio; /** !0 this pktio disabled, 0 enabled */
+
static int set_pkt_sock_fanout_mmap(pkt_sock_mmap_t *const pkt_sock,
int sock_group_idx)
{
@@ -503,7 +505,7 @@ static int sock_mmap_open(odp_pktio_t id ODP_UNUSED,
int ret = 0;
odp_pktio_stats_t cur_stats;
- if (getenv("ODP_PKTIO_DISABLE_SOCKET_MMAP"))
+ if (disable_pktio)
return -1;
pkt_sock_mmap_t *const pkt_sock = &pktio_entry->s.pkt_sock_mmap;
@@ -688,10 +690,23 @@ static int sock_mmap_stats_reset(pktio_entry_t *pktio_entry)
pktio_entry->s.pkt_sock_mmap.sockfd);
}
+static int sock_mmap_init_global(void)
+{
+ if (getenv("ODP_PKTIO_DISABLE_SOCKET_MMAP")) {
+ ODP_PRINT("PKTIO: socket mmap skipped,"
+ " enabled export ODP_PKTIO_DISABLE_SOCKET_MMAP=1.\n");
+ disable_pktio = 1;
+ } else {
+ ODP_PRINT("PKTIO: initialized socket mmap,"
+ " use export ODP_PKTIO_DISABLE_SOCKET_MMAP=1 to disable.\n");
+ }
+ return 0;
+}
+
const pktio_if_ops_t sock_mmap_pktio_ops = {
.name = "socket_mmap",
.print = NULL,
- .init_global = NULL,
+ .init_global = sock_mmap_init_global,
.init_local = NULL,
.term = NULL,
.open = sock_mmap_open,
@@ -1032,10 +1032,6 @@ static void usage(char *progname)
" -e, --error_check 0: Don't check packet errors (default)\n"
" 1: Check packet errors\n"
" -h, --help Display help and exit.\n\n"
- " environment variables: ODP_PKTIO_DISABLE_NETMAP\n"
- " ODP_PKTIO_DISABLE_SOCKET_MMAP\n"
- " ODP_PKTIO_DISABLE_SOCKET_MMSG\n"
- " can be used to advanced pkt I/O selection for odp-linux\n"
"\n", NO_PATH(progname), NO_PATH(progname), MAX_PKTIOS
);
}