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