X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fkni%2Fmain.c;h=e3bc2fb78680e9c69aaa12dd2285013c899481e0;hb=ce17eddefc20;hp=6d434ad3d53bca3b6c192d5f55636d9783b6a099;hpb=10cbac6ae95e27f99d81d4d6a4e00bf73de3ef13;p=dpdk.git diff --git a/examples/kni/main.c b/examples/kni/main.c index 6d434ad3d5..e3bc2fb786 100644 --- a/examples/kni/main.c +++ b/examples/kni/main.c @@ -65,8 +65,6 @@ #include #include #include -#include -#include #include #include #include @@ -131,7 +129,7 @@ static struct rte_eth_conf port_conf = { .hw_ip_checksum = 0, /* IP checksum offload disabled */ .hw_vlan_filter = 0, /* VLAN filtering disabled */ .jumbo_frame = 0, /* Jumbo Frame Support disabled */ - .hw_strip_crc = 0, /* CRC stripped by hardware */ + .hw_strip_crc = 1, /* CRC stripped by hardware */ }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, @@ -318,8 +316,6 @@ main_loop(__rte_unused void *arg) }; enum lcore_rxtx flag = LCORE_NONE; - nb_ports = (uint8_t)(nb_ports < RTE_MAX_ETHPORTS ? - nb_ports : RTE_MAX_ETHPORTS); for (i = 0; i < nb_ports; i++) { if (!kni_port_params_array[i]) continue; @@ -608,6 +604,8 @@ static void init_port(uint8_t port) { int ret; + uint16_t nb_rxd = NB_RXD; + uint16_t nb_txd = NB_TXD; /* Initialise device and RX/TX queues */ RTE_LOG(INFO, APP, "Initialising port %u ...\n", (unsigned)port); @@ -617,13 +615,18 @@ init_port(uint8_t port) rte_exit(EXIT_FAILURE, "Could not configure port%u (%d)\n", (unsigned)port, ret); - ret = rte_eth_rx_queue_setup(port, 0, NB_RXD, + ret = rte_eth_dev_adjust_nb_rx_tx_desc(port, &nb_rxd, &nb_txd); + if (ret < 0) + rte_exit(EXIT_FAILURE, "Could not adjust number of descriptors " + "for port%u (%d)\n", (unsigned)port, ret); + + ret = rte_eth_rx_queue_setup(port, 0, nb_rxd, rte_eth_dev_socket_id(port), NULL, pktmbuf_pool); if (ret < 0) rte_exit(EXIT_FAILURE, "Could not setup up RX queue for " "port%u (%d)\n", (unsigned)port, ret); - ret = rte_eth_tx_queue_setup(port, 0, NB_TXD, + ret = rte_eth_tx_queue_setup(port, 0, nb_txd, rte_eth_dev_socket_id(port), NULL); if (ret < 0) rte_exit(EXIT_FAILURE, "Could not setup up TX queue for " @@ -670,7 +673,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask) continue; } /* clear all_ports_up flag if any link down */ - if (link.link_status == 0) { + if (link.link_status == ETH_LINK_DOWN) { all_ports_up = 0; break; } @@ -831,7 +834,8 @@ kni_free_kni(uint8_t port_id) return -1; for (i = 0; i < p[port_id]->nb_kni; i++) { - rte_kni_release(p[port_id]->kni[i]); + if (rte_kni_release(p[port_id]->kni[i])) + printf("Fail to release kni\n"); p[port_id]->kni[i] = NULL; } rte_eth_dev_stop(port_id);