author | Sébastien Deronne <sebastien.deronne@gmail.com> |
Sat, 05 Sep 2015 11:37:49 +0200 | |
changeset 11640 | 8dfcbf71cb06 |
parent 11628 | 243b71de25a0 |
permissions | -rw-r--r-- |
11628
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
1 |
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
2 |
/* |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
3 |
* Copyright (c) 2014 SEBASTIEN DERONNE |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
4 |
* |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
5 |
* This program is free software; you can redistribute it and/or modify |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
6 |
* it under the terms of the GNU General Public License version 2 as |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
7 |
* published by the Free Software Foundation; |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
8 |
* |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
9 |
* This program is distributed in the hope that it will be useful, |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
12 |
* GNU General Public License for more details. |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
13 |
* |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
14 |
* You should have received a copy of the GNU General Public License |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
15 |
* along with this program; if not, write to the Free Software |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
16 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
17 |
* |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
18 |
* Author: Sébastien Deronne <sebastien.deronne@gmail.com> |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
19 |
*/ |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
20 |
|
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
21 |
#include "vht-wifi-mac-helper.h" |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
22 |
#include "ns3/wifi-mac.h" |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
23 |
#include "ns3/edca-txop-n.h" |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
24 |
#include "ns3/pointer.h" |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
25 |
#include "ns3/boolean.h" |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
26 |
#include "ns3/uinteger.h" |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
27 |
|
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
28 |
namespace ns3 { |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
29 |
|
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
30 |
VhtWifiMacHelper::VhtWifiMacHelper () |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
31 |
{ |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
32 |
} |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
33 |
|
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
34 |
VhtWifiMacHelper::~VhtWifiMacHelper () |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
35 |
{ |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
36 |
} |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
37 |
|
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
38 |
VhtWifiMacHelper |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
39 |
VhtWifiMacHelper::Default (void) |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
40 |
{ |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
41 |
VhtWifiMacHelper helper; |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
42 |
|
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
43 |
helper.SetType ("ns3::StaWifiMac", |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
44 |
"QosSupported", BooleanValue (true), |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
45 |
"HtSupported", BooleanValue (true), //by default, it also supports HT features |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
46 |
"VhtSupported", BooleanValue (true)); |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
47 |
|
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
48 |
//MPDU aggregation is always supported |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
49 |
helper.SetMpduAggregatorForAc (AC_VO, "ns3::MpduStandardAggregator"); |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
50 |
helper.SetMpduAggregatorForAc (AC_VI, "ns3::MpduStandardAggregator"); |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
51 |
helper.SetMpduAggregatorForAc (AC_BE, "ns3::MpduStandardAggregator"); |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
52 |
helper.SetMpduAggregatorForAc (AC_BK, "ns3::MpduStandardAggregator"); |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
53 |
|
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
54 |
return helper; |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
55 |
} |
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
56 |
|
11640
8dfcbf71cb06
Add helper to convert mcs values into datarate values
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11628
diff
changeset
|
57 |
StringValue |
8dfcbf71cb06
Add helper to convert mcs values into datarate values
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11628
diff
changeset
|
58 |
VhtWifiMacHelper::DataRateForMcs (int mcs) |
8dfcbf71cb06
Add helper to convert mcs values into datarate values
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11628
diff
changeset
|
59 |
{ |
8dfcbf71cb06
Add helper to convert mcs values into datarate values
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11628
diff
changeset
|
60 |
std::stringstream sstmp; |
8dfcbf71cb06
Add helper to convert mcs values into datarate values
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11628
diff
changeset
|
61 |
std::string strtmp, dataRate; |
8dfcbf71cb06
Add helper to convert mcs values into datarate values
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11628
diff
changeset
|
62 |
|
8dfcbf71cb06
Add helper to convert mcs values into datarate values
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11628
diff
changeset
|
63 |
sstmp << mcs; |
8dfcbf71cb06
Add helper to convert mcs values into datarate values
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11628
diff
changeset
|
64 |
sstmp >> strtmp; |
8dfcbf71cb06
Add helper to convert mcs values into datarate values
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11628
diff
changeset
|
65 |
dataRate = "VhtMcs" + strtmp; |
8dfcbf71cb06
Add helper to convert mcs values into datarate values
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11628
diff
changeset
|
66 |
|
8dfcbf71cb06
Add helper to convert mcs values into datarate values
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11628
diff
changeset
|
67 |
return StringValue (dataRate); |
8dfcbf71cb06
Add helper to convert mcs values into datarate values
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11628
diff
changeset
|
68 |
} |
8dfcbf71cb06
Add helper to convert mcs values into datarate values
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11628
diff
changeset
|
69 |
|
11628
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff
changeset
|
70 |
} //namespace ns3 |