A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
wifi-standards.h
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2007 INRIA
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License version 2 as
7
* published by the Free Software Foundation;
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
*
18
* Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
19
*/
20
21
#ifndef WIFI_STANDARD_H
22
#define WIFI_STANDARD_H
23
24
#include <map>
25
#include "
wifi-phy-band.h
"
26
27
namespace
ns3
{
28
33
enum
WifiPhyStandard
34
{
36
WIFI_PHY_STANDARD_80211a
,
38
WIFI_PHY_STANDARD_80211b
,
40
WIFI_PHY_STANDARD_80211g
,
43
WIFI_PHY_STANDARD_80211_10MHZ
,
46
WIFI_PHY_STANDARD_80211_5MHZ
,
48
WIFI_PHY_STANDARD_80211p
,
54
WIFI_PHY_STANDARD_holland
,
57
WIFI_PHY_STANDARD_80211n_2_4GHZ
,
60
WIFI_PHY_STANDARD_80211n_5GHZ
,
62
WIFI_PHY_STANDARD_80211n
,
64
WIFI_PHY_STANDARD_80211ac
,
66
WIFI_PHY_STANDARD_80211ax
,
68
WIFI_PHY_STANDARD_UNSPECIFIED
69
};
70
78
inline
std::ostream&
operator<<
(std::ostream& os,
WifiPhyStandard
standard)
79
{
80
switch
(standard)
81
{
82
case
WIFI_PHY_STANDARD_80211a
:
83
return
(os <<
"802.11a"
);
84
case
WIFI_PHY_STANDARD_80211b
:
85
return
(os <<
"802.11b"
);
86
case
WIFI_PHY_STANDARD_80211g
:
87
return
(os <<
"802.11g"
);
88
case
WIFI_PHY_STANDARD_80211p
:
89
return
(os <<
"802.11p"
);
90
case
WIFI_PHY_STANDARD_holland
:
91
return
(os <<
"802.11a-holland"
);
92
case
WIFI_PHY_STANDARD_80211n
:
93
return
(os <<
"802.11n"
);
94
case
WIFI_PHY_STANDARD_80211ac
:
95
return
(os <<
"802.11ac"
);
96
case
WIFI_PHY_STANDARD_80211ax
:
97
return
(os <<
"802.11ax"
);
98
case
WIFI_PHY_STANDARD_UNSPECIFIED
:
99
default
:
100
return
(os <<
"UNSPECIFIED"
);
101
}
102
}
103
108
enum
WifiMacStandard
109
{
110
WIFI_MAC_STANDARD_80211
,
111
WIFI_MAC_STANDARD_80211n
,
112
WIFI_MAC_STANDARD_80211ac
,
113
WIFI_MAC_STANDARD_80211ax
114
};
115
123
inline
std::ostream&
operator<<
(std::ostream& os,
WifiMacStandard
standard)
124
{
125
switch
(standard)
126
{
127
case
WIFI_MAC_STANDARD_80211
:
128
return
(os <<
"802.11"
);
129
case
WIFI_MAC_STANDARD_80211n
:
130
return
(os <<
"802.11n"
);
131
case
WIFI_MAC_STANDARD_80211ac
:
132
return
(os <<
"802.11ac"
);
133
case
WIFI_MAC_STANDARD_80211ax
:
134
return
(os <<
"802.11ax"
);
135
default
:
136
return
(os <<
"UNSPECIFIED"
);
137
}
138
}
139
144
enum
WifiStandard
145
{
146
WIFI_STANDARD_80211a
,
147
WIFI_STANDARD_80211b
,
148
WIFI_STANDARD_80211g
,
149
WIFI_STANDARD_80211p
,
150
WIFI_STANDARD_holland
,
151
WIFI_STANDARD_80211n_2_4GHZ
,
152
WIFI_STANDARD_80211n_5GHZ
,
153
WIFI_STANDARD_80211ac
,
154
WIFI_STANDARD_80211ax_2_4GHZ
,
155
WIFI_STANDARD_80211ax_5GHZ
,
156
WIFI_STANDARD_80211ax_6GHZ
157
};
158
166
inline
std::ostream&
operator<<
(std::ostream& os,
WifiStandard
standard)
167
{
168
switch
(standard)
169
{
170
case
WIFI_STANDARD_80211a
:
171
return
(os <<
"802.11a"
);
172
case
WIFI_STANDARD_80211b
:
173
return
(os <<
"802.11b"
);
174
case
WIFI_STANDARD_80211g
:
175
return
(os <<
"802.11g"
);
176
case
WIFI_STANDARD_80211p
:
177
return
(os <<
"802.11p"
);
178
case
WIFI_STANDARD_holland
:
179
return
(os <<
"802.11a-holland"
);
180
case
WIFI_STANDARD_80211n_2_4GHZ
:
181
return
(os <<
"802.11n-2.4GHz"
);
182
case
WIFI_STANDARD_80211n_5GHZ
:
183
return
(os <<
"802.11n-5GHz"
);
184
case
WIFI_STANDARD_80211ac
:
185
return
(os <<
"802.11ac"
);
186
case
WIFI_STANDARD_80211ax_2_4GHZ
:
187
return
(os <<
"802.11ax-2.4GHz"
);
188
case
WIFI_STANDARD_80211ax_5GHZ
:
189
return
(os <<
"802.11ax-5GHz"
);
190
default
:
191
return
(os <<
"UNSPECIFIED"
);
192
}
193
}
194
198
struct
WifiStandardInfo
199
{
200
WifiPhyStandard
phyStandard
;
201
WifiPhyBand
phyBand
;
202
WifiMacStandard
macStandard
;
203
};
204
208
const
std::map<WifiStandard, WifiStandardInfo>
wifiStandards
=
209
{
210
{
WIFI_STANDARD_80211a
, {
WIFI_PHY_STANDARD_80211a
,
WIFI_PHY_BAND_5GHZ
,
WIFI_MAC_STANDARD_80211
} },
211
{
WIFI_STANDARD_80211b
, {
WIFI_PHY_STANDARD_80211b
,
WIFI_PHY_BAND_2_4GHZ
,
WIFI_MAC_STANDARD_80211
} },
212
{
WIFI_STANDARD_80211g
, {
WIFI_PHY_STANDARD_80211g
,
WIFI_PHY_BAND_2_4GHZ
,
WIFI_MAC_STANDARD_80211
} },
213
{
WIFI_STANDARD_80211p
, {
WIFI_PHY_STANDARD_80211p
,
WIFI_PHY_BAND_5GHZ
,
WIFI_MAC_STANDARD_80211
} },
214
{
WIFI_STANDARD_holland
, {
WIFI_PHY_STANDARD_holland
,
WIFI_PHY_BAND_5GHZ
,
WIFI_MAC_STANDARD_80211
} },
215
{
WIFI_STANDARD_80211n_2_4GHZ
, {
WIFI_PHY_STANDARD_80211n
,
WIFI_PHY_BAND_2_4GHZ
,
WIFI_MAC_STANDARD_80211n
} },
216
{
WIFI_STANDARD_80211n_5GHZ
, {
WIFI_PHY_STANDARD_80211n
,
WIFI_PHY_BAND_5GHZ
,
WIFI_MAC_STANDARD_80211n
} },
217
{
WIFI_STANDARD_80211ac
, {
WIFI_PHY_STANDARD_80211ac
,
WIFI_PHY_BAND_5GHZ
,
WIFI_MAC_STANDARD_80211ac
} },
218
{
WIFI_STANDARD_80211ax_2_4GHZ
, {
WIFI_PHY_STANDARD_80211ax
,
WIFI_PHY_BAND_2_4GHZ
,
WIFI_MAC_STANDARD_80211ax
} },
219
{
WIFI_STANDARD_80211ax_5GHZ
, {
WIFI_PHY_STANDARD_80211ax
,
WIFI_PHY_BAND_5GHZ
,
WIFI_MAC_STANDARD_80211ax
} },
220
{
WIFI_STANDARD_80211ax_6GHZ
, {
WIFI_PHY_STANDARD_80211ax
,
WIFI_PHY_BAND_6GHZ
,
WIFI_MAC_STANDARD_80211ax
} }
221
};
222
223
}
//namespace ns3
224
225
#endif
/* WIFI_STANDARD_H */
ns3::WIFI_PHY_STANDARD_80211g
ERP-OFDM PHY (Clause 19, Section 19.5)
Definition:
wifi-standards.h:40
ns3::WIFI_STANDARD_holland
Definition:
wifi-standards.h:150
ns3::WIFI_PHY_STANDARD_80211_5MHZ
OFDM PHY for the 5 GHz band (Clause 17 with 5 MHz channel bandwidth)
Definition:
wifi-standards.h:46
ns3::WIFI_PHY_STANDARD_80211n_5GHZ
HT PHY for the 5 GHz band (clause 20)
Definition:
wifi-standards.h:60
ns3::WIFI_STANDARD_80211g
Definition:
wifi-standards.h:148
ns3::WIFI_MAC_STANDARD_80211ac
Definition:
wifi-standards.h:112
ns3::WIFI_STANDARD_80211p
Definition:
wifi-standards.h:149
ns3::WIFI_STANDARD_80211ax_5GHZ
Definition:
wifi-standards.h:155
ns3::WIFI_PHY_STANDARD_80211_10MHZ
OFDM PHY for the 5 GHz band (Clause 17 with 10 MHz channel bandwidth)
Definition:
wifi-standards.h:43
ns3::WIFI_STANDARD_80211ax_2_4GHZ
Definition:
wifi-standards.h:154
wifi-phy-band.h
ns3::WIFI_PHY_STANDARD_80211n_2_4GHZ
HT PHY for the 2.4 GHz band (clause 20)
Definition:
wifi-standards.h:57
ns3::WIFI_PHY_BAND_5GHZ
The 5 GHz band.
Definition:
wifi-phy-band.h:35
ns3::WifiStandardInfo::phyStandard
WifiPhyStandard phyStandard
Definition:
wifi-standards.h:200
ns3::wifiStandards
const std::map< WifiStandard, WifiStandardInfo > wifiStandards
map a given standard configured by the user to the corresponding WifiStandardInfo ...
Definition:
wifi-standards.h:208
ns3::WIFI_MAC_STANDARD_80211ax
Definition:
wifi-standards.h:113
ns3::WifiPhyStandard
WifiPhyStandard
Identifies the PHY specification that a Wifi device is configured to use.
Definition:
wifi-standards.h:33
ns3::WifiStandardInfo::phyBand
WifiPhyBand phyBand
Definition:
wifi-standards.h:201
ns3::WIFI_PHY_STANDARD_80211ax
HE PHY (clause 26)
Definition:
wifi-standards.h:66
ns3::WIFI_STANDARD_80211a
Definition:
wifi-standards.h:146
ns3::WIFI_PHY_STANDARD_80211p
OFDM PHY (Clause 17 - amendment for 10 MHz and 5 MHz channels)
Definition:
wifi-standards.h:48
ns3::WIFI_STANDARD_80211b
Definition:
wifi-standards.h:147
ns3::WIFI_MAC_STANDARD_80211
Definition:
wifi-standards.h:110
ns3::WIFI_STANDARD_80211ax_6GHZ
Definition:
wifi-standards.h:156
ns3::WIFI_PHY_STANDARD_holland
This is intended to be the configuration used in this paper: Gavin Holland, Nitin Vaidya and Paramvir...
Definition:
wifi-standards.h:54
ns3::WifiMacStandard
WifiMacStandard
Identifies the MAC specification that a Wifi device is configured to use.
Definition:
wifi-standards.h:108
ns3::operator<<
std::ostream & operator<<(std::ostream &os, const Angles &a)
print a struct Angles to output
Definition:
angles.cc:42
ns3::WIFI_PHY_STANDARD_80211a
OFDM PHY (Clause 17)
Definition:
wifi-standards.h:36
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::WifiStandard
WifiStandard
Identifies the allowed configurations that a Wifi device is configured to use.
Definition:
wifi-standards.h:144
ns3::WIFI_PHY_STANDARD_80211ac
VHT PHY (clause 22)
Definition:
wifi-standards.h:64
ns3::WIFI_PHY_STANDARD_80211b
DSSS PHY (Clause 15) and HR/DSSS PHY (Clause 18)
Definition:
wifi-standards.h:38
ns3::WIFI_PHY_BAND_2_4GHZ
The 2.4 GHz band.
Definition:
wifi-phy-band.h:33
ns3::WifiStandardInfo
hold PHY and MAC information based on the selected standard.
Definition:
wifi-standards.h:198
ns3::WIFI_STANDARD_80211ac
Definition:
wifi-standards.h:153
ns3::WIFI_PHY_STANDARD_80211n
HT PHY (clause 20)
Definition:
wifi-standards.h:62
ns3::WIFI_PHY_STANDARD_UNSPECIFIED
Unspecified.
Definition:
wifi-standards.h:68
ns3::WifiStandardInfo::macStandard
WifiMacStandard macStandard
Definition:
wifi-standards.h:202
ns3::WifiPhyBand
WifiPhyBand
Identifies the PHY band.
Definition:
wifi-phy-band.h:30
ns3::WIFI_STANDARD_80211n_2_4GHZ
Definition:
wifi-standards.h:151
ns3::WIFI_MAC_STANDARD_80211n
Definition:
wifi-standards.h:111
ns3::WIFI_PHY_BAND_6GHZ
The 6 GHz band.
Definition:
wifi-phy-band.h:37
ns3::WIFI_STANDARD_80211n_5GHZ
Definition:
wifi-standards.h:152
src
wifi
model
wifi-standards.h
Generated on Wed Oct 7 2020 01:18:59 for ns-3 by
1.8.14