Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F148481354
D22706.id65426.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D22706.id65426.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D22706: Add per-FIB gateway support to rc.d/routing
Attached
Detach File
Event Timeline
Log In to Comment