Cathy Zhou wrote:
> I don't agree that tunnel name generation should be done in the tun
> driver. Note that this tunnel name cannot have conflict with any link
> name (including other types of links and even persistent-only links that
> don't exist in the kernel). I think the name generation should be done
> in linkmgmtd which knows every link name.
>
> One solution is to have another dladm door call API to request a link name.
Good point. I agree with your premise, but I think there are some
technical details to work out with this approach beyond agreeing to use
the door to linkmgmtd. For example, there are three specific types of
IP tunnels, each of which utilize a different default naming scheme
("ip.tun#", "ip6.tun#", "ip.6to4tun#"). I do not expect linkmgmtd to
know specifics of sub-types of a particular link class.
As such, would it be appropriate for linkmgmt to simply dole out unused
PPAs rather than unused link names? For example, if libiptun needs the
next available link name for a 6to4 tunnel, it could do:
status = dladm_get_nextppa("ip.6to4tun", &ppa);
This would result in a conversation with linkmgmtd, which will have some
way to efficiently determine the next available PPA and return it.
Any other ideas?
-Seb