A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ns3::ServiceFlow Class Reference

#include <service-flow.h>

Public Types

enum  CsSpecification {
  ATM = 99, IPV4 = 100, IPV6 = 101, ETHERNET = 102,
  VLAN = 103, IPV4_OVER_ETHERNET = 104, IPV6_OVER_ETHERNET = 105, IPV4_OVER_VLAN = 106,
  IPV6_OVER_VLAN = 107
}
 
enum  Direction { SF_DIRECTION_DOWN, SF_DIRECTION_UP }
 
enum  ModulationType {
  MODULATION_TYPE_BPSK_12, MODULATION_TYPE_QPSK_12, MODULATION_TYPE_QPSK_34, MODULATION_TYPE_QAM16_12,
  MODULATION_TYPE_QAM16_34, MODULATION_TYPE_QAM64_23, MODULATION_TYPE_QAM64_34
}
 
enum  SchedulingType {
  SF_TYPE_NONE = 0, SF_TYPE_UNDEF = 1, SF_TYPE_BE = 2, SF_TYPE_NRTPS = 3,
  SF_TYPE_RTPS = 4, SF_TYPE_UGS = 6, SF_TYPE_ALL = 255
}
 
enum  Type { SF_TYPE_PROVISIONED, SF_TYPE_ADMITTED, SF_TYPE_ACTIVE }
 

Public Member Functions

 ServiceFlow (Tlv tlv)
 creates a service flow from a TLV More...
 
 ServiceFlow (enum Direction direction)
 
 ServiceFlow (const ServiceFlow &sf)
 
 ServiceFlow (uint32_t sfid, enum Direction direction, Ptr< WimaxConnection > connection)
 
bool CheckClassifierMatch (Ipv4Address srcAddress, Ipv4Address dstAddress, uint16_t srcPort, uint16_t dstPort, uint8_t proto) const
 
void CleanUpQueue (void)
 
void CopyParametersFrom (ServiceFlow sf)
 
uint16_t GetArqBlockLifeTime (void) const
 
uint16_t GetArqBlockSize (void) const
 
uint8_t GetArqDeliverInOrder (void) const
 
uint8_t GetArqEnable (void) const
 
uint16_t GetArqPurgeTimeout (void) const
 
uint16_t GetArqRetryTimeoutRx (void) const
 
uint16_t GetArqRetryTimeoutTx (void) const
 
uint16_t GetArqSyncLoss (void) const
 
uint16_t GetArqWindowSize (void) const
 
uint16_t GetCid (void) const
 
Ptr< WimaxConnectionGetConnection (void) const
 
CsParameters GetConvergenceSublayerParam (void) const
 
enum CsSpecification GetCsSpecification (void) const
 
enum Direction GetDirection (void) const
 
uint8_t GetFixedversusVariableSduIndicator (void) const
 
bool GetIsEnabled (void) const
 
bool GetIsMulticast (void) const
 
uint32_t GetMaximumLatency (void) const
 
uint32_t GetMaxSustainedTrafficRate (void) const
 
uint32_t GetMaxTrafficBurst (void) const
 
uint32_t GetMinReservedTrafficRate (void) const
 
uint32_t GetMinTolerableTrafficRate (void) const
 
enum WimaxPhy::ModulationType GetModulation (void) const
 
uint8_t GetQosParamSetType (void) const
 
Ptr< WimaxMacQueueGetQueue (void) const
 
ServiceFlowRecordGetRecord (void) const
 
uint32_t GetRequestTransmissionPolicy (void) const
 
enum ServiceFlow::SchedulingType GetSchedulingType (void) const
 
char * GetSchedulingTypeStr (void) const
 
uint8_t GetSduSize (void) const
 
std::string GetServiceClassName () const
 
enum ServiceFlow::SchedulingType GetServiceSchedulingType (void) const
 
uint32_t GetSfid (void) const
 
uint16_t GetTargetSAID (void) const
 
uint32_t GetToleratedJitter (void) const
 
uint8_t GetTrafficPriority (void) const
 
enum Type GetType (void) const
 
uint16_t GetUnsolicitedGrantInterval (void) const
 
uint16_t GetUnsolicitedPollingInterval (void) const
 
bool HasPackets (void) const
 
bool HasPackets (MacHeaderType::HeaderType packetType) const
 
void InitValues (void)
 
ServiceFlowoperator= (ServiceFlow const &o)
 
void PrintQoSParameters (void) const
 
void SetArqBlockLifeTime (uint16_t)
 
void SetArqBlockSize (uint16_t)
 
void SetArqDeliverInOrder (uint8_t)
 
void SetArqEnable (uint8_t)
 
void SetArqPurgeTimeout (uint16_t)
 
void SetArqRetryTimeoutRx (uint16_t)
 
void SetArqRetryTimeoutTx (uint16_t)
 
