Re: [patch net-next v6 0/4] export device physical port id to userspace

Jeff Kirsher
2013-07-29T22:23:16Z

[-- Attachment #1: Type: text/plain, Size: 3118 bytes --]

On Mon, 2013-07-29 at 18:16 +0200, Jiri Pirko wrote:
> This patchset is based on patch by Narendra_K@Dell.com
> Once device which can change phys port id during its lifetime adopts
> this,
> NETDEV_CHANGEPHYSPORTID event will be added and driver will call
> call_netdevice_notifiers(NETDEV_NETDEV_CHANGEPHYSPORTID, dev) to
> propagate
> the change to userspace.
>
> v1->v2: as suggested by Ben, handle -EOPNOTSUPP in rtnl code (wrapped
> up ndo call)
> v2->v3: adjusted patch 1 commit message
> v3->v4: used "%phN" for sysfs printf as suggested by DaveM
> added igb/igbvf implementation as requested by Or Gerlitz
> v4->v5: used prandom_u32 to generate id in igb_probe
> removed duplicate code in ibgvf_probe
> pushed dev_err string into one line in igbvf_refresh_ppid
> v5->v6: use uuid_le_gen for generating 16-byte phys port id for
> igb/igbvf
> as suggested by BenH
>
> 1) Why do we need this, and why do existing facilities fail to provide
> a way to accomplish this?
>
> Currenty there's very hard to tell if two netdevs are using the same
> physical
> port. For sr-iov this can be get by sysfs. For other mechanisms, like
> NPAR
> there's very hard to do it (one must learn it from NIC BIOS). But even
> for
> sr-iov there's no way to say if two netdevs are using the same phys
> port when
> these are passed through to virtual guests.
>
> This patchset provides the generic way of letting this information
> know to
> userspace. This info can be used by apps like NetworkManager, teamd,
> Wicked,
> ovs daemon, etc, to do smarter bonding decisions.
>
> 2) Why is the physical port ID defined as a 32 byte opaque cookie?
> What formats and layouts need to be accomodated, and which
> influenced the design of the ID?
>
> For user to distinguish if two netdevs are using the same port, he
> only needs
> to compare their phys port ids. Nothing else is needed. This id has no
> structure for security reasons. VF should not know anything about PF.
>
> 3) Are IDs globally unique? Why or why not? If IDs should be
> globally unique, but only in certain cases, what exactly are those
> cases.
>
> Most of the time only uniqueness needed is in scope of single machine.
> There might be case when the id should be unique between couple of
> machines
> in virtualization environment. Given that for example for igb/igbvf
> 16B uuid
> is used, there is no problem for this case as well. But each driver
> can
> implement this differently focusing the hw capabilities and needs.
>
> Jiri Pirko (4):
> net: add ndo to get id of physical port of the device
> rtnl: export physical port id via RT netlink
> net: export physical port id via sysfs
> igb/igbvf: implement ndo_get_phys_port_id

As before, I have applied this patch series so that we can get some
validation done on patch 4. I do not want to hold up the patch series,
if Ben/Dave are fine with the recent changes, although I would like to
either get an ACK from Greg Rose or a thumbs up from our testers.

Thanks Jiri!

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]