[Bug 235704] [net] [patch] tun(4) can't be destroyed on a VNET jail if it's renamed

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Mar 5 13:21:57 UTC 2019


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235704

--- Comment #11 from commit-hook at freebsd.org ---
A commit references this bug:

Author: kp
Date: Tue Mar  5 13:21:08 UTC 2019
New revision: 344794
URL: https://svnweb.freebsd.org/changeset/base/344794

Log:
  tun: VIMAGE fix for if_tun cloner

  The if_tun cloner is not virtualised, but if_clone_attach() does use a
  virtualised list of cloners.
  The result is that we can't find the if_tun cloner when we try to remove
  a renamed tun interface. Virtualise the cloner, and move the final
  cleanup into a sysuninit so that we're sure this happens after all of
  the vnet_sysuninits

  Note that we need unit numbers to be system-unique (rather than unique
  per vnet, as is done by if_clone_simple()). The unit number is used to
  create the corresponding /dev/tunX device node, and this node must match
  with the interface.
  Switch to if_clone_advanced() so that we have control over the unit
  numbers.

  Reproduction scenario:
        jail -c -n foo persist vnet
        jexec test ifconfig tun create
        jexec test ifconfig tun0 name wg0
        jexec test ifconfig wg0 destroy

  PR:           235704
  Reviewed by:  bz, hrs, hselasky
  MFC after:    2 weeks
  Differential Revision:        https://reviews.freebsd.org/D19248

Changes:
  head/sys/net/if_tun.c

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-net mailing list