diff options
-rw-r--r-- | example/classifier/odp_classifier.c | 5 | ||||
-rw-r--r-- | example/generator/odp_generator.c | 4 | ||||
-rw-r--r-- | example/ipsec/odp_ipsec.c | 6 | ||||
-rw-r--r-- | example/packet/odp_pktio.c | 4 | ||||
-rw-r--r-- | platform/linux-generic/pktio/loop.c | 2 | ||||
-rw-r--r-- | platform/linux-generic/pktio/socket.c | 2 | ||||
-rw-r--r-- | platform/linux-generic/pktio/socket_mmap.c | 2 | ||||
-rw-r--r-- | test/performance/odp_l2fwd.c | 6 | ||||
-rw-r--r-- | test/performance/odp_pktio_perf.c | 6 | ||||
-rw-r--r-- | test/validation/classification/odp_classification_tests.c | 7 | ||||
-rw-r--r-- | test/validation/pktio/pktio.c | 3 |
11 files changed, 44 insertions, 3 deletions
diff --git a/example/classifier/odp_classifier.c b/example/classifier/odp_classifier.c index ac204afb..685f335f 100644 --- a/example/classifier/odp_classifier.c +++ b/example/classifier/odp_classifier.c @@ -463,6 +463,11 @@ int main(int argc, char *argv[]) /* configure default Cos and default queue */ configure_default_queue(pktio, args); + if (odp_pktio_start(pktio)) { + EXAMPLE_ERR("Error: unable to start pktio.\n"); + exit(EXIT_FAILURE); + } + /* Create and init worker threads */ memset(thread_tbl, 0, sizeof(thread_tbl)); diff --git a/example/generator/odp_generator.c b/example/generator/odp_generator.c index 5c2eb061..f7aed760 100644 --- a/example/generator/odp_generator.c +++ b/example/generator/odp_generator.c @@ -359,6 +359,10 @@ static odp_pktio_t create_pktio(const char *dev, odp_pool_t pool) if (ret != 0) EXAMPLE_ABORT("Error: default input-Q setup for %s\n", dev); + ret = odp_pktio_start(pktio); + if (ret) + EXAMPLE_ABORT("Error: unable to start %s\n", dev); + printf(" created pktio:%02" PRIu64 ", dev:%s, queue mode (ATOMIC queues)\n" " default pktio%02" PRIu64 diff --git a/example/ipsec/odp_ipsec.c b/example/ipsec/odp_ipsec.c index 85dbc002..96effe28 100644 --- a/example/ipsec/odp_ipsec.c +++ b/example/ipsec/odp_ipsec.c @@ -556,6 +556,12 @@ void initialize_intf(char *intf) exit(EXIT_FAILURE); } + ret = odp_pktio_start(pktio); + if (ret) { + EXAMPLE_ERR("Error: unable to start %s\n", intf); + exit(EXIT_FAILURE); + } + /* Read the source MAC address for this interface */ ret = odp_pktio_mac_addr(pktio, src_mac, sizeof(src_mac)); if (ret <= 0) { diff --git a/example/packet/odp_pktio.c b/example/packet/odp_pktio.c index 835fb961..df53ea2d 100644 --- a/example/packet/odp_pktio.c +++ b/example/packet/odp_pktio.c @@ -171,6 +171,10 @@ static odp_pktio_t create_pktio(const char *dev, odp_pool_t pool, int mode) if (ret != 0) EXAMPLE_ABORT("Error: default input-Q setup for %s\n", dev); + ret = odp_pktio_start(pktio); + if (ret != 0) + EXAMPLE_ABORT("Error: unable to start %s\n", dev); + printf(" created pktio:%02" PRIu64 ", dev:%s, queue mode (ATOMIC queues)\n" " \tdefault pktio%02" PRIu64 "-INPUT queue:%" PRIu64 "\n", diff --git a/platform/linux-generic/pktio/loop.c b/platform/linux-generic/pktio/loop.c index f61ccd5c..ef77e343 100644 --- a/platform/linux-generic/pktio/loop.c +++ b/platform/linux-generic/pktio/loop.c @@ -41,7 +41,7 @@ static int loopback_open(odp_pktio_t id, pktio_entry_t *pktio_entry, if (pktio_entry->s.pkt_loop.loopq == ODP_QUEUE_INVALID) return -1; - pktio_entry->s.state = STATE_START; + pktio_entry->s.state = STATE_STOP; return 0; } diff --git a/platform/linux-generic/pktio/socket.c b/platform/linux-generic/pktio/socket.c index 43c5f676..6fcdb465 100644 --- a/platform/linux-generic/pktio/socket.c +++ b/platform/linux-generic/pktio/socket.c @@ -234,7 +234,7 @@ static int sock_setup_pkt(pktio_entry_t *pktio_entry, const char *netdev, goto error; } - pktio_entry->s.state = STATE_START; + pktio_entry->s.state = STATE_STOP; return 0; error: diff --git a/platform/linux-generic/pktio/socket_mmap.c b/platform/linux-generic/pktio/socket_mmap.c index 2e55672e..3fd2b0f6 100644 --- a/platform/linux-generic/pktio/socket_mmap.c +++ b/platform/linux-generic/pktio/socket_mmap.c @@ -486,7 +486,7 @@ static int sock_mmap_open(odp_pktio_t id ODP_UNUSED, goto error; } - pktio_entry->s.state = STATE_START; + pktio_entry->s.state = STATE_STOP; return 0; error: diff --git a/test/performance/odp_l2fwd.c b/test/performance/odp_l2fwd.c index db26a58d..ce4efa88 100644 --- a/test/performance/odp_l2fwd.c +++ b/test/performance/odp_l2fwd.c @@ -317,6 +317,12 @@ static odp_pktio_t create_pktio(const char *dev, odp_pool_t pool, return ODP_PKTIO_INVALID; } + ret = odp_pktio_start(pktio); + if (ret != 0) { + LOG_ERR("Error: unable to start %s\n", dev); + return ODP_PKTIO_INVALID; + } + return pktio; } diff --git a/test/performance/odp_pktio_perf.c b/test/performance/odp_pktio_perf.c index 15525799..709becfa 100644 --- a/test/performance/odp_pktio_perf.c +++ b/test/performance/odp_pktio_perf.c @@ -777,6 +777,12 @@ static int test_init(void) if (odp_pktio_inq_setdef(gbl_args->pktio_rx, inq_def) != 0) return -1; + if (odp_pktio_start(gbl_args->pktio_tx) != 0) + return -1; + if (gbl_args->args.num_ifaces > 1 && + odp_pktio_start(gbl_args->pktio_rx)) + return -1; + return 0; } diff --git a/test/validation/classification/odp_classification_tests.c b/test/validation/classification/odp_classification_tests.c index e22d00df..9e8ac1be 100644 --- a/test/validation/classification/odp_classification_tests.c +++ b/test/validation/classification/odp_classification_tests.c @@ -325,6 +325,13 @@ int classification_suite_init(void) queue_list[i] = ODP_QUEUE_INVALID; odp_atomic_init_u32(&seq, 0); + + ret = odp_pktio_start(pktio_loop); + if (ret) { + fprintf(stderr, "unable to start loop\n"); + return -1; + } + return 0; } diff --git a/test/validation/pktio/pktio.c b/test/validation/pktio/pktio.c index de92c757..89d4bf18 100644 --- a/test/validation/pktio/pktio.c +++ b/test/validation/pktio/pktio.c @@ -470,6 +470,9 @@ static void test_txrx(odp_queue_type_t q_type, int num_pkts) io->inq = odp_pktio_inq_getdef(io->id); else io->inq = ODP_QUEUE_INVALID; + + ret = odp_pktio_start(io->id); + CU_ASSERT(ret == 0); } /* if we have two interfaces then send through one and receive on |