tests/ovs_client: Remove broken debug code
authorStephen Finucane <stephen.finucane@intel.com>
Wed, 19 Nov 2014 12:03:22 +0000 (12:03 +0000)
committerPravin B Shelar <pshelar@nicira.com>
Tue, 25 Nov 2014 18:29:00 +0000 (10:29 -0800)
There is some debug "logging" code included in the 'ovs_client'
application. This code appears to be broken as it spams stdout with
duplicated "log" messages. Remove this code.
This patch also renames ovs_client to ring_client.

In addition, add the 'test-dpdkr' executable to the 'tests/.gitignore'
file.

Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
tests/.gitignore
tests/automake.mk
tests/dpdk/ring_client.c [new file with mode: 0644]
tests/ovs_client/ovs_client.c [deleted file]

index 908c50e..03fb8e4 100644 (file)
@@ -7,6 +7,7 @@
 /idltest.h
 /idltest.ovsidl
 /ovstest
+/test-dpdkr
 /ovs-pki.log
 /pki/
 /test-aes128
index d7a931e..ccce112 100644 (file)
@@ -203,10 +203,10 @@ tests/idltest.ovsidl: $(IDLTEST_IDL_FILES)
 tests/idltest.c: tests/idltest.h
 
 if DPDK_NETDEV
-noinst_PROGRAMS += tests/ovsclient
-tests_ovsclient_SOURCES = \
-       tests/ovs_client/ovs_client.c
-tests_ovsclient_LDADD = lib/libopenvswitch.la $(LIBS)
+noinst_PROGRAMS += tests/test-dpdkr
+tests_test_dpdkr_SOURCES = \
+       tests/dpdk/ring_client.c
+tests_test_dpdkr_LDADD = lib/libopenvswitch.la $(LIBS)
 endif
 
 noinst_PROGRAMS += tests/ovstest
