2 # Copyright (C) 2006 OpenWrt.org
3 # Copyright (C) 2010 Vertical Communications
11 if [ "$vid" = "$netdev" ]; then
15 grep -q "$netdev" /proc
/net
/dev ||
return
17 if [ -n "$vid" ]; then
18 ip link add link
$netdev name
$1 type vlan id
$vid
21 ip link
set dev
$netdev up
22 ip
-4 address add
$pi_ip/$pi_netmask broadcast
$pi_broadcast dev
$1
25 preinit_config_switch
() {
26 local role roles ports device
enable reset
34 json_get_vars
enable reset
36 if json_is_a roles array
; then
37 json_get_keys roles roles
40 for role
in $roles; do
42 json_get_vars ports device
45 if [ "$device" = "$lan_if" ]; then
46 if [ "$reset" -eq "1" ]; then
47 swconfig dev
$name set reset
50 swconfig dev
$name set enable_vlan
$enable
51 swconfig dev
$name vlan
$role set ports
"$ports"
52 swconfig dev
$name set apply
63 preinit_config_board
() {
64 /bin
/board_detect
/tmp
/board.json
66 [ -f "/tmp/board.json" ] ||
return
68 .
/usr
/share
/libubox
/jshn.sh
71 json_load
"$(cat /tmp/board.json)"
79 [ -n "$ifname" ] ||
return
81 # only use the first one
84 if [ -x /sbin
/swconfig
]; then
85 # configure the switch, if present
87 json_get_keys keys switch
89 preinit_config_switch
$key $ifname
98 preinit_ip_config
$pi_ifname
102 # if the preinit interface isn't specified and ifname is set in
103 # preinit.arch use that interface
104 if [ -z "$pi_ifname" ]; then
108 if [ -n "$pi_ifname" ]; then
109 preinit_ip_config
$pi_ifname
110 elif [ -d "/etc/board.d/" ]; then
115 preinit_ip_deconfig
() {
116 [ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc
/net
/dev
&& {
119 netdev
=${pi_ifname%\.*}
122 if [ "$vid" = "$netdev" ]; then
126 ip
-4 address flush dev
$pi_ifname
127 ip link
set dev
$netdev down
129 if [ -n "$vid" ]; then
130 ip link delete
$pi_ifname
136 [ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc
/net
/dev
&& {
138 [ "$pi_preinit_net_messages" = "y" ] ||
{
139 [ "$pi_failsafe_net_message" = "true" ] &&
140 [ "$pi_preinit_no_failsafe_netmsg" != "y" ]
142 } && netmsg
$pi_broadcast "$1"
151 pi_indicate_preinit
() {
152 preinit_net_echo
"Doing Lede Preinit\n"
156 boot_hook_add preinit_main preinit_ip
157 boot_hook_add preinit_main pi_indicate_preinit