[dpdk-dev] [PATCH] usertools/dpdk-devbind.py: add support for wind river avp device

Zhang, Xiaohua Xiaohua.Zhang at windriver.com
Tue Feb 13 02:43:06 CET 2018


Hi Anatoly,
AVP is a virtual NIC type, so you are right. 

When using the AVP device, you will see the following information from lspci (example).
Slot:       0000:00:05.0
Class:      Unclassified device [00ff]
Vendor:   Red Hat, Inc [1af4]
Device:    Virtio memory balloon [1002]
SVendor:          Red Hat, Inc [1af4]
SDevice:           Device [0005]
PhySlot:            5
Driver:    virtio-pci

It is a little different with the standard "Ethernet" controller, such as "Class:  Ethernet controller [0200]".
Theoretically, the AVP is a memory based device. That's the reason, I put it as separate catalog. 


BR.
Xiaohua Zhang

-----Original Message-----
From: Burakov, Anatoly [mailto:anatoly.burakov at intel.com] 
Sent: Monday, February 12, 2018 6:13 PM
To: Zhang, Xiaohua; dev at dpdk.org
Subject: Re: [dpdk-dev] [PATCH] usertools/dpdk-devbind.py: add support for wind river avp device

On 11-Feb-18 9:52 AM, Xiaohua Zhang wrote:
> Signed-off-by: Xiaohua Zhang <xiaohua.zhang at windriver.com>
> ---
>   usertools/dpdk-devbind.py | 8 ++++++++
>   1 file changed, 8 insertions(+)
> 
> diff --git a/usertools/dpdk-devbind.py b/usertools/dpdk-devbind.py 
> index 18d9386..f488318 100755
> --- a/usertools/dpdk-devbind.py
> +++ b/usertools/dpdk-devbind.py
> @@ -22,11 +22,14 @@
>                 'SVendor': None, 'SDevice': None}
>   cavium_pkx = {'Class': '08', 'Vendor': '177d', 'Device': 'a0dd,a049',
>                 'SVendor': None, 'SDevice': None}
> +avp_vnic = {'Class': '05', 'Vendor': '1af4', 'Device': '1110',
> +              'SVendor': None, 'SDevice': None}
>   
>   network_devices = [network_class, cavium_pkx]
>   crypto_devices = [encryption_class, intel_processor_class]
>   eventdev_devices = [cavium_sso]
>   mempool_devices = [cavium_fpa]
> +avp_devices = [avp_vnic]
>   
>   # global dict ethernet devices present. Dictionary indexed by PCI address.
>   # Each device within this is itself a dictionary of device 
> properties @@ -565,6 +568,9 @@ def show_status():
>       if status_dev == "mempool" or status_dev == "all":
>           show_device_status(mempool_devices, "Mempool")
>   
> +    if status_dev == "avp" or status_dev == "all":
> +        show_device_status(avp_devices, "AVP")
> +
>   def parse_args():
>       '''Parses the command-line arguments given by the user and takes the
>       appropriate action for each'''
> @@ -638,6 +644,7 @@ def do_arg_actions():
>               get_device_details(crypto_devices)
>               get_device_details(eventdev_devices)
>               get_device_details(mempool_devices)
> +            get_device_details(avp_devices)
>           show_status()
>   
>   
> @@ -650,6 +657,7 @@ def main():
>       get_device_details(crypto_devices)
>       get_device_details(eventdev_devices)
>       get_device_details(mempool_devices)
> +    get_device_details(avp_devices)
>       do_arg_actions()
>   
>   if __name__ == "__main__":
> 

Is there any particular reason why this device appears in its own category, rather than being added to one of the existing device classes? 
I'm not familiar with AVP but it looks like it's a NIC, so shouldn't it be in network_devices category?

--
Thanks,
Anatoly


More information about the dev mailing list