|
Lines 288-301
UanMacRc::SetAddress (UanAddress addr)
|
Link Here
|
|---|
|
| 288 |
} |
288 |
} |
| 289 |
|
289 |
|
| 290 |
bool |
290 |
bool |
| 291 |
UanMacRc::Enqueue (Ptr<Packet> packet, const Address &dest, uint16_t protocolNumber) |
291 |
UanMacRc::Enqueue (Ptr<Packet> packet, uint16_t protocolNumber, const Address &dest) |
| 292 |
{ |
292 |
{ |
| 293 |
if (protocolNumber > 0) |
|
|
| 294 |
{ |
| 295 |
NS_LOG_WARN ("Warning: UanMacRc does not support multiple protocols. protocolNumber argument to Enqueue is being ignored"); |
| 296 |
} |
| 297 |
|
| 298 |
|
| 299 |
if (m_pktQueue.size () >= m_queueLimit) |
293 |
if (m_pktQueue.size () >= m_queueLimit) |
| 300 |
{ |
294 |
{ |
| 301 |
return false; |
295 |
return false; |
|
Lines 324-330
UanMacRc::Enqueue (Ptr<Packet> packet, const Address &dest, uint16_t protocolNum
|
Link Here
|
|---|
|
| 324 |
} |
318 |
} |
| 325 |
|
319 |
|
| 326 |
void |
320 |
void |
| 327 |
UanMacRc::SetForwardUpCb (Callback<void, Ptr<Packet>, const UanAddress&> cb) |
321 |
UanMacRc::SetForwardUpCb (Callback<void, Ptr<Packet>, uint16_t, const UanAddress&> cb) |
| 328 |
{ |
322 |
{ |
| 329 |
m_forwardUpCb = cb; |
323 |
m_forwardUpCb = cb; |
| 330 |
} |
324 |
} |
|
Lines 362-368
UanMacRc::ReceiveOkFromPhy (Ptr<Packet> pkt, double sinr, UanTxMode mode)
|
Link Here
|
|---|
|
| 362 |
NS_LOG_DEBUG (Simulator::Now ().GetSeconds () << " Node " << m_address << " UanMacRc Receiving DATA packet from PHY"); |
356 |
NS_LOG_DEBUG (Simulator::Now ().GetSeconds () << " Node " << m_address << " UanMacRc Receiving DATA packet from PHY"); |
| 363 |
UanHeaderRcData dh; |
357 |
UanHeaderRcData dh; |
| 364 |
pkt->RemoveHeader (dh); |
358 |
pkt->RemoveHeader (dh); |
| 365 |
m_forwardUpCb (pkt, ch.GetSrc ()); |
359 |
m_forwardUpCb (pkt, ch.GetProtocolNumber (), ch.GetSrc ()); |
| 366 |
} |
360 |
} |
| 367 |
break; |
361 |
break; |
| 368 |
case TYPE_RTS: |
362 |
case TYPE_RTS: |
|
Lines 634-640
UanMacRc::Associate (void)
|
Link Here
|
|---|
|
| 634 |
{ |
628 |
{ |
| 635 |
Ptr<Packet> pkt = Create<Packet> (0); |
629 |
Ptr<Packet> pkt = Create<Packet> (0); |
| 636 |
pkt->AddHeader (CreateRtsHeader (res)); |
630 |
pkt->AddHeader (CreateRtsHeader (res)); |
| 637 |
pkt->AddHeader (UanHeaderCommon (m_address, UanAddress::GetBroadcast (), (uint8_t) TYPE_GWPING)); |
631 |
pkt->AddHeader (UanHeaderCommon (m_address, UanAddress::GetBroadcast (), (uint8_t) TYPE_GWPING, 0)); |
| 638 |
NS_LOG_DEBUG (Simulator::Now ().GetSeconds () << " Sending first GWPING " << *pkt); |
632 |
NS_LOG_DEBUG (Simulator::Now ().GetSeconds () << " Sending first GWPING " << *pkt); |
| 639 |
SendPacket (pkt,m_currentRate + m_numRates); |
633 |
SendPacket (pkt,m_currentRate + m_numRates); |
| 640 |
} |
634 |
} |
|
Lines 665-671
UanMacRc::AssociateTimeout ()
|
Link Here
|
|---|
|
| 665 |
res.IncrementRetry (); |
659 |
res.IncrementRetry (); |
| 666 |
|
660 |
|
| 667 |
pkt->AddHeader (CreateRtsHeader (res)); |
661 |
pkt->AddHeader (CreateRtsHeader (res)); |
| 668 |
pkt->AddHeader (UanHeaderCommon (m_address, UanAddress::GetBroadcast (), (uint8_t) TYPE_GWPING)); |
662 |
pkt->AddHeader (UanHeaderCommon (m_address, UanAddress::GetBroadcast (), (uint8_t) TYPE_GWPING, 0)); |
| 669 |
|
663 |
|
| 670 |
SendPacket (pkt,m_currentRate + m_numRates); |
664 |
SendPacket (pkt,m_currentRate + m_numRates); |
| 671 |
m_resList.push_back (res); |
665 |
m_resList.push_back (res); |
|
Lines 698-704
UanMacRc::SendRts (void)
|
Link Here
|
|---|
|
| 698 |
{ |
692 |
{ |
| 699 |
Ptr<Packet> pkt = Create<Packet> (0); |
693 |
Ptr<Packet> pkt = Create<Packet> (0); |
| 700 |
pkt->AddHeader (CreateRtsHeader (res)); |
694 |
pkt->AddHeader (CreateRtsHeader (res)); |
| 701 |
pkt->AddHeader (UanHeaderCommon (m_address, UanAddress::GetBroadcast (), (uint8_t) TYPE_RTS)); |
695 |
pkt->AddHeader (UanHeaderCommon (m_address, UanAddress::GetBroadcast (), (uint8_t) TYPE_RTS, 0)); |
| 702 |
SendPacket (pkt,m_currentRate + m_numRates); |
696 |
SendPacket (pkt,m_currentRate + m_numRates); |
| 703 |
} |
697 |
} |
| 704 |
m_state = RTSSENT; |
698 |
m_state = RTSSENT; |
|
Lines 761-767
UanMacRc::RtsTimeout (void)
|
Link Here
|
|---|
|
| 761 |
res.IncrementRetry (); |
755 |
res.IncrementRetry (); |
| 762 |
m_resList.push_back (res); |
756 |
m_resList.push_back (res); |
| 763 |
pkt->AddHeader (CreateRtsHeader (res)); |
757 |
pkt->AddHeader (CreateRtsHeader (res)); |
| 764 |
pkt->AddHeader (UanHeaderCommon (m_address, UanAddress::GetBroadcast (), (uint8_t) TYPE_RTS)); |
758 |
pkt->AddHeader (UanHeaderCommon (m_address, UanAddress::GetBroadcast (), (uint8_t) TYPE_RTS, 0)); |
| 765 |
SendPacket (pkt,m_currentRate + m_numRates); |
759 |
SendPacket (pkt,m_currentRate + m_numRates); |
| 766 |
|
760 |
|
| 767 |
} |
761 |
} |