Lines Matching defs:frm

1838 	uint8_t *frm, *efrm;
1841 frm = (uint8_t *)&wh[1];
2003 while (efrm - frm > 1) {
2004 IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2, return);
2005 switch (*frm) {
2007 ssid = frm;
2010 rates = frm;
2013 xrates = frm;
2016 meshid = frm;
2019 frm += frm[1] + 2;
2064 (void)ic->ic_recv_action(ni, wh, frm, efrm);
2107 const uint8_t *frm, const uint8_t *efrm,
2117 while (efrm - frm > 1) {
2118 IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2, return NULL);
2119 switch (*frm) {
2121 meshid = frm;
2124 meshconf = frm;
2127 mpie = (const struct ieee80211_meshpeer_ie *) frm;
2154 frm += frm[1] + 2;
2236 const uint8_t *frm, const uint8_t *efrm)
2245 meshpeer = mesh_parse_meshpeering_action(ni, wh, frm+2+2, efrm, &ie,
2384 const uint8_t *frm, const uint8_t *efrm)
2392 meshpeer = mesh_parse_meshpeering_action(ni, wh, frm+2+2+2+2, efrm, &ie,
2448 const uint8_t *frm, const uint8_t *efrm)
2455 meshpeer = mesh_parse_meshpeering_action(ni, wh, frm+2, efrm, &ie,
2502 const uint8_t *frm, const uint8_t *efrm)
2506 (frm+2); /* action + code */
2528 struct ieee80211_meshgann_ie *ie, const uint8_t *frm, const uint8_t *efrm)
2533 while (efrm - frm > 1) {
2534 IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2, return -1);
2535 switch (*frm) {
2537 gannie = (const struct ieee80211_meshgann_ie *) frm;
2549 frm += frm[1] + 2;
2561 const uint8_t *frm, const uint8_t *efrm)
2572 if (mesh_parse_meshgate_action(ni, wh, &ie, frm+2, efrm) != 0) {
2696 #define ADDSHORT(frm, v) do { \
2697 frm[0] = (v) & 0xff; \
2698 frm[1] = (v) >> 8; \
2699 frm += 2; \
2701 #define ADDWORD(frm, v) do { \
2702 frm[0] = (v) & 0xff; \
2703 frm[1] = ((v) >> 8) & 0xff; \
2704 frm[2] = ((v) >> 16) & 0xff; \
2705 frm[3] = ((v) >> 24) & 0xff; \
2706 frm += 4; \
2718 uint8_t *frm;
2728 m = ieee80211_getmgtframe(&frm,
2750 *frm++ = category;
2751 *frm++ = action;
2752 ADDSHORT(frm, ieee80211_getcapinfo(vap, ni->ni_chan));
2754 frm = ieee80211_add_rates(frm, rs);
2755 frm = ieee80211_add_xrates(frm, rs);
2756 frm = ieee80211_add_meshid(frm, vap);
2757 frm = ieee80211_add_meshconf(frm, vap);
2758 frm = ieee80211_add_meshpeer(frm, IEEE80211_ACTION_MESHPEERING_OPEN,
2760 m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *);
2778 uint8_t *frm;
2789 m = ieee80211_getmgtframe(&frm,
2815 *frm++ = category;
2816 *frm++ = action;
2817 ADDSHORT(frm, ieee80211_getcapinfo(vap, ni->ni_chan));
2818 ADDSHORT(frm, 0); /* status code */
2819 ADDSHORT(frm, args[1]); /* AID */
2821 frm = ieee80211_add_rates(frm, rs);
2822 frm = ieee80211_add_xrates(frm, rs);
2823 frm = ieee80211_add_meshid(frm, vap);
2824 frm = ieee80211_add_meshconf(frm, vap);
2825 frm = ieee80211_add_meshpeer(frm,
2828 m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *);
2845 uint8_t *frm;
2856 m = ieee80211_getmgtframe(&frm,
2871 *frm++ = category;
2872 *frm++ = action;
2873 frm = ieee80211_add_meshid(frm, vap);
2874 frm = ieee80211_add_meshpeer(frm,
2877 m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *);
2894 uint8_t *frm;
2909 m = ieee80211_getmgtframe(&frm,
2921 *frm++ = category;
2922 *frm++ = action;
2923 frm = ieee80211_add_meshlmetric(frm,
2925 m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *);
2942 uint8_t *frm;
2949 m = ieee80211_getmgtframe(&frm,
2961 *frm++ = category;
2962 *frm++ = action;
2963 frm = ieee80211_add_meshgate(frm, ie);
2964 m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *);
3186 ieee80211_add_meshid(uint8_t *frm, struct ieee80211vap *vap)
3192 *frm++ = IEEE80211_ELEMID_MESHID;
3193 *frm++ = ms->ms_idlen;
3194 memcpy(frm, ms->ms_id, ms->ms_idlen);
3195 return frm + ms->ms_idlen;
3204 ieee80211_add_meshconf(uint8_t *frm, struct ieee80211vap *vap)
3211 *frm++ = IEEE80211_ELEMID_MESHCONF;
3212 *frm++ = IEEE80211_MESH_CONF_SZ;
3213 *frm++ = ms->ms_ppath->mpp_ie; /* path selection */
3214 *frm++ = ms->ms_pmetric->mpm_ie; /* link metric */
3215 *frm++ = IEEE80211_MESHCONF_CC_DISABLED;
3216 *frm++ = IEEE80211_MESHCONF_SYNC_NEIGHOFF;
3217 *frm++ = IEEE80211_MESHCONF_AUTH_DISABLED;
3219 *frm = (ms->ms_neighbors > IEEE80211_MESH_MAX_NEIGHBORS ?
3222 *frm |= IEEE80211_MESHCONF_FORM_GATE;
3223 frm += 1;
3229 *frm++ = caps;
3230 return frm;
3237 ieee80211_add_meshpeer(uint8_t *frm, uint8_t subtype, uint16_t localid,
3243 *frm++ = IEEE80211_ELEMID_MESHPEER;
3246 *frm++ = IEEE80211_MPM_BASE_SZ; /* length */
3247 ADDSHORT(frm, IEEE80211_MPPID_MPM); /* proto */
3248 ADDSHORT(frm, localid); /* local ID */
3252 *frm++ = IEEE80211_MPM_BASE_SZ + 2; /* length */
3253 ADDSHORT(frm, IEEE80211_MPPID_MPM); /* proto */
3254 ADDSHORT(frm, localid); /* local ID */
3255 ADDSHORT(frm, peerid); /* peer ID */
3259 *frm++ = IEEE80211_MPM_MAX_SZ; /* length */
3261 *frm++ = IEEE80211_MPM_BASE_SZ + 2; /* length */
3262 ADDSHORT(frm, IEEE80211_MPPID_MPM); /* proto */
3263 ADDSHORT(frm, localid); /* local ID */
3265 ADDSHORT(frm, peerid); /* peer ID */
3266 ADDSHORT(frm, reason);
3269 return frm;
3322 ieee80211_add_meshlmetric(uint8_t *frm, uint8_t flags, uint32_t metric)
3324 *frm++ = IEEE80211_ELEMID_MESHLINK;
3325 *frm++ = 5;
3326 *frm++ = flags;
3327 ADDWORD(frm, metric);
3328 return frm;
3335 ieee80211_add_meshgate(uint8_t *frm, struct ieee80211_meshgann_ie *ie)
3337 *frm++ = IEEE80211_ELEMID_MESHGANN; /* ie */
3338 *frm++ = IEEE80211_MESHGANN_BASE_SZ; /* len */
3339 *frm++ = ie->gann_flags;
3340 *frm++ = ie->gann_hopcount;
3341 *frm++ = ie->gann_ttl;
3342 IEEE80211_ADDR_COPY(frm, ie->gann_addr);
3343 frm += 6;
3344 ADDWORD(frm, ie->gann_seq);
3345 ADDSHORT(frm, ie->gann_interval);
3346 return frm;