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 ## 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
+33 -15
View File
@@ -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 $*
_card_and_vlan="${_card}_${_vlan}"
_card_dot_vlan="${_card}.${_vlan}"
if [ ${_vlan} -ne 0 ]
then
add_vlan $_card $_vlan 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 $*
_card_and_vlan="${_card}_${_vlan}"
_card_dot_vlan="${_card}.${_vlan}"
if [ ${_vlan} -ne 0 ]
then
add_vlan $_card $_vlan add_vlan $_card $_vlan
add_rtadv $_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}