A class to keep track of the packet originator status. More...
 Collaboration diagram for ns3::OriginatorRxStatus:
 Collaboration diagram for ns3::OriginatorRxStatus:| Public Member Functions | |
| OriginatorRxStatus () | |
| ~OriginatorRxStatus () | |
| void | AccumulateFirstFragment (Ptr< const Packet > packet) | 
| We have received a first fragmented packet.  More... | |
| void | AccumulateFragment (Ptr< const Packet > packet) | 
| We received a fragmented packet (not first and not last).  More... | |
| Ptr< Packet > | AccumulateLastFragment (Ptr< const Packet > packet) | 
| We have received a last fragment of the fragmented packets (indicated by the no more fragment field).  More... | |
| uint16_t | GetLastSequenceControl (void) | 
| Return the last sequence control we received.  More... | |
| bool | IsDeFragmenting (void) | 
| Check if we are de-fragmenting packets.  More... | |
| bool | IsNextFragment (uint16_t sequenceControl) | 
| Check if the sequence control (i.e.  More... | |
| void | SetSequenceControl (uint16_t sequenceControl) | 
| Set the last sequence control we received.  More... | |
| Private Types | |
| typedef std::list< Ptr< const Packet > > | Fragments | 
| typedef for a list of fragments (i.e.  More... | |
| typedef std::list< Ptr< const Packet > >::const_iterator | FragmentsCI | 
| typedef for a const iterator for Fragments  More... | |
| Private Attributes | |
| bool | m_defragmenting | 
| Fragments | m_fragments | 
| uint16_t | m_lastSequenceControl | 
A class to keep track of the packet originator status.
It recomposes the packet from multiple fragments.
Definition at line 40 of file mac-rx-middle.cc.
| 
 | private | 
typedef for a list of fragments (i.e.
incomplete Packet).
Definition at line 46 of file mac-rx-middle.cc.
| 
 | private | 
typedef for a const iterator for Fragments
Definition at line 50 of file mac-rx-middle.cc.
| 
 | inline | 
Definition at line 56 of file mac-rx-middle.cc.
References m_defragmenting, and m_lastSequenceControl.
| 
 | inline | 
Definition at line 62 of file mac-rx-middle.cc.
References m_fragments.
We have received a first fragmented packet.
We start the deframentation by saving the first fragment.
| packet | the first fragmented packet | 
Definition at line 82 of file mac-rx-middle.cc.
References m_defragmenting, m_fragments, and NS_ASSERT.
Referenced by ns3::MacRxMiddle::HandleFragments().
 Here is the caller graph for this function:
 Here is the caller graph for this function:We received a fragmented packet (not first and not last).
We simply save it into our internal list.
| packet | the received fragment | 
Definition at line 116 of file mac-rx-middle.cc.
References m_defragmenting, m_fragments, and NS_ASSERT.
Referenced by ns3::MacRxMiddle::HandleFragments().
 Here is the caller graph for this function:
 Here is the caller graph for this function:We have received a last fragment of the fragmented packets (indicated by the no more fragment field).
We re-construct the packet from the fragments we saved and return the full packet.
| packet | the last fragment | 
Definition at line 97 of file mac-rx-middle.cc.
References ns3::Packet::AddAtEnd(), m_defragmenting, m_fragments, and NS_ASSERT.
Referenced by ns3::MacRxMiddle::HandleFragments().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inline | 
Return the last sequence control we received.
Definition at line 146 of file mac-rx-middle.cc.
References m_lastSequenceControl.
Referenced by ns3::MacRxMiddle::IsDuplicate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inline | 
Check if we are de-fragmenting packets.
Definition at line 72 of file mac-rx-middle.cc.
References m_defragmenting.
Referenced by ns3::MacRxMiddle::HandleFragments().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inline | 
Check if the sequence control (i.e.
fragment number) is in order.
| sequenceControl | the raw sequence control | 
Definition at line 129 of file mac-rx-middle.cc.
References m_lastSequenceControl.
Referenced by ns3::MacRxMiddle::HandleFragments().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inline | 
Set the last sequence control we received.
| sequenceControl | the last sequence control we received | 
Definition at line 155 of file mac-rx-middle.cc.
References m_lastSequenceControl.
Referenced by ns3::MacRxMiddle::HandleFragments().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | private | 
Definition at line 52 of file mac-rx-middle.cc.
Referenced by AccumulateFirstFragment(), AccumulateFragment(), AccumulateLastFragment(), IsDeFragmenting(), and OriginatorRxStatus().
| 
 | private | 
Definition at line 54 of file mac-rx-middle.cc.
Referenced by AccumulateFirstFragment(), AccumulateFragment(), AccumulateLastFragment(), and ~OriginatorRxStatus().
| 
 | private | 
Definition at line 53 of file mac-rx-middle.cc.
Referenced by GetLastSequenceControl(), IsNextFragment(), OriginatorRxStatus(), and SetSequenceControl().