void SetArqSyncLoss (uint16_t)
 
void SetArqWindowSize (uint16_t)
 
void SetConnection (Ptr< WimaxConnection > connection)
 
void SetConvergenceSublayerParam (CsParameters)
 
void SetCsSpecification (enum CsSpecification)
 
void SetDirection (enum Direction direction)
 
void SetFixedversusVariableSduIndicator (uint8_t)
 
void SetIsEnabled (bool isEnabled)
 
void SetIsMulticast (bool isMulticast)
 
void SetMaximumLatency (uint32_t)
 
void SetMaxSustainedTrafficRate (uint32_t)
 
void SetMaxTrafficBurst (uint32_t)
 
void SetMinReservedTrafficRate (uint32_t)
 
void SetMinTolerableTrafficRate (uint32_t)
 
void SetModulation (enum WimaxPhy::ModulationType modulationType)
 
void SetQosParamSetType (uint8_t)
 
void SetRecord (ServiceFlowRecord *record)
 
void SetRequestTransmissionPolicy (uint32_t)
 
void SetSduSize (uint8_t)
 
void SetServiceClassName (std::string)
 
void SetServiceSchedulingType (enum ServiceFlow::SchedulingType)
 
void SetSfid (uint32_t)
 
void SetTargetSAID (uint16_t)
 
void SetToleratedJitter (uint32_t)
 
void SetTrafficPriority (uint8_t)
 
void SetType (enum Type type)
 
void SetUnsolicitedGrantInterval (uint16_t)
 
void SetUnsolicitedPollingInterval (uint16_t)
 
Tlv ToTlv (void) const
 creates a TLV from this service flow More...
 

Private Attributes

uint16_t m_arqBlockLifeTime
 
uint16_t m_arqBlockSize
 
uint8_t m_arqDeliverInOrder
 
uint8_t m_arqEnable
 
uint16_t m_arqPurgeTimeout
 
uint16_t m_arqRetryTimeoutRx
 
uint16_t m_arqRetryTimeoutTx
 
uint16_t m_arqSyncLoss
 
uint16_t m_arqWindowSize
 
Ptr< WimaxConnectionm_connection
 
CsParameters m_convergenceSublayerParam
 
enum CsSpecification m_csSpecification
 
Direction m_direction
 
uint8_t m_fixedversusVariableSduIndicator
 
bool m_isEnabled
 
bool m_isMulticast
 
uint32_t m_maximumLatency
 
uint32_t m_maxSustainedTrafficRate
 
uint32_t m_maxTrafficBurst
 
uint32_t m_minReservedTrafficRate
 
uint32_t m_minTolerableTrafficRate
 
enum WimaxPhy::ModulationType m_modulationType
 
uint8_t m_qosParamSetType
 
ServiceFlowRecordm_record
 
uint32_t m_requestTransmissionPolicy
 
enum ServiceFlow::SchedulingType m_schedulingType
 
uint8_t m_sduSize
 
std::string m_serviceClassName
 
uint32_t m_sfid
 
uint16_t m_targetSAID
 
uint32_t m_toleratedJitter
 
uint8_t m_trafficPriority
 
Type m_type
 
uint16_t m_unsolicitedGrantInterval
 
uint16_t m_unsolicitedPollingInterval
 

Detailed Description

This class implements service flows as described by the IEEE-802.16 standard

Definition at line 39 of file service-flow.h.

Constructor & Destructor Documentation

ns3::ServiceFlow::ServiceFlow ( Tlv  tlv)

creates a service flow from a TLV

Parameters
tlvthe tlv from which the service flow will be created

Definition at line 71 of file service-flow.cc.

References NS_ASSERT_MSG.

Member Function Documentation

bool ns3::ServiceFlow::CheckClassifierMatch ( Ipv4Address  srcAddress,
Ipv4Address  dstAddress,
uint16_t  srcPort,
uint16_t  dstPort,
uint8_t  proto 
) const
Returns
true if the passed parameters match the classifier of the service flow, false otherwise
Parameters
srcAddressthe source ip address
dstAddressthe destination ip address
srcPortthe source port
dstPortthe destination port
protothe layer 4 protocol

Definition at line 837 of file service-flow.cc.

References ns3::IpcsClassifierRecord::CheckMatch(), and ns3::CsParameters::GetPacketClassifierRule().

Tlv ns3::ServiceFlow::ToTlv ( void  ) const

creates a TLV from this service flow

Returns
the created tlv

Definition at line 804 of file service-flow.cc.

References ns3::CsParameters::ToTlv().

Referenced by Ns3WimaxSfTlvTestCase::DoRun(), ns3::DsaReq::GetSerializedSize(), ns3::DsaRsp::GetSerializedSize(), ns3::DsaReq::Serialize(), and ns3::DsaRsp::Serialize().


The documentation for this class was generated from the following files: