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 --- |