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

Function ieee80211_init_neighbor

freebsd/net80211/ieee80211_node.c:1763–1881  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1761}
1762
1763void
1764ieee80211_init_neighbor(struct ieee80211_node *ni,
1765 const struct ieee80211_frame *wh,
1766 const struct ieee80211_scanparams *sp)
1767{
1768 int do_ht_setup = 0, do_vht_setup = 0;
1769
1770 ni->ni_esslen = sp->ssid[1];
1771 memcpy(ni->ni_essid, sp->ssid + 2, sp->ssid[1]);
1772 IEEE80211_ADDR_COPY(ni->ni_bssid, wh->i_addr3);
1773 memcpy(ni->ni_tstamp.data, sp->tstamp, sizeof(ni->ni_tstamp));
1774 ni->ni_intval = sp->bintval;
1775 ni->ni_capinfo = sp->capinfo;
1776 ni->ni_chan = ni->ni_ic->ic_curchan;
1777 ni->ni_fhdwell = sp->fhdwell;
1778 ni->ni_fhindex = sp->fhindex;
1779 ni->ni_erp = sp->erp;
1780 ni->ni_timoff = sp->timoff;
1781#ifdef IEEE80211_SUPPORT_MESH
1782 if (ni->ni_vap->iv_opmode == IEEE80211_M_MBSS)
1783 ieee80211_mesh_init_neighbor(ni, wh, sp);
1784#endif
1785 if (ieee80211_ies_init(&ni->ni_ies, sp->ies, sp->ies_len)) {
1786 ieee80211_ies_expand(&ni->ni_ies);
1787 if (ni->ni_ies.wme_ie != NULL)
1788 ni->ni_flags |= IEEE80211_NODE_QOS;
1789 else
1790 ni->ni_flags &= ~IEEE80211_NODE_QOS;
1791#ifdef IEEE80211_SUPPORT_SUPERG
1792 if (ni->ni_ies.ath_ie != NULL)
1793 ieee80211_parse_ath(ni, ni->ni_ies.ath_ie);
1794#endif
1795 if (ni->ni_ies.htcap_ie != NULL)
1796 ieee80211_parse_htcap(ni, ni->ni_ies.htcap_ie);
1797 if (ni->ni_ies.htinfo_ie != NULL)
1798 ieee80211_parse_htinfo(ni, ni->ni_ies.htinfo_ie);
1799
1800 if (ni->ni_ies.vhtcap_ie != NULL)
1801 ieee80211_parse_vhtcap(ni, ni->ni_ies.vhtcap_ie);
1802 if (ni->ni_ies.vhtopmode_ie != NULL)
1803 ieee80211_parse_vhtopmode(ni, ni->ni_ies.vhtopmode_ie);
1804
1805 if ((ni->ni_ies.htcap_ie != NULL) &&
1806 (ni->ni_ies.htinfo_ie != NULL) &&
1807 (ni->ni_vap->iv_flags_ht & IEEE80211_FHT_HT)) {
1808 do_ht_setup = 1;
1809 }
1810
1811 if ((ni->ni_ies.vhtcap_ie != NULL) &&
1812 (ni->ni_ies.vhtopmode_ie != NULL) &&
1813 (ni->ni_vap->iv_flags_vht & IEEE80211_FVHT_VHT)) {
1814 do_vht_setup = 1;
1815 }
1816 }
1817
1818 /* NB: must be after ni_chan is setup */
1819 ieee80211_setup_rates(ni, sp->rates, sp->xrates,
1820 IEEE80211_F_DOSORT | IEEE80211_F_DOFRATE |

Callers 2

adhoc_recv_mgmtFunction · 0.85
ieee80211_add_neighborFunction · 0.85

Calls 15

ieee80211_ies_initFunction · 0.85
ieee80211_ies_expandFunction · 0.85
ieee80211_parse_athFunction · 0.85
ieee80211_parse_htcapFunction · 0.85
ieee80211_parse_htinfoFunction · 0.85
ieee80211_parse_vhtcapFunction · 0.85
ieee80211_setup_ratesFunction · 0.85
ieee80211_ht_node_initFunction · 0.85
ieee80211_vht_node_initFunction · 0.85

Tested by

no test coverage detected