+--- Get available channels from given wireless iface.
+-- @param iface Wireless interface (optional)
+-- @return Table of available channels
+function wifi.channels(iface)
+ local stat, iwinfo = pcall(require, "iwinfo")
+ local cns
+
+ if stat then
+ local t = iwinfo.type(iface or "")
+ if iface and t and iwinfo[t] then
+ cns = iwinfo[t].freqlist(iface)
+ end
+ end
+
+ if not cns or #cns == 0 then
+ cns = {
+ {channel = 1, mhz = 2412},
+ {channel = 2, mhz = 2417},
+ {channel = 3, mhz = 2422},
+ {channel = 4, mhz = 2427},
+ {channel = 5, mhz = 2432},
+ {channel = 6, mhz = 2437},
+ {channel = 7, mhz = 2442},
+ {channel = 8, mhz = 2447},
+ {channel = 9, mhz = 2452},
+ {channel = 10, mhz = 2457},
+ {channel = 11, mhz = 2462}
+ }
+ end
+
+ return cns
+end
+