Default vlan support.
This commit is contained in:
+4
-4
@@ -7,12 +7,12 @@
|
||||
## Synopsis
|
||||
|
||||
```
|
||||
add_rtadv ${card} ${vlan}
|
||||
add_rtadv ${interface}
|
||||
```
|
||||
|
||||
## Description
|
||||
|
||||
Adds the network defined by the specified `${card}` and `${vlan}` to the list of
|
||||
Adds the network defined by the specified `${interface}` to the list of
|
||||
interfaces to be advertised by `rtadvd`.
|
||||
|
||||
The internal implementation prevents adding duplicate interfaces to the
|
||||
@@ -29,8 +29,8 @@ settings for all advertised IPv6 networks.
|
||||
## Examples
|
||||
|
||||
```
|
||||
add_rtadv xy0 123 # Adds `xy0.123` to `rtadvd_interfaces`
|
||||
add_rtadv abc3 765 # Adds `abc3.765` to `rtadvd_interfaces`
|
||||
add_rtadv xy0.123 # Adds `xy0.123` to `rtadvd_interfaces`
|
||||
add_rtadv abc3.765 # Adds `abc3.765` to `rtadvd_interfaces`
|
||||
```
|
||||
|
||||
## See Also
|
||||
|
||||
@@ -133,8 +133,8 @@ _compute_nets()
|
||||
shift 1
|
||||
|
||||
_base=$((${_vlan}%10))
|
||||
_net=$((${_vlan}/100))
|
||||
_subnet=${_net}${_base}
|
||||
_net=$(( ( ( ${_vlan} / 100 ) % 10 ) * 10 ))
|
||||
_subnet=$(( ${_net} + ${_base} ))
|
||||
_extra_address=""
|
||||
|
||||
if [ -z "${1}" ]
|
||||
@@ -203,10 +203,7 @@ add_vlan()
|
||||
|
||||
add_rtadv()
|
||||
{
|
||||
_card=$1
|
||||
_vlan=$2
|
||||
|
||||
_subcard="${_card}.${_vlan}"
|
||||
_subcard="$1"
|
||||
|
||||
_echo "XXX ${rtadvd_interfaces} XXX"
|
||||
_echo "QQQ ${rtadvd_interfaces} QQQ" | grep ${_subcard}
|
||||
@@ -462,15 +459,23 @@ _emit_dhcpv4()
|
||||
add_v4_net()
|
||||
{
|
||||
_compute_nets $*
|
||||
add_vlan $_card $_vlan
|
||||
_card_and_vlan="${_card}_${_vlan}"
|
||||
_card_dot_vlan="${_card}.${_vlan}"
|
||||
if [ ${_vlan} -ne 0 ]
|
||||
then
|
||||
add_vlan $_card $_vlan
|
||||
else
|
||||
_card_and_vlan="${_card}"
|
||||
_card_dot_vlan="${_card}"
|
||||
fi
|
||||
|
||||
_class_group=""
|
||||
if [ ! -z "${_class}" ]
|
||||
then
|
||||
_class_group="group ${_class}"
|
||||
fi
|
||||
eval ifconfig_${_card}_${_vlan}=\"$(compute_v4_net $_card $_subnet) group internal ${_class_group}\"
|
||||
eval dhcpd_ifaces=\"${dhcpd_ifaces} ${_card}.${_vlan}\"
|
||||
eval ifconfig_${_card_and_vlan}=\"$(compute_v4_net $_card $_subnet) group internal ${_class_group}\"
|
||||
eval dhcpd_ifaces=\"${dhcpd_ifaces} ${_card_dot_vlan}\"
|
||||
}
|
||||
|
||||
_add_v6_prefixes()
|
||||
@@ -480,7 +485,7 @@ _add_v6_prefixes()
|
||||
|
||||
while [ -n "${1}" ]
|
||||
do
|
||||
eval ifconfig_${_card}_${_vlan}_alias${_next_alias}=\"inet6 $1/64\"
|
||||
eval ifconfig_${_card_and_vlan}_alias${_next_alias}=\"inet6 $1/64\"
|
||||
shift 1
|
||||
_next_alias=`expr $_next_alias + 1`
|
||||
done
|
||||
@@ -490,8 +495,16 @@ add_v6_net()
|
||||
{
|
||||
_isp=""
|
||||
_compute_nets $*
|
||||
add_vlan $_card $_vlan
|
||||
add_rtadv $_card $_vlan
|
||||
_card_and_vlan="${_card}_${_vlan}"
|
||||
_card_dot_vlan="${_card}.${_vlan}"
|
||||
if [ ${_vlan} -ne 0 ]
|
||||
then
|
||||
add_vlan $_card $_vlan
|
||||
else
|
||||
_card_and_vlan="${_card}"
|
||||
_card_dot_vlan="${_card}"
|
||||
fi
|
||||
add_rtadv ${_card_dot_vlan}
|
||||
|
||||
_compute_ula_prefix
|
||||
|
||||
@@ -501,22 +514,27 @@ add_v6_net()
|
||||
_class_group="group ${_class}"
|
||||
fi
|
||||
|
||||
eval ifconfig_${_card}_${_vlan}_ipv6=\"inet6 fe80::1/64 group internal ${_class_group}\"
|
||||
eval ifconfig_${_card_and_vlan}_ipv6=\"inet6 fe80::1/64 group internal ${_class_group}\"
|
||||
|
||||
_next_alias=0
|
||||
|
||||
if [ "${_subnet}" = "0" ]
|
||||
then
|
||||
_subnet="00"
|
||||
fi
|
||||
|
||||
if [ "${_priv}" = "YES" ]
|
||||
then
|
||||
eval ifconfig_${_card}_${_vlan}_alias${_next_alias}=\"inet6 $(compute_v6_net ${secret_ip6_net} ${_subnet})/64\"
|
||||
eval ifconfig_${_card_and_vlan}_alias${_next_alias}=\"inet6 $(compute_v6_net ${secret_ip6_net} ${_subnet})/64\"
|
||||
_next_alias=1 # UGLY HACK!!! Does BASH increment work in BSD's sh?
|
||||
fi
|
||||
|
||||
if [ -n "${_isp}" ]
|
||||
then
|
||||
_add_dhcpv6 ${_card}.${_vlan} ${_isp}
|
||||
_add_dhcpv6 ${_card_dot_vlan} ${_isp}
|
||||
else
|
||||
_echo "Adding ${_card}.${_vlan} to default (which is ${default_isp} at this time)"
|
||||
_add_dhcpv6 ${_card}.${_vlan} default
|
||||
_echo "Adding ${_card_dot_vlan} to default (which is ${default_isp} at this time)"
|
||||
_add_dhcpv6 ${_card_dot_vlan} default
|
||||
fi
|
||||
|
||||
_add_v6_prefixes ${_next_alias} ${_extra_address}
|
||||
|
||||
Reference in New Issue
Block a user