Fixes: ee27edbe0c10 ("drivers/net: share vdev data to secondary process")
Enables TUN PMD sharing by attaching the port from the shared data. Cc: zhihong.w...@intel.com Cc: ferruh.yi...@intel.com Signed-off-by: Vipin Varghese <vipin.vargh...@intel.com> --- --- drivers/net/tap/rte_eth_tap.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c index db397d6..ea6d899 100644 --- a/drivers/net/tap/rte_eth_tap.c +++ b/drivers/net/tap/rte_eth_tap.c @@ -1657,6 +1657,7 @@ rte_pmd_tun_probe(struct rte_vdev_device *dev) struct rte_kvargs *kvlist = NULL; char tun_name[RTE_ETH_NAME_MAX_LEN]; char remote_iface[RTE_ETH_NAME_MAX_LEN]; + struct rte_eth_dev *eth_dev; tap_type = 0; strcpy(tuntap_name, "TUN"); @@ -1665,6 +1666,18 @@ rte_pmd_tun_probe(struct rte_vdev_device *dev) params = rte_vdev_device_args(dev); memset(remote_iface, 0, RTE_ETH_NAME_MAX_LEN); + if (rte_eal_process_type() == RTE_PROC_SECONDARY && + strlen(params) == 0) { + eth_dev = rte_eth_dev_attach_secondary(name); + if (!eth_dev) { + TAP_LOG(ERR, "Failed to probe %s", name); + return -1; + } + /* TODO: request info from primary to set up Rx and Tx */ + eth_dev->dev_ops = &ops; + return 0; + } + snprintf(tun_name, sizeof(tun_name), "%s%u", DEFAULT_TUN_NAME, tun_unit++); -- 2.7.4