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/