]> git.ipfire.org Git - people/ms/network.git/blobdiff - src/hooks/ports/wireless-ap
wireless-ap: Add CLI to set channel bandwidth
[people/ms/network.git] / src / hooks / ports / wireless-ap
index 49c0a84396dfe8252a4c72fdc4e4b626ee24bdb6..8b626bf3eed2c51a084333ed762a91594d0fd779 100644 (file)
@@ -29,6 +29,7 @@ HOOK_SETTINGS="${HOOK_SETTINGS} ENCRYPTION KEY"
 ADDRESS=$(mac_generate)
 BROADCAST_SSID=on
 CHANNEL=0
+CHANNEL_BANDWIDTH=
 ENCRYPTION=""
 KEY=""
 SSID=
@@ -67,6 +68,9 @@ hook_parse_cmdline() {
                        --channel=*)
                                CHANNEL=$(cli_get_val "${1}")
                                ;;
+                       --channel-bandwidth=*)
+                               CHANNEL_BANDWIDTH="$(cli_get_val "${1}")"
+                               ;;
                        --dfs=*)
                                DFS="$(cli_get_val "${1}")"
 
@@ -121,6 +125,12 @@ hook_parse_cmdline() {
                return ${EXIT_ERROR}
        fi
 
+       # Channel bandwidth must match the mode
+       if isset CHANNEL_BANDWIDTH && ! wireless_channel_bandwidth_is_valid "${MODE}" "${CHANNEL_BANDWIDTH}"; then
+               error "Channel Bandwidth '${CHANNEL_BANDWIDTH}' is not supported"
+               return ${EXIT_ERROR}
+       fi
+
        # Save address of phy do identify it again
        PHY=$(phy_get ${PHY})
        PHY=$(phy_get_address ${PHY})