diff options
author | Milind Murhekar <m.murhekar@samsung.com> | 2018-09-21 19:36:20 +0530 |
---|---|---|
committer | Milind Murhekar <m.murhekar@samsung.com> | 2018-10-05 14:30:51 +0530 |
commit | 3c5d316b64f60ee6fb7b2bb85c22fad385cb0f91 (patch) | |
tree | 4eabf0d0bfb9780fdecb13938ff16660d6652e06 /include/network.h | |
parent | 071fe548f78efbfa84ee6841c013713903a7e28c (diff) | |
download | connman-3c5d316b64f60ee6fb7b2bb85c22fad385cb0f91.tar.gz connman-3c5d316b64f60ee6fb7b2bb85c22fad385cb0f91.tar.bz2 connman-3c5d316b64f60ee6fb7b2bb85c22fad385cb0f91.zip |
Add IEEE 802.11 protocol(b/g/n/a/ac) Modes of APs
This patch appends the IEEE 802.11b/g/n/a/ac PHY
protocol modes of scanned Access Points
using internal logic.
Following logic is used to determine WLAN HW protocol:-
1) If “Supported rates” is only till 11 Mbps, and frequency is in
2.4GHz band, then protocol is 802.11B.
2) If “Supported rates” is till 54Mbps or “Extended supported rates”
are present, and frequency is in 2.4GHz band, then protocol is 802.11G.
3) If “Supported rates” is only till 54 Mbps, frequency is in 5GHz
band , then protocol is 802.11A.
4) If “HT capabilities” is supported , then protocol is 802.11N.
5) If “HT capabilities” & “VHT” is supported and frequency is in 5 GHz
band, then protocol is 802.11AC.
Change-Id: I1156ef249cf4a8052a883d31da66788c7d2de22f
Diffstat (limited to 'include/network.h')
-rwxr-xr-x | include/network.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/include/network.h b/include/network.h index 2c742992..6d067c55 100755 --- a/include/network.h +++ b/include/network.h @@ -68,6 +68,29 @@ struct connman_bssids { uint16_t strength; uint16_t frequency; }; + +/* Backward compatible + * modes of available network */ +typedef enum { + IEEE80211_UNKNOWN, + IEEE80211_MODE_B, + IEEE80211_MODE_BG, + IEEE80211_MODE_BGN, + IEEE80211_MODE_A, + IEEE80211_MODE_AN, + IEEE80211_MODE_ANAC, +} ieee80211_modes_e; + +/* connection mode of connected network + * based on current linkspeed */ +typedef enum { + CONNECTION_MODE_IEEE80211_UNKNOWN, + CONNECTION_MODE_IEEE80211B, + CONNECTION_MODE_IEEE80211G, + CONNECTION_MODE_IEEE80211N, + CONNECTION_MODE_IEEE80211A, + CONNECTION_MODE_IEEE80211AC, +} connection_mode_e; #endif #define CONNMAN_NETWORK_PRIORITY_LOW -100 @@ -177,6 +200,12 @@ unsigned char *connman_network_get_countrycode(struct connman_network *network); int connman_network_set_bssid_list(struct connman_network *network, GSList *bssids); void *connman_network_get_bssid_list(struct connman_network *network); +int connman_network_set_phy_mode(struct connman_network *network, + ieee80211_modes_e mode); +ieee80211_modes_e connman_network_get_phy_mode(struct connman_network *network); +int connman_network_set_connection_mode(struct connman_network *network, + connection_mode_e mode); +connection_mode_e connman_network_get_connection_mode(struct connman_network *network); #endif int connman_network_set_name(struct connman_network *network, |