diff options
author | Vijay Ram Inavolu <vinavolu@marvell.com> | 2021-06-18 05:47:20 +0000 |
---|---|---|
committer | Matias Elo <matias.elo@nokia.com> | 2021-06-18 16:17:08 +0300 |
commit | 3a7a24023021f5959dd2f00fe83cf2635bf25c2d (patch) | |
tree | 3c097571ead7a580cd6dcd276885838f0be5e8e6 | |
parent | 4f2d750161038bbb883b01b56932e850682efe24 (diff) |
linux-dpdk: pktio: use names other than index also as dpdk ports
setup_pkt_dpdk() only allows netdev string to be a port number.
This is to allow passing all other supported DPDK ports as well.
Signed-off-by: Vijay Ram Inavolu <vinavolu@marvell.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
-rw-r--r-- | platform/linux-dpdk/odp_packet_dpdk.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/platform/linux-dpdk/odp_packet_dpdk.c b/platform/linux-dpdk/odp_packet_dpdk.c index 0f8a1e178..9d400d603 100644 --- a/platform/linux-dpdk/odp_packet_dpdk.c +++ b/platform/linux-dpdk/odp_packet_dpdk.c @@ -131,8 +131,8 @@ static inline pkt_dpdk_t *pkt_priv(pktio_entry_t *pktio_entry) * Array must be NULL terminated */ const pktio_if_ops_t * const _odp_pktio_if_ops[] = { &_odp_loopback_pktio_ops, - &_odp_dpdk_pktio_ops, &_odp_null_pktio_ops, + &_odp_dpdk_pktio_ops, NULL }; @@ -603,12 +603,16 @@ static int setup_pkt_dpdk(odp_pktio_t pktio ODP_UNUSED, struct rte_eth_dev_info dev_info; pkt_dpdk_t * const pkt_dpdk = pkt_priv(pktio_entry); int i; + uint16_t port_id; - if (!_dpdk_netdev_is_valid(netdev)) { - ODP_DBG("Interface name should only contain numbers!: %s\n", netdev); + if (!rte_eth_dev_get_port_by_name(netdev, &port_id)) + pkt_dpdk->port_id = port_id; + else if (_dpdk_netdev_is_valid(netdev)) + pkt_dpdk->port_id = atoi(netdev); + else { + ODP_ERR("Invalid interface name!: %s\n", netdev); return -1; } - pkt_dpdk->port_id = atoi(netdev); if (!rte_eth_dev_is_valid_port(pkt_dpdk->port_id)) { ODP_ERR("Port id=%" PRIu16 " not attached\n", pkt_dpdk->port_id); |