[dpdk-dev] [PATCH v1] dpdk-devbind.py: Virtio interface issue.
Stephen Hemminger
stephen at networkplumber.org
Tue Aug 30 01:33:30 CEST 2016
On Mon, 29 Aug 2016 23:16:35 +0000
"Dey, Souvik" <sodey at sonusnet.com> wrote:
> Hi,
>
> I already followed the 100% python way and submitted the v3 of this patch. http://dpdk.org/dev/patchwork/patch/15378/
> How will your patch be different in solving the issue. There will always be multiple ways to solving things right.
>
>
> V3 of my submitted patch:
>
> diff --git a/tools/dpdk-devbind.py b/tools/dpdk-devbind.py
> index b69ca2a..c0b46ee 100755
> --- a/tools/dpdk-devbind.py
> +++ b/tools/dpdk-devbind.py
> @@ -36,6 +36,7 @@ import sys
> import os
> import getopt
> import subprocess
> +
> from os.path import exists, abspath, dirname, basename
>
> # The PCI base class for NETWORK devices
> @@ -222,8 +223,19 @@ def get_pci_device_details(dev_id):
> device[name] = value
> # check for a unix interface name
> sys_path = "/sys/bus/pci/devices/%s/net/" % dev_id
> + # the path for virtio devices are different, so get the correct path
> + virtio = "/sys/bus/pci/devices/%s/" % dev_id
> + ls = subprocess.Popen(['ls', virtio], stdout=subprocess.PIPE)
> + grep = subprocess.Popen('grep virt'.split(), stdin=ls.stdout,
> + stdout=subprocess.PIPE)
> + ls.stdout.close()
> + virtio = grep.communicate()[0].rstrip()
> + ls.wait()
> + virtio_sys_path = "/sys/bus/pci/devices/%s/%s/net/" % (dev_id, virtio)
> if exists(sys_path):
> device["Interface"] = ",".join(os.listdir(sys_path))
> + elif exists(virtio_sys_path):
> + device["Interface"] = ",".join(os.listdir(virtio_sys_path))
> else:
> device["Interface"] = ""
> # check if a port is used for ssh connection
When I was suggesting pure python, I meant do it without a sub shell. Popen is just
another wrapper around a sub-shell.
More information about the dev
mailing list