25 #include "ns3/simulator.h"
45 m_direction (SF_DIRECTION_DOWN),
46 m_type (SF_TYPE_PROVISIONED),
92 for (std::vector<Tlv*>::const_iterator iter = param->
Begin (); iter != param->
End (); ++iter)
94 switch ((*iter)->GetType ())
103 uint16_t cid = ((
U16TlvValue*)((*iter)->PeekValue ()))->GetValue ();
298 packet =
m_connection->GetQueue ()->Peek (hdr, timeStamp);
786 return (
char*)
"UGS";
789 return (
char*)
"rtPS";
792 return (
char*)
"nrtPS";
Tlv ToTlv(void) const
creates a tlv from the classifier record
IpcsClassifierRecord GetPacketClassifierRule(void) const
bool CheckMatch(Ipv4Address srcAddress, Ipv4Address dstAddress, uint16_t srcPort, uint16_t dstPort, uint8_t proto) const
check if a packets can be used with this classifier
Ipv4 addresses are stored in host order in this class.
Smart pointer class similar to boost::intrusive_ptr.
This class implements service flows as described by the IEEE-802.16 standard.
uint8_t GetArqDeliverInOrder(void) const
Get ARQ deliver in order.
uint16_t m_targetSAID
traget SAID
uint32_t m_requestTransmissionPolicy
request transmission policy
enum WimaxPhy::ModulationType GetModulation(void) const
Get modulation.
void SetTargetSAID(uint16_t targetSaid)
Set target SAID.
void SetRequestTransmissionPolicy(uint32_t policy)
Set request transmission policy.
uint16_t m_arqBlockSize
ARQ block size.
enum WimaxPhy::ModulationType m_modulationType
modulation type
void SetSfid(uint32_t sfid)
Set SFID.
enum CsSpecification m_csSpecification
CS specification.
std::string m_serviceClassName
service class name
uint32_t m_toleratedJitter
tolerated jitter
uint16_t GetArqRetryTimeoutTx(void) const
Get ARQ retry timeout transmit.
enum Type GetType(void) const
Get type of service flow.
void SetArqEnable(uint8_t arqEnable)
Set ARQ enable.
void SetArqBlockSize(uint16_t size)
Set ARQ block size.
enum ServiceFlow::SchedulingType m_schedulingType
scheduling type
uint32_t GetMinReservedTrafficRate(void) const
Get minimum reserved traffic rate.
enum ServiceFlow::SchedulingType GetServiceSchedulingType(void) const
Get service scheduling type.
uint8_t GetArqEnable(void) const
Get ARQ enable.
void SetServiceClassName(std::string name)
Set service class name.
uint8_t GetSduSize(void) const
Get SDU size.
uint32_t m_maximumLatency
maximum latency
uint32_t m_minTolerableTrafficRate
minimum tolerable traffic rate
uint16_t GetUnsolicitedPollingInterval(void) const
Get unsolicited polling interval.
uint16_t m_arqBlockLifeTime
ARQ block life time.
uint16_t GetArqRetryTimeoutRx(void) const
Get ARQ retry timeout receive.
uint16_t GetUnsolicitedGrantInterval(void) const
Get unsolicited grant interval.
uint16_t m_unsolicitedGrantInterval
unsolicited grant interval
void SetType(enum Type type)
Set type of service flow.
CsParameters m_convergenceSublayerParam
convergence sublayer parameters
bool m_isEnabled
is enabled?
std::string GetServiceClassName() const
Get service class name.
uint8_t GetFixedversusVariableSduIndicator(void) const
Get fixed versus varaiable SDU indicator.
uint16_t m_arqRetryTimeoutTx
ARQ retry timeout transmit.
uint8_t m_trafficPriority
traffic priority
uint32_t m_minReservedTrafficRate
minimum reserved traffic rate
Ptr< WimaxConnection > m_connection
connection
void SetMaxTrafficBurst(uint32_t maxTrafficBurst)
Set maximum traffic burst.
void SetArqSyncLoss(uint16_t syncLoss)
Set ARQ sync loss.
void SetModulation(enum WimaxPhy::ModulationType modulationType)
Set modulation.
uint32_t m_maxSustainedTrafficRate
maximum sustained traffic rate
uint16_t GetArqBlockSize(void) const
Get ARQ block size.
void SetMaximumLatency(uint32_t MaximumLatency)
Set maximum latency.
enum Direction GetDirection(void) const
Get direction.
uint8_t m_arqDeliverInOrder
ARQ deliver in order.
Ptr< WimaxMacQueue > GetQueue(void) const
Get pointer to queue.
bool HasPackets(void) const
Check if packets are present.
void SetQosParamSetType(uint8_t type)
Set QOS parameter set type.
uint32_t m_maxTrafficBurst
maximum traffic burst
enum ServiceFlow::SchedulingType GetSchedulingType(void) const
Get scheduling type.
uint16_t GetTargetSAID(void) const
Get target SAID.
uint32_t GetMaxTrafficBurst(void) const
Get max traffic burst.
void SetCsSpecification(enum CsSpecification spec)
Set CS specification.
uint16_t m_unsolicitedPollingInterval
unsolicited polling interval
uint8_t m_qosParamSetType
QOS parameter type.
SchedulingType
section 11.13.11 Service flow scheduling type, page 701
ServiceFlow()
default constructor
uint16_t m_arqSyncLoss
ARQ sync loss.
void SetArqWindowSize(uint16_t arqWindowSize)
Set ARQ retry timeout transmit.
void SetConvergenceSublayerParam(CsParameters csparam)
Set convergence sublayer parameters.
uint8_t GetQosParamSetType(void) const
Get QOS parameter set type.
uint16_t GetArqPurgeTimeout(void) const
Get ARQ purge timeout.
void SetSduSize(uint8_t sduSize)
Set SDU size.
void SetRecord(ServiceFlowRecord *record)
Set service flow record.
bool m_isMulticast
is multicast?
void SetArqPurgeTimeout(uint16_t timeout)
Set ARQ purge timeout.
uint32_t GetMinTolerableTrafficRate(void) const
Get minimum tolerable traffic rate.
uint16_t GetArqBlockLifeTime(void) const
Get ARQ block lifetime.
uint16_t m_arqPurgeTimeout
ARQ purge timeout.
char * GetSchedulingTypeStr(void) const
Get scheduling type string.
uint8_t GetTrafficPriority(void) const
Get traffic priority.
void SetTrafficPriority(uint8_t priority)
Set traffic priority.
ServiceFlowRecord * m_record
service flow record
ServiceFlowRecord * GetRecord(void) const
Get service flow record.
Ptr< WimaxConnection > GetConnection(void) const
Can return a null connection is this service flow has not been associated yet to a connection.
void SetArqBlockLifeTime(uint16_t lifeTime)
Set ARQ block lifetime.
uint16_t GetCid(void) const
Get CID.
void CopyParametersFrom(ServiceFlow sf)
Copy parameters from another service flow.
void SetMinTolerableTrafficRate(uint32_t minJitter)
Set minimum tolerable traffic rate.
void InitValues(void)
Initial values.
void CleanUpQueue(void)
shall be called only by BS
uint16_t m_arqWindowSize
ARQ window size.
void SetIsMulticast(bool isMulticast)
Set is multicast.
bool GetIsEnabled(void) const
Get is enabled flag.
void SetArqRetryTimeoutTx(uint16_t timeout)
Set ARQ retry timeout transmit.
uint8_t m_arqEnable
ARQ enable.
uint8_t m_fixedversusVariableSduIndicator
fixed versus variable SDI indicator
CsParameters GetConvergenceSublayerParam(void) const
Get convergence sublayer.
uint32_t GetMaximumLatency(void) const
Get maximum latency.
void SetToleratedJitter(uint32_t jitter)
Set tolerated jitter.
void SetUnsolicitedGrantInterval(uint16_t unsolicitedGrantInterval)
Set unsolicied grant interval.
uint8_t m_sduSize
SDU size.
uint16_t GetArqWindowSize(void) const
Get ARQ retry timeout transmit.
void SetArqDeliverInOrder(uint8_t inOrder)
Set ARQ deliver in order.
bool GetIsMulticast(void) const
Get is multicast.
uint16_t m_arqRetryTimeoutRx
ARQ retry timeout receive.
void SetServiceSchedulingType(enum ServiceFlow::SchedulingType schedType)
Set service scheduling type.
void SetArqRetryTimeoutRx(uint16_t timeout)
Set ARQ retry timeout receive.
enum CsSpecification GetCsSpecification(void) const
Get CS specification.
void SetUnsolicitedPollingInterval(uint16_t unsolicitedPollingInterval)
Set unsolicited polling interval.
void SetMinReservedTrafficRate(uint32_t minResvRate)
Set minimum reserved traffic rate.
CsSpecification
section 11.13.19.2 CS parameter encoding rules, page 707
bool CheckClassifierMatch(Ipv4Address srcAddress, Ipv4Address dstAddress, uint16_t srcPort, uint16_t dstPort, uint8_t proto) const
Tlv ToTlv(void) const
creates a TLV from this service flow
Direction
Direction enumeration.
uint32_t GetToleratedJitter(void) const
Get tolerated jitter.
uint16_t GetArqSyncLoss(void) const
Get ARQ sync loss.
ServiceFlow & operator=(ServiceFlow const &o)
assignment operator
void SetFixedversusVariableSduIndicator(uint8_t sduIndicator)
Set fixed versus variable SDU indicator.
uint32_t GetRequestTransmissionPolicy(void) const
Get request transmission policy.
Direction m_direction
direction
void SetMaxSustainedTrafficRate(uint32_t maxSustainedRate)
Set max sustained traffic rate.
void PrintQoSParameters(void) const
Print QOS parameters.
uint32_t GetMaxSustainedTrafficRate(void) const
Get max sustained traffic rate.
uint32_t GetSfid(void) const
Get SFID.
void SetConnection(Ptr< WimaxConnection > connection)
Set connection.
void SetIsEnabled(bool isEnabled)
Set is enabled flag.
void SetDirection(enum Direction direction)
Set direction.
this class implements a structure to manage some parameters and statistics related to a service flow
@ Fixed_length_versus_Variable_length_SDU_Indicator
@ Maximum_Sustained_Traffic_Rate
@ Request_Transmission_Policy
@ Minimum_Reserved_Traffic_Rate
@ Minimum_Tolerable_Traffic_Rate
@ Service_Flow_Scheduling_Type
static Time Now(void)
Return the current simulation virtual time.
Simulation virtual time values and global simulation resolution.
This class implements the Type-Len-Value structure channel encodings as described by "IEEE Standard f...
uint8_t GetType(void) const
Get type value.
TlvValue * PeekValue(void)
Peek value.
Iterator End() const
End iterator.
Iterator Begin() const
Begin iterator.
void Add(const Tlv &val)
Add a TLV.
virtual uint32_t GetSerializedSize(void) const
Get serialized size in bytes.
ModulationType
ModulationType enumeration.
@ MODULATION_TYPE_QPSK_12
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
Time MilliSeconds(uint64_t value)
Construct a Time in the indicated unit.
Every class exported by the ns3 library is enclosed in the ns3 namespace.