+ shift
+
+ local bssid
+ local essid
+ local frequency
+
+ while [ $# -gt 0 ]; do
+ case "${1}" in
+ --bssid=*)
+ bssid="$(cli_get_val ${1})"
+ ;;
+ --essid=*)
+ essid="$(cli_get_val ${1})"
+ ;;
+ --channel=*)
+ local channel="$(cli_get_val ${1})"
+
+ # Save the frequency of the channel instead
+ # of the channel itself.
+ if isset channel; then
+ frequency="$(wireless_channel_to_frequency ${channel})"
+ fi
+ ;;
+ esac
+ shift
+ done
+
+ # Check input.
+ assert ismac bssid
+ assert isset essid
+ assert isinteger frequency
+
+ # Set device up.
+ device_set_up "${device}"
+
+ log INFO "${device} joining ibss network: ${essid} (${bssid})"
+ cmd_quiet iw dev "${device}" ibss join "${essid}" \
+ "${frequency}" fixed-freq "${bssid}"
+}
+
+function wireless_ibss_leave() {
+ local device=${1}
+ assert isset device
+
+ log INFO "${device} leaving ibss network"
+ cmd_quiet iw dev "${device}" ibss leave
+}
+
+function wireless_is_radar_frequency() {
+ local frequency="${1}"
+ assert isset frequency