> From: David Ahern <dsah...@gmail.com>
> Sent: Friday, September 18, 2020 8:54 PM
> 
> On 9/17/20 10:41 PM, Parav Pandit wrote:
> > Hi David,
> >
> >> From: David Ahern <dsah...@gmail.com>
> >> Sent: Friday, September 18, 2020 9:08 AM
> >>
> >> On 9/17/20 9:29 PM, Parav Pandit wrote:
> >>>>> Examples:
> >>>>>
> >>>>> Create a PCI PF and PCI SF port.
> >>>>> $ devlink port add netdevsim/netdevsim10/10 flavour pcipf pfnum 0
> >>>>> $ devlink port add netdevsim/netdevsim10/11 flavour pcisf pfnum 0
> >>>>> sfnum
> >>>>> 44 $ devlink port show netdevsim/netdevsim10/11
> >>>>> netdevsim/netdevsim10/11: type eth netdev eni10npf0sf44 flavour
> >>>>> pcisf
> >>>> controller 0 pfnum 0 sfnum 44 external true splittable false
> >>>>>   function:
> >>>>>     hw_addr 00:00:00:00:00:00 state inactive
> >>>>>
> >>>>> $ devlink port function set netdevsim/netdevsim10/11 hw_addr
> >>>>> 00:11:22:33:44:55 state active
> >>>>>
> >>>>> $ devlink port show netdevsim/netdevsim10/11 -jp {
> >>>>>     "port": {
> >>>>>         "netdevsim/netdevsim10/11": {
> >>>>>             "type": "eth",
> >>>>>             "netdev": "eni10npf0sf44",
> >>>>
> >>>> I could be missing something, but it does not seem like this patch
> >>>> creates the netdevice for the subfunction.
> >>>>
> >>> The sf port created here is the eswitch port with a valid switch id
> >>> similar to PF
> >> and physical port.
> >>> So the netdev created is the representor netdevice.
> >>> It is created uniformly for subfunction and pf port flavours.
> >>
> >> To be clear: If I run the devlink commands to create a sub-function,
> >> `ip link show` should list a net_device that corresponds to the sub-
> function?
> >
> > In this series only representor netdevice corresponds to sub-function will
> be visible in ip link show, i.e. eni10npf0sf44.
> >
> > Netdevsim is only simulating the eswitch side or control path at present for
> pf/vf/sf ports.
> > So other end of this port (netdevice/rdma device/vdpa device) are not yet
> created.
> >
> > Subfunction will be anchored on virtbus described in RFC [1], which is not
> yet in-kernel yet.
> > Grep for "every SF a device is created on virtbus" to jump to this part of 
> > the
> long RFC.
> >
> > [1] https://lore.kernel.org/netdev/20200519092258.GF4655@nanopsycho/
> >
> 
> Thanks for the reference. I have seen that. I am interested in this idea of
> creating netdevs for 'slices' of an asic or nic, but it is not clear to me 
> how it
> connects end to end. Will you be able to create a sub-function based
> netdevice, assign it limited resources from the nic and then assign that
> netdevice to a container for example?
Yep. You described is precisely well.
This short series creates eswitch representor for the moment.
Once virtbus is in_kernel, will extend to create actual netdevice of the 
subfunction too.

Reply via email to