40 static TypeId GetTypeId (void); |
42 static TypeId GetTypeId (void); |
41 |
43 |
42 OnoeWifiManager (); |
44 OnoeWifiManager (); |
43 |
45 |
44 private: |
46 private: |
45 friend class OnoeWifiRemoteStation; |
47 // overriden from base class |
46 virtual WifiRemoteStation *CreateStation (void); |
48 virtual class WifiRemoteStation *DoCreateStation (void) const; |
|
49 virtual void DoReportRxOk (WifiRemoteStation *station, |
|
50 double rxSnr, WifiMode txMode); |
|
51 virtual void DoReportRtsFailed (WifiRemoteStation *station); |
|
52 virtual void DoReportDataFailed (WifiRemoteStation *station); |
|
53 virtual void DoReportRtsOk (WifiRemoteStation *station, |
|
54 double ctsSnr, WifiMode ctsMode, double rtsSnr); |
|
55 virtual void DoReportDataOk (WifiRemoteStation *station, |
|
56 double ackSnr, WifiMode ackMode, double dataSnr); |
|
57 virtual void DoReportFinalRtsFailed (WifiRemoteStation *station); |
|
58 virtual void DoReportFinalDataFailed (WifiRemoteStation *station); |
|
59 virtual WifiMode DoGetDataMode (WifiRemoteStation *station, uint32_t size); |
|
60 virtual WifiMode DoGetRtsMode (WifiRemoteStation *station); |
|
61 virtual bool IsLowLatency (void) const; |
|
62 |
|
63 void UpdateRetry (OnoeWifiRemoteStation *station); |
|
64 void UpdateMode (OnoeWifiRemoteStation *station); |
47 |
65 |
48 Time m_updatePeriod; |
66 Time m_updatePeriod; |
49 uint32_t m_addCreditThreshold; |
67 uint32_t m_addCreditThreshold; |
50 uint32_t m_raiseThreshold; |
68 uint32_t m_raiseThreshold; |
51 }; |
69 }; |
52 |
70 |
53 class OnoeWifiRemoteStation : public WifiRemoteStation |
|
54 { |
|
55 public: |
|
56 OnoeWifiRemoteStation (Ptr<OnoeWifiManager> stations); |
|
57 |
|
58 virtual ~OnoeWifiRemoteStation (); |
|
59 |
|
60 protected: |
|
61 virtual void DoReportRxOk (double rxSnr, WifiMode txMode); |
|
62 virtual void DoReportRtsFailed (void); |
|
63 virtual void DoReportDataFailed (void); |
|
64 virtual void DoReportRtsOk (double ctsSnr, WifiMode ctsMode, double rtsSnr); |
|
65 virtual void DoReportDataOk (double ackSnr, WifiMode ackMode, double dataSnr); |
|
66 virtual void DoReportFinalRtsFailed (void); |
|
67 virtual void DoReportFinalDataFailed (void); |
|
68 |
|
69 private: |
|
70 virtual Ptr<WifiRemoteStationManager> GetManager (void) const; |
|
71 virtual WifiMode DoGetDataMode (uint32_t size); |
|
72 virtual WifiMode DoGetRtsMode (void); |
|
73 |
|
74 void UpdateRetry (void); |
|
75 void UpdateMode (void); |
|
76 |
|
77 Ptr<OnoeWifiManager> m_stations; |
|
78 Time m_nextModeUpdate; |
|
79 uint32_t m_shortRetry; |
|
80 uint32_t m_longRetry; |
|
81 uint32_t m_tx_ok; |
|
82 uint32_t m_tx_err; |
|
83 uint32_t m_tx_retr; |
|
84 uint32_t m_tx_upper; |
|
85 uint32_t m_txrate; |
|
86 }; |
|
87 |
|
88 } // namespace ns3 |
71 } // namespace ns3 |
89 |
72 |
90 #endif /* ONOE_WIFI_MANAGER_H */ |
73 #endif /* ONOE_WIFI_MANAGER_H */ |