|
|
|
@ -40,12 +40,117 @@ service_running() { |
|
|
|
|
/sbin/wifi reload_legacy |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
validate_atm_bridge_section() |
|
|
|
|
{ |
|
|
|
|
uci_validate_section network "atm-bridge" "${1}" \ |
|
|
|
|
'unit:uinteger:0' \ |
|
|
|
|
'vci:range(32, 65535):35' \ |
|
|
|
|
'vpi:range(0, 255):8' \ |
|
|
|
|
'atmdev:uinteger:0' \ |
|
|
|
|
'encaps:or("llc", "vc"):llc' \ |
|
|
|
|
'payload:or("bridged", "routed"):bridged' |
|
|
|
|
|
|
|
|
|
return $? |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
validate_route_section() |
|
|
|
|
{ |
|
|
|
|
uci_validate_section network route "${1}" \ |
|
|
|
|
'interface:string' \ |
|
|
|
|
'target:ip4addr' \ |
|
|
|
|
'netmask:ip4prefix' \ |
|
|
|
|
'gateway:ip4addr' \ |
|
|
|
|
'metric:uinteger' \ |
|
|
|
|
'mtu:uinteger' \ |
|
|
|
|
'table:range(0,65535)' |
|
|
|
|
|
|
|
|
|
return $? |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
validate_route6_section() |
|
|
|
|
{ |
|
|
|
|
uci_validate_section network route6 "${1}" \ |
|
|
|
|
'interface:string' \ |
|
|
|
|
'target:ip6addr' \ |
|
|
|
|
'gateway:ip6addr' \ |
|
|
|
|
'metric:uinteger' \ |
|
|
|
|
'mtu:uinteger' \ |
|
|
|
|
'table:range(0,65535)' |
|
|
|
|
|
|
|
|
|
return $? |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
validate_rule_section() |
|
|
|
|
{ |
|
|
|
|
uci_validate_section network rule "${1}" \ |
|
|
|
|
'in:string' \ |
|
|
|
|
'out:string' \ |
|
|
|
|
'src:ip4prefix' \ |
|
|
|
|
'dest:ip4prefix' \ |
|
|
|
|
'tos:rage(0.31)' \ |
|
|
|
|
'string:mark' \ |
|
|
|
|
'invert:bool' \ |
|
|
|
|
'lookup:range(0,65535)' \ |
|
|
|
|
'goto:range(0,65535)' \ |
|
|
|
|
'action:or("prohibit", "unreachable", "blackhole", "throw")' |
|
|
|
|
|
|
|
|
|
return $? |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
validate_rule6_section() |
|
|
|
|
{ |
|
|
|
|
uci_validate_section network rule6 "${1}" \ |
|
|
|
|
'in:string' \ |
|
|
|
|
'out:string' \ |
|
|
|
|
'src:ip4prefix' \ |
|
|
|
|
'dest:ip4prefix' \ |
|
|
|
|
'tos:rage(0.31)' \ |
|
|
|
|
'string:mark' \ |
|
|
|
|
'invert:bool' \ |
|
|
|
|
'lookup:range(0,65535)' \ |
|
|
|
|
'goto:range(0,65535)' \ |
|
|
|
|
'action:or("prohibit", "unreachable", "blackhole", "throw")' |
|
|
|
|
|
|
|
|
|
return $? |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
validate_switch_section() |
|
|
|
|
{ |
|
|
|
|
uci_validate_section network switch "${1}" \ |
|
|
|
|
'name:string' \ |
|
|
|
|
'enable:bool' \ |
|
|
|
|
'enable_vlan:bool' \ |
|
|
|
|
'reset:bool' |
|
|
|
|
|
|
|
|
|
return $? |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
validate_switch_vlan() |
|
|
|
|
{ |
|
|
|
|
uci_validate_section network switch_vlan "${1}" \ |
|
|
|
|
'device:string' \ |
|
|
|
|
'vlan:uinteger' \ |
|
|
|
|
'ports:list(ports)' |
|
|
|
|
|
|
|
|
|
return $? |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
service_triggers() |
|
|
|
|
{ |
|
|
|
|
procd_open_trigger |
|
|
|
|
procd_add_config_trigger "config.change" "network" /etc/init.d/network reload |
|
|
|
|
procd_add_config_trigger "config.change" "wireless" /etc/init.d/network reload |
|
|
|
|
procd_close_trigger |
|
|
|
|
|
|
|
|
|
procd_open_validate |
|
|
|
|
validate_atm_bridge_section |
|
|
|
|
validate_route_section |
|
|
|
|
validate_route6_section |
|
|
|
|
validate_rule_section |
|
|
|
|
validate_rule6_section |
|
|
|
|
validate_switch_section |
|
|
|
|
validate_switch_vlan |
|
|
|
|
procd_close_validate |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
restart() { |
|
|
|
|