Add calls to port_is_forwarding function.

Signed-off-by: Bernard Iremonger <bernard.iremonger at intel.com>
---
 app/test-pmd/testpmd.c | 24 ++++++++++--------------
 1 file changed, 10 insertions(+), 14 deletions(-)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 5dc7bba..11b4cf7 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -1268,11 +1268,6 @@ start_port(portid_t pid)
        struct rte_port *port;
        struct ether_addr mac_addr;

-       if (test_done == 0) {
-               printf("Please stop forwarding first\n");
-               return -1;
-       }
-
        if (port_id_is_invalid(pid, ENABLED_WARN))
                return 0;

@@ -1424,10 +1419,6 @@ stop_port(portid_t pid)
        struct rte_port *port;
        int need_check_link_status = 0;

-       if (test_done == 0) {
-               printf("Please stop forwarding first\n");
-               return;
-       }
        if (dcb_test) {
                dcb_test = 0;
                dcb_config = 0;
@@ -1442,6 +1433,11 @@ stop_port(portid_t pid)
                if (pid != pi && pid != (portid_t)RTE_PORT_ALL)
                        continue;

+               if (port_is_forwarding(pi) != 0 && test_done == 0) {
+                       printf("Please remove port %d from forwarding 
configuration.\n", pi);
+                       continue;
+               }
+
                port = &ports[pi];
                if (rte_atomic16_cmpset(&(port->port_status), RTE_PORT_STARTED,
                                                RTE_PORT_HANDLING) == 0)
@@ -1466,11 +1462,6 @@ close_port(portid_t pid)
        portid_t pi;
        struct rte_port *port;

-       if (test_done == 0) {
-               printf("Please stop forwarding first\n");
-               return;
-       }
-
        if (port_id_is_invalid(pid, ENABLED_WARN))
                return;

@@ -1480,6 +1471,11 @@ close_port(portid_t pid)
                if (pid != pi && pid != (portid_t)RTE_PORT_ALL)
                        continue;

+               if (port_is_forwarding(pi) != 0 && test_done == 0) {
+                       printf("Please remove port %d from forwarding 
configuration.\n", pi);
+                       continue;
+               }
+
                port = &ports[pi];
                if (rte_atomic16_cmpset(&(port->port_status),
                        RTE_PORT_CLOSED, RTE_PORT_CLOSED) == 1) {
-- 
2.6.3

Reply via email to