Changeset View
Changeset View
Standalone View
Standalone View
head/sys/net80211/_ieee80211.h
Show First 20 Lines • Show All 151 Lines • ▼ Show 20 Lines | struct ieee80211_channel { | ||||
uint8_t ic_vht_ch_freq1; /* VHT primary freq1 IEEE value */ | uint8_t ic_vht_ch_freq1; /* VHT primary freq1 IEEE value */ | ||||
uint8_t ic_vht_ch_freq2; /* VHT secondary 80MHz freq2 IEEE value */ | uint8_t ic_vht_ch_freq2; /* VHT secondary 80MHz freq2 IEEE value */ | ||||
uint16_t ic_freq2; /* VHT secondary 80MHz freq2 MHz */ | uint16_t ic_freq2; /* VHT secondary 80MHz freq2 MHz */ | ||||
}; | }; | ||||
/* | /* | ||||
* Note: for VHT operation we will need significantly more than | * Note: for VHT operation we will need significantly more than | ||||
* IEEE80211_CHAN_MAX channels because of the combinations of | * IEEE80211_CHAN_MAX channels because of the combinations of | ||||
* VHT20, VHT40, VHT80, VHT80+80 and VHT160. | * VHT20, VHT40, VHT80, VHT160, and VHT80+80. | ||||
*/ | */ | ||||
#define IEEE80211_CHAN_MAX 1024 | #define IEEE80211_CHAN_MAX 1024 | ||||
#define IEEE80211_CHAN_BYTES howmany(IEEE80211_CHAN_MAX, NBBY) | #define IEEE80211_CHAN_BYTES howmany(IEEE80211_CHAN_MAX, NBBY) | ||||
#define IEEE80211_CHAN_ANY 0xffff /* token for ``any channel'' */ | #define IEEE80211_CHAN_ANY 0xffff /* token for ``any channel'' */ | ||||
#define IEEE80211_CHAN_ANYC \ | #define IEEE80211_CHAN_ANYC \ | ||||
((struct ieee80211_channel *) IEEE80211_CHAN_ANY) | ((struct ieee80211_channel *) IEEE80211_CHAN_ANY) | ||||
/* channel attributes */ | /* channel attributes */ | ||||
Show All 20 Lines | |||||
#define IEEE80211_CHAN_4MSXMIT 0x00100000 /* 4ms limit on frame length */ | #define IEEE80211_CHAN_4MSXMIT 0x00100000 /* 4ms limit on frame length */ | ||||
#define IEEE80211_CHAN_NOADHOC 0x00200000 /* adhoc mode not allowed */ | #define IEEE80211_CHAN_NOADHOC 0x00200000 /* adhoc mode not allowed */ | ||||
#define IEEE80211_CHAN_NOHOSTAP 0x00400000 /* hostap mode not allowed */ | #define IEEE80211_CHAN_NOHOSTAP 0x00400000 /* hostap mode not allowed */ | ||||
#define IEEE80211_CHAN_11D 0x00800000 /* 802.11d required */ | #define IEEE80211_CHAN_11D 0x00800000 /* 802.11d required */ | ||||
#define IEEE80211_CHAN_VHT20 0x01000000 /* VHT20 channel */ | #define IEEE80211_CHAN_VHT20 0x01000000 /* VHT20 channel */ | ||||
#define IEEE80211_CHAN_VHT40U 0x02000000 /* VHT40 channel, ext above */ | #define IEEE80211_CHAN_VHT40U 0x02000000 /* VHT40 channel, ext above */ | ||||
#define IEEE80211_CHAN_VHT40D 0x04000000 /* VHT40 channel, ext below */ | #define IEEE80211_CHAN_VHT40D 0x04000000 /* VHT40 channel, ext below */ | ||||
#define IEEE80211_CHAN_VHT80 0x08000000 /* VHT80 channel */ | #define IEEE80211_CHAN_VHT80 0x08000000 /* VHT80 channel */ | ||||
#define IEEE80211_CHAN_VHT80P80 0x10000000 /* VHT80+80 channel */ | #define IEEE80211_CHAN_VHT160 0x10000000 /* VHT160 channel */ | ||||
#define IEEE80211_CHAN_VHT160 0x20000000 /* VHT160 channel */ | #define IEEE80211_CHAN_VHT80P80 0x20000000 /* VHT80+80 channel */ | ||||
/* XXX note: 0x80000000 is used in src/sbin/ifconfig/ifieee80211.c :( */ | /* XXX note: 0x80000000 is used in src/sbin/ifconfig/ifieee80211.c :( */ | ||||
#define IEEE80211_CHAN_HT40 (IEEE80211_CHAN_HT40U | IEEE80211_CHAN_HT40D) | #define IEEE80211_CHAN_HT40 (IEEE80211_CHAN_HT40U | IEEE80211_CHAN_HT40D) | ||||
#define IEEE80211_CHAN_HT (IEEE80211_CHAN_HT20 | IEEE80211_CHAN_HT40) | #define IEEE80211_CHAN_HT (IEEE80211_CHAN_HT20 | IEEE80211_CHAN_HT40) | ||||
#define IEEE80211_CHAN_VHT40 (IEEE80211_CHAN_VHT40U | IEEE80211_CHAN_VHT40D) | #define IEEE80211_CHAN_VHT40 (IEEE80211_CHAN_VHT40U | IEEE80211_CHAN_VHT40D) | ||||
#define IEEE80211_CHAN_VHT (IEEE80211_CHAN_VHT20 | IEEE80211_CHAN_VHT40 \ | #define IEEE80211_CHAN_VHT (IEEE80211_CHAN_VHT20 | IEEE80211_CHAN_VHT40 \ | ||||
| IEEE80211_CHAN_VHT80 | IEEE80211_CHAN_VHT80P80 \ | | IEEE80211_CHAN_VHT80 | IEEE80211_CHAN_VHT160 \ | ||||
| IEEE80211_CHAN_VHT160) | | IEEE80211_CHAN_VHT80P80) | ||||
#define IEEE80211_CHAN_BITS \ | #define IEEE80211_CHAN_BITS \ | ||||
"\20\1PRIV0\2PRIV2\3PRIV3\4PRIV4\5TURBO\6CCK\7OFDM\0102GHZ\0115GHZ" \ | "\20\1PRIV0\2PRIV2\3PRIV3\4PRIV4\5TURBO\6CCK\7OFDM\0102GHZ\0115GHZ" \ | ||||
"\12PASSIVE\13DYN\14GFSK\15GSM\16STURBO\17HALF\20QUARTER\21HT20" \ | "\12PASSIVE\13DYN\14GFSK\15GSM\16STURBO\17HALF\20QUARTER\21HT20" \ | ||||
"\22HT40U\23HT40D\24DFS\0254MSXMIT\26NOADHOC\27NOHOSTAP\03011D" \ | "\22HT40U\23HT40D\24DFS\0254MSXMIT\26NOADHOC\27NOHOSTAP\03011D" \ | ||||
"\031VHT20\032VHT40U\033VHT40D\034VHT80\035VHT80P80\036VHT160" | "\031VHT20\032VHT40U\033VHT40D\034VHT80\035VHT160\036VHT80P80" | ||||
/* | /* | ||||
* Useful combinations of channel characteristics. | * Useful combinations of channel characteristics. | ||||
*/ | */ | ||||
#define IEEE80211_CHAN_FHSS \ | #define IEEE80211_CHAN_FHSS \ | ||||
(IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_GFSK) | (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_GFSK) | ||||
#define IEEE80211_CHAN_A \ | #define IEEE80211_CHAN_A \ | ||||
(IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM) | (IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM) | ||||
▲ Show 20 Lines • Show All 110 Lines • ▼ Show 20 Lines | |||||
#define IEEE80211_IS_CHAN_VHTA(_c) \ | #define IEEE80211_IS_CHAN_VHTA(_c) \ | ||||
(IEEE80211_IS_CHAN_5GHZ(_c) && \ | (IEEE80211_IS_CHAN_5GHZ(_c) && \ | ||||
((_c)->ic_flags & IEEE80211_CHAN_VHT) != 0) | ((_c)->ic_flags & IEEE80211_CHAN_VHT) != 0) | ||||
#define IEEE80211_IS_CHAN_VHTG(_c) \ | #define IEEE80211_IS_CHAN_VHTG(_c) \ | ||||
(IEEE80211_IS_CHAN_2GHZ(_c) && \ | (IEEE80211_IS_CHAN_2GHZ(_c) && \ | ||||
((_c)->ic_flags & IEEE80211_CHAN_VHT) != 0) | ((_c)->ic_flags & IEEE80211_CHAN_VHT) != 0) | ||||
#define IEEE80211_IS_CHAN_VHT80(_c) \ | #define IEEE80211_IS_CHAN_VHT80(_c) \ | ||||
(((_c)->ic_flags & IEEE80211_CHAN_VHT80) != 0) | (((_c)->ic_flags & IEEE80211_CHAN_VHT80) != 0) | ||||
#define IEEE80211_IS_CHAN_VHT80P80(_c) \ | |||||
(((_c)->ic_flags & IEEE80211_CHAN_VHT80P80) != 0) | |||||
#define IEEE80211_IS_CHAN_VHT160(_c) \ | #define IEEE80211_IS_CHAN_VHT160(_c) \ | ||||
(((_c)->ic_flags & IEEE80211_CHAN_VHT160) != 0) | (((_c)->ic_flags & IEEE80211_CHAN_VHT160) != 0) | ||||
#define IEEE80211_IS_CHAN_VHT80P80(_c) \ | |||||
(((_c)->ic_flags & IEEE80211_CHAN_VHT80P80) != 0) | |||||
#define IEEE80211_CHAN2IEEE(_c) (_c)->ic_ieee | #define IEEE80211_CHAN2IEEE(_c) (_c)->ic_ieee | ||||
/* dynamic state */ | /* dynamic state */ | ||||
#define IEEE80211_CHANSTATE_RADAR 0x01 /* radar detected */ | #define IEEE80211_CHANSTATE_RADAR 0x01 /* radar detected */ | ||||
#define IEEE80211_CHANSTATE_CACDONE 0x02 /* CAC completed */ | #define IEEE80211_CHANSTATE_CACDONE 0x02 /* CAC completed */ | ||||
#define IEEE80211_CHANSTATE_CWINT 0x04 /* interference detected */ | #define IEEE80211_CHANSTATE_CWINT 0x04 /* interference detected */ | ||||
#define IEEE80211_CHANSTATE_NORADAR 0x10 /* post notify on radar clear */ | #define IEEE80211_CHANSTATE_NORADAR 0x10 /* post notify on radar clear */ | ||||
▲ Show 20 Lines • Show All 280 Lines • Show Last 20 Lines |