ethdev: increase port id range
[dpdk.git] / examples / multi_process / l2fwd_fork / main.c
index 311a427..238b7f6 100644 (file)
@@ -53,7 +53,6 @@
 #include <rte_memcpy.h>
 #include <rte_memzone.h>
 #include <rte_eal.h>
-#include <rte_per_lcore.h>
 #include <rte_launch.h>
 #include <rte_atomic.h>
 #include <rte_spinlock.h>
@@ -141,7 +140,8 @@ struct lcore_resource_struct {
        /* ring[1] for slave send ack, master read */
        struct rte_ring *ring[2];
        int port_num;                                   /* Total port numbers */
-       uint8_t port[RTE_MAX_ETHPORTS]; /* Port id for that lcore to receive packets */
+       /* Port id for that lcore to receive packets */
+       uint16_t port[RTE_MAX_ETHPORTS];
 }__attribute__((packed)) __rte_cache_aligned;
 
 static struct lcore_resource_struct lcore_resource[RTE_MAX_LCORE];
@@ -671,6 +671,8 @@ l2fwd_main_loop(void)
                                        port_statistics[portid].tx += sent;
 
                        }
+
+                       prev_tsc = cur_tsc;
                }
 
                /*
@@ -870,11 +872,12 @@ l2fwd_parse_args(int argc, char **argv)
 
 /* Check the link status of all ports in up to 9s, and print them finally */
 static void
-check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)
+check_all_ports_link_status(uint16_t port_num, uint32_t port_mask)
 {
 #define CHECK_INTERVAL 100 /* 100ms */
 #define MAX_CHECK_TIME 90 /* 9s (90 * 100ms) in total */
-       uint8_t portid, count, all_ports_up, print_flag = 0;
+       uint16_t portid;
+       uint8_t count, all_ports_up, print_flag = 0;
        struct rte_eth_link link;
 
        printf("\nChecking link status");
@@ -889,14 +892,13 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)
                        /* print link status if flag set */
                        if (print_flag == 1) {
                                if (link.link_status)
-                                       printf("Port %d Link Up - speed %u "
-                                               "Mbps - %s\n", (uint8_t)portid,
-                                               (unsigned)link.link_speed,
+                                       printf(
+                                       "Port%d Link Up- speed %u Mbps- %s\n",
+                                       portid, link.link_speed,
                                (link.link_duplex == ETH_LINK_FULL_DUPLEX) ?
                                        ("full-duplex") : ("half-duplex\n"));
                                else
-                                       printf("Port %d Link Down\n",
-                                               (uint8_t)portid);
+                                       printf("Port %d Link Down\n", portid);
                                continue;
                        }
                        /* clear all_ports_up flag if any link down */
@@ -929,13 +931,12 @@ main(int argc, char **argv)
        struct lcore_queue_conf *qconf;
        struct rte_eth_dev_info dev_info;
        int ret;
-       uint8_t nb_ports;
-       uint8_t nb_ports_available;
-       uint8_t portid, last_port;
+       uint16_t nb_ports;
+       uint16_t nb_ports_available;
+       uint16_t portid, last_port;
        unsigned rx_lcore_id;
        unsigned nb_ports_in_mask = 0;
        unsigned i;
-       int flags = 0;
        uint64_t prev_tsc, diff_tsc, cur_tsc, timer_tsc;
 
        /* Save cpu_affinity first, restore it in case it's floating process option */
@@ -985,7 +986,6 @@ main(int argc, char **argv)
                if ((l2fwd_enabled_port_mask & (1 << portid)) == 0)
                        continue;
                char buf_name[RTE_MEMPOOL_NAMESIZE];
-               flags = MEMPOOL_F_SP_PUT | MEMPOOL_F_SC_GET;
                snprintf(buf_name, RTE_MEMPOOL_NAMESIZE, MBUF_NAME, portid);
                l2fwd_pktmbuf_pool[portid] =
                        rte_pktmbuf_pool_create(buf_name, NB_MBUF, 32,
@@ -1080,6 +1080,13 @@ main(int argc, char **argv)
                        rte_exit(EXIT_FAILURE, "Cannot configure device: err=%d, port=%u\n",
                                  ret, (unsigned) portid);
 
+               ret = rte_eth_dev_adjust_nb_rx_tx_desc(portid, &nb_rxd,
+                                                      &nb_txd);
+               if (ret < 0)
+                       rte_exit(EXIT_FAILURE,
+                                "rte_eth_dev_adjust_nb_rx_tx_desc: err=%d, port=%u\n",
+                                ret, (unsigned) portid);
+
                rte_eth_macaddr_get(portid,&l2fwd_ports_eth_addr[portid]);
 
                /* init one RX queue */