summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211_hwmp.c
diff options
context:
space:
mode:
authoravos <avos@FreeBSD.org>2016-04-20 18:29:30 +0000
committeravos <avos@FreeBSD.org>2016-04-20 18:29:30 +0000
commita5ff8b0e316b83f9374254420658df1268d03b44 (patch)
treece3eab7ed45b044ec959a1de503b72ca6e18f182 /sys/net80211/ieee80211_hwmp.c
parentdc8641835532430d191452e0ceeb8e5f5fca65bd (diff)
downloadFreeBSD-src-a5ff8b0e316b83f9374254420658df1268d03b44.zip
FreeBSD-src-a5ff8b0e316b83f9374254420658df1268d03b44.tar.gz
net80211: replace internal LE_READ_*/LE_WRITE_* macro with system
le*dec / le*enc functions. Replace net80211 specific macros with system-wide bytestream encoding/decoding functions: - LE_READ_2 -> le16dec - LE_READ_4 -> le32dec - LE_WRITE_2 -> le16enc - LE_WRITE_4 -> le32enc + drop ieee80211_input.h include, where it was included for these operations only. Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D6030
Diffstat (limited to 'sys/net80211/ieee80211_hwmp.c')
-rw-r--r--sys/net80211/ieee80211_hwmp.c45
1 files changed, 16 insertions, 29 deletions
diff --git a/sys/net80211/ieee80211_hwmp.c b/sys/net80211/ieee80211_hwmp.c
index 0c920d8..cfc7759 100644
--- a/sys/net80211/ieee80211_hwmp.c
+++ b/sys/net80211/ieee80211_hwmp.c
@@ -118,18 +118,6 @@ static void hwmp_peerdown(struct ieee80211_node *);
static struct timeval ieee80211_hwmp_preqminint = { 0, 100000 };
static struct timeval ieee80211_hwmp_perrminint = { 0, 100000 };
-/* unalligned little endian access */
-#define LE_WRITE_2(p, v) do { \
- ((uint8_t *)(p))[0] = (v) & 0xff; \
- ((uint8_t *)(p))[1] = ((v) >> 8) & 0xff; \
-} while (0)
-#define LE_WRITE_4(p, v) do { \
- ((uint8_t *)(p))[0] = (v) & 0xff; \
- ((uint8_t *)(p))[1] = ((v) >> 8) & 0xff; \
- ((uint8_t *)(p))[2] = ((v) >> 16) & 0xff; \
- ((uint8_t *)(p))[3] = ((v) >> 24) & 0xff; \
-} while (0)
-
/* NB: the Target Address set in a Proactive PREQ is the broadcast address. */
static const uint8_t broadcastaddr[IEEE80211_ADDR_LEN] =
@@ -440,18 +428,18 @@ hwmp_recv_action_meshpath(struct ieee80211_node *ni,
preq->preq_flags = *iefrm_t++;
preq->preq_hopcount = *iefrm_t++;
preq->preq_ttl = *iefrm_t++;
- preq->preq_id = LE_READ_4(iefrm_t); iefrm_t += 4;
+ preq->preq_id = le32dec(iefrm_t); iefrm_t += 4;
IEEE80211_ADDR_COPY(preq->preq_origaddr, iefrm_t);
iefrm_t += 6;
- preq->preq_origseq = LE_READ_4(iefrm_t); iefrm_t += 4;
+ preq->preq_origseq = le32dec(iefrm_t); iefrm_t += 4;
/* NB: may have Originator Proxied Address */
if (preq->preq_flags & IEEE80211_MESHPREQ_FLAGS_AE) {
IEEE80211_ADDR_COPY(
preq->preq_orig_ext_addr, iefrm_t);
iefrm_t += 6;
}
- preq->preq_lifetime = LE_READ_4(iefrm_t); iefrm_t += 4;
- preq->preq_metric = LE_READ_4(iefrm_t); iefrm_t += 4;
+ preq->preq_lifetime = le32dec(iefrm_t); iefrm_t += 4;
+ preq->preq_metric = le32dec(iefrm_t); iefrm_t += 4;
preq->preq_tcount = *iefrm_t++;
for (i = 0; i < preq->preq_tcount; i++) {
@@ -460,7 +448,7 @@ hwmp_recv_action_meshpath(struct ieee80211_node *ni,
preq->preq_targets[i].target_addr, iefrm_t);
iefrm_t += 6;
preq->preq_targets[i].target_seq =
- LE_READ_4(iefrm_t);
+ le32dec(iefrm_t);
iefrm_t += 4;
}
@@ -489,18 +477,18 @@ hwmp_recv_action_meshpath(struct ieee80211_node *ni,
prep->prep_ttl = *iefrm_t++;
IEEE80211_ADDR_COPY(prep->prep_targetaddr, iefrm_t);
iefrm_t += 6;
- prep->prep_targetseq = LE_READ_4(iefrm_t); iefrm_t += 4;
+ prep->prep_targetseq = le32dec(iefrm_t); iefrm_t += 4;
/* NB: May have Target Proxied Address */
if (prep->prep_flags & IEEE80211_MESHPREP_FLAGS_AE) {
IEEE80211_ADDR_COPY(
prep->prep_target_ext_addr, iefrm_t);
iefrm_t += 6;
}
- prep->prep_lifetime = LE_READ_4(iefrm_t); iefrm_t += 4;
- prep->prep_metric = LE_READ_4(iefrm_t); iefrm_t += 4;
+ prep->prep_lifetime = le32dec(iefrm_t); iefrm_t += 4;
+ prep->prep_metric = le32dec(iefrm_t); iefrm_t += 4;
IEEE80211_ADDR_COPY(prep->prep_origaddr, iefrm_t);
iefrm_t += 6;
- prep->prep_origseq = LE_READ_4(iefrm_t); iefrm_t += 4;
+ prep->prep_origseq = le32dec(iefrm_t); iefrm_t += 4;
hwmp_recv_prep(vap, ni, wh, prep);
IEEE80211_FREE(prep, M_80211_MESH_PREP);
@@ -533,7 +521,7 @@ hwmp_recv_action_meshpath(struct ieee80211_node *ni,
IEEE80211_ADDR_COPY(
perr->perr_dests[i].dest_addr, iefrm_t);
iefrm_t += 6;
- perr->perr_dests[i].dest_seq = LE_READ_4(iefrm_t);
+ perr->perr_dests[i].dest_seq = le32dec(iefrm_t);
iefrm_t += 4;
/* NB: May have Target Proxied Address */
if (perr->perr_dests[i].dest_flags &
@@ -544,7 +532,7 @@ hwmp_recv_action_meshpath(struct ieee80211_node *ni,
iefrm_t += 6;
}
perr->perr_dests[i].dest_rcode =
- LE_READ_2(iefrm_t);
+ le16dec(iefrm_t);
iefrm_t += 2;
}
@@ -566,9 +554,9 @@ hwmp_recv_action_meshpath(struct ieee80211_node *ni,
return 1;
}
memcpy(&rann, mrann, sizeof(rann));
- rann.rann_seq = LE_READ_4(&mrann->rann_seq);
- rann.rann_interval = LE_READ_4(&mrann->rann_interval);
- rann.rann_metric = LE_READ_4(&mrann->rann_metric);
+ rann.rann_seq = le32dec(&mrann->rann_seq);
+ rann.rann_interval = le32dec(&mrann->rann_interval);
+ rann.rann_metric = le32dec(&mrann->rann_metric);
hwmp_recv_rann(vap, ni, wh, &rann);
found++;
break;
@@ -682,12 +670,11 @@ hwmp_send_action(struct ieee80211vap *vap,
}
#define ADDSHORT(frm, v) do { \
- frm[0] = (v) & 0xff; \
- frm[1] = (v) >> 8; \
+ le16enc(frm, v); \
frm += 2; \
} while (0)
#define ADDWORD(frm, v) do { \
- LE_WRITE_4(frm, v); \
+ le32enc(frm, v); \
frm += 4; \
} while (0)
/*
OpenPOWER on IntegriCloud