Lines Matching defs:frm

1837 	uint8_t *frm, *efrm;
1840 frm = (uint8_t *)&wh[1];
2002 while (efrm - frm > 1) {
2003 IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2, return);
2004 switch (*frm) {
2006 ssid = frm;
2009 rates = frm;
2012 xrates = frm;
2015 meshid = frm;
2018 frm += frm[1] + 2;
2063 (void)ic->ic_recv_action(ni, wh, frm, efrm);
2106 const uint8_t *frm, const uint8_t *efrm,
2116 while (efrm - frm > 1) {
2117 IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2, return NULL);
2118 switch (*frm) {
2120 meshid = frm;
2123 meshconf = frm;
2126 mpie = (const struct ieee80211_meshpeer_ie *) frm;
2153 frm += frm[1] + 2;
2235 const uint8_t *frm, const uint8_t *efrm)
2244 meshpeer = mesh_parse_meshpeering_action(ni, wh, frm+2+2, efrm, &ie,
2383 const uint8_t *frm, const uint8_t *efrm)
2391 meshpeer = mesh_parse_meshpeering_action(ni, wh, frm+2+2+2+2, efrm, &ie,
2447 const uint8_t *frm, const uint8_t *efrm)
2454 meshpeer = mesh_parse_meshpeering_action(ni, wh, frm+2, efrm, &ie,
2501 const uint8_t *frm, const uint8_t *efrm)
2505 (frm+2); /* action + code */
2527 struct ieee80211_meshgann_ie *ie, const uint8_t *frm, const uint8_t *efrm)
2532 while (efrm - frm > 1) {
2533 IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2, return -1);
2534 switch (*frm) {
2536 gannie = (const struct ieee80211_meshgann_ie *) frm;
2548 frm += frm[1] + 2;
2560 const uint8_t *frm, const uint8_t *efrm)
2571 if (mesh_parse_meshgate_action(ni, wh, &ie, frm+2, efrm) != 0) {
2695 #define ADDSHORT(frm, v) do { \
2696 frm[0] = (v) & 0xff; \
2697 frm[1] = (v) >> 8; \
2698 frm += 2; \
2700 #define ADDWORD(frm, v) do { \
2701 frm[0] = (v) & 0xff; \
2702 frm[1] = ((v) >> 8) & 0xff; \
2703 frm[2] = ((v) >> 16) & 0xff; \
2704 frm[3] = ((v) >> 24) & 0xff; \
2705 frm += 4; \
2717 uint8_t *frm;
2727 m = ieee80211_getmgtframe(&frm,
2749 *frm++ = category;
2750 *frm++ = action;
2751 ADDSHORT(frm, ieee80211_getcapinfo(vap, ni->ni_chan));
2753 frm = ieee80211_add_rates(frm, rs);
2754 frm = ieee80211_add_xrates(frm, rs);
2755 frm = ieee80211_add_meshid(frm, vap);
2756 frm = ieee80211_add_meshconf(frm, vap);
2757 frm = ieee80211_add_meshpeer(frm, IEEE80211_ACTION_MESHPEERING_OPEN,
2759 m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *);
2777 uint8_t *frm;
2788 m = ieee80211_getmgtframe(&frm,
2814 *frm++ = category;
2815 *frm++ = action;
2816 ADDSHORT(frm, ieee80211_getcapinfo(vap, ni->ni_chan));
2817 ADDSHORT(frm, 0); /* status code */
2818 ADDSHORT(frm, args[1]); /* AID */
2820 frm = ieee80211_add_rates(frm, rs);
2821 frm = ieee80211_add_xrates(frm, rs);
2822 frm = ieee80211_add_meshid(frm, vap);
2823 frm = ieee80211_add_meshconf(frm, vap);
2824 frm = ieee80211_add_meshpeer(frm,
2827 m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *);
2844 uint8_t *frm;
2855 m = ieee80211_getmgtframe(&frm,
2870 *frm++ = category;
2871 *frm++ = action;
2872 frm = ieee80211_add_meshid(frm, vap);
2873 frm = ieee80211_add_meshpeer(frm,
2876 m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *);
2893 uint8_t *frm;
2908 m = ieee80211_getmgtframe(&frm,
2920 *frm++ = category;
2921 *frm++ = action;
2922 frm = ieee80211_add_meshlmetric(frm,
2924 m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *);
2941 uint8_t *frm;
2948 m = ieee80211_getmgtframe(&frm,
2960 *frm++ = category;
2961 *frm++ = action;
2962 frm = ieee80211_add_meshgate(frm, ie);
2963 m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *);
3185 ieee80211_add_meshid(uint8_t *frm, struct ieee80211vap *vap)
3191 *frm++ = IEEE80211_ELEMID_MESHID;
3192 *frm++ = ms->ms_idlen;
3193 memcpy(frm, ms->ms_id, ms->ms_idlen);
3194 return frm + ms->ms_idlen;
3203 ieee80211_add_meshconf(uint8_t *frm, struct ieee80211vap *vap)
3210 *frm++ = IEEE80211_ELEMID_MESHCONF;
3211 *frm++ = IEEE80211_MESH_CONF_SZ;
3212 *frm++ = ms->ms_ppath->mpp_ie; /* path selection */
3213 *frm++ = ms->ms_pmetric->mpm_ie; /* link metric */
3214 *frm++ = IEEE80211_MESHCONF_CC_DISABLED;
3215 *frm++ = IEEE80211_MESHCONF_SYNC_NEIGHOFF;
3216 *frm++ = IEEE80211_MESHCONF_AUTH_DISABLED;
3218 *frm = (ms->ms_neighbors > IEEE80211_MESH_MAX_NEIGHBORS ?
3221 *frm |= IEEE80211_MESHCONF_FORM_GATE;
3222 frm += 1;
3228 *frm++ = caps;
3229 return frm;
3236 ieee80211_add_meshpeer(uint8_t *frm, uint8_t subtype, uint16_t localid,
3242 *frm++ = IEEE80211_ELEMID_MESHPEER;
3245 *frm++ = IEEE80211_MPM_BASE_SZ; /* length */
3246 ADDSHORT(frm, IEEE80211_MPPID_MPM); /* proto */
3247 ADDSHORT(frm, localid); /* local ID */
3251 *frm++ = IEEE80211_MPM_BASE_SZ + 2; /* length */
3252 ADDSHORT(frm, IEEE80211_MPPID_MPM); /* proto */
3253 ADDSHORT(frm, localid); /* local ID */
3254 ADDSHORT(frm, peerid); /* peer ID */
3258 *frm++ = IEEE80211_MPM_MAX_SZ; /* length */
3260 *frm++ = IEEE80211_MPM_BASE_SZ + 2; /* length */
3261 ADDSHORT(frm, IEEE80211_MPPID_MPM); /* proto */
3262 ADDSHORT(frm, localid); /* local ID */
3264 ADDSHORT(frm, peerid); /* peer ID */
3265 ADDSHORT(frm, reason);
3268 return frm;
3321 ieee80211_add_meshlmetric(uint8_t *frm, uint8_t flags, uint32_t metric)
3323 *frm++ = IEEE80211_ELEMID_MESHLINK;
3324 *frm++ = 5;
3325 *frm++ = flags;
3326 ADDWORD(frm, metric);
3327 return frm;
3334 ieee80211_add_meshgate(uint8_t *frm, struct ieee80211_meshgann_ie *ie)
3336 *frm++ = IEEE80211_ELEMID_MESHGANN; /* ie */
3337 *frm++ = IEEE80211_MESHGANN_BASE_SZ; /* len */
3338 *frm++ = ie->gann_flags;
3339 *frm++ = ie->gann_hopcount;
3340 *frm++ = ie->gann_ttl;
3341 IEEE80211_ADDR_COPY(frm, ie->gann_addr);
3342 frm += 6;
3343 ADDWORD(frm, ie->gann_seq);
3344 ADDSHORT(frm, ie->gann_interval);
3345 return frm;