[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20211124062048.48652ea4@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
Date: Wed, 24 Nov 2021 06:20:48 -0800
From: Jakub Kicinski <kuba@...nel.org>
To: Frode Nordahl <frode.nordahl@...onical.com>
Cc: netdev@...r.kernel.org, Jiri Pirko <jiri@...dia.com>
Subject: Re: [PATCH net] netdevsim: Fix physical port index
On Wed, 24 Nov 2021 09:11:06 +0100 Frode Nordahl wrote:
> At present when a netdevsim device is added, the first physical
> port will have an index of 1. This behavior differ from what any
> real hardware driver would do, which would start the index at 0.
>
> When using netdevsim to test the devlink-port interface this
> behavior becomes a problem because the provided data is incorrect.
>
> Example:
> $ sudo modprobe netdevsim
> $ sudo sh -c 'echo "10 1" > /sys/bus/netdevsim/new_device'
> $ sudo sh -c 'echo 4 > /sys/class/net/eni10np1/device/sriov_numvfs'
> $ sudo devlink dev eswitch set netdevsim/netdevsim10 mode switchdev
> $ devlink port show
> netdevsim/netdevsim10/0: type eth netdev eni10np1 flavour physical port 1
> netdevsim/netdevsim10/128: type eth netdev eni10npf0vf0 flavour pcivf pfnum 0 vfnum 0
> netdevsim/netdevsim10/129: type eth netdev eni10npf0vf1 flavour pcivf pfnum 0 vfnum 1
> netdevsim/netdevsim10/130: type eth netdev eni10npf0vf2 flavour pcivf pfnum 0 vfnum 2
> netdevsim/netdevsim10/131: type eth netdev eni10npf0vf3 flavour pcivf pfnum 0 vfnum 3
>
> With this patch applied you would instead get:
> $ sudo modprobe netdevsim
> $ sudo sh -c 'echo "10 1" > /sys/bus/netdevsim/new_device'
> $ sudo sh -c 'echo 4 > /sys/class/net/eni10np0/device/sriov_numvfs'
> $ sudo devlink dev eswitch set netdevsim/netdevsim10 mode switchdev
> $ devlink port show
> netdevsim/netdevsim10/0: type eth netdev eni10np0 flavour physical port 0
> netdevsim/netdevsim10/128: type eth netdev eni10npf0vf0 flavour pcivf pfnum 0 vfnum 0
> netdevsim/netdevsim10/129: type eth netdev eni10npf0vf1 flavour pcivf pfnum 0 vfnum 1
> netdevsim/netdevsim10/130: type eth netdev eni10npf0vf2 flavour pcivf pfnum 0 vfnum 2
> netdevsim/netdevsim10/131: type eth netdev eni10npf0vf3 flavour pcivf pfnum 0 vfnum 3
>
> The above more accurately resembles what a real system would look
> like.
>
> Fixes: 8320d1459127 ("netdevsim: implement dev probe/remove skeleton with port initialization")
> Signed-off-by: Frode Nordahl <frode.nordahl@...onical.com>
Why do you care about the port ID starting at 0? It's not guaranteed.
The device can use any encoding scheme to assign IDs, user space should
make no assumptions here.
Please use get_maintainers to CC all the relevant people.
Powered by blists - more mailing lists