Lines Matching refs:wh
1147 const struct ieee80211_frame *wh = in mesh_forward() local
1164 IEEE80211_NOTE_FRAME(vap, IEEE80211_MSG_MESH, wh, in mesh_forward()
1170 IEEE80211_NOTE_FRAME(vap, IEEE80211_MSG_MESH, wh, in mesh_forward()
1177 IEEE80211_NOTE_FRAME(vap, IEEE80211_MSG_MESH, wh, in mesh_forward()
1183 mcopy = m_pullup(mcopy, ieee80211_hdrspace(ic, wh) + in mesh_forward()
1186 IEEE80211_NOTE_FRAME(vap, IEEE80211_MSG_MESH, wh, in mesh_forward()
1195 (mtod(mcopy, uint8_t *) + ieee80211_hdrspace(ic, wh)); in mesh_forward()
1199 if (IEEE80211_IS_MULTICAST(wh->i_addr1)) { in mesh_forward()
1211 IEEE80211_NOTE_FRAME(vap, IEEE80211_MSG_MESH, wh, in mesh_forward()
1251 #define WHDIR(wh) ((wh)->i_fc[1] & IEEE80211_FC1_DIR_MASK) in mesh_decap() argument
1255 const struct ieee80211_qosframe_addr4 *wh; in mesh_decap() local
1269 wh = (const struct ieee80211_qosframe_addr4 *)&b[0]; in mesh_decap()
1271 KASSERT(WHDIR(wh) == IEEE80211_FC1_DIR_FROMDS || in mesh_decap()
1272 WHDIR(wh) == IEEE80211_FC1_DIR_DSTODS, in mesh_decap()
1273 ("bogus dir, fc 0x%x:0x%x", wh->i_fc[0], wh->i_fc[1])); in mesh_decap()
1289 if (WHDIR(wh) == IEEE80211_FC1_DIR_FROMDS) { in mesh_decap()
1290 IEEE80211_ADDR_COPY(eh->ether_dhost, wh->i_addr1); in mesh_decap()
1292 IEEE80211_ADDR_COPY(eh->ether_shost, wh->i_addr3); in mesh_decap()
1298 (const struct ieee80211_frame *)wh, NULL, in mesh_decap()
1306 IEEE80211_ADDR_COPY(eh->ether_dhost, wh->i_addr3); in mesh_decap()
1307 IEEE80211_ADDR_COPY(eh->ether_shost, wh->i_addr4); in mesh_decap()
1313 (const struct ieee80211_frame *)wh, NULL, in mesh_decap()
1342 mesh_isucastforme(struct ieee80211vap *vap, const struct ieee80211_frame *wh, in mesh_isucastforme() argument
1347 KASSERT((wh->i_fc[1] & IEEE80211_FC1_DIR_MASK) == IEEE80211_FC1_DIR_DSTODS, in mesh_isucastforme()
1348 ("bad dir 0x%x:0x%x", wh->i_fc[0], wh->i_fc[1])); in mesh_isucastforme()
1360 return IEEE80211_ADDR_EQ(wh->i_addr3, vap->iv_myaddr); in mesh_isucastforme()
1371 struct ieee80211_frame *wh, const struct ieee80211_meshcntl *mc) in mesh_recv_indiv_data_to_fwrd() argument
1380 qwh = (struct ieee80211_qosframe_addr4 *)wh; in mesh_recv_indiv_data_to_fwrd()
1428 struct ieee80211_frame *wh, const struct ieee80211_meshcntl *mc) in mesh_recv_indiv_data_to_me() argument
1439 qwh = (struct ieee80211_qosframe_addr4 *)wh; in mesh_recv_indiv_data_to_me()
1496 struct ieee80211_frame *wh, const struct ieee80211_meshcntl *mc) in mesh_recv_group_data() argument
1535 struct ieee80211_frame *wh; in mesh_input() local
1565 wh = mtod(m, struct ieee80211_frame *); in mesh_input()
1567 if (!IEEE80211_IS_FC0_CHECK_VER(wh, IEEE80211_FC0_VERSION_0)) { in mesh_input()
1569 ni->ni_macaddr, NULL, "wrong version %x", wh->i_fc[0]); in mesh_input()
1573 dir = wh->i_fc[1] & IEEE80211_FC1_DIR_MASK; in mesh_input()
1574 type = wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK; in mesh_input()
1575 subtype = wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK; in mesh_input()
1580 uint8_t tid = ieee80211_gettid(wh); in mesh_input()
1582 if (IEEE80211_QOS_HAS_SEQ(wh) && in mesh_input()
1585 if (! ieee80211_check_rxseq(ni, wh, wh->i_addr1, rxs)) in mesh_input()
1597 if (vap->iv_acl != NULL && !vap->iv_acl->iac_check(vap, wh)) { in mesh_input()
1599 wh, NULL, "%s", "disallowed by ACL"); in mesh_input()
1619 wh, "data", "incorrect dir 0x%x", dir); in mesh_input()
1627 wh, "data", "incorrect subtype 0x%x", subtype); in mesh_input()
1638 hdrspace = ieee80211_hdrspace(ic, wh); in mesh_input()
1639 if (!IEEE80211_IS_MULTICAST(wh->i_addr1)) { in mesh_input()
1646 wh = mtod(m, struct ieee80211_frame *); /* NB: after defrag */ in mesh_input()
1658 *(uint16_t *)qos = *(uint16_t *)ieee80211_getqos(wh); in mesh_input()
1710 if (IEEE80211_IS_MULTICAST(wh->i_addr1)) in mesh_input()
1711 addr = wh->i_addr3; in mesh_input()
1715 addr = ((struct ieee80211_qosframe_addr4 *)wh)->i_addr4; in mesh_input()
1728 if (!IEEE80211_IS_MULTICAST(wh->i_addr1)) { in mesh_input()
1729 if (IEEE80211_ADDR_EQ(vap->iv_myaddr, wh->i_addr3)) in mesh_input()
1731 mesh_recv_indiv_data_to_me(vap, m, wh, mc); in mesh_input()
1732 else if (IEEE80211_IS_MULTICAST(wh->i_addr3)) in mesh_input()
1733 error = mesh_recv_group_data(vap, m, wh, mc); in mesh_input()
1736 wh, mc); in mesh_input()
1738 error = mesh_recv_group_data(vap, m, wh, mc); in mesh_input()
1776 wh, "mgt", "incorrect dir 0x%x", dir); in mesh_input()
1794 ether_sprintf(wh->i_addr2), rssi); in mesh_input()
1797 if (IEEE80211_IS_PROTECTED(wh)) { in mesh_input()
1799 wh, NULL, "%s", "WEP set but not permitted"); in mesh_input()
1811 wh, "bad", "frame type 0x%x", type); in mesh_input()
1836 struct ieee80211_frame *wh; in mesh_recv_mgmt() local
1840 wh = mtod(m0, struct ieee80211_frame *); in mesh_recv_mgmt()
1841 frm = (uint8_t *)&wh[1]; in mesh_recv_mgmt()
1884 ieee80211_add_scan(vap, rxchan, &scan, wh, in mesh_recv_mgmt()
1899 wh, "beacon", "%s", "not a mesh sta"); in mesh_recv_mgmt()
1909 wh, "beacon", "%s", "not for our mesh"); in mesh_recv_mgmt()
1916 if (vap->iv_acl != NULL && !vap->iv_acl->iac_check(vap, wh)) { in mesh_recv_mgmt()
1918 wh, NULL, "%s", "disallowed by ACL"); in mesh_recv_mgmt()
1925 if (!IEEE80211_ADDR_EQ(wh->i_addr2, ni->ni_macaddr)) { in mesh_recv_mgmt()
1929 ni = ieee80211_add_neighbor(vap, wh, &scan); in mesh_recv_mgmt()
1963 rt = ieee80211_mesh_rt_find(vap, wh->i_addr2); in mesh_recv_mgmt()
1983 wh, NULL, "wrong state %s", in mesh_recv_mgmt()
1988 if (IEEE80211_IS_MULTICAST(wh->i_addr2)) { in mesh_recv_mgmt()
1991 wh, NULL, "%s", "not unicast"); in mesh_recv_mgmt()
2034 IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_INPUT, wh->i_addr2, in mesh_recv_mgmt()
2042 ieee80211_send_proberesp(vap, wh->i_addr2, 0); in mesh_recv_mgmt()
2050 wh, NULL, "%s", "unknown node"); in mesh_recv_mgmt()
2052 } else if (!IEEE80211_ADDR_EQ(vap->iv_myaddr, wh->i_addr1) && in mesh_recv_mgmt()
2053 !IEEE80211_IS_MULTICAST(wh->i_addr1)) { in mesh_recv_mgmt()
2055 wh, NULL, "%s", "not for us"); in mesh_recv_mgmt()
2059 wh, NULL, "wrong state %s", in mesh_recv_mgmt()
2064 (void)ic->ic_recv_action(ni, wh, frm, efrm); in mesh_recv_mgmt()
2078 wh, NULL, "%s", "not handled"); in mesh_recv_mgmt()
2084 wh, "mgt", "subtype 0x%x not handled", subtype); in mesh_recv_mgmt()
2106 const struct ieee80211_frame *wh, /* XXX for VERIFY_LENGTH */ in mesh_parse_meshpeering_action() argument
2165 wh, NULL, "%s", "MPM validation failed"); in mesh_parse_meshpeering_action()
2173 wh, NULL, "%s", "not for our mesh"); in mesh_parse_meshpeering_action()
2194 wh, NULL, "%s", "configuration mismatch"); in mesh_parse_meshpeering_action()
2235 const struct ieee80211_frame *wh, in mesh_recv_action_meshpeering_open() argument
2245 meshpeer = mesh_parse_meshpeering_action(ni, wh, frm+2+2, efrm, &ie, in mesh_recv_action_meshpeering_open()
2383 const struct ieee80211_frame *wh, in mesh_recv_action_meshpeering_confirm() argument
2392 meshpeer = mesh_parse_meshpeering_action(ni, wh, frm+2+2+2+2, efrm, &ie, in mesh_recv_action_meshpeering_confirm()
2437 wh, NULL, "received confirm in invalid state %d", in mesh_recv_action_meshpeering_confirm()
2447 const struct ieee80211_frame *wh, in mesh_recv_action_meshpeering_close() argument
2455 meshpeer = mesh_parse_meshpeering_action(ni, wh, frm+2, efrm, &ie, in mesh_recv_action_meshpeering_close()
2501 const struct ieee80211_frame *wh, in mesh_recv_action_meshlmetric() argument
2527 const struct ieee80211_frame *wh, /* XXX for VERIFY_LENGTH */ in mesh_parse_meshgate_action() argument
2560 const struct ieee80211_frame *wh, in mesh_recv_action_meshgate() argument
2572 if (mesh_parse_meshgate_action(ni, wh, &ie, frm+2, efrm) != 0) { in mesh_recv_action_meshgate()
3390 const struct ieee80211_frame *wh, in ieee80211_mesh_init_neighbor() argument