|
Lines 275-294
UanMacRc::AssignStreams (int64_t stream)
|
Link Here
|
|---|
|
| 275 |
return 1; |
275 |
return 1; |
| 276 |
} |
276 |
} |
| 277 |
|
277 |
|
| 278 |
Address |
|
|
| 279 |
UanMacRc::GetAddress (void) |
| 280 |
{ |
| 281 |
return m_address; |
| 282 |
} |
| 283 |
|
| 284 |
void |
| 285 |
UanMacRc::SetAddress (UanAddress addr) |
| 286 |
{ |
| 287 |
m_address = addr; |
| 288 |
} |
| 289 |
|
| 290 |
bool |
278 |
bool |
| 291 |
UanMacRc::Enqueue (Ptr<Packet> packet, const Address &dest, uint16_t protocolNumber) |
279 |
UanMacRc::Enqueue (Ptr<Packet> packet, uint16_t protocolNumber, const Address &dest) |
| 292 |
{ |
280 |
{ |
| 293 |
if (protocolNumber > 0) |
281 |
if (protocolNumber > 0) |
| 294 |
{ |
282 |
{ |
|
Lines 324-330
UanMacRc::Enqueue (Ptr<Packet> packet, const Address &dest, uint16_t protocolNum
|
Link Here
|
|---|
|
| 324 |
} |
312 |
} |
| 325 |
|
313 |
|
| 326 |
void |
314 |
void |
| 327 |
UanMacRc::SetForwardUpCb (Callback<void, Ptr<Packet>, const UanAddress&> cb) |
315 |
UanMacRc::SetForwardUpCb (Callback<void, Ptr<Packet>, uint16_t, const UanAddress&> cb) |
| 328 |
{ |
316 |
{ |
| 329 |
m_forwardUpCb = cb; |
317 |
m_forwardUpCb = cb; |
| 330 |
} |
318 |
} |
|
Lines 336-347
UanMacRc::AttachPhy (Ptr<UanPhy> phy)
|
Link Here
|
|---|
|
| 336 |
m_phy->SetReceiveOkCallback (MakeCallback (&UanMacRc::ReceiveOkFromPhy, this)); |
324 |
m_phy->SetReceiveOkCallback (MakeCallback (&UanMacRc::ReceiveOkFromPhy, this)); |
| 337 |
} |
325 |
} |
| 338 |
|
326 |
|
| 339 |
Address |
|
|
| 340 |
UanMacRc::GetBroadcast (void) const |
| 341 |
{ |
| 342 |
return UanAddress::GetBroadcast (); |
| 343 |
} |
| 344 |
|
| 345 |
void |
327 |
void |
| 346 |
UanMacRc::ReceiveOkFromPhy (Ptr<Packet> pkt, double sinr, UanTxMode mode) |
328 |
UanMacRc::ReceiveOkFromPhy (Ptr<Packet> pkt, double sinr, UanTxMode mode) |
| 347 |
{ |
329 |
{ |
|
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"); |
344 |
NS_LOG_DEBUG (Simulator::Now ().GetSeconds () << " Node " << m_address << " UanMacRc Receiving DATA packet from PHY"); |
| 363 |
UanHeaderRcData dh; |
345 |
UanHeaderRcData dh; |
| 364 |
pkt->RemoveHeader (dh); |
346 |
pkt->RemoveHeader (dh); |
| 365 |
m_forwardUpCb (pkt, ch.GetSrc ()); |
347 |
m_forwardUpCb (pkt, ch.GetProtocolNumber (), ch.GetSrc ()); |
| 366 |
} |
348 |
} |
| 367 |
break; |
349 |
break; |
| 368 |
case TYPE_RTS: |
350 |
case TYPE_RTS: |
|
Lines 634-640
UanMacRc::Associate (void)
|
Link Here
|
|---|
|
| 634 |
{ |
616 |
{ |
| 635 |
Ptr<Packet> pkt = Create<Packet> (0); |
617 |
Ptr<Packet> pkt = Create<Packet> (0); |
| 636 |
pkt->AddHeader (CreateRtsHeader (res)); |
618 |
pkt->AddHeader (CreateRtsHeader (res)); |
| 637 |
pkt->AddHeader (UanHeaderCommon (m_address, UanAddress::GetBroadcast (), (uint8_t) TYPE_GWPING)); |
619 |
pkt->AddHeader (UanHeaderCommon (m_address, UanAddress::GetBroadcast (), (uint8_t) TYPE_GWPING, 0)); |
| 638 |
NS_LOG_DEBUG (Simulator::Now ().GetSeconds () << " Sending first GWPING " << *pkt); |
620 |
NS_LOG_DEBUG (Simulator::Now ().GetSeconds () << " Sending first GWPING " << *pkt); |
| 639 |
SendPacket (pkt,m_currentRate + m_numRates); |
621 |
SendPacket (pkt,m_currentRate + m_numRates); |
| 640 |
} |
622 |
} |
|
Lines 665-671
UanMacRc::AssociateTimeout ()
|
Link Here
|
|---|
|
| 665 |
res.IncrementRetry (); |
647 |
res.IncrementRetry (); |
| 666 |
|
648 |
|
| 667 |
pkt->AddHeader (CreateRtsHeader (res)); |
649 |
pkt->AddHeader (CreateRtsHeader (res)); |
| 668 |
pkt->AddHeader (UanHeaderCommon (m_address, UanAddress::GetBroadcast (), (uint8_t) TYPE_GWPING)); |
650 |
pkt->AddHeader (UanHeaderCommon (m_address, UanAddress::GetBroadcast (), (uint8_t) TYPE_GWPING, 0)); |
| 669 |
|
651 |
|
| 670 |
SendPacket (pkt,m_currentRate + m_numRates); |
652 |
SendPacket (pkt,m_currentRate + m_numRates); |
| 671 |
m_resList.push_back (res); |
653 |
m_resList.push_back (res); |
|
Lines 698-704
UanMacRc::SendRts (void)
|
Link Here
|
|---|
|
| 698 |
{ |
680 |
{ |
| 699 |
Ptr<Packet> pkt = Create<Packet> (0); |
681 |
Ptr<Packet> pkt = Create<Packet> (0); |
| 700 |
pkt->AddHeader (CreateRtsHeader (res)); |
682 |
pkt->AddHeader (CreateRtsHeader (res)); |
| 701 |
pkt->AddHeader (UanHeaderCommon (m_address, UanAddress::GetBroadcast (), (uint8_t) TYPE_RTS)); |
683 |
pkt->AddHeader (UanHeaderCommon (m_address, UanAddress::GetBroadcast (), (uint8_t) TYPE_RTS, 0)); |
| 702 |
SendPacket (pkt,m_currentRate + m_numRates); |
684 |
SendPacket (pkt,m_currentRate + m_numRates); |
| 703 |
} |
685 |
} |
| 704 |
m_state = RTSSENT; |
686 |
m_state = RTSSENT; |
|
Lines 761-767
UanMacRc::RtsTimeout (void)
|
Link Here
|
|---|
|
| 761 |
res.IncrementRetry (); |
743 |
res.IncrementRetry (); |
| 762 |
m_resList.push_back (res); |
744 |
m_resList.push_back (res); |
| 763 |
pkt->AddHeader (CreateRtsHeader (res)); |
745 |
pkt->AddHeader (CreateRtsHeader (res)); |
| 764 |
pkt->AddHeader (UanHeaderCommon (m_address, UanAddress::GetBroadcast (), (uint8_t) TYPE_RTS)); |
746 |
pkt->AddHeader (UanHeaderCommon (m_address, UanAddress::GetBroadcast (), (uint8_t) TYPE_RTS, 0)); |
| 765 |
SendPacket (pkt,m_currentRate + m_numRates); |
747 |
SendPacket (pkt,m_currentRate + m_numRates); |
| 766 |
|
748 |
|
| 767 |
} |
749 |
} |