On Fri, Oct 26, 2018 at 9:56 PM Sunil Kovvuri <sunil.kovvuri@xxxxxxxxx> wrote: > > On Fri, Oct 26, 2018 at 7:34 PM Arnd Bergmann <arnd@xxxxxxxx> wrote: > > > > On 10/26/18, Sunil Kovvuri <sunil.kovvuri@xxxxxxxxx> wrote: > > > On Fri, Oct 26, 2018 at 6:24 PM Arnd Bergmann <arnd@xxxxxxxx> wrote: > > >> > > >> I see this has been applied, but I'd still like to understand better how > > >> the > > >> configuration interface is expected to work once the driver is complete. > > >> > > >> In particular, so far the interfaces all assume that configuration is > > >> done through the mailbox between PCI devices, which could be done > > >> from a virtual machine kernel with access to PCI, or through the use > > >> of VFIO from a user application. > > >> > > >> Is that the only method of configuring it that you support, or will there > > >> also be a devlink based interface or something like that to configure > > >> the aspects of a virtual device that should not be accessible to the > > >> VF itself? > > >> > > > > > > > > > As of now it's only mbox based configuration that is supported. > > > > Ok, thanks for the clarification. > > > > Does this mean that you intend to have user space tools that use > > the mbox based interface on VFIO devices to perform configuration > > for virtual network devices, or just that the configuration interface > > is something that needs to be designed later? > > > > No there is no need for any userspace tools. > It's the virtual network device's driver which will send commands > like resource allocation, configuration, stats retrieval to this > AF device via mbox interface. > > eg: A user using ethtool changes RSS settings for the network device, > network device's driver receives the data, prepares a mailbox command > sends it to this driver for configuring the same in HW. > > Thanks, > Sunil. To be more clear there is no mbox 'interface' as such. Here PCI devices shares a memory region, one device prepares a command in this shared memory and writes into a doorbell kind of register which triggers an IRQ to other device. Which then takes the command processes it. Thanks, Sunil.