[spp] [PATCH 6/7] shared: fix for updating API of DPDK v18.05
Yasufumi Ogawa
ogawa.yasufumi at lab.ntt.co.jp
Thu Jun 21 12:53:47 CEST 2018
On 2018/06/19 20:37, Kenta Shinohara wrote:
> 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>
Thanks!
Acked-by: Yasufumi Ogawa <ogawa.yasufumi 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;
> }
>
More information about the spp
mailing list