21 #include "ns3/cs-parameters.h"
22 #include "ns3/internet-stack-helper.h"
23 #include "ns3/ipcs-classifier-record.h"
24 #include "ns3/ipv4-address-helper.h"
25 #include "ns3/ipv4-address.h"
26 #include "ns3/ipv4-interface-container.h"
27 #include "ns3/service-flow.h"
28 #include "ns3/simulator.h"
30 #include "ns3/wimax-helper.h"
47 void DoRun()
override;
51 :
TestCase(
"Test the service flow tlv implementation.")
78 WimaxHelper::DEVICE_TYPE_SUBSCRIBER_STATION,
79 WimaxHelper::SIMPLE_PHY_TYPE_OFDM,
82 WimaxHelper::DEVICE_TYPE_BASE_STATION,
83 WimaxHelper::SIMPLE_PHY_TYPE_OFDM,
87 WimaxPhy::MODULATION_TYPE_QAM16_12);
91 stack.Install(bsNodes);
92 stack.Install(ssNodes);
95 address.SetBase(
"10.1.1.0",
"255.255.255.0");
101 auto DlServiceFlowUgs =
new ServiceFlow(ServiceFlow::SF_DIRECTION_DOWN);
112 CsParameters DlcsParam(CsParameters::ADD, DlClassifierUgs);
113 DlServiceFlowUgs->SetConvergenceSublayerParam(DlcsParam);
115 DlServiceFlowUgs->SetServiceSchedulingType(ServiceFlow::SF_TYPE_UGS);
116 DlServiceFlowUgs->SetMaxSustainedTrafficRate(1000000);
117 DlServiceFlowUgs->SetMinReservedTrafficRate(1000000);
118 DlServiceFlowUgs->SetMinTolerableTrafficRate(1000000);
119 DlServiceFlowUgs->SetMaximumLatency(10);
120 DlServiceFlowUgs->SetMaxTrafficBurst(1000);
121 DlServiceFlowUgs->SetTrafficPriority(1);
124 auto UlServiceFlowUgs =
new ServiceFlow(ServiceFlow::SF_DIRECTION_UP);
135 CsParameters UlcsParam(CsParameters::ADD, UlClassifierUgs);
136 UlServiceFlowUgs->SetConvergenceSublayerParam(UlcsParam);
138 UlServiceFlowUgs->SetServiceSchedulingType(ServiceFlow::SF_TYPE_UGS);
139 UlServiceFlowUgs->SetMaxSustainedTrafficRate(1000000);
140 UlServiceFlowUgs->SetMinReservedTrafficRate(1000000);
141 UlServiceFlowUgs->SetMinTolerableTrafficRate(1000000);
142 UlServiceFlowUgs->SetMaximumLatency(10);
143 UlServiceFlowUgs->SetMaxTrafficBurst(1000);
144 UlServiceFlowUgs->SetTrafficPriority(1);
148 Simulator::Stop(
Seconds(duration));
150 Simulator::Destroy();
Ns3 Wimax Service Flow Test Suite.
Ns3WimaxServiceFlowTestSuite()
Test the service flow creation.
~Ns3WimaxSfCreationTestCase() override
void DoRun() override
Implementation to actually run this TestCase.
Ns3WimaxSfCreationTestCase()
aggregate IP/TCP/UDP functionality to existing Nodes.
IpcsClassifierRecord class.
A helper class to make life easier while doing simple IPv4 address assignment in scripts.
Ipv4 addresses are stored in host order in this class.
holds a vector of std::pair of Ptr<Ipv4> and interface index.
a class to represent an Ipv4 address mask
holds a vector of ns3::NetDevice pointers
Ptr< NetDevice > Get(uint32_t i) const
Get the Ptr<NetDevice> stored in this container at a given index.
keep track of a set of node pointers.
void Create(uint32_t n)
Create n nodes and append pointers to them to the end of this NodeContainer.
This class implements service flows as described by the IEEE-802.16 standard.
SubscriberStationNetDevice subclass of WimaxNetDevice.
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
helps to manage and create WimaxNetDevice objects
SchedulerType
Scheduler Type Different implementations of uplink/downlink scheduler.
NetDeviceContainer Install(NodeContainer c, NetDeviceType type, PhyType phyType, SchedulerType schedulerType)
Time Seconds(double value)
Construct a Time in the indicated unit.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static Ns3WimaxServiceFlowTestSuite ns3WimaxServiceFlowTestSuite
the test suite