Default vlan support.

This commit is contained in:
2026-05-14 13:55:13 -04:00
parent d72859fee9
commit ca0ae3c5c5
2 changed files with 39 additions and 21 deletions
+4 -4
View File
@@ -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
+35 -17
View File
@@ -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}