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