src/devices/wifi/mac-rx-middle.h
changeset 2159 20f882e85b4a
parent 1978 cc905522d049
child 4602 36adfa546b04
equal deleted inserted replaced
2158:1bae76be026d 2159:20f882e85b4a
    33 class OriginatorRxStatus;
    33 class OriginatorRxStatus;
    34 
    34 
    35 class MacRxMiddle
    35 class MacRxMiddle
    36 {
    36 {
    37 public:
    37 public:
    38   typedef Callback<void, Packet , WifiMacHeader const *> ForwardUpCallback;
    38   typedef Callback<void, Ptr<Packet> , WifiMacHeader const *> ForwardUpCallback;
    39 
    39 
    40   MacRxMiddle ();
    40   MacRxMiddle ();
    41   ~MacRxMiddle ();
    41   ~MacRxMiddle ();
    42 
    42 
    43   void SetForwardCallback (ForwardUpCallback callback);
    43   void SetForwardCallback (ForwardUpCallback callback);
    44 
    44 
    45   void Receive (Packet packet, WifiMacHeader const *hdr);
    45   void Receive (Ptr<Packet> packet, WifiMacHeader const *hdr);
    46 private:
    46 private:
    47   OriginatorRxStatus *Lookup (WifiMacHeader const*hdr);
    47   OriginatorRxStatus *Lookup (WifiMacHeader const*hdr);
    48   bool IsDuplicate (WifiMacHeader const *hdr, OriginatorRxStatus *originator) const;
    48   bool IsDuplicate (WifiMacHeader const *hdr, OriginatorRxStatus *originator) const;
    49   Packet HandleFragments (Packet packet, WifiMacHeader const*hdr,
    49   Ptr<Packet> HandleFragments (Ptr<Packet> packet, WifiMacHeader const*hdr,
    50                           OriginatorRxStatus *originator, bool *complete);
    50                                OriginatorRxStatus *originator);
    51   bool SequenceControlSmaller (int seqa, int seqb);
    51   bool SequenceControlSmaller (int seqa, int seqb);
    52 
    52 
    53   typedef std::map <Mac48Address, OriginatorRxStatus *, std::less<Mac48Address> > Originators;
    53   typedef std::map <Mac48Address, OriginatorRxStatus *, std::less<Mac48Address> > Originators;
    54   typedef std::map <std::pair<Mac48Address, uint8_t>, OriginatorRxStatus *, std::less<std::pair<Mac48Address,uint8_t> > > QosOriginators;
    54   typedef std::map <std::pair<Mac48Address, uint8_t>, OriginatorRxStatus *, std::less<std::pair<Mac48Address,uint8_t> > > QosOriginators;
    55   typedef std::map <Mac48Address, OriginatorRxStatus *, std::less<Mac48Address> >::iterator OriginatorsI;
    55   typedef std::map <Mac48Address, OriginatorRxStatus *, std::less<Mac48Address> >::iterator OriginatorsI;