diff --git a/tests/dpdk/ring_client.c b/tests/dpdk/ring_client.c
new file mode 100644 (file)
index 0000000..97d32fc
--- /dev/null
@@ -0,0 +1,215 @@
+/*
+ *   BSD LICENSE
+ *
+ *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ *   All rights reserved.
+ *
+ *   Redistribution and use in source and binary forms, with or without
+ *   modification, are permitted provided that the following conditions
+ *   are met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in
+ *       the documentation and/or other materials provided with the
+ *       distribution.
+ *     * Neither the name of Intel Corporation nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <getopt.h>
+
+#include <config.h>
+#include <rte_config.h>
+#include <rte_mbuf.h>
+#include <rte_ether.h>
+#include <rte_string_fns.h>
+#include <rte_ip.h>
+#include <rte_byteorder.h>
+
+/* Number of packets to attempt to read from queue. */
+#define PKT_READ_SIZE  ((uint16_t)32)
+
+/* Define common names for structures shared between ovs_dpdk and client. */
+#define MP_CLIENT_RXQ_NAME "dpdkr%u_tx"
+#define MP_CLIENT_TXQ_NAME "dpdkr%u_rx"
+
+#define RTE_LOGTYPE_APP RTE_LOGTYPE_USER1
+
+#define BASE_10 10
+
+/* Our client id number - tells us which rx queue to read, and tx
+ * queue to write to.
+ */
+static uint8_t client_id = 0;
+
+/*
+ * Given the rx queue name template above, get the queue name.
+ */
+static inline const char *
+get_rx_queue_name(unsigned id)
+{
+    /* Buffer for return value. Size calculated by %u being replaced
+     * by maximum 3 digits (plus an extra byte for safety).
+     */
+    static char buffer[sizeof(MP_CLIENT_RXQ_NAME) + 2];
+
+    snprintf(buffer, sizeof(buffer) - 1, MP_CLIENT_RXQ_NAME, id);
+    return buffer;
+}
+
+/*
+ * Given the tx queue name template above, get the queue name.
+ */
+static inline const char *
+get_tx_queue_name(unsigned id)
+{
+    /* Buffer for return value. Size calculated by %u being replaced
+     * by maximum 3 digits (plus an extra byte for safety).
+     */
+    static char buffer[sizeof(MP_CLIENT_TXQ_NAME) + 2];
+
+    snprintf(buffer, sizeof(buffer) - 1, MP_CLIENT_TXQ_NAME, id);
+    return buffer;
+}
+
+/*
+ * Print a usage message.
+ */
+static void
+usage(const char *progname)
+{
+    printf("\nUsage: %s [EAL args] -- -n <client_id>\n", progname);
+}
+
+/*
+ * Convert the client id number from a string to an int.
+ */
+static int
+parse_client_num(const char *client)
+{
+    char *end = NULL;
+    unsigned long temp = 0;
+
+    if (client == NULL || *client == '\0') {
+        return -1;
+    }
+
+    temp = strtoul(client, &end, BASE_10);
+    /* If valid string argument is provided, terminating '/0' character
+     * is stored in 'end'. */
+    if (end == NULL || *end != '\0') {
+        return -1;
+    }
+
+    client_id = (uint8_t)temp;
+    return 0;
+}
+
+/*
+ * Parse the application arguments to the client app.
+ */
+static int
+parse_app_args(int argc, char *argv[])
+{
+    int option_index = 0, opt = 0;
+    char **argvopt = argv;
+    const char *progname = NULL;
+    static struct option lgopts[] = {
+        {NULL, 0, 0, 0 }
+    };
+    progname = argv[0];
+
+    while ((opt = getopt_long(argc, argvopt, "n:", lgopts,
+        &option_index)) != EOF) {
+        switch (opt) {
+            case 'n':
+                if (parse_client_num(optarg) != 0) {
+                    usage(progname);
+                    return -1;
+                }
+                break;
+            default:
+                usage(progname);
+                return -1;
+        }
+    }
+
+    return 0;
+}
+
+/*
+ * Application main function - loops through
+ * receiving and processing packets. Never returns
+ */
+int
+main(int argc, char *argv[])
+{
+    struct rte_ring *rx_ring = NULL;
+    struct rte_ring *tx_ring = NULL;
+    int retval = 0;
+    void *pkts[PKT_READ_SIZE];
+    int rslt = 0;
+
+    if ((retval = rte_eal_init(argc, argv)) < 0) {
+        return -1;
+    }
+
+    argc -= retval;
+    argv += retval;
+
+    if (parse_app_args(argc, argv) < 0) {
+        rte_exit(EXIT_FAILURE, "Invalid command-line arguments\n");
+    }
+
+    rx_ring = rte_ring_lookup(get_rx_queue_name(client_id));
+    if (rx_ring == NULL) {
+        rte_exit(EXIT_FAILURE,
+            "Cannot get RX ring - is server process running?\n");
+    }
+
+    tx_ring = rte_ring_lookup(get_tx_queue_name(client_id));
+    if (tx_ring == NULL) {
+        rte_exit(EXIT_FAILURE,
+            "Cannot get TX ring - is server process running?\n");
+    }
+
+    RTE_LOG(INFO, APP, "Finished Process Init.\n");
+
+    printf("\nClient process %d handling packets\n", client_id);
+    printf("[Press Ctrl-C to quit ...]\n");
+
+    for (;;) {
+        unsigned rx_pkts = PKT_READ_SIZE;
+
+        /* Try dequeuing max possible packets first, if that fails, get the
+         * most we can. Loop body should only execute once, maximum.
+         */
+        while (unlikely(rte_ring_dequeue_bulk(rx_ring, pkts, rx_pkts) != 0) &&
+            rx_pkts > 0) {
+            rx_pkts = (uint16_t)RTE_MIN(rte_ring_count(rx_ring), PKT_READ_SIZE);
+        }
+
+        if (rx_pkts > 0) {
+            /* blocking enqueue */
+            do {
+                rslt = rte_ring_enqueue_bulk(tx_ring, pkts, rx_pkts);
+            } while (rslt == -ENOBUFS);
+        }
+    }
+}
diff --git a/tests/ovs_client/ovs_client.c b/tests/ovs_client/ovs_client.c
deleted file mode 100644 (file)
index 6387624..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- *   BSD LICENSE
- *
- *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
- *   All rights reserved.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following conditions
- *   are met:
- *
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in
- *       the documentation and/or other materials provided with the
- *       distribution.
- *     * Neither the name of Intel Corporation nor the names of its
- *       contributors may be used to endorse or promote products derived
- *       from this software without specific prior written permission.
- *
- *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include <getopt.h>
-
-#include <config.h>
-#include <rte_config.h>
-#include <rte_mbuf.h>
-#include <rte_ether.h>
-#include <rte_string_fns.h>
-#include <rte_ip.h>
-#include <rte_byteorder.h>
-
-/* Number of packets to attempt to read from queue. */
-#define PKT_READ_SIZE  ((uint16_t)32)
-
-/* Define common names for structures shared between ovs_dpdk and client. */
-#define MP_CLIENT_RXQ_NAME "dpdkr%u_tx"
-#define MP_CLIENT_TXQ_NAME "dpdkr%u_rx"
-
-#define RTE_LOGTYPE_APP RTE_LOGTYPE_USER1
-
-#define BASE_10 10
-
-/* Our client id number - tells us which rx queue to read, and tx
- * queue to write to.
- */
-static uint8_t client_id = 0;
-
-int no_pkt;
-int pkt;
-
-/*
- * Given the rx queue name template above, get the queue name.
- */
-static inline const char *
-get_rx_queue_name(unsigned id)
-{
-    /* Buffer for return value. Size calculated by %u being replaced
-     * by maximum 3 digits (plus an extra byte for safety).
-     */
-    static char buffer[sizeof(MP_CLIENT_RXQ_NAME) + 2];
-
-    snprintf(buffer, sizeof(buffer) - 1, MP_CLIENT_RXQ_NAME, id);
-    return buffer;
-}
-
-/*
- * Given the tx queue name template above, get the queue name.
- */
-static inline const char *
-get_tx_queue_name(unsigned id)
-{
-    /* Buffer for return value. Size calculated by %u being replaced
-     * by maximum 3 digits (plus an extra byte for safety).
-     */
-    static char buffer[sizeof(MP_CLIENT_TXQ_NAME) + 2];
-
-    snprintf(buffer, sizeof(buffer) - 1, MP_CLIENT_TXQ_NAME, id);
-    return buffer;
-}
-
-/*
- * Print a usage message.
- */
-static void
-usage(const char *progname)
-{
-    printf("\nUsage: %s [EAL args] -- -n <client_id>\n", progname);
-}
-
-/*
- * Convert the client id number from a string to an int.
- */
-static int
-parse_client_num(const char *client)
-{
-    char *end = NULL;
-    unsigned long temp = 0;
-
-    if (client == NULL || *client == '\0') {
-        return -1;
-    }
-
-    temp = strtoul(client, &end, BASE_10);
-    /* If valid string argument is provided, terminating '/0' character
-     * is stored in 'end'. */
-    if (end == NULL || *end != '\0') {
-        return -1;
-    }
-
-    client_id = (uint8_t)temp;
-    return 0;
-}
-
-/*
- * Parse the application arguments to the client app.
- */
-static int
-parse_app_args(int argc, char *argv[])
-{
-    int option_index = 0, opt = 0;
-    char **argvopt = argv;
-    const char *progname = NULL;
-    static struct option lgopts[] = {
-        {NULL, 0, 0, 0 }
-    };
-    progname = argv[0];
-
-    while ((opt = getopt_long(argc, argvopt, "n:", lgopts,
-        &option_index)) != EOF) {
-        switch (opt) {
-            case 'n':
-                if (parse_client_num(optarg) != 0) {
-                    usage(progname);
-                    return -1;
-                }
-                break;
-            default:
-                usage(progname);
-                return -1;
-        }
-    }
-
-    return 0;
-}
-
-/*
- * Application main function - loops through
- * receiving and processing packets. Never returns
- */
-int
-main(int argc, char *argv[])
-{
-    struct rte_ring *rx_ring = NULL;
-    struct rte_ring *tx_ring = NULL;
-    int retval = 0;
-    void *pkts[PKT_READ_SIZE];
-    int rslt = 0;
-
-    if ((retval = rte_eal_init(argc, argv)) < 0) {
-        return -1;
-    }
-
-    argc -= retval;
-    argv += retval;
-
-    if (parse_app_args(argc, argv) < 0) {
-        rte_exit(EXIT_FAILURE, "Invalid command-line arguments\n");
-    }
-
-    rx_ring = rte_ring_lookup(get_rx_queue_name(client_id));
-    if (rx_ring == NULL) {
-        rte_exit(EXIT_FAILURE,
-            "Cannot get RX ring - is server process running?\n");
-    }
-
-    tx_ring = rte_ring_lookup(get_tx_queue_name(client_id));
-    if (tx_ring == NULL) {
-        rte_exit(EXIT_FAILURE,
-            "Cannot get TX ring - is server process running?\n");
-    }
-
-    RTE_LOG(INFO, APP, "Finished Process Init.\n");
-
-    printf("\nClient process %d handling packets\n", client_id);
-    printf("[Press Ctrl-C to quit ...]\n");
-
-    for (;;) {
-        unsigned rx_pkts = PKT_READ_SIZE;
-
-        /* Try dequeuing max possible packets first, if that fails, get the
-         * most we can. Loop body should only execute once, maximum.
-         */
-        while (unlikely(rte_ring_dequeue_bulk(rx_ring, pkts, rx_pkts) != 0) &&
-            rx_pkts > 0) {
-            rx_pkts = (uint16_t)RTE_MIN(rte_ring_count(rx_ring), PKT_READ_SIZE);
-        }
-
-        if (rx_pkts > 0) {
-            pkt++;
-            /* blocking enqueue */
-            do {
-                rslt = rte_ring_enqueue_bulk(tx_ring, pkts, rx_pkts);
-            } while (rslt == -ENOBUFS);
-        } else {
-               no_pkt++;
-        }
-
-        if (!(pkt %  100000)) {
-            printf("pkt %d %d\n", pkt, no_pkt);
-            pkt = no_pkt = 0;
-        }
-    }
-}