Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Jan 97 21:33:45 CST
From:      Joe Greco <jgreco@solaria.sol.net>
To:        louie@TransSys.COM (Louis A. Mamakos)
Cc:        julian@whistle.com, hackers@freebsd.org
Subject:   Re: Network interfaces: removal of.
Message-ID:  <199701300333.VAA00595@solaria.sol.net>
In-Reply-To: <199701280402.XAA03991@whizzo.transsys.com> from "Louis A. Mamakos" at Jan 27, 97 11:02:20 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> > does anyone have any ideas on this?
> 
> One idea:  add a new message for the routing socket which can notify
> routing daemons that you want to delete an interface (or, like it or not,
> it's gone now).  Hopefully they can then arrange to have active references
> to the interface be removed.
> 
> I recall another system which had a the ability to "delete" a network
> interface.  What it really did was cheat:  it essentially overwrote the
> interface name, and shoved the data structure off into a corner.  It was
> still around, though, so that if there was some errant reference to it,
> nothing "bad" would happen.
> 
> Clearly, this is just a hack.  However, it seems to work "well enough",
> so from a pragmatic perspective, you can't dismiss it completely.
> 
> While I'm sure that the modules that reference interfaces are finite, 
> there's nothing to allocate references to them.  This would require a
> level of discipline unknown to the BSD net code.  Hell, you might just
> as well wish for locks on the data structures to make the code SMP safe :-)

It's (definitely!) not BSD, but Solaris has some support for this.  Their
interfaces are done on the fly..

# ifconfig le1
ifconfig: SIOCGIFFLAGS: le1: no such interface
# ifconfig le1 plumb
# ifconfig le1 10.1.1.1
# ifconfig le1
le1: flags=842<BROADCAST,RUNNING,MULTICAST> mtu 1500
	inet 10.1.1.1 netmask ff000000 broadcast 10.255.255.255
	ether 8:0:20:1a:f5:1e
# ifconfig le1 up
# route add net 192.168.0.0 10.1.2.3 1
add net 192.168.0.0: gateway 10.1.2.3
# ifconfig le1
le1: flags=843<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet 10.1.1.1 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:1a:f5:1e
# netstat -rn|grep 192.168
192.168.0.0          10.1.2.3              UG       0      0
# ifconfig le1 down
# netstat -rn|grep 192.168
192.168.0.0          10.1.2.3              UG       0      0
# ifconfig le1 unplumb
# ifconfig le1
ifconfig: SIOCGIFFLAGS: le1: no such interface
# netstat -rn|grep 192.168
192.168.0.0          10.1.2.3              UG       0      0
#

Not ideal... but something.

... Joe

-------------------------------------------------------------------------------
Joe Greco - Systems Administrator			      jgreco@ns.sol.net
Solaria Public Access UNIX - Milwaukee, WI			   414/342-4847



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199701300333.VAA00595>