389 |
390 |
390 void SetAddress (Mac48Address ad); |
391 void SetAddress (Mac48Address ad); |
391 void SetAckTimeout (Time ackTimeout); |
392 void SetAckTimeout (Time ackTimeout); |
392 void SetBasicBlockAckTimeout (Time blockAckTimeout); |
393 void SetBasicBlockAckTimeout (Time blockAckTimeout); |
393 void SetCompressedBlockAckTimeout (Time blockAckTimeout); |
394 void SetCompressedBlockAckTimeout (Time blockAckTimeout); |
|
395 void SetCtsToSelfSupported (bool enable); |
394 void SetCtsTimeout (Time ctsTimeout); |
396 void SetCtsTimeout (Time ctsTimeout); |
395 void SetSifs (Time sifs); |
397 void SetSifs (Time sifs); |
|
398 void SetRifs (Time rifs); |
396 void SetSlotTime (Time slotTime); |
399 void SetSlotTime (Time slotTime); |
397 void SetPifs (Time pifs); |
400 void SetPifs (Time pifs); |
398 void SetBssid (Mac48Address ad); |
401 void SetBssid (Mac48Address ad); |
399 void SetPromisc (void); |
402 void SetPromisc (void); |
|
403 bool GetCtsToSelfSupported () const; |
400 Mac48Address GetAddress (void) const; |
404 Mac48Address GetAddress (void) const; |
401 Time GetAckTimeout (void) const; |
405 Time GetAckTimeout (void) const; |
402 Time GetBasicBlockAckTimeout () const; |
406 Time GetBasicBlockAckTimeout () const; |
403 Time GetCompressedBlockAckTimeout () const; |
407 Time GetCompressedBlockAckTimeout () const; |
404 Time GetCtsTimeout (void) const; |
408 Time GetCtsTimeout (void) const; |
405 Time GetSifs (void) const; |
409 Time GetSifs (void) const; |
406 Time GetSlotTime (void) const; |
410 Time GetSlotTime (void) const; |
407 Time GetPifs (void) const; |
411 Time GetPifs (void) const; |
|
412 Time GetRifs (void) const; |
408 Mac48Address GetBssid (void) const; |
413 Mac48Address GetBssid (void) const; |
409 |
414 |
410 /** |
415 /** |
411 * \param callback the callback which receives every incoming packet. |
416 * \param callback the callback which receives every incoming packet. |
412 * |
417 * |
513 uint32_t GetBlockAckSize (enum BlockAckType type) const; |
518 uint32_t GetBlockAckSize (enum BlockAckType type) const; |
514 uint32_t GetRtsSize (void) const; |
519 uint32_t GetRtsSize (void) const; |
515 uint32_t GetCtsSize (void) const; |
520 uint32_t GetCtsSize (void) const; |
516 uint32_t GetSize (Ptr<const Packet> packet, const WifiMacHeader *hdr) const; |
521 uint32_t GetSize (Ptr<const Packet> packet, const WifiMacHeader *hdr) const; |
517 Time NowUs (void) const; |
522 Time NowUs (void) const; |
518 void ForwardDown (Ptr<const Packet> packet, const WifiMacHeader *hdr, |
523 void ForwardDown (Ptr<const Packet> packet, const WifiMacHeader *hdr, |
519 WifiMode txMode); |
524 WifiTxVector txVector, WifiPreamble preamble); |
|
525 WifiTxVector GetRtsTxVector (Ptr<const Packet> packet, const WifiMacHeader *hdr) const; |
|
526 WifiTxVector GetDataTxVector (Ptr<const Packet> packet, const WifiMacHeader *hdr) const; |
|
527 WifiTxVector GetCtsTxVector (Mac48Address to, WifiMode rtsTxMode) const; |
|
528 WifiTxVector GetAckTxVector (Mac48Address to, WifiMode dataTxMode) const; |
|
529 WifiTxVector GetBlockAckTxVector (Mac48Address to, WifiMode dataTxMode) const; |
|
530 |
|
531 WifiTxVector GetCtsToSelfTxVector (Ptr<const Packet> packet, const WifiMacHeader *hdr) const; |
|
532 |
|
533 WifiTxVector GetCtsTxVectorForRts (Mac48Address to, WifiMode rtsTxMode) const; |
|
534 WifiTxVector GetAckTxVectorForData (Mac48Address to, WifiMode dataTxMode) const; |
|
535 |
|
536 Time GetCtsDuration (WifiTxVector ctsTxVector) const; |
|
537 Time GetCtsDuration (Mac48Address to, WifiTxVector rtsTxVector) const; |
|
538 Time GetAckDuration (WifiTxVector ackTxVector) const; |
|
539 Time GetAckDuration (Mac48Address to, WifiTxVector dataTxVector) const; |
|
540 Time GetBlockAckDuration (Mac48Address to, WifiTxVector blockAckReqTxVector, enum BlockAckType type) const; |
|
541 |
|
542 bool NeedCtsToSelf (void); |
|
543 |
520 Time CalculateOverallTxTime (Ptr<const Packet> packet, |
544 Time CalculateOverallTxTime (Ptr<const Packet> packet, |
521 const WifiMacHeader* hdr, |
545 const WifiMacHeader* hdr, |
522 const MacLowTransmissionParameters ¶ms) const; |
546 const MacLowTransmissionParameters ¶ms) const; |
523 WifiMode GetRtsTxMode (Ptr<const Packet> packet, const WifiMacHeader *hdr) const; |
547 void NotifyNav (Ptr<const Packet> packet,const WifiMacHeader &hdr, WifiMode txMode, WifiPreamble preamble); |
524 WifiMode GetDataTxMode (Ptr<const Packet> packet, const WifiMacHeader *hdr) const; |
|
525 WifiMode GetCtsTxModeForRts (Mac48Address to, WifiMode rtsTxMode) const; |
|
526 WifiMode GetAckTxModeForData (Mac48Address to, WifiMode dataTxMode) const; |
|
527 |
|
528 Time GetCtsDuration (Mac48Address to, WifiMode rtsTxMode) const; |
|
529 Time GetAckDuration (Mac48Address to, WifiMode dataTxMode) const; |
|
530 Time GetBlockAckDuration (Mac48Address to, WifiMode blockAckReqTxMode, enum BlockAckType type) const; |
|
531 void NotifyNav (const WifiMacHeader &hdr, WifiMode txMode, WifiPreamble preamble); |
|
532 void DoNavResetNow (Time duration); |
548 void DoNavResetNow (Time duration); |
533 bool DoNavStartNow (Time duration); |
549 bool DoNavStartNow (Time duration); |
534 bool IsNavZero (void) const; |
550 bool IsNavZero (void) const; |
535 void NotifyAckTimeoutStartNow (Time duration); |
551 void NotifyAckTimeoutStartNow (Time duration); |
536 void NotifyAckTimeoutResetNow (); |
552 void NotifyAckTimeoutResetNow (); |
543 void FastAckTimeout (void); |
559 void FastAckTimeout (void); |
544 void SuperFastAckTimeout (void); |
560 void SuperFastAckTimeout (void); |
545 void FastAckFailedTimeout (void); |
561 void FastAckFailedTimeout (void); |
546 void BlockAckTimeout (void); |
562 void BlockAckTimeout (void); |
547 void CtsTimeout (void); |
563 void CtsTimeout (void); |
|
564 void SendCtsToSelf (void); |
548 void SendCtsAfterRts (Mac48Address source, Time duration, WifiMode txMode, double rtsSnr); |
565 void SendCtsAfterRts (Mac48Address source, Time duration, WifiMode txMode, double rtsSnr); |
549 void SendAckAfterData (Mac48Address source, Time duration, WifiMode txMode, double rtsSnr); |
566 void SendAckAfterData (Mac48Address source, Time duration, WifiMode txMode, double rtsSnr); |
550 void SendDataAfterCts (Mac48Address source, Time duration, WifiMode txMode); |
567 void SendDataAfterCts (Mac48Address source, Time duration, WifiMode txMode); |
551 void WaitSifsAfterEndTx (void); |
568 void WaitSifsAfterEndTx (void); |
552 void EndTxNoAck (void); |
569 void EndTxNoAck (void); |
553 |
570 |
554 void SendRtsForPacket (void); |
571 void SendRtsForPacket (void); |
555 void SendDataPacket (void); |
572 void SendDataPacket (void); |
556 void SendCurrentTxPacket (void); |
573 void SendCurrentTxPacket (void); |
557 void StartDataTxTimers (void); |
574 void StartDataTxTimers (WifiTxVector dataTxVector); |
558 virtual void DoDispose (void); |
575 virtual void DoDispose (void); |
559 /** |
576 /** |
560 * \param originator Address of peer participating in Block Ack mechanism. |
577 * \param originator Address of peer participating in Block Ack mechanism. |
561 * \param tid TID for which Block Ack was created. |
578 * \param tid TID for which Block Ack was created. |
562 * \param seq Starting sequence |
579 * \param seq Starting sequence |
623 EventId m_sendAckEvent; |
640 EventId m_sendAckEvent; |
624 EventId m_sendDataEvent; |
641 EventId m_sendDataEvent; |
625 EventId m_waitSifsEvent; |
642 EventId m_waitSifsEvent; |
626 EventId m_endTxNoAckEvent; |
643 EventId m_endTxNoAckEvent; |
627 EventId m_navCounterResetCtsMissed; |
644 EventId m_navCounterResetCtsMissed; |
|
645 EventId m_waitRifsEvent; |
628 |
646 |
629 Ptr<Packet> m_currentPacket; |
647 Ptr<Packet> m_currentPacket; |
630 WifiMacHeader m_currentHdr; |
648 WifiMacHeader m_currentHdr; |
631 MacLowTransmissionParameters m_txParams; |
649 MacLowTransmissionParameters m_txParams; |
632 MacLowTransmissionListener *m_listener; |
650 MacLowTransmissionListener *m_listener; |