[spp] [PATCH 6/7] shared: fix for updating API of DPDK v18.05
Kenta Shinohara
shinohara.kenta at lab.ntt.co.jp
Tue Jun 19 13:37:19 CEST 2018
An error has occured while executing spp primary.
execution error:
k-shino at tyrannosaurus:~/dpdk1805/spp$ sudo ./src/primary/x86_64-native
-linuxapp-gcc/spp_primary -l 2 -n 4 --socket-mem 512 --huge-dir=/dev/h
ugepages --proc-type=primary -- -p 0x02 -n 1 -s 192.168.122.1:5555
EAL: Detected 6 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /var/run/.rte_unix
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL: PCI device 0000:00:19.0 on NUMA socket 0
EAL: probe driver: 8086:153a net_e1000_em
EAL: PCI device 0000:04:00.0 on NUMA socket 0
EAL: probe driver: 8086:105e net_e1000_em
EAL: PCI device 0000:04:00.1 on NUMA socket 0
EAL: probe driver: 8086:105e net_e1000_em
APP: Port 1 init ... eth_em_tx_queue_setup(): 0xcd1680: Tx queue offlo
ads 0x801d don't match port offloads 0x0 or supported port offloads 0x
f or supported queue offloads 0xf
EAL: Error - exiting with code: 1
Cause: Cannot initialise port 0
This error is caused by updating API of 'eth_em_tx_queue_setup()'.
To fix this, replace 5th argument of the method from 'NULL', which is
referenced from examples/l2fwd/main.c.
Signed-off-by: Kenta Shinohara <shinohara.kenta at lab.ntt.co.jp>
---
src/shared/common.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/shared/common.c b/src/shared/common.c
index b11cb6d..10115d1 100644
--- a/src/shared/common.c
+++ b/src/shared/common.c
@@ -115,10 +115,21 @@ init_port(uint16_t port_num, struct rte_mempool *pktmbuf_pool)
const uint16_t tx_ring_size = RTE_MP_TX_DESC_DEFAULT;
uint16_t q;
int retval;
+ struct rte_eth_dev_info dev_info;
+ struct rte_eth_conf local_port_conf = port_conf;
+ struct rte_eth_txconf txq_conf;
RTE_LOG(INFO, APP, "Port %u init ... ", port_num);
fflush(stdout);
+ rte_eth_dev_info_get(port_num, &dev_info);
+ if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE)
+ local_port_conf.txmode.offloads |=
+ DEV_TX_OFFLOAD_MBUF_FAST_FREE;
+ txq_conf = dev_info.default_txconf;
+ txq_conf.txq_flags = ETH_TXQ_FLAGS_IGNORE;
+ txq_conf.offloads = local_port_conf.txmode.offloads;
+
/*
* Standard DPDK port initialisation - config port, then set up
* rx and tx rings
@@ -137,7 +148,7 @@ init_port(uint16_t port_num, struct rte_mempool *pktmbuf_pool)
for (q = 0; q < tx_rings; q++) {
retval = rte_eth_tx_queue_setup(port_num, q, tx_ring_size,
- rte_eth_dev_socket_id(port_num), NULL);
+ rte_eth_dev_socket_id(port_num), &txq_conf);
if (retval < 0)
return retval;
}
--
2.15.1 (Apple Git-101)
More information about the spp
mailing list