X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest-pmd%2Fparameters.c;h=19fbf461f5e2eab4b47cd602518fa8b1839bcee7;hb=1b306359e58cb7b90c7d4130a9e74ab5c340298a;hp=9573a43cf488d18843d456c40cd5b11ef8c462ba;hpb=2950a769315e4716b7884ece85f85946d7693eed;p=dpdk.git diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c index 9573a43cf4..19fbf461f5 100644 --- a/app/test-pmd/parameters.c +++ b/app/test-pmd/parameters.c @@ -171,20 +171,14 @@ usage(char* progname) printf(" --txd=N: set the number of descriptors in TX rings to N.\n"); printf(" --burst=N: set the number of packets per burst to N.\n"); printf(" --mbcache=N: set the cache of mbuf memory pool to N.\n"); - printf(" --rxpt=N: set prefetch threshold register of RX rings to N " - "(0 <= N <= 16).\n"); - printf(" --rxht=N: set the host threshold register of RX rings to N " - "(0 <= N <= 16).\n"); + printf(" --rxpt=N: set prefetch threshold register of RX rings to N.\n"); + printf(" --rxht=N: set the host threshold register of RX rings to N.\n"); printf(" --rxfreet=N: set the free threshold of RX descriptors to N " "(0 <= N < value of rxd).\n"); - printf(" --rxwt=N: set the write-back threshold register of RX rings " - "to N (0 <= N <= 16).\n"); - printf(" --txpt=N: set the prefetch threshold register of TX rings " - "to N (0 <= N <= 16).\n"); - printf(" --txht=N: set the nhost threshold register of TX rings to N " - "(0 <= N <= 16).\n"); - printf(" --txwt=N: set the write-back threshold register of TX rings " - "to N (0 <= N <= 16).\n"); + printf(" --rxwt=N: set the write-back threshold register of RX rings to N.\n"); + printf(" --txpt=N: set the prefetch threshold register of TX rings to N.\n"); + printf(" --txht=N: set the nhost threshold register of TX rings to N.\n"); + printf(" --txwt=N: set the write-back threshold register of TX rings to N.\n"); printf(" --txfreet=N: set the transmit free threshold of TX rings to N " "(0 <= N <= value of txd).\n"); printf(" --txrst=N: set the transmit RS bit threshold of TX rings to N " @@ -223,7 +217,8 @@ init_peer_eth_addrs(char *config_filename) if (fgets(buf, sizeof(buf), config_file) == NULL) break; - if (cmdline_parse_etheraddr(NULL, buf, &peer_eth_addrs[i]) < 0 ){ + if (cmdline_parse_etheraddr(NULL, buf, &peer_eth_addrs[i], + sizeof(peer_eth_addrs[i])) < 0) { printf("Bad MAC address format on line %d\n", i+1); fclose(config_file); return -1; @@ -490,52 +485,6 @@ parse_ringnuma_config(const char *q_arg) return 0; } -static unsigned int -parse_item_list(char* str, unsigned int max_items, unsigned int *parsed_items) -{ - unsigned int nb_item; - unsigned int value; - unsigned int i; - int value_ok; - char c; - - /* - * First parse all items in the list and store their value. - */ - value = 0; - nb_item = 0; - value_ok = 0; - for (i = 0; i < strlen(str); i++) { - c = str[i]; - if ((c >= '0') && (c <= '9')) { - value = (unsigned int) (value * 10 + (c - '0')); - value_ok = 1; - continue; - } - if (c != ',') { - printf("character %c is not a decimal digit\n", c); - return (0); - } - if (! value_ok) { - printf("No valid value before comma\n"); - return (0); - } - if (nb_item < max_items) { - parsed_items[nb_item] = value; - value_ok = 0; - value = 0; - } - nb_item++; - } - - if (nb_item >= max_items) - rte_exit(EXIT_FAILURE, "too many txpkt segments!\n"); - - parsed_items[nb_item++] = value; - - return (nb_item); -} - void launch_args_parse(int argc, char** argv) { @@ -658,7 +607,8 @@ launch_args_parse(int argc, char** argv) "eth-peer: port %d >= RTE_MAX_ETHPORTS(%d)\n", n, RTE_MAX_ETHPORTS); - if (cmdline_parse_etheraddr(NULL, port_end, &peer_addr) < 0 ) + if (cmdline_parse_etheraddr(NULL, port_end, + &peer_addr, sizeof(peer_addr)) < 0) rte_exit(EXIT_FAILURE, "Invalid ethernet address: %s\n", port_end); @@ -863,20 +813,6 @@ launch_args_parse(int argc, char** argv) " >= 1 && <= %d\n", n, (int) MAX_QUEUE_ID); } - if (!strcmp(lgopts[opt_idx].name, "rxd")) { - n = atoi(optarg); - if (n > 0) - nb_rxd = (uint16_t) n; - else - rte_exit(EXIT_FAILURE, "rxd must be > 0\n"); - } - if (!strcmp(lgopts[opt_idx].name, "txd")) { - n = atoi(optarg); - if (n > 0) - nb_txd = (uint16_t) n; - else - rte_exit(EXIT_FAILURE, "txd must be in > 0\n"); - } if (!strcmp(lgopts[opt_idx].name, "burst")) { n = atoi(optarg); if ((n >= 1) && (n <= MAX_PKT_BURST)) @@ -896,38 +832,17 @@ launch_args_parse(int argc, char** argv) "mbcache must be >= 0 and <= %d\n", RTE_MEMPOOL_CACHE_MAX_SIZE); } - if (!strcmp(lgopts[opt_idx].name, "txpt")) { - n = atoi(optarg); - if (n >= 0) - tx_thresh.pthresh = (uint8_t)n; - else - rte_exit(EXIT_FAILURE, "txpt must be >= 0\n"); - } - if (!strcmp(lgopts[opt_idx].name, "txht")) { - n = atoi(optarg); - if (n >= 0) - tx_thresh.hthresh = (uint8_t)n; - else - rte_exit(EXIT_FAILURE, "txht must be >= 0\n"); - } - if (!strcmp(lgopts[opt_idx].name, "txwt")) { - n = atoi(optarg); - if (n >= 0) - tx_thresh.wthresh = (uint8_t)n; - else - rte_exit(EXIT_FAILURE, "txwt must be >= 0\n"); - } if (!strcmp(lgopts[opt_idx].name, "txfreet")) { n = atoi(optarg); if (n >= 0) - tx_free_thresh = (uint16_t)n; + tx_free_thresh = (int16_t)n; else rte_exit(EXIT_FAILURE, "txfreet must be >= 0\n"); } if (!strcmp(lgopts[opt_idx].name, "txrst")) { n = atoi(optarg); if (n >= 0) - tx_rs_thresh = (uint16_t)n; + tx_rs_thresh = (int16_t)n; else rte_exit(EXIT_FAILURE, "txrst must be >= 0\n"); } @@ -935,32 +850,11 @@ launch_args_parse(int argc, char** argv) char *end = NULL; n = strtoul(optarg, &end, 16); if (n >= 0) - txq_flags = (uint32_t)n; + txq_flags = (int32_t)n; else rte_exit(EXIT_FAILURE, "txqflags must be >= 0\n"); } - if (!strcmp(lgopts[opt_idx].name, "rxpt")) { - n = atoi(optarg); - if (n >= 0) - rx_thresh.pthresh = (uint8_t)n; - else - rte_exit(EXIT_FAILURE, "rxpt must be >= 0\n"); - } - if (!strcmp(lgopts[opt_idx].name, "rxht")) { - n = atoi(optarg); - if (n >= 0) - rx_thresh.hthresh = (uint8_t)n; - else - rte_exit(EXIT_FAILURE, "rxht must be >= 0\n"); - } - if (!strcmp(lgopts[opt_idx].name, "rxwt")) { - n = atoi(optarg); - if (n >= 0) - rx_thresh.wthresh = (uint8_t)n; - else - rte_exit(EXIT_FAILURE, "rxwt must be >= 0\n"); - } if (!strcmp(lgopts[opt_idx].name, "rxd")) { n = atoi(optarg); if (n > 0) { @@ -986,49 +880,49 @@ launch_args_parse(int argc, char** argv) if (!strcmp(lgopts[opt_idx].name, "txpt")) { n = atoi(optarg); if (n >= 0) - tx_thresh.pthresh = (uint8_t)n; + tx_pthresh = (int8_t)n; else rte_exit(EXIT_FAILURE, "txpt must be >= 0\n"); } if (!strcmp(lgopts[opt_idx].name, "txht")) { n = atoi(optarg); if (n >= 0) - tx_thresh.hthresh = (uint8_t)n; + tx_hthresh = (int8_t)n; else rte_exit(EXIT_FAILURE, "txht must be >= 0\n"); } if (!strcmp(lgopts[opt_idx].name, "txwt")) { n = atoi(optarg); if (n >= 0) - tx_thresh.wthresh = (uint8_t)n; + tx_wthresh = (int8_t)n; else rte_exit(EXIT_FAILURE, "txwt must be >= 0\n"); } if (!strcmp(lgopts[opt_idx].name, "rxpt")) { n = atoi(optarg); if (n >= 0) - rx_thresh.pthresh = (uint8_t)n; + rx_pthresh = (int8_t)n; else rte_exit(EXIT_FAILURE, "rxpt must be >= 0\n"); } if (!strcmp(lgopts[opt_idx].name, "rxht")) { n = atoi(optarg); if (n >= 0) - rx_thresh.hthresh = (uint8_t)n; + rx_hthresh = (int8_t)n; else rte_exit(EXIT_FAILURE, "rxht must be >= 0\n"); } if (!strcmp(lgopts[opt_idx].name, "rxwt")) { n = atoi(optarg); if (n >= 0) - rx_thresh.wthresh = (uint8_t)n; + rx_wthresh = (int8_t)n; else rte_exit(EXIT_FAILURE, "rxwt must be >= 0\n"); } if (!strcmp(lgopts[opt_idx].name, "rxfreet")) { n = atoi(optarg); if (n >= 0) - rx_free_thresh = (uint16_t)n; + rx_free_thresh = (int16_t)n; else rte_exit(EXIT_FAILURE, "rxfreet must be >= 0\n"); } @@ -1048,7 +942,8 @@ launch_args_parse(int argc, char** argv) unsigned seg_lengths[RTE_MAX_SEGS_PER_PKT]; unsigned int nb_segs; - nb_segs = parse_item_list(optarg, RTE_MAX_SEGS_PER_PKT, seg_lengths); + nb_segs = parse_item_list(optarg, "txpkt segments", + RTE_MAX_SEGS_PER_PKT, seg_lengths, 0); if (nb_segs > 0) set_tx_pkt_segments(seg_lengths, nb_segs); else