ieee80211_output.c (7f7ecba47e4a91e62d384d0e833b250de0fac2f4) ieee80211_output.c (b83d21129e2c1b322a257c43bad08ee796378ede)
1/*-
2 * Copyright (c) 2001 Atsushi Onoe
3 * Copyright (c) 2002, 2003 Sam Leffler, Errno Consulting
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 349 unchanged lines hidden (view full) ---

358 case IEEE80211_FC0_SUBTYPE_PROBE_RESP:
359 /*
360 * probe response frame format
361 * [8] time stamp
362 * [2] beacon interval
363 * [2] cabability information
364 * [tlv] ssid
365 * [tlv] supported rates
1/*-
2 * Copyright (c) 2001 Atsushi Onoe
3 * Copyright (c) 2002, 2003 Sam Leffler, Errno Consulting
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 349 unchanged lines hidden (view full) ---

358 case IEEE80211_FC0_SUBTYPE_PROBE_RESP:
359 /*
360 * probe response frame format
361 * [8] time stamp
362 * [2] beacon interval
363 * [2] cabability information
364 * [tlv] ssid
365 * [tlv] supported rates
366 * [tlv] parameter set (FH/DS)
366 * [tlv] parameter set (IBSS)
367 * [tlv] extended supported rates
368 */
369 m = ieee80211_getmbuf(M_DONTWAIT, MT_DATA,
370 8 + 2 + 2 + 2
371 + 2 + ni->ni_esslen
372 + 2 + IEEE80211_RATE_SIZE
367 * [tlv] parameter set (IBSS)
368 * [tlv] extended supported rates
369 */
370 m = ieee80211_getmbuf(M_DONTWAIT, MT_DATA,
371 8 + 2 + 2 + 2
372 + 2 + ni->ni_esslen
373 + 2 + IEEE80211_RATE_SIZE
374 + (ic->ic_phytype == IEEE80211_T_FH ? 7 : 3)
373 + 6
374 + 2 + (IEEE80211_RATE_MAXSIZE - IEEE80211_RATE_SIZE));
375 if (m == NULL)
376 senderr(ENOMEM);
377 m->m_data += sizeof(struct ieee80211_frame);
378 frm = mtod(m, u_int8_t *);
379
380 memset(frm, 0, 8); /* timestamp should be filled later */

--- 11 unchanged lines hidden (view full) ---

392 capinfo |= IEEE80211_CAPINFO_SHORT_PREAMBLE;
393 *(u_int16_t *)frm = htole16(capinfo);
394 frm += 2;
395
396 frm = ieee80211_add_ssid(frm, ic->ic_bss->ni_essid,
397 ic->ic_bss->ni_esslen);
398 frm = ieee80211_add_rates(frm, &ic->ic_bss->ni_rates);
399
375 + 6
376 + 2 + (IEEE80211_RATE_MAXSIZE - IEEE80211_RATE_SIZE));
377 if (m == NULL)
378 senderr(ENOMEM);
379 m->m_data += sizeof(struct ieee80211_frame);
380 frm = mtod(m, u_int8_t *);
381
382 memset(frm, 0, 8); /* timestamp should be filled later */

--- 11 unchanged lines hidden (view full) ---

394 capinfo |= IEEE80211_CAPINFO_SHORT_PREAMBLE;
395 *(u_int16_t *)frm = htole16(capinfo);
396 frm += 2;
397
398 frm = ieee80211_add_ssid(frm, ic->ic_bss->ni_essid,
399 ic->ic_bss->ni_esslen);
400 frm = ieee80211_add_rates(frm, &ic->ic_bss->ni_rates);
401
402 if (ic->ic_phytype == IEEE80211_T_FH) {
403 *frm++ = IEEE80211_ELEMID_FHPARMS;
404 *frm++ = 5;
405 *frm++ = ni->ni_fhdwell & 0x00ff;
406 *frm++ = (ni->ni_fhdwell >> 8) & 0x00ff;
407 *frm++ = IEEE80211_FH_CHANSET(
408 ieee80211_chan2ieee(ic, ni->ni_chan));
409 *frm++ = IEEE80211_FH_CHANPAT(
410 ieee80211_chan2ieee(ic, ni->ni_chan));
411 *frm++ = ni->ni_fhindex;
412 } else {
413 *frm++ = IEEE80211_ELEMID_DSPARMS;
414 *frm++ = 1;
415 *frm++ = ieee80211_chan2ieee(ic, ni->ni_chan);
416 }
417
400 if (ic->ic_opmode == IEEE80211_M_IBSS) {
401 *frm++ = IEEE80211_ELEMID_IBSSPARMS;
402 *frm++ = 2;
403 *frm++ = 0; *frm++ = 0; /* TODO: ATIM window */
404 } else { /* IEEE80211_M_HOSTAP */
405 /* TODO: TIM */
406 *frm++ = IEEE80211_ELEMID_TIM;
407 *frm++ = 4; /* length */

--- 167 unchanged lines hidden ---
418 if (ic->ic_opmode == IEEE80211_M_IBSS) {
419 *frm++ = IEEE80211_ELEMID_IBSSPARMS;
420 *frm++ = 2;
421 *frm++ = 0; *frm++ = 0; /* TODO: ATIM window */
422 } else { /* IEEE80211_M_HOSTAP */
423 /* TODO: TIM */
424 *frm++ = IEEE80211_ELEMID_TIM;
425 *frm++ = 4; /* length */

--- 167 unchanged lines hidden ---