Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Aug 2001 11:16:13 -0600
From:      Nate Williams <nate@yogotech.com>
To:        Toshihiko ARAI <toshi@jp.FreeBSD.org>
Cc:        nate@yogotech.com (Nate Williams), freebsd-mobile@FreeBSD.org, imp@FreeBSD.org
Subject:   Re: Documentation for rc.conf's removable_interfaces?
Message-ID:  <15237.14941.939157.115769@nomad.yogotech.com>
In-Reply-To: <200108231653.f7NGrO802605.toshi@jp.FreeBSD.org>
References:  <15228.2988.181554.313833@nomad.yogotech.com> <200108200357.f7K3vMn18594.toshi@jp.FreeBSD.org> <15233.22136.524384.459698@nomad.yogotech.com> <200108211348.f7LDmTh30188.toshi@jp.FreeBSD.org> <15234.48176.6699.983659@nomad.yogotech.com> <200108231653.f7NGrO802605.toshi@jp.FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
> > This is good.  However, there is still one more problem with the file as
> > it exists.  If a default_router exists, it will not be used because of
> > the following lines.
> 
> >                 # Add default route into $static_routes
> >                 case ${defaultrouter} in
> >                 [Nn][Oo] | '')
> >                         ;;
> >                 *)
> >                         static_routes="default ${static_routes}"
> >                         route_default="default ${defaultrouter}"
> >                         ;;
> >                 esac
> 
> > However, I'm not sure what the purpose of adding 'default' to
> > static_routes is, and unfortunately 'route_default' is not used anywhere
> > in the file.
> 
> > Can you explain what is intended here?
> 
> 'route_default' variable is used with following eval line.
> Because '${i}' is element of '${static_routes}',
> in this case 'route_${i}' is substituted for 'route_default'.
> I referred to 'network_pass1' function of /etc/rc.network,
> it is around 330th line.
> 
> 		# Set up any static routes if specified
> 		if [ -n "${static_routes}" ]; then
> 			for i in ${static_routes}; do
> 				eval route_args=\$route_${i}
> 				route add ${route_args}
> 			done
> 		fi

*lightbulb goes on*

Thanks for the clarification.  I understand much better now.  Now, I
need to figure out why it doesn't work on my box.

> > ps. The below patch is good, although it may be necessary to do a route
> > flush in certain cases.
> 
> When I do hot-plug of PC-card Ethernet and USB Ethernet with
> more than one environment, former route is left and may become
> a problem.

The same problem exists with me.  

> Therefore I was able to control it with
> 'removable_route_flush' variable.
> There is a method to add 'removable_route_flush=NO' to
> /etc/defaults/rc.conf, but which is better compared with below patch?
> 
> >> -	# Clean the routing table
> >> -	case ${removable_route_flush} in
> >> -	[Nn][Oo])
> >> -	        ;;
> >> -	*)	
> >> -		# flush beforehand, just in case....
> >> -		route -n flush -inet
> >> -		;;
> >> -	esac

This means we have the potential for two new variables not (yet) in
-stable.

removable_interfaces (which I still don't know what it's supposed to
do), and removable_route_flush, which is still not generic enough to
work in all cases.

In particular, in one situation, I have 2 network cards in my computer.
If one type of card is removed (my test network), the routes should not
be touched.  However, if I remove/insert one the other cards (wireless
and/or ethernet for connection to the net), I need the route added
and/or removed.

Having the route explicitly removed/added when I insert/remove cards
does not work.  However, I suspect this is not a 'common' situation, so
I don't believe the code needs to support it.

The code *does* need to support normal activities for laptops, and for
most people I suspect that means adding/removing the default route when
a network card is inserted/removed.

Do others have an opinion on this?  What is the default behavior
'out-of-the-box' that FreeBSD should support when a network card is
inserted?  For 4.4, I don't think we have time to get it working in all
cases, but the current setup doesn't work in the normal case.

Insertion:
1) DHCP should be supported (of course)
2) If DHCP is not used, should FreeBSD add a default route

Removal
1) DHCP leases are lost
2) Should the default route be flushed (I'm not sure DHCP does this for us)?



Nate

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-mobile" in the body of the message




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