* Parse and update HT-related state extracted from * the HT cap and info ie's. * * This is called from the STA management path and * the ieee80211_node_join() path. It will take into * account the IEs discovered during scanning and * adjust things accordingly. */
| 1900 | * adjust things accordingly. |
| 1901 | */ |
| 1902 | void |
| 1903 | ieee80211_ht_updateparams(struct ieee80211_node *ni, |
| 1904 | const uint8_t *htcapie, const uint8_t *htinfoie) |
| 1905 | { |
| 1906 | struct ieee80211vap *vap = ni->ni_vap; |
| 1907 | const struct ieee80211_ie_htinfo *htinfo; |
| 1908 | |
| 1909 | ieee80211_parse_htcap(ni, htcapie); |
| 1910 | if (vap->iv_htcaps & IEEE80211_HTC_SMPS) |
| 1911 | htcap_update_mimo_ps(ni); |
| 1912 | htcap_update_shortgi(ni); |
| 1913 | htcap_update_ldpc(ni); |
| 1914 | |
| 1915 | if (htinfoie[0] == IEEE80211_ELEMID_VENDOR) |
| 1916 | htinfoie += 4; |
| 1917 | htinfo = (const struct ieee80211_ie_htinfo *) htinfoie; |
| 1918 | htinfo_parse(ni, htinfo); |
| 1919 | |
| 1920 | /* |
| 1921 | * Defer the node channel change; we need to now |
| 1922 | * update VHT parameters before we do it. |
| 1923 | */ |
| 1924 | |
| 1925 | if ((htinfo->hi_byte1 & IEEE80211_HTINFO_RIFSMODE_PERM) && |
| 1926 | (vap->iv_flags_ht & IEEE80211_FHT_RIFS)) |
| 1927 | ni->ni_flags |= IEEE80211_NODE_RIFS; |
| 1928 | else |
| 1929 | ni->ni_flags &= ~IEEE80211_NODE_RIFS; |
| 1930 | } |
| 1931 | |
| 1932 | static uint32_t |
| 1933 | ieee80211_vht_get_vhtflags(struct ieee80211_node *ni, uint32_t htflags) |
no test coverage detected