examples/distributor: wait for ports to come up
authorDavid Hunt <david.hunt@intel.com>
Mon, 20 Mar 2017 10:08:36 +0000 (10:08 +0000)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 29 Mar 2017 14:46:57 +0000 (16:46 +0200)
On some machines, ports take several seconds to come up. This
patch causes the app to wait.

Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
examples/distributor/main.c

index a8a5e80..75c001d 100644 (file)
@@ -1,8 +1,7 @@
 /*-
  *   BSD LICENSE
  *
- *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
- *   All rights reserved.
+ *   Copyright(c) 2010-2017 Intel Corporation. All rights reserved.
  *
  *   Redistribution and use in source and binary forms, with or without
  *   modification, are permitted provided that the following conditions
@@ -62,6 +61,7 @@ static uint32_t enabled_port_mask;
 volatile uint8_t quit_signal;
 volatile uint8_t quit_signal_rx;
 volatile uint8_t quit_signal_dist;
+volatile uint8_t quit_signal_work;
 
 static volatile struct app_stats {
        struct {
@@ -165,7 +165,8 @@ port_init(uint8_t port, struct rte_mempool *mbuf_pool)
 
        struct rte_eth_link link;
        rte_eth_link_get_nowait(port, &link);
-       if (!link.link_status) {
+       while (!link.link_status) {
+               printf("Waiting for Link up on port %"PRIu8"\n", port);
                sleep(1);
                rte_eth_link_get_nowait(port, &link);
        }