|
|
| 2394 |
NS_FATAL_ERROR ("MCS value does not match NSS value: MCS = " << (uint16_t)txVector.GetMode ().GetMcsValue () << ", NSS = " << (uint16_t)txVector.GetNss ()); |
2394 |
NS_FATAL_ERROR ("MCS value does not match NSS value: MCS = " << (uint16_t)txVector.GetMode ().GetMcsValue () << ", NSS = " << (uint16_t)txVector.GetNss ()); |
| 2395 |
} |
2395 |
} |
| 2396 |
|
2396 |
|
| 2397 |
if (txVector.GetNss () > GetMaxSupportedRxSpatialStreams ()) |
|
|
| 2398 |
{ |
| 2399 |
NS_FATAL_ERROR ("Reception ends in failure because of an unsupported number of spatial streams"); |
| 2400 |
} |
| 2401 |
|
| 2402 |
Ptr<InterferenceHelper::Event> event; |
2397 |
Ptr<InterferenceHelper::Event> event; |
| 2403 |
event = m_interference.Add (packet, |
2398 |
event = m_interference.Add (packet, |
| 2404 |
txVector, |
2399 |
txVector, |
| 2405 |
rxDuration, |
2400 |
rxDuration, |
| 2406 |
rxPowerW); |
2401 |
rxPowerW); |
| 2407 |
|
2402 |
|
|
|
2403 |
if (txVector.GetNss () > GetMaxSupportedRxSpatialStreams ()) |
| 2404 |
{ |
| 2405 |
NS_LOG_DEBUG ("drop packet because not enough RX antennas"); |
| 2406 |
NotifyRxDrop (packet); |
| 2407 |
m_plcpSuccess = false; |
| 2408 |
if (endRx > Simulator::Now () + m_state->GetDelayUntilIdle ()) |
| 2409 |
{ |
| 2410 |
//that packet will be noise _after_ the transmission of the |
| 2411 |
//currently-transmitted packet. |
| 2412 |
MaybeCcaBusyDuration (); |
| 2413 |
return; |
| 2414 |
} |
| 2415 |
} |
| 2416 |
|
| 2408 |
MpduType mpdutype = tag.GetMpduType (); |
2417 |
MpduType mpdutype = tag.GetMpduType (); |
| 2409 |
switch (m_state->GetState ()) |
2418 |
switch (m_state->GetState ()) |
| 2410 |
{ |
2419 |
{ |