X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest-pmd%2Ftestpmd.c;h=e8a4b45d7d46792248eb7b911f575c26cc4f425a;hb=a6664a09a7caa5e63f9ae625cf1946b0eef7794e;hp=546d429bcdd1821e30ba8187b6a18c8839ec8af4;hpb=8a387fa85f02ed64f755e0baa72e567d1917af48;p=dpdk.git diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 546d429bcd..e8a4b45d7d 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -174,7 +174,7 @@ uint16_t tx_pkt_seg_lengths[RTE_MAX_SEGS_PER_PKT] = { uint8_t tx_pkt_nb_segs = 1; /**< Number of segments in TXONLY packets */ uint16_t nb_pkt_per_burst = DEF_PKT_BURST; /**< Number of packets per burst. */ -uint16_t mb_mempool_cache = DEF_PKT_BURST; /**< Size of mbuf mempool cache. */ +uint16_t mb_mempool_cache = DEF_MBUF_CACHE; /**< Size of mbuf mempool cache. */ /* current configuration is in DCB or not,0 means it is not in DCB mode */ uint8_t dcb_config = 0; @@ -204,9 +204,9 @@ uint16_t nb_txd = RTE_TEST_TX_DESC_DEFAULT; /**< Number of TX descriptors. */ */ #define RX_PTHRESH 8 /**< Default value of RX prefetch threshold register. */ #define RX_HTHRESH 8 /**< Default value of RX host threshold register. */ -#define RX_WTHRESH 4 /**< Default value of RX write-back threshold register. */ +#define RX_WTHRESH 0 /**< Default value of RX write-back threshold register. */ -#define TX_PTHRESH 36 /**< Default value of TX prefetch threshold register. */ +#define TX_PTHRESH 32 /**< Default value of TX prefetch threshold register. */ #define TX_HTHRESH 0 /**< Default value of TX host threshold register. */ #define TX_WTHRESH 0 /**< Default value of TX write-back threshold register. */ @@ -300,7 +300,7 @@ struct rte_fdir_conf fdir_conf = { .drop_queue = 127, }; -static volatile int test_done = 1; /* stop packet forwarding when set to 1. */ +volatile int test_done = 1; /* stop packet forwarding when set to 1. */ struct queue_stats_mappings tx_queue_stats_mappings_array[MAX_TX_QUEUE_STATS_MAPPINGS]; struct queue_stats_mappings rx_queue_stats_mappings_array[MAX_RX_QUEUE_STATS_MAPPINGS]; @@ -625,6 +625,32 @@ init_config(void) rte_exit(EXIT_FAILURE, "FAIL from init_fwd_streams()\n"); } + +void +reconfig(portid_t new_port_id) +{ + struct rte_port *port; + + /* Reconfiguration of Ethernet ports. */ + ports = rte_realloc(ports, + sizeof(struct rte_port) * nb_ports, + CACHE_LINE_SIZE); + if (ports == NULL) { + rte_exit(EXIT_FAILURE, "rte_realloc(%d struct rte_port) failed\n", + nb_ports); + } + + port = &ports[new_port_id]; + rte_eth_dev_info_get(new_port_id, &port->dev_info); + + /* set flag to initialize port/queue */ + port->need_reconfig = 1; + port->need_reconfig_queues = 1; + + init_port_config(); +} + + int init_fwd_streams(void) { @@ -1252,7 +1278,7 @@ start_port(portid_t pid) portid_t pi; queueid_t qi; struct rte_port *port; - uint8_t *mac_addr; + struct ether_addr mac_addr; if (test_done == 0) { printf("Please stop forwarding first\n"); @@ -1380,10 +1406,11 @@ start_port(portid_t pid) RTE_PORT_HANDLING, RTE_PORT_STARTED) == 0) printf("Port %d can not be set into started\n", pi); - mac_addr = port->eth_addr.addr_bytes; + rte_eth_macaddr_get(pi, &mac_addr); printf("Port %d: %02X:%02X:%02X:%02X:%02X:%02X\n", pi, - mac_addr[0], mac_addr[1], mac_addr[2], - mac_addr[3], mac_addr[4], mac_addr[5]); + mac_addr.addr_bytes[0], mac_addr.addr_bytes[1], + mac_addr.addr_bytes[2], mac_addr.addr_bytes[3], + mac_addr.addr_bytes[4], mac_addr.addr_bytes[5]); /* at least one port started, need checking link status */ need_check_link_status = 1; @@ -1826,9 +1853,6 @@ main(int argc, char** argv) if (diag < 0) rte_panic("Cannot init EAL\n"); - if (rte_eal_pci_probe()) - rte_panic("Cannot probe PCI\n"); - nb_ports = (portid_t) rte_eth_dev_count(); if (nb_ports == 0) rte_exit(EXIT_FAILURE, "No probed ethernet devices - "