Index: rc-scripts/doc/sysconfig.txt =================================================================== --- rc-scripts/doc/sysconfig.txt (revision 12207) +++ rc-scripts/doc/sysconfig.txt (working copy) @@ -61,7 +61,7 @@ may be a device name to have the route brought up and down with the device, or "any" to have the correct devices calculated - at run time. [type] is optional. RH style isn't supported ! + at run time. [type] is optional. RH style isn't supported! Also you can set few options after "": tos @@ -77,8 +77,12 @@ protocol onlink equalize - For more informations see iproute2 documentation . + For more informations see iproute2 documentation. +/etc/sysconfig/static-routes6: + + Same as /etc/sysconfig/static-routes but for IPv6. + /etc/sysconfig/routed: SILENT=yes|no Index: rc-scripts/sysconfig/static-routes6 =================================================================== --- rc-scripts/sysconfig/static-routes6 (revision 0) +++ rc-scripts/sysconfig/static-routes6 (revision 12210) @@ -0,0 +1,14 @@ +# IPv6 specific rules and routes + +# Entry format for ip rule: +# +# Entry format for static route: +# / +# +# Combined example: + +#from fec0:2::/32 table 10 +#eth0 default via fec0:2::1 table 10 +# +# route fec0:12::34 via fec0:2::3 via any interface +#any fec0:12::34 via fec0:2::3 Index: rc-scripts/sysconfig/Makefile.am =================================================================== --- rc-scripts/sysconfig/Makefile.am (revision 12207) +++ rc-scripts/sysconfig/Makefile.am (working copy) @@ -10,6 +10,7 @@ system \ network \ static-routes \ + static-routes6 \ static-nat \ static-arp \ i18n Index: rc-scripts/sysconfig/network-scripts/ifup-routes =================================================================== --- rc-scripts/sysconfig/network-scripts/ifup-routes (revision 12207) +++ rc-scripts/sysconfig/network-scripts/ifup-routes (working copy) @@ -5,7 +5,7 @@ # Adds static routes which go through device $DEVICE # Called from ifup-post. -if [ ! -f /etc/sysconfig/static-routes ]; then +if [ ! -f /etc/sysconfig/static-routes -a ! -f /etc/sysconfig/static-routes6 ]; then return fi @@ -23,6 +23,11 @@ /sbin/ip route add $args dev $REALDEVICE done +if ! is_no "$IPV6_NETWORKING"; then + grep -E "^($DEVICE|any)[[:blank:]]" /etc/sysconfig/static-routes6 | while read device args; do + /sbin/ip -6 route add $args dev $REALDEVICE + done +fi # based on information from http://avahi.org/wiki/AvahiAutoipd#Routes if is_yes "$ZEROCONF" && ! /sbin/ip link show dev $REALDEVICE | grep -q POINTOPOINT ; then Index: rc-scripts/sysconfig/network-scripts/functions.network =================================================================== --- rc-scripts/sysconfig/network-scripts/functions.network (revision 12207) +++ rc-scripts/sysconfig/network-scripts/functions.network (working copy) @@ -327,6 +327,18 @@ done fi fi + is_no "$IPV6_NETWORKING" && return + if [ -f /etc/sysconfig/static-routes6 ]; then + if [ "$1" = "on" -o "$1" = "yes" ]; then + grep -E "^(none|any)[[:blank:]]" /etc/sysconfig/static-routes6 | while read device args; do + /sbin/ip -6 route add $args + done + else + grep -E "^(none|any)[[:blank:]]" /etc/sysconfig/static-routes6 | while read device args; do + /sbin/ip -6 route del $args 2>/dev/null + done + fi + fi } # Add ONLY IPv4 address (IPv6 address is added automaticly) @@ -344,6 +356,10 @@ fi /sbin/ip route add $args dev lo done + is_no "$IPV6_NETWORKING" && return + grep -E "^(lo|any)[[:blank:]]" /etc/sysconfig/static-routes6 | while read device args; do + /sbin/ip -6 route add $args dev lo + done } set_down_loopback() @@ -460,10 +476,22 @@ done elif is_no "$1"; then LC_ALL=C /sbin/ip rule show | grep -vE -e "from all lookup (main|default|local) \$" -e " map-to " | while read prio from src args; do - [ "$src" = "all" ] && ip rule delete $args || ip rule delete $from $src $args + [ "$src" = "all" ] && /sbin/ip rule delete $args || /sbin/ip rule delete $from $src $args done fi fi + is_no "$IPV6_NETWORKING" && return + if [ -f /etc/sysconfig/static-routes6 ]; then + if is_yes "$1"; then + grep -E "^(from|to|iif|tos|fwmark|dev|pref|priority|prio)[[:blank:]]" /etc/sysconfig/static-routes6 | while read args; do + /sbin/ip -6 rule add $args + done + elif is_no "$1"; then + LC_ALL=C /sbin/ip -6 rule show | grep -vE -e "from all lookup (main|default|local) \$" -e " map-to " | while read prio from src args; do + [ "$src" = "all" ] && /sbin/ip -6 rule delete $args || /sbin/ip -6 rule delete $from $src $args + done + fi + fi } is_wireless_device ()