Hi, I'm currently using the --vdev option to create virtual devices, mainly for testing. I noticed that these virtual devices are not being white-listed any more. That was the original behaviour when the option was called --use-device. Instead of that the virtual device is being added to the device list along with the real ones. You can see this behaviour by running testpmd as shown below. I have 4 Niantics on my system and they are all bound to igb_uio driver. You can see the 5 ports being reported. Now, the --pci-whitelist argument lets you white list a device but it only accepts a PCI address as an option. My question is, how do you white list a virtual device? Did this feature get dropped when the --use-device was split into --vdev and --pci-whitelist back in March/April or is this just an unhandled corner case? [nico dpdk]((v1.7.1))# sudo ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 3 --vdev=eth_pcap0,rx_pcap=eth_ipv4.pcap,tx_pcap=/dev/null ... Configuring Port 0 (socket 0) Port 0: 00:00:00:01:02:03 <---- PCAP virtual device Configuring Port 1 (socket 0) Port 1: 90:E2:BA:6D:EC:D4 Configuring Port 2 (socket 0) Port 2: 90:E2:BA:6D:EC:D5 Configuring Port 3 (socket 0) Port 3: 90:E2:BA:74:6C:B4 Configuring Port 4 (socket 0) Port 4: 90:E2:BA:74:6C:B5 Checking link statuses... Port 0 Link Up - speed 10000 Mbps - full-duplex Port 1 Link Up - speed 10000 Mbps - full-duplex Port 2 Link Up - speed 10000 Mbps - full-duplex Port 3 Link Up - speed 10000 Mbps - full-duplex Port 4 Link Up - speed 10000 Mbps - full-duplex Done No commandline core given, start packet forwarding ... Thanks, Nico.
Hi Nicolas, 2014-11-07 12:36, Nicolas Pernas Maradei: > I'm currently using the --vdev option to create virtual devices, mainly > for testing. I noticed that these virtual devices are not being > white-listed any more. That was the original behaviour when the option > was called --use-device. Instead of that the virtual device is being > added to the device list along with the real ones. Yes > Now, the --pci-whitelist argument lets you white list a device but it > only accepts a PCI address as an option. My question is, how do you > white list a virtual device? Did this feature get dropped when the > --use-device was split into --vdev and --pci-whitelist back in > March/April or is this just an unhandled corner case? It's by design. If you add a vdev, you want to use it and there is no reason to whitelist it, and especially no reason to blacklist a device you created for your usage. Do you agree? Is there a part of the documentation which should be improved? -- Thomas
On 07/11/14 12:55, Thomas Monjalon wrote:
> It's by design. If you add a vdev, you want to use it and there is no
> reason to whitelist it, and especially no reason to blacklist a device
> you created for your usage.
>
> Do you agree?
Hi Thomas,
Generally speaking you probably won't want to white list a virtual
device - just using it. However it does seem an inconsistency in the
design that you could add virtual devices but you can't white list them.
If they are added to the main device list they should be treated just as
another device.
In our particular use case we want to white list a pcap device to ensure
that it is the only available port for testing.
Thanks,
Nico.
On Fri, Nov 07, 2014 at 01:13:37PM +0000, Nicolas Pernas Maradei wrote:
> On 07/11/14 12:55, Thomas Monjalon wrote:
> >It's by design. If you add a vdev, you want to use it and there is no
> >reason to whitelist it, and especially no reason to blacklist a device
> >you created for your usage.
> >
> >Do you agree?
>
> Hi Thomas,
>
> Generally speaking you probably won't want to white list a virtual device -
> just using it. However it does seem an inconsistency in the design that you
> could add virtual devices but you can't white list them. If they are added
> to the main device list they should be treated just as another device.
>
> In our particular use case we want to white list a pcap device to ensure
> that it is the only available port for testing.
>
> Thanks,
> Nico.
>
Then you create the pcap device with --vdev, and simply don't load the pmds for
any of your physical devices (or just don't use pci-whitelist at all if you're
doing a static build). If you do that, then the corresponding niantic driver
won't initialize any of the hardware, you'll only get the pcap port.
Neil
On 07/11/14 13:26, Neil Horman wrote:
> Then you create the pcap device with --vdev, and simply don't load the pmds for
> any of your physical devices (or just don't use pci-whitelist at all if you're
> doing a static build). If you do that, then the corresponding niantic driver
> won't initialize any of the hardware, you'll only get the pcap port.
>
> Neil
Hi Neil,
What you are saying is just another way to black list the ports I don't
want to use. I'm aware of that option (as well as using the -b option)
but in our particular case we have several systems under test with
different configurations and we want to use this virtual port only.
Which seems to be a perfect use case for white listing rather than black
listing or modifying the system configuration.
As far as I remember this option was available in previous versions.
Thanks,
Nico.
2014-11-07 13:39, Nicolas Pernas Maradei:
> On 07/11/14 13:26, Neil Horman wrote:
> > Then you create the pcap device with --vdev, and simply don't load the pmds for
> > any of your physical devices (or just don't use pci-whitelist at all if you're
> > doing a static build). If you do that, then the corresponding niantic driver
> > won't initialize any of the hardware, you'll only get the pcap port.
>
> What you are saying is just another way to black list the ports I don't
> want to use. I'm aware of that option (as well as using the -b option)
> but in our particular case we have several systems under test with
> different configurations and we want to use this virtual port only.
> Which seems to be a perfect use case for white listing rather than black
> listing or modifying the system configuration.
Sorry I don't understand why you don't want to use the blacklist option.
--
Thomas
On Fri, Nov 07, 2014 at 01:39:52PM +0000, Nicolas Pernas Maradei wrote:
>
> On 07/11/14 13:26, Neil Horman wrote:
> >Then you create the pcap device with --vdev, and simply don't load the pmds for
> >any of your physical devices (or just don't use pci-whitelist at all if you're
> >doing a static build). If you do that, then the corresponding niantic driver
> >won't initialize any of the hardware, you'll only get the pcap port.
> >
> >Neil
>
> Hi Neil,
>
> What you are saying is just another way to black list the ports I don't want
> to use. I'm aware of that option (as well as using the -b option) but in our
> particular case we have several systems under test with different
> configurations and we want to use this virtual port only. Which seems to be
> a perfect use case for white listing rather than black listing or modifying
> the system configuration.
>
> As far as I remember this option was available in previous versions.
>
> Thanks,
> Nico.
>
Ah, you want the -w option then, it still appears in the short options list in
my tree. That sets up the option parsing for all pci devices to require
whitelisting to be initalized. virtual devices are exempt from this process
because declaring them with --vdev implicitly means you want to use them.
Neil
On 07/11/14 14:02, Neil Horman wrote:
> Ah, you want the -w option then, it still appears in the short options list in
> my tree. That sets up the option parsing for all pci devices to require
> whitelisting to be initalized. virtual devices are exempt from this process
> because declaring them with --vdev implicitly means you want to use them.
>
> Neil
Hi Neil,
Thanks for your reply. The -w option is the same as --pci-whitelist
mentioned in my first email. Declaring a virtual device with --vdev
means that I want to use it but there doesn't seem to be a way to say
that I want to use only that device. Clearly the white list option is
the way to specify this but if virtual devices are excluded from
-w/--pci-whitelist you can't only white list the virtual devices.
I want to be able to have the same command line arguments across several
systems under test without having to know where the physical devices are
(to black list them).
My issue is not that I don't want to black list the physical devices
it's just that I want to white list the virtual ones. I don't see why
that option is not available.
Thanks,
Nico.
2014-11-07 14:28, Nicolas Pernas Maradei:
> Thanks for your reply. The -w option is the same as --pci-whitelist
> mentioned in my first email. Declaring a virtual device with --vdev
> means that I want to use it but there doesn't seem to be a way to say
> that I want to use only that device. Clearly the white list option is
> the way to specify this but if virtual devices are excluded from
> -w/--pci-whitelist you can't only white list the virtual devices.
>
> I want to be able to have the same command line arguments across several
> systems under test without having to know where the physical devices are
> (to black list them).
>
> My issue is not that I don't want to black list the physical devices
> it's just that I want to white list the virtual ones. I don't see why
> that option is not available.
OK, now I better understand your need.
I think that your use case was simply forgotten when designing the
new behaviour.
Could you prepare a patch for this need?
Or maybe you could workaround with a script based on lspci to blacklist all
network devices?
--
Thomas
On 07/11/14 14:57, Thomas Monjalon wrote:
> OK, now I better understand your need.
> I think that your use case was simply forgotten when designing the
> new behaviour.
> Could you prepare a patch for this need?
> Or maybe you could workaround with a script based on lspci to blacklist all
> network devices?
Hi Thomas,
Thanks for your reply. That explains it then. I'll try to put a patch
together the following week.
Thanks,
Nico.
Hi Nicolas,
> Thanks for your reply. The -w option is the same as --pci-whitelist
> mentioned in my first email. Declaring a virtual device with --vdev
> means that I want to use it but there doesn't seem to be a way to say
> that I want to use only that device. Clearly the white list option is
> the way to specify this but if virtual devices are excluded from
> -w/--pci-whitelist you can't only white list the virtual devices.
>
> I want to be able to have the same command line arguments across several
> systems under test without having to know where the physical devices are
> (to black list them).
>
> My issue is not that I don't want to black list the physical devices
> it's just that I want to white list the virtual ones. I don't see why
> that option is not available.
What about using the --no-pci option ?
It would blacklist all physical devices (as PCI devices are the only
ones supported today).
Regards,
Olivier
On 10/11/14 08:13, Olivier MATZ wrote:
> What about using the --no-pci option ?
>
> It would blacklist all physical devices (as PCI devices are the only
> ones supported today).
Hi Olivier,
Your idea does work for me. Although it's more a workaround than a real
solution. I'll be submitting a patch that allows virtual devices to be
white/black listed shortly.
Thanks,
Nico.