PERFORCE change 46380 for review
Sam Leffler
sam at FreeBSD.org
Mon Feb 2 14:49:35 PST 2004
http://perforce.freebsd.org/chv.cgi?CH=46380
Change 46380 by sam at sam_ebb on 2004/02/02 14:48:53
beacons may have dtim or atim dependiny on whether they are
for ibss or ap operation; change various names to be agnostic
Affected files ...
.. //depot/projects/netperf+sockets/sys/net80211/ieee80211_output.c#14 edit
.. //depot/projects/netperf+sockets/sys/net80211/ieee80211_proto.h#6 edit
.. //depot/projects/netperf+sockets/sys/net80211/ieee80211_var.h#9 edit
Differences ...
==== //depot/projects/netperf+sockets/sys/net80211/ieee80211_output.c#14 (text+ko) ====
@@ -687,6 +687,7 @@
pktlen += 3; /* ERP information element */
if (rs->rs_nrates > IEEE80211_RATE_SIZE)
pktlen += 2; /* extended rate set */
+ /* XXX may be better to just allocate a max-sized buffer */
m = ieee80211_getmgtframe(&frm, pktlen);
if (m == NULL) {
IEEE80211_DPRINTF(ic, IEEE80211_MSG_ANY,
@@ -733,14 +734,13 @@
*frm++ = 1;
*frm++ = ieee80211_chan2ieee(ic, ni->ni_chan);
}
+ bo->bo_tim = frm;
if (ic->ic_opmode == IEEE80211_M_IBSS) {
*frm++ = IEEE80211_ELEMID_IBSSPARMS;
*frm++ = 2;
*frm++ = 0; *frm++ = 0; /* TODO: ATIM window */
- bo->bo_dtim = NULL;
- bo->bo_dtim_len = 0;
+ bo->bo_tim_len = 4;
} else {
- bo->bo_dtim = frm;
/* TODO: TIM */
*frm++ = IEEE80211_ELEMID_TIM;
*frm++ = 4; /* length */
@@ -748,7 +748,7 @@
*frm++ = 1; /* DTIM period */
*frm++ = 0; /* bitmap control */
*frm++ = 0; /* Partial Virtual Bitmap (variable length) */
- bo->bo_dtim_len = 6;
+ bo->bo_tim_len = 6;
}
if (ic->ic_curmode == IEEE80211_MODE_11G)
frm = ieee80211_add_erp(frm, ic);
@@ -787,16 +787,18 @@
capinfo |= IEEE80211_CAPINFO_SHORT_SLOTTIME;
*bo->bo_caps = htole16(capinfo);
- if (ic->ic_flags & IEEE80211_F_DTIMUPDATE) {
+ if (ic->ic_flags & IEEE80211_F_TIMUPDATE) {
/*
- * DTIM needs updating. If it fits in the current
- * space allocated then just copy in the new bits.
- * Otherwise we need to move any extended rate set
- * the follows and, possibly, allocate a new mbuf
- * if the this current mbuf isn't large enough.
+ * ATIM/DTIM needs updating. If it fits in the
+ * current space allocated then just copy in the
+ * new bits. Otherwise we need to move any extended
+ * rate set the follows and, possibly, allocate a
+ * new buffer if the this current one isn't large
+ * enough. XXX It may be better to just allocate
+ * a max-sized buffer so we don't re-allocate.
*/
/* XXX fillin */
- ic->ic_flags &= ~IEEE80211_F_DTIMUPDATE;
+ ic->ic_flags &= ~IEEE80211_F_TIMUPDATE;
}
return 0;
}
==== //depot/projects/netperf+sockets/sys/net80211/ieee80211_proto.h#6 (text+ko) ====
@@ -87,12 +87,12 @@
*/
struct ieee80211_beacon_offsets {
u_int16_t *bo_caps; /* capabilities */
- u_int8_t *bo_dtim; /* start of dtim */
+ u_int8_t *bo_tim; /* start of atim/dtim */
u_int8_t *bo_xrates; /* start of extended rates */
- u_int16_t bo_dtim_len; /* dtim length in bytes */
+ u_int16_t bo_tim_len; /* atim/dtim length in bytes */
u_int16_t bo_xrates_len; /* xrates length in bytes */
};
-extern struct mbuf * ieee80211_beacon_alloc(struct ieee80211com *,
+extern struct mbuf *ieee80211_beacon_alloc(struct ieee80211com *,
struct ieee80211_node *, struct ieee80211_beacon_offsets *);
extern int ieee80211_beacon_update(struct ieee80211com *,
struct ieee80211_node *, struct ieee80211_beacon_offsets *,
==== //depot/projects/netperf+sockets/sys/net80211/ieee80211_var.h#9 (text+ko) ====
@@ -263,7 +263,7 @@
#define IEEE80211_F_DATAPAD 0x00080000 /* CONF: do alignment pad */
#define IEEE80211_F_USEPROT 0x00100000 /* STATUS: protection enabled */
#define IEEE80211_F_USEBARKER 0x00200000 /* STATUS: use barker preamble*/
-#define IEEE80211_F_DTIMUPDATE 0x00400000 /* STATUS: update beacon dtim */
+#define IEEE80211_F_TIMUPDATE 0x00400000 /* STATUS: update beacon tim */
/* ic_caps */
#define IEEE80211_C_WEP 0x00000001 /* CAPABILITY: WEP available */
More information about the p4-projects
mailing list