#include <mac-rx-middle.h>
Definition at line 35 of file mac-rx-middle.h.
typedef Callback<void, Ptr<Packet> , WifiMacHeader const *> ns3::MacRxMiddle::ForwardUpCallback |
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.
ns3::MacRxMiddle::MacRxMiddle | ( | ) |
Definition at line 99 of file mac-rx-middle.cc.
References NS_LOG_FUNCTION_NOARGS.
ns3::MacRxMiddle::~MacRxMiddle | ( | ) |
Definition at line 104 of file mac-rx-middle.cc.
References m_originatorStatus, m_qosOriginatorStatus, and NS_LOG_FUNCTION_NOARGS.
Ptr< Packet > ns3::MacRxMiddle::HandleFragments | ( | Ptr< Packet > | packet, | |
WifiMacHeader const * | hdr, | |||
OriginatorRxStatus * | originator | |||
) | [private] |
Definition at line 201 of file mac-rx-middle.cc.
References ns3::OriginatorRxStatus::AccumulateFirstFragment(), ns3::OriginatorRxStatus::AccumulateFragment(), ns3::OriginatorRxStatus::AccumulateLastFragment(), ns3::WifiMacHeader::GetFragmentNumber(), ns3::WifiMacHeader::GetSequenceControl(), ns3::WifiMacHeader::GetSequenceNumber(), ns3::WifiMacHeader::GetSize(), ns3::OriginatorRxStatus::IsDeFragmenting(), ns3::WifiMacHeader::IsMoreFragments(), ns3::OriginatorRxStatus::IsNextFragment(), NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::OriginatorRxStatus::SetSequenceControl().
Referenced by Receive().
bool ns3::MacRxMiddle::IsDuplicate | ( | WifiMacHeader const * | hdr, | |
OriginatorRxStatus * | originator | |||
) | const [private] |
Definition at line 188 of file mac-rx-middle.cc.
References ns3::OriginatorRxStatus::GetLastSequenceControl(), ns3::WifiMacHeader::GetSequenceControl(), ns3::WifiMacHeader::IsRetry(), and NS_LOG_FUNCTION.
Referenced by Receive().
OriginatorRxStatus * ns3::MacRxMiddle::Lookup | ( | WifiMacHeader const * | hdr | ) | [private] |
Definition at line 154 of file mac-rx-middle.cc.
References ns3::WifiMacHeader::GetAddr2(), ns3::WifiMacHeader::GetQosTid(), ns3::Mac48Address::IsBroadcast(), ns3::WifiMacHeader::IsQosData(), m_originatorStatus, m_qosOriginatorStatus, and NS_LOG_FUNCTION.
Referenced by Receive().
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 | ) |
Definition at line 124 of file mac-rx-middle.cc.
References m_callback, and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::AdhocWifiMac::AdhocWifiMac(), ns3::NqapWifiMac::NqapWifiMac(), and ns3::NqstaWifiMac::NqstaWifiMac().
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().