ns3::MacRxMiddle Class Reference

#include <mac-rx-middle.h>

Collaboration diagram for ns3::MacRxMiddle:
Collaboration graph
[legend]

List of all members.

Public Types

typedef Callback< void, Ptr
< Packet >, WifiMacHeader
const * > 
ForwardUpCallback

Public Member Functions

 MacRxMiddle ()
 ~MacRxMiddle ()
void SetForwardCallback (ForwardUpCallback callback)
void Receive (Ptr< Packet > packet, WifiMacHeader const *hdr)

Private Types

typedef std::map< Mac48Address,
OriginatorRxStatus
*, std::less< Mac48Address > > 
Originators
typedef std::map< std::pair
< Mac48Address, uint8_t >
, OriginatorRxStatus
*, std::less< std::pair
< Mac48Address, uint8_t > > > 
QosOriginators
typedef std::map< Mac48Address,
OriginatorRxStatus
*, std::less< Mac48Address >
>::iterator 
OriginatorsI
typedef std::map< std::pair
< Mac48Address, uint8_t >
, OriginatorRxStatus
*, std::less< std::pair
< Mac48Address, uint8_t >
> >::iterator 
QosOriginatorsI

Private Member Functions

OriginatorRxStatusLookup (WifiMacHeader const *hdr)
bool IsDuplicate (WifiMacHeader const *hdr, OriginatorRxStatus *originator) const
Ptr< PacketHandleFragments (Ptr< Packet > packet, WifiMacHeader const *hdr, OriginatorRxStatus *originator)
bool SequenceControlSmaller (int seqa, int seqb)

Private Attributes

Originators m_originatorStatus
QosOriginators m_qosOriginatorStatus
ForwardUpCallback m_callback

Detailed Description

Definition at line 35 of file mac-rx-middle.h.


Member Typedef Documentation

Definition at line 38 of file mac-rx-middle.h.

typedef std::map<Mac48Address, OriginatorRxStatus *, std::less<Mac48Address> > ns3::MacRxMiddle::Originators [private]

Definition at line 53 of file mac-rx-middle.h.

typedef std::map<Mac48Address, OriginatorRxStatus *, std::less<Mac48Address> >::iterator ns3::MacRxMiddle::OriginatorsI [private]

Definition at line 55 of file mac-rx-middle.h.

typedef std::map<std::pair<Mac48Address, uint8_t>, OriginatorRxStatus *, std::less<std::pair<Mac48Address,uint8_t> > > ns3::MacRxMiddle::QosOriginators [private]

Definition at line 54 of file mac-rx-middle.h.

typedef std::map<std::pair<Mac48Address, uint8_t>, OriginatorRxStatus *, std::less<std::pair<Mac48Address,uint8_t> > >::iterator ns3::MacRxMiddle::QosOriginatorsI [private]

Definition at line 56 of file mac-rx-middle.h.


Constructor & Destructor Documentation

ns3::MacRxMiddle::MacRxMiddle (  ) 

Definition at line 99 of file mac-rx-middle.cc.

References NS_LOG_FUNCTION_NOARGS.

ns3::MacRxMiddle::~MacRxMiddle (  ) 

Member Function Documentation

Ptr< Packet > ns3::MacRxMiddle::HandleFragments ( Ptr< Packet packet,
WifiMacHeader const *  hdr,
OriginatorRxStatus originator 
) [private]
bool ns3::MacRxMiddle::IsDuplicate ( WifiMacHeader const *  hdr,
OriginatorRxStatus originator 
) const [private]
OriginatorRxStatus * ns3::MacRxMiddle::Lookup ( WifiMacHeader const *  hdr  )  [private]
void ns3::MacRxMiddle::Receive ( Ptr< Packet packet,
WifiMacHeader const *  hdr 
)

The check below is really uneeded because it can fail in a lot of normal cases. Specifically, it is possible for sequence numbers to loop back to zero once they reach 0xfff0 and to go up to 0xf7f0 in which case the check below will report the two sequence numbers to not have the correct order relationship. So, this check cannot be used to discard old duplicate frames. It is thus here only for documentation purposes.

Definition at line 260 of file mac-rx-middle.cc.

References ns3::WifiMacHeader::GetAddr1(), ns3::WifiMacHeader::GetAddr2(), ns3::WifiMacHeader::GetFragmentNumber(), ns3::WifiMacHeader::GetSequenceControl(), ns3::WifiMacHeader::GetSequenceNumber(), HandleFragments(), ns3::Mac48Address::IsBroadcast(), ns3::WifiMacHeader::IsData(), IsDuplicate(), ns3::WifiMacHeader::IsMgt(), Lookup(), m_callback, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, and SequenceControlSmaller().

Referenced by ns3::AdhocWifiMac::AdhocWifiMac(), ns3::NqapWifiMac::NqapWifiMac(), and ns3::NqstaWifiMac::NqstaWifiMac().

bool ns3::MacRxMiddle::SequenceControlSmaller ( int  seqa,
int  seqb 
) [private]

Definition at line 131 of file mac-rx-middle.cc.

References NS_LOG_DEBUG, and NS_LOG_FUNCTION.

Referenced by Receive().

void ns3::MacRxMiddle::SetForwardCallback ( ForwardUpCallback  callback  ) 

Member Data Documentation

Definition at line 59 of file mac-rx-middle.h.

Referenced by Receive(), and SetForwardCallback().

Definition at line 57 of file mac-rx-middle.h.

Referenced by Lookup(), and ~MacRxMiddle().

Definition at line 58 of file mac-rx-middle.h.

Referenced by Lookup(), and ~MacRxMiddle().


The documentation for this class was generated from the following files:
Generated on Thu Dec 3 14:11:07 2009 for NS-3 by  doxygen 1.6.3