diff options
Diffstat (limited to 'platform')
-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); |