85 void SetBeaconInterval (Time interval); |
85 void SetBeaconInterval (Time interval); |
86 Time GetBeaconInterval (void) const; |
86 Time GetBeaconInterval (void) const; |
87 void StartBeaconing (void); |
87 void StartBeaconing (void); |
88 |
88 |
89 private: |
89 private: |
|
90 typedef std::map<AccessClass, Ptr<EdcaTxopN> > Queues; |
|
91 typedef std::list<std::pair<Ptr<Packet>, AmsduSubframeHeader> > DeaggregatedMsdus; |
|
92 typedef std::list<std::pair<Ptr<Packet>, AmsduSubframeHeader> >::const_iterator DeaggregatedMsdusCI; |
|
93 |
90 virtual void DoDispose (void); |
94 virtual void DoDispose (void); |
91 void Receive (Ptr<Packet> packet, WifiMacHeader const*hdr); |
95 void Receive (Ptr<Packet> packet, WifiMacHeader const*hdr); |
92 void ForwardUp (Ptr<Packet> packet, Mac48Address from, Mac48Address to); |
96 void ForwardUp (Ptr<Packet> packet, Mac48Address from, Mac48Address to); |
93 void ForwardDown (Ptr<const Packet> packet, Mac48Address from, Mac48Address to); |
97 void ForwardDown (Ptr<const Packet> packet, Mac48Address from, Mac48Address to); |
94 /* Next function is invoked only when ap relies a frame. */ |
98 /* Next function is invoked only when ap relies a frame. */ |
105 |
109 |
106 void DeaggregateAmsduAndForward (Ptr<Packet> aggregatedPacket, WifiMacHeader const *hdr); |
110 void DeaggregateAmsduAndForward (Ptr<Packet> aggregatedPacket, WifiMacHeader const *hdr); |
107 QapWifiMac &operator = (const QapWifiMac &); |
111 QapWifiMac &operator = (const QapWifiMac &); |
108 QapWifiMac (const QapWifiMac &); |
112 QapWifiMac (const QapWifiMac &); |
109 |
113 |
110 typedef std::map<AccessClass, Ptr<EdcaTxopN> > Queues; |
|
111 typedef std::list<std::pair<Ptr<Packet>, AmsduSubframeHeader> > DeaggregatedMsdus; |
|
112 typedef std::list<std::pair<Ptr<Packet>, AmsduSubframeHeader> >::const_iterator DeaggregatedMsdusCI; |
|
113 |
|
114 Callback<void,Ptr<Packet>, Mac48Address, Mac48Address> m_forwardUp; |
|
115 |
|
116 Ptr<EdcaTxopN> GetVOQueue (void) const; |
114 Ptr<EdcaTxopN> GetVOQueue (void) const; |
117 Ptr<EdcaTxopN> GetVIQueue (void) const; |
115 Ptr<EdcaTxopN> GetVIQueue (void) const; |
118 Ptr<EdcaTxopN> GetBEQueue (void) const; |
116 Ptr<EdcaTxopN> GetBEQueue (void) const; |
119 Ptr<EdcaTxopN> GetBKQueue (void) const; |
117 Ptr<EdcaTxopN> GetBKQueue (void) const; |
|
118 void SetQueue (enum AccessClass ac); |
120 |
119 |
121 void SetVOQueue (Ptr<EdcaTxopN> voQueue); |
120 virtual void FinishConfigureStandard (enum WifiPhyStandard standard); |
122 void SetVIQueue (Ptr<EdcaTxopN> viQueue); |
|
123 void SetBEQueue (Ptr<EdcaTxopN> beQueue); |
|
124 void SetBKQueue (Ptr<EdcaTxopN> bkQueue); |
|
125 |
121 |
126 /*Next map is used only for an esay access to a specific queue*/ |
|
127 Queues m_queues; |
122 Queues m_queues; |
128 Ptr<EdcaTxopN> m_voEdca; |
|
129 Ptr<EdcaTxopN> m_viEdca; |
|
130 Ptr<EdcaTxopN> m_beEdca; |
|
131 Ptr<EdcaTxopN> m_bkEdca; |
|
132 Ptr<DcaTxop> m_beaconDca; |
123 Ptr<DcaTxop> m_beaconDca; |
133 Ptr<MacLow> m_low; |
124 Ptr<MacLow> m_low; |
134 Ptr<WifiPhy> m_phy; |
125 Ptr<WifiPhy> m_phy; |
135 Ptr<WifiRemoteStationManager> m_stationManager; |
126 Ptr<WifiRemoteStationManager> m_stationManager; |
136 MacRxMiddle *m_rxMiddle; |
127 MacRxMiddle *m_rxMiddle; |
137 MacTxMiddle *m_txMiddle; |
128 MacTxMiddle *m_txMiddle; |
138 DcfManager *m_dcfManager; |
129 DcfManager *m_dcfManager; |
139 Ssid m_ssid; |
130 Ssid m_ssid; |
140 EventId m_beaconEvent; |
131 EventId m_beaconEvent; |
141 Time m_beaconInterval; |
132 Time m_beaconInterval; |
|
133 Callback<void,Ptr<Packet>, Mac48Address, Mac48Address> m_forwardUp; |
142 }; |
134 }; |
143 |
135 |
144 } //namespace ns3 |
136 } //namespace ns3 |
145 |
137 |
146 #endif /* QAP_WIFI_MAC_H */ |
138 #endif /* QAP_WIFI_MAC_H */ |