21 #ifndef MAC_RX_MIDDLE_H 
   22 #define MAC_RX_MIDDLE_H 
   26 #include "ns3/callback.h" 
   27 #include "ns3/mac48-address.h" 
   28 #include "ns3/packet.h" 
   33 class OriginatorRxStatus;
 
  105   typedef std::map <Mac48Address, OriginatorRxStatus *, std::less<Mac48Address> > 
Originators;
 
  113   typedef std::map <Mac48Address, OriginatorRxStatus *, std::less<Mac48Address> >::iterator 
OriginatorsI;
 
  117   typedef std::map <std::pair<Mac48Address, uint8_t>, OriginatorRxStatus *, std::less<std::pair<Mac48Address,uint8_t> > >::iterator 
QosOriginatorsI;
 
std::map< std::pair< Mac48Address, uint8_t >, OriginatorRxStatus *, std::less< std::pair< Mac48Address, uint8_t > > > QosOriginators
typedef for a map between address, OriginatorRxStatus, and Traffic ID 
 
void SetForwardCallback(ForwardUpCallback callback)
Set a callback to forward the packet up. 
 
std::map< std::pair< Mac48Address, uint8_t >, OriginatorRxStatus *, std::less< std::pair< Mac48Address, uint8_t > > >::iterator QosOriginatorsI
typedef for an interator for QosOriginators 
 
This class handles duplicate detection and recomposition of fragments. 
 
void Receive(Ptr< Packet > packet, const WifiMacHeader *hdr)
 
Ptr< Packet > HandleFragments(Ptr< Packet > packet, const WifiMacHeader *hdr, OriginatorRxStatus *originator)
Check if the received packet is a fragment and handle it appropriately. 
 
std::map< Mac48Address, OriginatorRxStatus *, std::less< Mac48Address > >::iterator OriginatorsI
typedef for an interator for Originators 
 
OriginatorRxStatus * Lookup(const WifiMacHeader *hdr)
Look up for OriginatorRxStatus associated with the sender address (by looking at ADDR2 field in the h...
 
Originators m_originatorStatus
 
bool IsDuplicate(const WifiMacHeader *hdr, OriginatorRxStatus *originator) const 
Check if we have already received the packet from the sender before (by looking at the sequence contr...
 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
 
std::map< Mac48Address, OriginatorRxStatus *, std::less< Mac48Address > > Originators
typedef for a map between address and OriginatorRxStatus 
 
Callback< void, Ptr< Packet >, const WifiMacHeader * > ForwardUpCallback
typedef for callback 
 
friend class MacRxMiddleTest
 
ForwardUpCallback m_callback
 
A class to keep track of the packet originator status. 
 
QosOriginators m_qosOriginatorStatus