HOOK_PORT_PATTERN="${PORT_PATTERN_MESH}"
-HOOK_SETTINGS="HOOK ADDRESS MESH_ID CHANNEL PHY"
+HOOK_SETTINGS="HOOK ADDRESS MESH_ID CHANNEL PHY PSK"
hook_check_settings() {
assert ismac ADDRESS
--phy=*)
PHY=$(cli_get_val "${1}")
;;
+ --pre-shared-key=*)
+ PSK=$(cli_get_val "${1}")
+ ;;
*)
warning "Ignoring unknown argument '${1}'"
;;
ADDRESS=$(mac_generate)
fi
- # XXX check if wireless channel is valid
# Check if channel is valid
if ! wireless_channel_is_valid "${CHANNEL}"; then
log ERROR "Channel is invalid: ${CHANNEL}"
--type="mesh-point" || return $?
fi
+ # Write WPA supplicant configuration
+ wpa_supplicant_config_write "${port}" \
+ --channel="${CHANNEL}" \
+ --key="${PSK}" \
+ --mode="802.11s" \
+ --ssid="${MESH_ID}" || return $?
+
return ${EXIT_OK}
}
local port="${1}"
assert isset port
+ # Remove WPA supplicant configuration
+ wpa_supplicant_config_destroy "${port}"
+
if device_exists "${port}"; then
wireless_remove "${port}"
fi
exit ${EXIT_OK}
}
+hook_up() {
+ local port="${1}"
+
+ # Start WPA supplicant
+ wpa_supplicant_start "${port}"
+}
+
+hook_down() {
+ local port="${1}"
+
+ wpa_supplicant_stop "${port}"
+}
+
hook_hotplug() {
local port="${1}"
assert isset port