> -----Original Message----- > From: Alex Williamson <alex.williamson@xxxxxxxxxx> > Sent: Wednesday, August 21, 2019 10:56 AM > To: Parav Pandit <parav@xxxxxxxxxxxx> > Cc: Jiri Pirko <jiri@xxxxxxxxxxxx>; David S . Miller <davem@xxxxxxxxxxxxx>; > Kirti Wankhede <kwankhede@xxxxxxxxxx>; Cornelia Huck > <cohuck@xxxxxxxxxx>; kvm@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > cjia <cjia@xxxxxxxxxx>; netdev@xxxxxxxxxxxxxxx > Subject: Re: [PATCH v2 0/2] Simplify mtty driver and mdev core > > > > > > Just an example of the alias, not proposing how it's set. In > > > > > fact, proposing that the user does not set it, mdev-core > > > > > provides one > > > automatically. > > > > > > > > > > > > Since there seems to be some prefix overhead, as I ask about > > > > > > > above in how many characters we actually have to work with > > > > > > > in IFNAMESZ, maybe we start with 8 characters (matching your > > > > > > > "index" namespace) and expand as necessary for disambiguation. > > > > > > > If we can eliminate overhead in IFNAMESZ, let's start with 12. > > > > > > > Thanks, > > > > > > > > > > > > > If user is going to choose the alias, why does it have to be limited to > sha1? > > > > > > Or you just told it as an example? > > > > > > > > > > > > It can be an alpha-numeric string. > > > > > > > > > > No, I'm proposing a different solution where mdev-core creates > > > > > an alias based on an abbreviated sha1. The user does not provide the > alias. > > > > > > > > > > > Instead of mdev imposing number of characters on the alias, it > > > > > > should be best > > > > > left to the user. > > > > > > Because in future if netdev improves on the naming scheme, > > > > > > mdev will be > > > > > limiting it, which is not right. > > > > > > So not restricting alias size seems right to me. > > > > > > User configuring mdev for networking devices in a given kernel > > > > > > knows what > > > > > user is doing. > > > > > > So user can choose alias name size as it finds suitable. > > > > > > > > > > That's not what I'm proposing, please read again. Thanks, > > > > > > > > I understood your point. But mdev doesn't know how user is going > > > > to use > > > udev/systemd to name the netdev. > > > > So even if mdev chose to pick 12 characters, it could result in collision. > > > > Hence the proposal to provide the alias by the user, as user know > > > > the best > > > policy for its use case in the environment its using. > > > > So 12 character sha1 method will still work by user. > > > > > > Haven't you already provided examples where certain drivers or > > > subsystems have unique netdev prefixes? If mdev provides a unique > > > alias within the subsystem, couldn't we simply define a netdev > > > prefix for the mdev subsystem and avoid all other collisions? I'm > > > not in favor of the user providing both a uuid and an > > > alias/instance. Thanks, > > > > > For a given prefix, say ens2f0, can two UUID->sha1 first 9 characters have > collision? > > I think it would be a mistake to waste so many chars on a prefix, but 9 > characters of sha1 likely wouldn't have a collision before we have 10s of > thousands of devices. Thanks, > > Alex Jiri, Dave, Are you ok with it for devlink/netdev part? Mdev core will create an alias from a UUID. This will be supplied during devlink port attr set such as, devlink_port_attrs_mdev_set(struct devlink_port *port, const char *mdev_alias); This alias is used to generate representor netdev's phys_port_name. This alias from the mdev device's sysfs will be used by the udev/systemd to generate predicable netdev's name. Example: enm<mdev_alias_first_12_chars> I took Ethernet mdev as an example. New prefix 'm' stands for mediated device. Remaining 12 characters are first 12 chars of the mdev alias.