Left: | ||
Right: |
OLD | NEW |
---|---|
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ | 1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
2 /* | 2 /* |
3 * Copyright (c) 2013 | 3 * Copyright (c) 2013 |
4 * | 4 * |
5 * This program is free software; you can redistribute it and/or modify | 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 | 6 * it under the terms of the GNU General Public License version 2 as |
7 * published by the Free Software Foundation; | 7 * published by the Free Software Foundation; |
8 * | 8 * |
9 * This program is distributed in the hope that it will be useful, | 9 * This program is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
75 | 75 |
76 if ((4 + packet->GetSize () + actualSize + padding) <= m_maxAmpduLength) | 76 if ((4 + packet->GetSize () + actualSize + padding) <= m_maxAmpduLength) |
77 { | 77 { |
78 if (padding) | 78 if (padding) |
79 { | 79 { |
80 Ptr<Packet> pad = Create<Packet> (padding); | 80 Ptr<Packet> pad = Create<Packet> (padding); |
81 aggregatedPacket->AddAtEnd (pad); | 81 aggregatedPacket->AddAtEnd (pad); |
82 } | 82 } |
83 currentHdr.SetCrc (1); | 83 currentHdr.SetCrc (1); |
84 currentHdr.SetSig (); | 84 currentHdr.SetSig (); |
85 currentHdr.SetLength (packet->GetSize ()); | 85 currentHdr.SetLength (static_cast<uint8_t>(packet->GetSize ())); |
S. Deronne
2017/12/17 15:39:15
16 bits?
ammo6818-vandals.uidaho.edu
2017/12/20 04:16:34
comments ignored, this file has been removed
S. Deronne
2017/12/22 22:28:21
It has just be moved, so still valid.
ammo6818-vandals.uidaho.edu
2017/12/23 15:14:33
this source file is no longer part of the wifi mod
| |
86 currentPacket = packet->Copy (); | 86 currentPacket = packet->Copy (); |
87 | 87 |
88 currentPacket->AddHeader (currentHdr); | 88 currentPacket->AddHeader (currentHdr); |
89 aggregatedPacket->AddAtEnd (currentPacket); | 89 aggregatedPacket->AddAtEnd (currentPacket); |
90 return true; | 90 return true; |
91 } | 91 } |
92 return false; | 92 return false; |
93 } | 93 } |
94 | 94 |
95 void | 95 void |
96 MpduStandardAggregator::AggregateSingleMpdu (Ptr<const Packet> packet, Ptr<Packe t> aggregatedPacket) const | 96 MpduStandardAggregator::AggregateSingleMpdu (Ptr<const Packet> packet, Ptr<Packe t> aggregatedPacket) const |
97 { | 97 { |
98 NS_LOG_FUNCTION (this); | 98 NS_LOG_FUNCTION (this); |
99 Ptr<Packet> currentPacket; | 99 Ptr<Packet> currentPacket; |
100 AmpduSubframeHeader currentHdr; | 100 AmpduSubframeHeader currentHdr; |
101 | 101 |
102 uint32_t padding = CalculatePadding (aggregatedPacket); | 102 uint32_t padding = CalculatePadding (aggregatedPacket); |
103 if (padding) | 103 if (padding) |
104 { | 104 { |
105 Ptr<Packet> pad = Create<Packet> (padding); | 105 Ptr<Packet> pad = Create<Packet> (padding); |
106 aggregatedPacket->AddAtEnd (pad); | 106 aggregatedPacket->AddAtEnd (pad); |
107 } | 107 } |
108 | 108 |
109 currentHdr.SetEof (1); | 109 currentHdr.SetEof (1); |
110 currentHdr.SetCrc (1); | 110 currentHdr.SetCrc (1); |
111 currentHdr.SetSig (); | 111 currentHdr.SetSig (); |
112 currentHdr.SetLength (packet->GetSize ()); | 112 currentHdr.SetLength (static_cast<uint16_t>(packet->GetSize ())); |
113 currentPacket = packet->Copy (); | 113 currentPacket = packet->Copy (); |
114 | 114 |
115 currentPacket->AddHeader (currentHdr); | 115 currentPacket->AddHeader (currentHdr); |
116 aggregatedPacket->AddAtEnd (currentPacket); | 116 aggregatedPacket->AddAtEnd (currentPacket); |
117 } | 117 } |
118 | 118 |
119 void | 119 void |
120 MpduStandardAggregator::AddHeaderAndPad (Ptr<Packet> packet, bool last, bool isS ingleMpdu) const | 120 MpduStandardAggregator::AddHeaderAndPad (Ptr<Packet> packet, bool last, bool isS ingleMpdu) const |
121 { | 121 { |
122 NS_LOG_FUNCTION (this); | 122 NS_LOG_FUNCTION (this); |
123 AmpduSubframeHeader currentHdr; | 123 AmpduSubframeHeader currentHdr; |
124 | 124 |
125 //This is called to prepare packets from the aggregate queue to be sent so no need to check total size since it has already been | 125 //This is called to prepare packets from the aggregate queue to be sent so no need to check total size since it has already been |
126 //done before when deciding how many packets to add to the queue | 126 //done before when deciding how many packets to add to the queue |
127 currentHdr.SetCrc (1); | 127 currentHdr.SetCrc (1); |
128 currentHdr.SetSig (); | 128 currentHdr.SetSig (); |
129 currentHdr.SetLength (packet->GetSize ()); | 129 currentHdr.SetLength (static_cast<uint16_t>(packet->GetSize ())); |
130 if (isSingleMpdu) | 130 if (isSingleMpdu) |
131 { | 131 { |
132 currentHdr.SetEof (1); | 132 currentHdr.SetEof (1); |
133 } | 133 } |
134 | 134 |
135 packet->AddHeader (currentHdr); | 135 packet->AddHeader (currentHdr); |
136 uint32_t padding = CalculatePadding (packet); | 136 uint32_t padding = CalculatePadding (packet); |
137 | 137 |
138 if (padding && !last) | 138 if (padding && !last) |
139 { | 139 { |
140 Ptr<Packet> pad = Create<Packet> (padding); | 140 Ptr<Packet> pad = Create<Packet> (padding); |
141 packet->AddAtEnd (pad); | 141 packet->AddAtEnd (pad); |
142 } | 142 } |
143 } | 143 } |
144 | 144 |
145 bool | 145 bool |
146 MpduStandardAggregator::CanBeAggregated (uint32_t packetSize, Ptr<Packet> aggreg atedPacket, uint8_t blockAckSize) const | 146 MpduStandardAggregator::CanBeAggregated (uint32_t packetSize, Ptr<Packet> aggreg atedPacket, uint8_t blockAckSize) const |
147 { | 147 { |
148 uint32_t padding = CalculatePadding (aggregatedPacket); | 148 uint32_t padding = CalculatePadding (aggregatedPacket); |
149 uint32_t actualSize = aggregatedPacket->GetSize (); | 149 uint32_t actualSize = aggregatedPacket->GetSize (); |
150 if (blockAckSize > 0) | 150 if (blockAckSize > 0) |
151 { | 151 { |
152 blockAckSize = blockAckSize + 4 + padding; | 152 blockAckSize = static_cast<uint8_t>(blockAckSize + 4 + padding); |
153 } | 153 } |
154 if ((4 + packetSize + actualSize + padding + blockAckSize) <= m_maxAmpduLength ) | 154 if ((4 + packetSize + actualSize + padding + blockAckSize) <= m_maxAmpduLength ) |
155 { | 155 { |
156 return true; | 156 return true; |
157 } | 157 } |
158 else | 158 else |
159 { | 159 { |
160 return false; | 160 return false; |
161 } | 161 } |
162 } | 162 } |
163 | 163 |
164 uint32_t | 164 uint32_t |
165 MpduStandardAggregator::CalculatePadding (Ptr<const Packet> packet) const | 165 MpduStandardAggregator::CalculatePadding (Ptr<const Packet> packet) const |
166 { | 166 { |
167 return (4 - (packet->GetSize () % 4 )) % 4; | 167 return (4 - (packet->GetSize () % 4 )) % 4; |
168 } | 168 } |
169 | 169 |
170 } //namespace ns3 | 170 } //namespace ns3 |
OLD | NEW |