MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ieee80211_node_setuptxparms

Function ieee80211_node_setuptxparms

freebsd/net80211/ieee80211_node.c:243–276  ·  view source on GitHub ↗

* Fix tx parameters for a node according to ``association state''. */

Source from the content-addressed store, hash-verified

241 * Fix tx parameters for a node according to ``association state''.
242 */
243void
244ieee80211_node_setuptxparms(struct ieee80211_node *ni)
245{
246 struct ieee80211vap *vap = ni->ni_vap;
247 enum ieee80211_phymode mode;
248
249 if (ni->ni_flags & IEEE80211_NODE_VHT) {
250 if (IEEE80211_IS_CHAN_5GHZ(ni->ni_chan))
251 mode = IEEE80211_MODE_VHT_5GHZ;
252 else
253 mode = IEEE80211_MODE_VHT_2GHZ;
254 } else if (ni->ni_flags & IEEE80211_NODE_HT) {
255 if (IEEE80211_IS_CHAN_5GHZ(ni->ni_chan))
256 mode = IEEE80211_MODE_11NA;
257 else
258 mode = IEEE80211_MODE_11NG;
259 } else { /* legacy rate handling */
260 if (IEEE80211_IS_CHAN_ST(ni->ni_chan))
261 mode = IEEE80211_MODE_STURBO_A;
262 else if (IEEE80211_IS_CHAN_HALF(ni->ni_chan))
263 mode = IEEE80211_MODE_HALF;
264 else if (IEEE80211_IS_CHAN_QUARTER(ni->ni_chan))
265 mode = IEEE80211_MODE_QUARTER;
266 /* NB: 108A should be handled as 11a */
267 else if (IEEE80211_IS_CHAN_A(ni->ni_chan))
268 mode = IEEE80211_MODE_11A;
269 else if (IEEE80211_IS_CHAN_108G(ni->ni_chan) ||
270 (ni->ni_flags & IEEE80211_NODE_ERP))
271 mode = IEEE80211_MODE_11G;
272 else
273 mode = IEEE80211_MODE_11B;
274 }
275 ni->ni_txparms = &vap->iv_txparms[mode];
276}
277
278/*
279 * Set/change the channel. The rate set is also updated as

Callers 6

sta_recv_mgmtFunction · 0.85
ieee80211_sta_joinFunction · 0.85
ieee80211_init_neighborFunction · 0.85
ieee80211_add_neighborFunction · 0.85
ieee80211_node_joinFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected