• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/net80211/

Lines Matching defs:preq

169     "maximum number of preq retries");
399 struct ieee80211_meshpreq_ie *preq;
421 preq = IEEE80211_MALLOC(sizeof(*preq) +
422 (ndest - 1) * sizeof(*preq->preq_targets),
425 KASSERT(preq != NULL, ("preq == NULL"));
427 preq->preq_ie = *iefrm_t++;
428 preq->preq_len = *iefrm_t++;
429 preq->preq_flags = *iefrm_t++;
430 preq->preq_hopcount = *iefrm_t++;
431 preq->preq_ttl = *iefrm_t++;
432 preq->preq_id = le32dec(iefrm_t); iefrm_t += 4;
433 IEEE80211_ADDR_COPY(preq->preq_origaddr, iefrm_t);
435 preq->preq_origseq = le32dec(iefrm_t); iefrm_t += 4;
437 if (preq->preq_flags & IEEE80211_MESHPREQ_FLAGS_AE) {
439 preq->preq_orig_ext_addr, iefrm_t);
442 preq->preq_lifetime = le32dec(iefrm_t); iefrm_t += 4;
443 preq->preq_metric = le32dec(iefrm_t); iefrm_t += 4;
444 preq->preq_tcount = *iefrm_t++;
446 for (i = 0; i < preq->preq_tcount; i++) {
447 preq->preq_targets[i].target_flags = *iefrm_t++;
449 preq->preq_targets[i].target_addr, iefrm_t);
451 preq->preq_targets[i].target_seq =
456 hwmp_recv_preq(vap, ni, wh, preq);
457 IEEE80211_FREE(preq, M_80211_MESH_PREQ);
684 #define PREQ_TFLAGS(n) preq->preq_targets[n].target_flags
685 #define PREQ_TADDR(n) preq->preq_targets[n].target_addr
686 #define PREQ_TSEQ(n) preq->preq_targets[n].target_seq
688 hwmp_add_meshpreq(uint8_t *frm, const struct ieee80211_meshpreq_ie *preq)
693 *frm++ = preq->preq_len; /* len already calculated */
694 *frm++ = preq->preq_flags;
695 *frm++ = preq->preq_hopcount;
696 *frm++ = preq->preq_ttl;
697 ADDWORD(frm, preq->preq_id);
698 IEEE80211_ADDR_COPY(frm, preq->preq_origaddr); frm += 6;
699 ADDWORD(frm, preq->preq_origseq);
700 if (preq->preq_flags & IEEE80211_MESHPREQ_FLAGS_AE) {
701 IEEE80211_ADDR_COPY(frm, preq->preq_orig_ext_addr);
704 ADDWORD(frm, preq->preq_lifetime);
705 ADDWORD(frm, preq->preq_metric);
706 *frm++ = preq->preq_tcount;
707 for (i = 0; i < preq->preq_tcount; i++) {
826 #define PREQ_TFLAGS(n) preq.preq_targets[n].target_flags
827 #define PREQ_TADDR(n) preq.preq_targets[n].target_addr
828 #define PREQ_TSEQ(n) preq.preq_targets[n].target_seq
835 struct ieee80211_meshpreq_ie preq;
840 preq.preq_flags = 0;
842 preq.preq_flags |= IEEE80211_MESHPREQ_FLAGS_GATE;
844 preq.preq_flags |= IEEE80211_MESHPREQ_FLAGS_PP;
845 preq.preq_hopcount = 0;
846 preq.preq_ttl = ms->ms_ttl;
847 preq.preq_id = ++hs->hs_preqid;
848 IEEE80211_ADDR_COPY(preq.preq_origaddr, vap->iv_myaddr);
849 preq.preq_origseq = ++hs->hs_seq;
850 preq.preq_lifetime = ticks_to_msecs(ieee80211_hwmp_roottimeout);
851 preq.preq_metric = IEEE80211_MESHLMETRIC_INITIALVAL;
852 preq.preq_tcount = 1;
859 hwmp_send_preq(vap, broadcastaddr, &preq, NULL, NULL);
935 #define PREQ_TFLAGS(n) preq->preq_targets[n].target_flags
936 #define PREQ_TADDR(n) preq->preq_targets[n].target_addr
937 #define PREQ_TSEQ(n) preq->preq_targets[n].target_seq
940 const struct ieee80211_frame *wh, const struct ieee80211_meshpreq_ie *preq)
956 if (IEEE80211_ADDR_EQ(vap->iv_myaddr, preq->preq_origaddr))
960 "received PREQ, orig %6D, targ(0) %6D", preq->preq_origaddr, ":",
976 preq->preq_origaddr, NULL, "%s", "not accepting PREQ");
987 if(preq->preq_flags & IEEE80211_MESHPREQ_FLAGS_AM &&
991 preq->preq_origaddr, NULL,
999 rtorig = ieee80211_mesh_rt_find(vap, preq->preq_origaddr);
1001 rtorig = ieee80211_mesh_rt_add(vap, preq->preq_origaddr);
1005 preq->preq_origaddr, ":");
1010 "adding originator %6D", preq->preq_origaddr, ":");
1016 hrorig->hr_preqid = HWMP_SEQ_MAX(hrorig->hr_preqid, preq->preq_id);
1021 metric = preq->preq_metric + ms->ms_pmetric->mpm_metric(ni);
1022 if (HWMP_SEQ_GT(preq->preq_origseq, hrorig->hr_seq) ||
1023 (HWMP_SEQ_EQ(preq->preq_origseq, hrorig->hr_seq) &&
1025 hrorig->hr_seq = preq->preq_origseq;
1028 rtorig->rt_nhops = preq->preq_hopcount + 1;
1029 ieee80211_mesh_rt_update(rtorig, preq->preq_lifetime);
1038 preqid >= preq->preq_id)) {
1042 preq->preq_origaddr, ":",
1043 preq->preq_origseq, hrorig->hr_seq,
1044 preq->preq_id, preqid);
1065 * number with max of (current and preq->seq) + 1
1091 prep.prep_lifetime = preq->preq_lifetime;
1092 IEEE80211_ADDR_COPY(prep.prep_origaddr, preq->preq_origaddr);
1093 prep.prep_origseq = preq->preq_origseq;
1096 "reply to %6D", preq->preq_origaddr, ":");
1101 else if (preq->preq_flags & IEEE80211_MESHPREQ_FLAGS_AE) {
1103 ieee80211_mesh_rt_find(vap, preq->preq_orig_ext_addr);
1106 preq->preq_orig_ext_addr);
1110 preq->preq_orig_ext_addr, ":");
1115 preq->preq_origaddr);
1117 rtorig_ext->rt_ext_seq = preq->preq_origseq;
1118 ieee80211_mesh_rt_update(rtorig_ext, preq->preq_lifetime);
1127 "root mesh station @ %6D", preq->preq_origaddr, ":");
1130 if (preq->preq_flags & IEEE80211_MESHPREQ_FLAGS_GATE) {
1134 gr = ieee80211_mesh_mark_gate(vap, preq->preq_origaddr,
1144 (preq->preq_flags & IEEE80211_MESHPREQ_FLAGS_PP)) {
1151 preq->preq_origaddr);
1152 prep.prep_origseq = preq->preq_origseq;
1153 prep.prep_lifetime = preq->preq_lifetime;
1165 if ((preq->preq_tcount == 1) && (preq->preq_ttl > 1) &&
1169 memcpy(&ppreq, preq, sizeof(ppreq));
1189 preq->preq_origaddr, ":");
1196 prep.prep_lifetime = preq->preq_lifetime;
1199 preq->preq_origaddr);
1214 preq->preq_origaddr, ":");
1230 struct ieee80211_meshpreq_ie *preq,
1245 * mesh preq action frame format
1253 preq->preq_ie = IEEE80211_ELEMID_MESHPREQ;
1254 preq->preq_len = (preq->preq_flags & IEEE80211_MESHPREQ_FLAGS_AE ?
1256 preq->preq_tcount * IEEE80211_MESHPREQ_TRGT_SZ;
1257 return hwmp_send_action(vap, da, (uint8_t *)preq, preq->preq_len+2);
1740 struct ieee80211_meshpreq_ie preq;
1795 preq.preq_flags = IEEE80211_MESHPREQ_FLAGS_AM;
1796 preq.preq_hopcount = 0;
1797 preq.preq_ttl = ms->ms_ttl;
1798 preq.preq_id = 0; /* reserved */
1799 IEEE80211_ADDR_COPY(preq.preq_origaddr, vap->iv_myaddr);
1800 preq.preq_origseq = ++hs->hs_seq;
1801 preq.preq_lifetime = ieee80211_hwmp_roottimeout;
1802 preq.preq_metric = IEEE80211_MESHLMETRIC_INITIALVAL;
1803 preq.preq_tcount = 1;
1804 preq.preq_targets[0].target_flags = IEEE80211_MESHPREQ_TFLAGS_TO;
1806 IEEE80211_ADDR_COPY(preq.preq_targets[0].target_addr, rann->rann_addr);
1807 preq.preq_targets[0].target_seq = rann->rann_seq;
1808 /* XXX: if rootconfint have not passed, we built this preq in vain */
1809 hwmp_send_preq(vap, wh->i_addr2, &preq, &hr->hr_lastrootconf,
1844 #define PREQ_TFLAGS(n) preq.preq_targets[n].target_flags
1845 #define PREQ_TADDR(n) preq.preq_targets[n].target_addr
1846 #define PREQ_TSEQ(n) preq.preq_targets[n].target_seq
1855 struct ieee80211_meshpreq_ie preq; /* Optimize: storing first preq? */
1880 preq.preq_flags = 0;
1881 preq.preq_hopcount = 0;
1882 preq.preq_ttl = ms->ms_ttl;
1883 preq.preq_id = ++hs->hs_preqid;
1884 IEEE80211_ADDR_COPY(preq.preq_origaddr, vap->iv_myaddr);
1885 preq.preq_origseq = hr->hr_origseq;
1886 preq.preq_lifetime = ticks_to_msecs(ieee80211_hwmp_pathtimeout);
1887 preq.preq_metric = IEEE80211_MESHLMETRIC_INITIALVAL;
1888 preq.preq_tcount = 1;
1896 hwmp_send_preq(vap, broadcastaddr, &preq, &hr->hr_lastpreq,
1911 struct ieee80211_meshpreq_ie preq;
1976 preq.preq_flags = 0;
1977 preq.preq_hopcount = 0;
1978 preq.preq_ttl = ms->ms_ttl;
1979 preq.preq_id = ++hs->hs_preqid;
1980 IEEE80211_ADDR_COPY(preq.preq_origaddr, vap->iv_myaddr);
1981 preq.preq_origseq = hr->hr_origseq;
1982 preq.preq_lifetime =
1984 preq.preq_metric = IEEE80211_MESHLMETRIC_INITIALVAL;
1985 preq.preq_tcount = 1;
1993 hwmp_send_preq(vap, broadcastaddr, &preq,