app: no more bare metal environment
[dpdk.git] / app / test-pmd / testpmd.c
index e8a4b45..79620c6 100644 (file)
@@ -225,7 +225,9 @@ struct rte_eth_thresh tx_thresh = {
 /*
  * Configurable value of RX free threshold.
  */
-uint16_t rx_free_thresh = 0; /* Immediately free RX descriptors by default. */
+uint16_t rx_free_thresh = 32; /* Refill RX descriptors once every 32 packets,
+               This setting is needed for ixgbe to enable bulk alloc or vector
+               receive functionality. */
 
 /*
  * Configurable value of RX drop enable.
@@ -398,18 +400,17 @@ testpmd_mbuf_ctor(struct rte_mempool *mp,
        mb_ctor_arg = (struct mbuf_ctor_arg *) opaque_arg;
        mb = (struct rte_mbuf *) raw_mbuf;
 
-       mb->type         = RTE_MBUF_PKT;
        mb->pool         = mp;
        mb->buf_addr     = (void *) ((char *)mb + mb_ctor_arg->seg_buf_offset);
        mb->buf_physaddr = (uint64_t) (rte_mempool_virt2phy(mp, mb) +
                        mb_ctor_arg->seg_buf_offset);
        mb->buf_len      = mb_ctor_arg->seg_buf_size;
-       mb->type         = RTE_MBUF_PKT;
        mb->ol_flags     = 0;
-       mb->pkt.data     = (char *) mb->buf_addr + RTE_PKTMBUF_HEADROOM;
-       mb->pkt.nb_segs  = 1;
-       mb->pkt.vlan_macip.data = 0;
-       mb->pkt.hash.rss = 0;
+       mb->data_off     = RTE_PKTMBUF_HEADROOM;
+       mb->nb_segs      = 1;
+       mb->tx_offload   = 0;
+       mb->vlan_tci     = 0;
+       mb->hash.rss     = 0;
 }
 
 static void
@@ -614,7 +615,9 @@ init_config(void)
         * Records which Mbuf pool to use by each logical core, if needed.
         */
        for (lc_id = 0; lc_id < nb_lcores; lc_id++) {
-               mbp = mbuf_pool_find(rte_lcore_to_socket_id(lc_id));
+               mbp = mbuf_pool_find(
+                       rte_lcore_to_socket_id(fwd_lcores_cpuids[lc_id]));
+
                if (mbp == NULL)
                        mbp = mbuf_pool_find(0);
                fwd_lcores[lc_id]->mbp = mbp;
@@ -627,7 +630,7 @@ init_config(void)
 
 
 void
-reconfig(portid_t new_port_id)
+reconfig(portid_t new_port_id, unsigned socket_id)
 {
        struct rte_port *port;
 
@@ -646,6 +649,7 @@ reconfig(portid_t new_port_id)
        /* set flag to initialize port/queue */
        port->need_reconfig = 1;
        port->need_reconfig_queues = 1;
+       port->socket_id = socket_id;
 
        init_port_config();
 }
@@ -1513,6 +1517,18 @@ all_ports_stopped(void)
        return 1;
 }
 
+int
+port_is_started(portid_t port_id)
+{
+       if (port_id_is_invalid(port_id))
+               return -1;
+
+       if (ports[port_id].port_status != RTE_PORT_STARTED)
+               return 0;
+
+       return 1;
+}
+
 void
 pmd_test_exit(void)
 {
@@ -1839,10 +1855,6 @@ init_port_dcb_config(portid_t pid,struct dcb_config *dcb_conf)
        return 0;
 }
 
-#ifdef RTE_EXEC_ENV_BAREMETAL
-#define main _main
-#endif
-
 int
 main(int argc, char** argv)
 {
@@ -1855,12 +1867,7 @@ main(int argc, char** argv)
 
        nb_ports = (portid_t) rte_eth_dev_count();
        if (nb_ports == 0)
-               rte_exit(EXIT_FAILURE, "No probed ethernet devices - "
-                                                       "check that "
-                         "CONFIG_RTE_LIBRTE_IGB_PMD=y and that "
-                         "CONFIG_RTE_LIBRTE_EM_PMD=y and that "
-                         "CONFIG_RTE_LIBRTE_IXGBE_PMD=y in your "
-                         "configuration file\n");
+               rte_exit(EXIT_FAILURE, "No probed ethernet device\n");
 
        set_def_fwd_config();
        if (nb_lcores == 0)