diff options
Diffstat (limited to 'examples/load_balancer')
-rw-r--r-- | examples/load_balancer/config.c | 16 | ||||
-rw-r--r-- | examples/load_balancer/init.c | 36 | ||||
-rw-r--r-- | examples/load_balancer/main.c | 2 | ||||
-rw-r--r-- | examples/load_balancer/main.h | 11 | ||||
-rw-r--r-- | examples/load_balancer/runtime.c | 14 |
5 files changed, 35 insertions, 44 deletions
diff --git a/examples/load_balancer/config.c b/examples/load_balancer/config.c index 50325095..755a86e4 100644 --- a/examples/load_balancer/config.c +++ b/examples/load_balancer/config.c @@ -47,7 +47,6 @@ #include <rte_log.h> #include <rte_memory.h> #include <rte_memcpy.h> -#include <rte_memzone.h> #include <rte_eal.h> #include <rte_launch.h> #include <rte_atomic.h> @@ -57,7 +56,6 @@ #include <rte_per_lcore.h> #include <rte_branch_prediction.h> #include <rte_interrupts.h> -#include <rte_pci.h> #include <rte_random.h> #include <rte_debug.h> #include <rte_ether.h> @@ -240,7 +238,7 @@ parse_arg_rx(const char *arg) if (lp->io.rx.n_nic_queues >= APP_MAX_NIC_RX_QUEUES_PER_IO_LCORE) { return -9; } - lp->io.rx.nic_queues[lp->io.rx.n_nic_queues].port = (uint8_t) port; + lp->io.rx.nic_queues[lp->io.rx.n_nic_queues].port = port; lp->io.rx.nic_queues[lp->io.rx.n_nic_queues].queue = (uint8_t) queue; lp->io.rx.n_nic_queues ++; @@ -318,7 +316,7 @@ parse_arg_tx(const char *arg) if (lp->io.tx.n_nic_ports >= APP_MAX_NIC_TX_PORTS_PER_IO_LCORE) { return -9; } - lp->io.tx.nic_ports[lp->io.tx.n_nic_ports] = (uint8_t) port; + lp->io.tx.nic_ports[lp->io.tx.n_nic_ports] = port; lp->io.tx.n_nic_ports ++; n_tuples ++; @@ -488,7 +486,7 @@ app_check_lpm_table(void) static int app_check_every_rx_port_is_tx_enabled(void) { - uint8_t port; + uint16_t port; for (port = 0; port < APP_MAX_NIC_PORTS; port ++) { if ((app_get_nic_rx_queues_per_port(port) > 0) && (app.nic_tx_port_mask[port] == 0)) { @@ -762,7 +760,7 @@ app_parse_args(int argc, char **argv) } int -app_get_nic_rx_queues_per_port(uint8_t port) +app_get_nic_rx_queues_per_port(uint16_t port) { uint32_t i, count; @@ -781,7 +779,7 @@ app_get_nic_rx_queues_per_port(uint8_t port) } int -app_get_lcore_for_nic_rx(uint8_t port, uint8_t queue, uint32_t *lcore_out) +app_get_lcore_for_nic_rx(uint16_t port, uint8_t queue, uint32_t *lcore_out) { uint32_t lcore; @@ -808,7 +806,7 @@ app_get_lcore_for_nic_rx(uint8_t port, uint8_t queue, uint32_t *lcore_out) } int -app_get_lcore_for_nic_tx(uint8_t port, uint32_t *lcore_out) +app_get_lcore_for_nic_tx(uint16_t port, uint32_t *lcore_out) { uint32_t lcore; @@ -901,7 +899,7 @@ app_print_params(void) /* Print NIC RX configuration */ printf("NIC RX ports: "); for (port = 0; port < APP_MAX_NIC_PORTS; port ++) { - uint32_t n_rx_queues = app_get_nic_rx_queues_per_port((uint8_t) port); + uint32_t n_rx_queues = app_get_nic_rx_queues_per_port(port); if (n_rx_queues == 0) { continue; diff --git a/examples/load_balancer/init.c b/examples/load_balancer/init.c index 717232e6..3dab7f25 100644 --- a/examples/load_balancer/init.c +++ b/examples/load_balancer/init.c @@ -47,7 +47,6 @@ #include <rte_log.h> #include <rte_memory.h> #include <rte_memcpy.h> -#include <rte_memzone.h> #include <rte_eal.h> #include <rte_launch.h> #include <rte_atomic.h> @@ -57,7 +56,6 @@ #include <rte_per_lcore.h> #include <rte_branch_prediction.h> #include <rte_interrupts.h> -#include <rte_pci.h> #include <rte_random.h> #include <rte_debug.h> #include <rte_ether.h> @@ -308,7 +306,7 @@ app_init_rings_tx(void) continue; } - if (app_get_lcore_for_nic_tx((uint8_t) port, &lcore_io) < 0) { + if (app_get_lcore_for_nic_tx(port, &lcore_io) < 0) { rte_panic("Algorithmic error (no I/O core to handle TX of port %u)\n", port); } @@ -359,11 +357,12 @@ app_init_rings_tx(void) /* 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; uint32_t n_rx_queues, n_tx_queues; @@ -383,14 +382,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 %uMbps - %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 */ @@ -422,7 +420,8 @@ app_init_nics(void) { unsigned socket; uint32_t lcore; - uint8_t port, queue; + uint16_t port; + uint8_t queue; int ret; uint32_t n_rx_queues, n_tx_queues; @@ -440,14 +439,14 @@ app_init_nics(void) } /* Init port */ - printf("Initializing NIC port %u ...\n", (unsigned) port); + printf("Initializing NIC port %u ...\n", port); ret = rte_eth_dev_configure( port, (uint8_t) n_rx_queues, (uint8_t) n_tx_queues, &port_conf); if (ret < 0) { - rte_panic("Cannot init NIC port %u (%d)\n", (unsigned) port, ret); + rte_panic("Cannot init NIC port %u (%d)\n", port, ret); } rte_eth_promiscuous_enable(port); @@ -457,7 +456,7 @@ app_init_nics(void) port, &nic_rx_ring_size, &nic_tx_ring_size); if (ret < 0) { rte_panic("Cannot adjust number of descriptors for port %u (%d)\n", - (unsigned) port, ret); + port, ret); } app.nic_rx_ring_size = nic_rx_ring_size; app.nic_tx_ring_size = nic_tx_ring_size; @@ -473,8 +472,7 @@ app_init_nics(void) pool = app.lcore_params[lcore].pool; printf("Initializing NIC port %u RX queue %u ...\n", - (unsigned) port, - (unsigned) queue); + port, queue); ret = rte_eth_rx_queue_setup( port, queue, @@ -484,9 +482,7 @@ app_init_nics(void) pool); if (ret < 0) { rte_panic("Cannot init RX queue %u for port %u (%d)\n", - (unsigned) queue, - (unsigned) port, - ret); + queue, port, ret); } } @@ -495,7 +491,7 @@ app_init_nics(void) app_get_lcore_for_nic_tx(port, &lcore); socket = rte_lcore_to_socket_id(lcore); printf("Initializing NIC port %u TX queue 0 ...\n", - (unsigned) port); + port); ret = rte_eth_tx_queue_setup( port, 0, diff --git a/examples/load_balancer/main.c b/examples/load_balancer/main.c index 65ceea4a..7ced84d4 100644 --- a/examples/load_balancer/main.c +++ b/examples/load_balancer/main.c @@ -48,7 +48,6 @@ #include <rte_log.h> #include <rte_memory.h> #include <rte_memcpy.h> -#include <rte_memzone.h> #include <rte_eal.h> #include <rte_launch.h> #include <rte_atomic.h> @@ -58,7 +57,6 @@ #include <rte_per_lcore.h> #include <rte_branch_prediction.h> #include <rte_interrupts.h> -#include <rte_pci.h> #include <rte_random.h> #include <rte_debug.h> #include <rte_ether.h> diff --git a/examples/load_balancer/main.h b/examples/load_balancer/main.h index dc407555..bef2ba04 100644 --- a/examples/load_balancer/main.h +++ b/examples/load_balancer/main.h @@ -248,7 +248,7 @@ struct app_lcore_params_io { struct { /* NIC */ struct { - uint8_t port; + uint16_t port; uint8_t queue; } nic_queues[APP_MAX_NIC_RX_QUEUES_PER_IO_LCORE]; uint32_t n_nic_queues; @@ -275,7 +275,7 @@ struct app_lcore_params_io { struct rte_ring *rings[APP_MAX_NIC_PORTS][APP_MAX_WORKER_LCORES]; /* NIC */ - uint8_t nic_ports[APP_MAX_NIC_TX_PORTS_PER_IO_LCORE]; + uint16_t nic_ports[APP_MAX_NIC_TX_PORTS_PER_IO_LCORE]; uint32_t n_nic_ports; /* Internal buffers */ @@ -368,9 +368,10 @@ void app_print_usage(void); void app_init(void); int app_lcore_main_loop(void *arg); -int app_get_nic_rx_queues_per_port(uint8_t port); -int app_get_lcore_for_nic_rx(uint8_t port, uint8_t queue, uint32_t *lcore_out); -int app_get_lcore_for_nic_tx(uint8_t port, uint32_t *lcore_out); +int app_get_nic_rx_queues_per_port(uint16_t port); +int app_get_lcore_for_nic_rx(uint16_t port, uint8_t queue, + uint32_t *lcore_out); +int app_get_lcore_for_nic_tx(uint16_t port, uint32_t *lcore_out); int app_is_socket_used(uint32_t socket); uint32_t app_get_lcores_io_rx(void); uint32_t app_get_lcores_worker(void); diff --git a/examples/load_balancer/runtime.c b/examples/load_balancer/runtime.c index e54b7851..f65e14f0 100644 --- a/examples/load_balancer/runtime.c +++ b/examples/load_balancer/runtime.c @@ -47,7 +47,6 @@ #include <rte_log.h> #include <rte_memory.h> #include <rte_memcpy.h> -#include <rte_memzone.h> #include <rte_eal.h> #include <rte_launch.h> #include <rte_atomic.h> @@ -57,7 +56,6 @@ #include <rte_per_lcore.h> #include <rte_branch_prediction.h> #include <rte_interrupts.h> -#include <rte_pci.h> #include <rte_random.h> #include <rte_debug.h> #include <rte_ether.h> @@ -188,7 +186,7 @@ app_lcore_io_rx( uint32_t i; for (i = 0; i < lp->rx.n_nic_queues; i ++) { - uint8_t port = lp->rx.nic_queues[i].port; + uint16_t port = lp->rx.nic_queues[i].port; uint8_t queue = lp->rx.nic_queues[i].queue; uint32_t n_mbufs, j; @@ -213,7 +211,7 @@ app_lcore_io_rx( printf("I/O RX %u in (NIC port %u): NIC drop ratio = %.2f avg burst size = %.2f\n", lcore, - (unsigned) port, + port, (double) stats.imissed / (double) (stats.imissed + stats.ipackets), ((double) lp->rx.nic_queues_count[i]) / ((double) lp->rx.nic_queues_iters[i])); lp->rx.nic_queues_iters[i] = 0; @@ -339,7 +337,7 @@ app_lcore_io_tx( uint32_t i; for (i = 0; i < lp->tx.n_nic_ports; i ++) { - uint8_t port = lp->tx.nic_ports[i]; + uint16_t port = lp->tx.nic_ports[i]; struct rte_ring *ring = lp->tx.rings[port][worker]; uint32_t n_mbufs, n_pkts; int ret; @@ -395,7 +393,7 @@ app_lcore_io_tx( printf("\t\t\tI/O TX %u out (port %u): avg burst size = %.2f\n", lcore, - (unsigned) port, + port, ((double) lp->tx.nic_ports_count[port]) / ((double) lp->tx.nic_ports_iters[port])); lp->tx.nic_ports_iters[port] = 0; lp->tx.nic_ports_count[port] = 0; @@ -418,7 +416,7 @@ app_lcore_io_tx( static inline void app_lcore_io_tx_flush(struct app_lcore_params_io *lp) { - uint8_t port; + uint16_t port; uint32_t i; for (i = 0; i < lp->tx.n_nic_ports; i++) { @@ -569,7 +567,7 @@ app_lcore_worker( if (lp->rings_out_iters[port] == APP_STATS){ printf("\t\tWorker %u out (NIC port %u): enq success rate = %.2f\n", (unsigned) lp->worker_id, - (unsigned) port, + port, ((double) lp->rings_out_count[port]) / ((double) lp->rings_out_iters[port])); lp->rings_out_iters[port] = 0; lp->rings_out_count[port] = 0; |