--- /jails/test/etc/rc.d/routing 2009-11-21 09:31:36.000000000 -0500 +++ /etc/rc.d/routing 2010-04-06 16:12:01.050390660 -0400 @@ -27,36 +27,60 @@ routing_stop() { - route -n flush + fibcount=`sysctl -n net.fibs` + [ -z $fibcount ] && fibcount=1 + i=0 + while [ $i -lt $fibcount ]; do + setfib $i route -n flush + i=$((i + 1)) + done } static_start() { - case ${defaultrouter} in - [Nn][Oo] | '') - ;; - *) - static_routes="default ${static_routes}" - route_default="default ${defaultrouter}" - ;; - esac - - # Setup static routes. This should be done before router discovery. - # - if [ -n "${static_routes}" ]; then - for i in ${static_routes}; do - eval route_args=\$route_${i} - route add ${route_args} - done - fi - # Now ATM static routes - # - if [ -n "${natm_static_routes}" ]; then - for i in ${natm_static_routes}; do - eval route_args=\$route_${i} - atmconfig natm add ${route_args} - done - fi + fib=0 + setfib='' + while : ; do + if [ $fib -gt 0 ]; then + eval defaultrouter=\$defaultrouter_fib${fib} + eval static_routes=\$static_routes_fib${fib} + eval natm_static_routes=\$natm_static_routes_fib${fib} + setfib="setfib $fib" + [ -z "${defaultrouter}" -a -z "${static_routes}" -a \ + -z "${natm_static_routes}" ] && break + fi + + case ${defaultrouter} in + [Nn][Oo] | '') + ;; + *) + static_routes="default ${static_routes}" + route_default="default ${defaultrouter}" + ;; + esac + + # Setup static routes. This should be done before router + # discovery. + # + if [ -n "${static_routes}" ]; then + for i in ${static_routes}; do + eval route_args=\$route_${i} + ${setfib} route add ${route_args} + done + fi + # Now ATM static routes + # + if [ -n "${natm_static_routes}" ]; then + for i in ${natm_static_routes}; do + eval route_args=\$route_${i} + ${setfib} atmconfig natm add ${route_args} + done + fi + + # Loop through all fib configs + # + fib=$((fib + 1)) + done } _ropts_initdone=