svn commit: r353057 - head/sys/net
Kyle Evans
kevans at freebsd.org
Fri Oct 4 12:57:19 UTC 2019
On Thu, Oct 3, 2019 at 12:54 PM Kyle Evans <kevans at freebsd.org> wrote:
>
> Author: kevans
> Date: Thu Oct 3 17:54:00 2019
> New Revision: 353057
> URL: https://svnweb.freebsd.org/changeset/base/353057
>
> Log:
> if_tuntap: create /dev aliases when a tuntap device gets renamed
>
> Currently, if you do:
>
> $ ifconfig tun0 create
> $ ifconfig tun0 name wg0
> $ ls -l /dev | egrep 'wg|tun'
>
> You will see tun0, but no wg0. In fact, it's slightly more annoying to make
> the association between the new name and the old name in order to open the
> device (if it hadn't been opened during the rename).
>
> Register an eventhandler for ifnet_arrival_events and catch interface
> renames. We can determine if the ifnet is a tun easily enough from the
> if_dname, which matches the cevsw.d_name from the associated tuntap_driver.
>
> Some locking dance is required because renames don't require the device to
> be opened, so it could go away in the middle of handling the ioctl, but as
> soon as we've verified this isn't the case we can attempt to busy the tun
> and either bail out if the tun device is dying, or we can proceed with the
> rename.
>
> We only create these aliases on a best-effort basis. Renaming a tun device
> to "usbctl", which doesn't exist as an ifnet but does as a /dev, is clearly
> not that disastrous, but we can't and won't create a /dev for that.
>
It's been brought to my attention that I actually had a PR that I took
six months ago that this should've belonged to.
PR: 219746
More information about the svn-src-all
mailing list