From: Wei Zhao Date: Wed, 27 Dec 2017 08:32:15 +0000 (+0800) Subject: examples/flow_filtering: add Tx queues setup process X-Git-Tag: spdx-start~530 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=feca6c428a5e;p=dpdk.git examples/flow_filtering: add Tx queues setup process This example does not have the process to set up the Tx queues, which is required by Intel NICs. So this patch adds that Tx setup to the application. Signed-off-by: Wei Zhao Acked-by: Ori Kam --- diff --git a/examples/flow_filtering/main.c b/examples/flow_filtering/main.c index 7d739b4aeb..4a07b63235 100644 --- a/examples/flow_filtering/main.c +++ b/examples/flow_filtering/main.c @@ -149,7 +149,18 @@ init_port(void) /**< CRC stripped by hardware */ .hw_strip_crc = 1, }, + .txmode = { + .offloads = + DEV_TX_OFFLOAD_VLAN_INSERT | + DEV_TX_OFFLOAD_IPV4_CKSUM | + DEV_TX_OFFLOAD_UDP_CKSUM | + DEV_TX_OFFLOAD_TCP_CKSUM | + DEV_TX_OFFLOAD_SCTP_CKSUM | + DEV_TX_OFFLOAD_TCP_TSO, + }, }; + struct rte_eth_txconf txq_conf; + struct rte_eth_dev_info dev_info; printf(":: initializing port: %d\n", port_id); ret = rte_eth_dev_configure(port_id, @@ -173,6 +184,21 @@ init_port(void) } } + rte_eth_dev_info_get(port_id, &dev_info); + txq_conf = dev_info.default_txconf; + txq_conf.offloads = port_conf.txmode.offloads; + + for (i = 0; i < nr_queues; i++) { + ret = rte_eth_tx_queue_setup(port_id, i, 512, + rte_eth_dev_socket_id(port_id), + &txq_conf); + if (ret < 0) { + rte_exit(EXIT_FAILURE, + ":: Tx queue setup failed: err=%d, port=%u\n", + ret, port_id); + } + } + rte_eth_promiscuous_enable(port_id); ret = rte_eth_dev_start(port_id); if (ret < 0) {