Page MenuHomeFreeBSD

D22706.id65426.diff
No OneTemporary

D22706.id65426.diff

Index: libexec/rc/rc.conf
===================================================================
--- libexec/rc/rc.conf
+++ libexec/rc/rc.conf
@@ -427,6 +427,7 @@
### Network routing options: ###
defaultrouter="NO" # Set to default gateway (or NO).
+#defaultrouter_fibN="..." # Use this form to set a gateway for FIB N
static_arp_pairs="" # Set to static ARP list (or leave empty).
static_ndp_pairs="" # Set to static NDP list (or leave empty).
static_routes="" # Set to static route list (or leave empty).
@@ -489,6 +490,7 @@
# reason.
ipv6_defaultrouter="NO" # Set to IPv6 default gateway (or NO).
#ipv6_defaultrouter="2002:c058:6301::" # Use this for 6to4 (RFC 3068)
+#ipv6_defaultrouter_fibN="..." # Use this form to set a gateway for FIB N
ipv6_static_routes="" # Set to static route list (or leave empty).
#ipv6_static_routes="xxx" # An example to set fec0:0000:0000:0006::/64
# route toward loopback interface.
Index: libexec/rc/rc.d/routing
===================================================================
--- libexec/rc/rc.d/routing
+++ libexec/rc/rc.d/routing
@@ -140,11 +140,12 @@
static_inet()
{
- local _action _if _skip _fibmod
+ local _action _if _skip _fibmod _fibs
_action=$1
_if=$2
_fibmod=`get_fibmod`
+ _fibs=$((`${SYSCTL_N} net.fibs` - 1))
# Provide loopback route in all routing tables. This has to come
# first so that any following routes can be added.
@@ -161,6 +162,22 @@
;;
esac
+ # Add default routes for fibs
+ if [ ${_fibs} -gt 0 ]; then
+ for _fibnum in `jot ${_fibs}` ; do
+ eval _fib_gw=\${defaultrouter_fib${_fibnum}}
+ case ${_fib_gw} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ static_routes="${static_routes} _default_fib${_fibnum}"
+ eval route__default_fib${fibnum}="'default ${_fib_gw} -fib ${_fibnum}'"
+ ;;
+ esac
+ done
+ fi
+
+
# Install configured routes.
if [ -n "${static_routes}" ]; then
for i in ${static_routes}; do
@@ -185,11 +202,12 @@
static_inet6()
{
- local _action _if _skip fibmod allfibs
+ local _action _if _skip fibmod _fibs
_action=$1
_if=$2
fibmod=`get_fibmod`
+ _fibs=$((`${SYSCTL_N} net.fibs` - 1))
# Add pre-defined static routes first.
ipv6_static_routes="_v4mapped _v4compat ${ipv6_static_routes}"
@@ -220,6 +238,22 @@
ipv6_route__default="default ${ipv6_defaultrouter}"
;;
esac
+
+ # Add default routes for fibs
+ if [ ${_fibs} -gt 0 ]; then
+ for _fibnum in `jot ${_fibs}` ; do
+ eval _fib_gw=\${ipv6_defaultrouter_fib${_fibnum}}
+ case ${_fib_gw} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ ipv6_static_routes="${static_routes} _default_fib${_fibnum}"
+ eval ipv6_route__default_fib${fibnum}="'default ${_fib_gw} -fib ${_fibnum}'"
+ ;;
+ esac
+ done
+ fi
+
# Install configured routes.
if [ -n "${ipv6_static_routes}" ]; then
Index: share/man/man5/rc.conf.5
===================================================================
--- share/man/man5/rc.conf.5
+++ share/man/man5/rc.conf.5
@@ -2806,10 +2806,19 @@
create a default route to this host name or IP address
(use an IP address if this router is also required to get to the
name server!).
+.It Va defaultrouter_fibN
+.Pq Vt str
+If not set to
+.Dq Li NO ,
+create a default route in FIB N to this host name or IP address.
.It Va ipv6_defaultrouter
.Pq Vt str
The IPv6 equivalent of
.Va defaultrouter .
+.It Va ipv6_defaultrouter_fibN
+.Pq Vt str
+The IPv6 equivalent of
+.Va defaultrouter_fibN .
.It Va static_arp_pairs
.Pq Vt str
Set to the list of static ARP pairs that are to be added at system

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 19, 4:20 AM (18 h, 12 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29945763
Default Alt Text
D22706.id65426.diff (3 KB)

Event Timeline