|
138 |
" transmission of each packet is obtained before sending the next. Otherwise, we modelize a " |
138 |
" transmission of each packet is obtained before sending the next. Otherwise, we modelize a " |
139 |
" high-latency device, that is a device where we cannot update our decision about tx parameters" |
139 |
" high-latency device, that is a device where we cannot update our decision about tx parameters" |
140 |
" after every packet transmission.", |
140 |
" after every packet transmission.", |
141 |
BooleanValue (true), |
141 |
BooleanValue (true), // this value is ignored because there is no setter |
142 |
MakeBooleanAccessor (&WifiRemoteStationManager::IsLowLatency), |
142 |
MakeBooleanAccessor (&WifiRemoteStationManager::IsLowLatency), |
143 |
MakeBooleanChecker ()) |
143 |
MakeBooleanChecker ()) |
144 |
.AddAttribute ("MaxSsrc", "The maximum number of retransmission attempts for an RTS. This value" |
144 |
.AddAttribute ("MaxSsrc", "The maximum number of retransmission attempts for an RTS. This value" |
|
332 |
{ |
332 |
{ |
333 |
return; |
333 |
return; |
334 |
} |
334 |
} |
335 |
TxModeTag tag = TxModeTag (GetRtsMode (address, header, packet), |
335 |
WifiRemoteStation *station = Lookup (address, header); |
336 |
GetDataMode (address, header, packet, fullPacketSize)); |
336 |
WifiMode rts = DoGetRtsMode (station); |
|
|
337 |
WifiMode data = DoGetDataMode (station, fullPacketSize); |
338 |
TxModeTag tag; |
339 |
// first, make sure that the tag is not here anymore. |
340 |
ConstCast<Packet> (packet)->RemovePacketTag (tag); |
341 |
tag = TxModeTag (rts, data); |
342 |
// and then, add it back |
337 |
packet->AddPacketTag (tag); |
343 |
packet->AddPacketTag (tag); |
338 |
} |
344 |
} |
339 |
WifiMode |
345 |
WifiMode |
|
346 |
} |
352 |
} |
347 |
if (!IsLowLatency ()) |
353 |
if (!IsLowLatency ()) |
348 |
{ |
354 |
{ |
349 |
// Note: removing the packet below is wrong: what happens in case of retransmissions ??? |
|
|
350 |
TxModeTag tag; |
355 |
TxModeTag tag; |
351 |
bool found; |
356 |
bool found; |
352 |
found = ConstCast<Packet> (packet)->RemovePacketTag (tag); |
357 |
found = ConstCast<Packet> (packet)->PeekPacketTag (tag); |
353 |
NS_ASSERT (found); |
358 |
NS_ASSERT (found); |
354 |
return tag.GetDataMode (); |
359 |
return tag.GetDataMode (); |
355 |
} |
360 |
} |
|
364 |
{ |
369 |
{ |
365 |
TxModeTag tag; |
370 |
TxModeTag tag; |
366 |
bool found; |
371 |
bool found; |
367 |
found = ConstCast<Packet> (packet)->RemovePacketTag (tag); |
372 |
found = ConstCast<Packet> (packet)->PeekPacketTag (tag); |
368 |
NS_ASSERT (found); |
373 |
NS_ASSERT (found); |
369 |
return tag.GetRtsMode (); |
374 |
return tag.GetRtsMode (); |
370 |
} |
375 |
} |