Lines Matching defs:preq

284 	struct ieee80211_meshpreq_ie preq;
307 memcpy(&preq, mpreq, sizeof(preq));
308 preq.preq_id = LE_READ_4(&mpreq->preq_id);
309 preq.preq_origseq = LE_READ_4(&mpreq->preq_origseq);
310 preq.preq_lifetime = LE_READ_4(&mpreq->preq_lifetime);
311 preq.preq_metric = LE_READ_4(&mpreq->preq_metric);
312 preq.preq_targets[0].target_seq =
314 hwmp_recv_preq(vap, ni, wh, &preq);
492 hwmp_add_meshpreq(uint8_t *frm, const struct ieee80211_meshpreq_ie *preq)
498 (preq->preq_tcount - 1) * sizeof(*preq->preq_targets);
499 *frm++ = preq->preq_flags;
500 *frm++ = preq->preq_hopcount;
501 *frm++ = preq->preq_ttl;
502 ADDWORD(frm, preq->preq_id);
503 IEEE80211_ADDR_COPY(frm, preq->preq_origaddr); frm += 6;
504 ADDWORD(frm, preq->preq_origseq);
505 ADDWORD(frm, preq->preq_lifetime);
506 ADDWORD(frm, preq->preq_metric);
507 *frm++ = preq->preq_tcount;
508 for (i = 0; i < preq->preq_tcount; i++) {
509 *frm++ = preq->preq_targets[i].target_flags;
510 IEEE80211_ADDR_COPY(frm, preq->preq_targets[i].target_addr);
512 ADDWORD(frm, preq->preq_targets[i].target_seq);
602 #define PREQ_TFLAGS(n) preq.preq_targets[n].target_flags
603 #define PREQ_TADDR(n) preq.preq_targets[n].target_addr
604 #define PREQ_TSEQ(n) preq.preq_targets[n].target_seq
611 struct ieee80211_meshpreq_ie preq;
616 preq.preq_flags = IEEE80211_MESHPREQ_FLAGS_AM;
618 preq.preq_flags |= IEEE80211_MESHPREQ_FLAGS_PR;
620 preq.preq_flags |= IEEE80211_MESHPREQ_FLAGS_PP;
621 preq.preq_hopcount = 0;
622 preq.preq_ttl = ms->ms_ttl;
623 preq.preq_id = ++hs->hs_preqid;
624 IEEE80211_ADDR_COPY(preq.preq_origaddr, vap->iv_myaddr);
625 preq.preq_origseq = ++hs->hs_seq;
626 preq.preq_lifetime = ticks_to_msecs(ieee80211_hwmp_roottimeout);
627 preq.preq_metric = IEEE80211_MESHLMETRIC_INITIALVAL;
628 preq.preq_tcount = 1;
634 hwmp_send_preq(vap->iv_bss, vap->iv_myaddr, broadcastaddr, &preq);
670 #define PREQ_TFLAGS(n) preq->preq_targets[n].target_flags
671 #define PREQ_TADDR(n) preq->preq_targets[n].target_addr
672 #define PREQ_TSEQ(n) preq->preq_targets[n].target_seq
675 const struct ieee80211_frame *wh, const struct ieee80211_meshpreq_ie *preq)
691 if (IEEE80211_ADDR_EQ(vap->iv_myaddr, preq->preq_origaddr))
695 "received PREQ, source %s", ether_sprintf(preq->preq_origaddr));
704 preq->preq_origaddr, NULL, "%s", "not accepting PREQ");
707 rtorig = ieee80211_mesh_rt_find(vap, preq->preq_origaddr);
709 rtorig = ieee80211_mesh_rt_add(vap, preq->preq_origaddr);
718 if (HWMP_SEQ_LEQ(preq->preq_id, hrorig->hr_preqid) &&
719 HWMP_SEQ_LEQ(preq->preq_origseq, hrorig->hr_seq)) {
722 ether_sprintf(preq->preq_origaddr),
723 preq->preq_origseq, hrorig->hr_seq);
726 hrorig->hr_preqid = preq->preq_id;
727 hrorig->hr_seq = preq->preq_origseq;
734 "reply to %s", ether_sprintf(preq->preq_origaddr));
743 prep.prep_lifetime = preq->preq_lifetime;
745 IEEE80211_ADDR_COPY(prep.prep_origaddr, preq->preq_origaddr);
746 prep.prep_origseq = preq->preq_origseq;
751 rt = ieee80211_mesh_rt_find(vap, preq->preq_origaddr);
753 hwmp_discover(vap, preq->preq_origaddr, NULL);
768 IEEE80211_ADDR_COPY(rootmac, preq->preq_origaddr);
788 (preq->preq_flags & IEEE80211_MESHPREQ_FLAGS_PP)) {
793 prep.prep_origseq = preq->preq_origseq;
794 prep.prep_lifetime = preq->preq_lifetime;
810 if (preq->preq_tcount == 1) {
813 memcpy(&ppreq, preq, sizeof(ppreq));
819 if (preq->preq_ttl > 1 &&
820 preq->preq_hopcount < hs->hs_maxhops) {
823 ether_sprintf(preq->preq_origaddr));
851 ether_sprintf(preq->preq_origaddr));
858 prep.prep_lifetime = preq->preq_lifetime;
862 preq->preq_origaddr);
871 } else if (preq->preq_ttl > 1 &&
872 preq->preq_hopcount < hs->hs_maxhops) {
883 rt->rt_metric = preq->preq_metric;
884 rt->rt_lifetime = preq->preq_lifetime;
887 hrorig->hr_seq = preq->preq_origseq;
888 hrorig->hr_preqid = preq->preq_id;
892 ether_sprintf(preq->preq_origaddr));
910 struct ieee80211_meshpreq_ie *preq)
922 * mesh preq action frame format
930 preq->preq_ie = IEEE80211_ELEMID_MESHPREQ;
931 return hwmp_send_action(ni, sa, da, (uint8_t *)preq,
1281 #define PREQ_TFLAGS(n) preq.preq_targets[n].target_flags
1282 #define PREQ_TADDR(n) preq.preq_targets[n].target_addr
1283 #define PREQ_TSEQ(n) preq.preq_targets[n].target_seq
1292 struct ieee80211_meshpreq_ie preq;
1323 /* XXX check preq retries */
1332 preq.preq_flags = 0;
1333 preq.preq_hopcount = 0;
1334 preq.preq_ttl = ms->ms_ttl;
1335 preq.preq_id = ++hs->hs_preqid;
1336 IEEE80211_ADDR_COPY(preq.preq_origaddr, vap->iv_myaddr);
1337 preq.preq_origseq = hr->hr_origseq;
1338 preq.preq_lifetime = rt->rt_lifetime;
1339 preq.preq_metric = rt->rt_metric;
1340 preq.preq_tcount = 1;
1351 broadcastaddr, &preq);