base-files: configure switch in failsafe
Also configure the switch based on the failsafe config, and create the failsafe interface as tagged if necessary. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
This commit is contained in:
parent
072cf26729
commit
6c9588ddf5
1 changed files with 46 additions and 2 deletions
|
@ -22,6 +22,41 @@ preinit_ip_config() {
|
|||
ip -4 address add $pi_ip/$pi_netmask broadcast $pi_broadcast dev $1
|
||||
}
|
||||
|
||||
preinit_config_switch() {
|
||||
local role roles ports device enable reset
|
||||
|
||||
local name=$1
|
||||
local lan_if=$2
|
||||
|
||||
json_select switch
|
||||
json_select $name
|
||||
|
||||
json_get_vars enable reset
|
||||
|
||||
if json_is_a roles array; then
|
||||
json_get_keys roles roles
|
||||
json_select roles
|
||||
|
||||
for role in $roles; do
|
||||
json_select "$role"
|
||||
json_get_vars ports device
|
||||
json_select ..
|
||||
|
||||
if [ "$device" = "$lan_if" ]; then
|
||||
swconfig dev $name set reset $reset
|
||||
swconfig dev $name set enable_vlan $enable
|
||||
swconfig dev $name vlan $role set ports "$ports"
|
||||
swconfig dev $name set apply
|
||||
fi
|
||||
done
|
||||
|
||||
json_select ..
|
||||
fi
|
||||
|
||||
json_select ..
|
||||
json_select ..
|
||||
}
|
||||
|
||||
preinit_config_board() {
|
||||
/bin/board_detect /tmp/board.json
|
||||
|
||||
|
@ -43,8 +78,17 @@ preinit_config_board() {
|
|||
# only use the first one
|
||||
ifname=${ifname%% *}
|
||||
|
||||
# trim any vlan ids
|
||||
ifname=${ifname%\.*}
|
||||
if [ -x /sbin/swconfig ]; then
|
||||
# configure the switch, if present
|
||||
|
||||
json_get_keys keys switch
|
||||
for key in $keys; do
|
||||
preinit_config_switch $key $ifname
|
||||
done
|
||||
else
|
||||
# trim any vlan ids
|
||||
ifname=${ifname%\.*}
|
||||
fi
|
||||
|
||||
preinit_ip_config $ifname
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue