22 #ifndef SERVICE_FLOW_H
23 #define SERVICE_FLOW_H
26 #include "wimax-phy.h"
27 #include "wimax-connection.h"
28 #include "cs-parameters.h"
32 class ServiceFlowRecord;
33 class WimaxConnection;
44 SF_DIRECTION_DOWN, SF_DIRECTION_UP
49 SF_TYPE_PROVISIONED, SF_TYPE_ADMITTED, SF_TYPE_ACTIVE
55 SF_TYPE_NONE = 0, SF_TYPE_UNDEF = 1, SF_TYPE_BE = 2, SF_TYPE_NRTPS = 3,
56 SF_TYPE_RTPS = 4, SF_TYPE_UGS = 6, SF_TYPE_ALL = 255
61 ATM = 99, IPV4 = 100, IPV6 = 101, ETHERNET = 102, VLAN = 103,
62 IPV4_OVER_ETHERNET = 104, IPV6_OVER_ETHERNET = 105, IPV4_OVER_VLAN = 106,
67 MODULATION_TYPE_BPSK_12, MODULATION_TYPE_QPSK_12, MODULATION_TYPE_QPSK_34, MODULATION_TYPE_QAM16_12,
68 MODULATION_TYPE_QAM16_34, MODULATION_TYPE_QAM64_23, MODULATION_TYPE_QAM64_34
99 enum Direction direction,
104 void InitValues (
void);
105 void SetDirection (
enum Direction direction);
106 enum Direction GetDirection (
void)
const;
109 void SetType (
enum Type type);
110 enum Type GetType (
void)
const;
116 void SetIsEnabled (
bool isEnabled);
117 bool GetIsEnabled (
void)
const;
124 enum ServiceFlow::SchedulingType GetSchedulingType (
void)
const;
125 bool HasPackets (
void)
const;
129 void CleanUpQueue (
void);
131 void PrintQoSParameters (
void)
const;
133 char* GetSchedulingTypeStr (
void)
const;
135 uint32_t GetSfid (
void)
const;
136 uint16_t GetCid (
void)
const;
137 std::string GetServiceClassName ()
const;
138 uint8_t GetQosParamSetType (
void)
const;
139 uint8_t GetTrafficPriority (
void)
const;
140 uint32_t GetMaxSustainedTrafficRate (
void)
const;
141 uint32_t GetMaxTrafficBurst (
void)
const;
142 uint32_t GetMinReservedTrafficRate (
void)
const;
143 uint32_t GetMinTolerableTrafficRate (
void)
const;
144 enum ServiceFlow::SchedulingType GetServiceSchedulingType (
void)
const;
145 uint32_t GetRequestTransmissionPolicy (
void)
const;
146 uint32_t GetToleratedJitter (
void)
const;
147 uint32_t GetMaximumLatency (
void)
const;
148 uint8_t GetFixedversusVariableSduIndicator (
void)
const;
149 uint8_t GetSduSize (
void)
const;
150 uint16_t GetTargetSAID (
void)
const;
151 uint8_t GetArqEnable (
void)
const;
152 uint16_t GetArqWindowSize (
void)
const;
153 uint16_t GetArqRetryTimeoutTx (
void)
const;
154 uint16_t GetArqRetryTimeoutRx (
void)
const;
155 uint16_t GetArqBlockLifeTime (
void)
const;
156 uint16_t GetArqSyncLoss (
void)
const;
157 uint8_t GetArqDeliverInOrder (
void)
const;
158 uint16_t GetArqPurgeTimeout (
void)
const;
159 uint16_t GetArqBlockSize (
void)
const;
160 enum CsSpecification GetCsSpecification (
void)
const;
162 uint16_t GetUnsolicitedGrantInterval (
void)
const;
163 uint16_t GetUnsolicitedPollingInterval (
void)
const;
164 bool GetIsMulticast (
void)
const;
165 enum WimaxPhy::ModulationType GetModulation (
void)
const;
167 void SetSfid (uint32_t);
168 void SetServiceClassName (std::string);
169 void SetQosParamSetType (uint8_t);
170 void SetTrafficPriority (uint8_t);
171 void SetMaxSustainedTrafficRate (uint32_t);
172 void SetMaxTrafficBurst (uint32_t);
173 void SetMinReservedTrafficRate (uint32_t);
174 void SetMinTolerableTrafficRate (uint32_t);
175 void SetServiceSchedulingType (
enum ServiceFlow::SchedulingType);
176 void SetRequestTransmissionPolicy (uint32_t);
177 void SetToleratedJitter (uint32_t);
178 void SetMaximumLatency (uint32_t);
179 void SetFixedversusVariableSduIndicator (uint8_t);
180 void SetSduSize (uint8_t);
181 void SetTargetSAID (uint16_t);
182 void SetArqEnable (uint8_t);
183 void SetArqWindowSize (uint16_t);
184 void SetArqRetryTimeoutTx (uint16_t);
185 void SetArqRetryTimeoutRx (uint16_t);
186 void SetArqBlockLifeTime (uint16_t);
187 void SetArqSyncLoss (uint16_t);
188 void SetArqDeliverInOrder (uint8_t);
189 void SetArqPurgeTimeout (uint16_t);
190 void SetArqBlockSize (uint16_t);
191 void SetCsSpecification (
enum CsSpecification);
194 void SetUnsolicitedGrantInterval (uint16_t);
195 void SetUnsolicitedPollingInterval (uint16_t);
196 void SetIsMulticast (
bool isMulticast);
197 void SetModulation (
enum WimaxPhy::ModulationType modulationType);
203 std::string m_serviceClassName;
204 uint8_t m_qosParamSetType;
205 uint8_t m_trafficPriority;
206 uint32_t m_maxSustainedTrafficRate;
207 uint32_t m_maxTrafficBurst;
208 uint32_t m_minReservedTrafficRate;
209 uint32_t m_minTolerableTrafficRate;
210 enum ServiceFlow::SchedulingType m_schedulingType;
211 uint32_t m_requestTransmissionPolicy;
212 uint32_t m_toleratedJitter;
213 uint32_t m_maximumLatency;
214 uint8_t m_fixedversusVariableSduIndicator;
216 uint16_t m_targetSAID;
218 uint16_t m_arqWindowSize;
219 uint16_t m_arqRetryTimeoutTx;
220 uint16_t m_arqRetryTimeoutRx;
221 uint16_t m_arqBlockLifeTime;
222 uint16_t m_arqSyncLoss;
223 uint8_t m_arqDeliverInOrder;
224 uint16_t m_arqPurgeTimeout;
225 uint16_t m_arqBlockSize;
226 enum CsSpecification m_csSpecification;
228 uint16_t m_unsolicitedGrantInterval;
229 uint16_t m_unsolicitedPollingInterval;
230 Direction m_direction;
235 enum WimaxPhy::ModulationType m_modulationType;
smart pointer class similar to boost::intrusive_ptr
this class implements a structure to manage some parameters and statistics related to a service flow ...
This class implements the Type-Len-Value structure channel encodings as described by "IEEE Standard f...
bool CheckClassifierMatch(Ipv4Address srcAddress, Ipv4Address dstAddress, uint16_t srcPort, uint16_t dstPort, uint8_t proto) const
Ipv4 addresses are stored in host order in this class.
Tlv ToTlv(void) const
creates a TLV from this service flow