A Discrete-Event Network Simulator
API
wimax-helper.h
Go to the documentation of this file.
1/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/*
3 * Copyright (c) 2007,2008, 2009 INRIA, UDCAST
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation;
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 *
18 * Authors: Jahanzeb Farooq <jahanzeb.farooq@sophia.inria.fr>
19 * Amine Ismail <amine.ismail@sophia.inria.fr>
20 */
21
22#ifndef WIMAX_HELPER_H
23#define WIMAX_HELPER_H
24
25#include <string>
26#include "ns3/object-factory.h"
27#include "ns3/node-container.h"
28#include "ns3/net-device-container.h"
29#include "ns3/bs-net-device.h"
30#include "ns3/ss-net-device.h"
31#include "ns3/service-flow.h"
32#include "ns3/propagation-loss-model.h"
33#include "ns3/simple-ofdm-wimax-channel.h"
34#include "ns3/bs-uplink-scheduler.h"
35#include "ns3/bs-uplink-scheduler-mbqos.h"
36#include "ns3/bs-uplink-scheduler-simple.h"
37#include "ns3/bs-uplink-scheduler-rtps.h"
38#include "ns3/bs-scheduler.h"
39#include "ns3/bs-scheduler-simple.h"
40#include "ns3/bs-scheduler-rtps.h"
41#include "ns3/trace-helper.h"
42
43namespace ns3 {
44
45class WimaxChannel;
46class WimaxPhy;
47class UplinkScheduler;
48
49
59{
60public:
66 {
70 };
71
77 {
79 };
80
86 {
92 };
96 WimaxHelper (void);
97 ~WimaxHelper (void);
109 uint32_t nodeid,
110 uint32_t deviceid,
111 char *netdevice,
112 char *connection);
113
121
130
139
152
166 NetDeviceType deviceType,
167 PhyType phyType,
169 SchedulerType schedulerType);
183 NetDeviceType deviceType,
184 PhyType phyType,
185 SchedulerType schedulerType,
186 double frameDuration);
187
194
202
211 Ptr<WimaxPhy> CreatePhyWithoutChannel (PhyType phyType, char * SNRTraceFilePath, bool activateLoss);
212
221 Ptr<WimaxPhy> CreatePhy (PhyType phyType, char * SNRTraceFilePath, bool activateLoss);
235 NetDeviceType deviceType,
236 PhyType phyType,
238 SchedulerType schedulerType);
239
249 ServiceFlow::SchedulingType schedulinType,
250 IpcsClassifierRecord classifier);
251
255 static void EnableLogComponents (void);
256
265 int64_t AssignStreams (int64_t stream);
266
278 int64_t AssignStreams (NetDeviceContainer c, int64_t stream);
279
280private:
288 static void AsciiRxEvent (Ptr<OutputStreamWrapper> stream, std::string path, Ptr<const Packet> packet, const Mac48Address &source);
296 static void AsciiTxEvent (Ptr<OutputStreamWrapper> stream, std::string path, Ptr<const Packet> packet, const Mac48Address &dest);
308 virtual void EnablePcapInternal (std::string prefix, Ptr<NetDevice> nd, bool explicitFilename, bool promiscuous);
309
322 std::string prefix,
324 bool explicitFilename);
325
327};
328
329} // namespace ns3
330
331#endif /* WIMAX_HELPER_H */
Base class providing common user-level ascii trace operations for helpers representing net devices.
Definition: trace-helper.h:643
IpcsClassifierRecord class.
an EUI-48 address
Definition: mac48-address.h:44
holds a vector of ns3::NetDevice pointers
keep track of a set of node pointers.
Base class providing common user-level pcap operations for helpers representing net devices.
Definition: trace-helper.h:554
This class implements service flows as described by the IEEE-802.16 standard.
Definition: service-flow.h:40
SchedulingType
section 11.13.11 Service flow scheduling type, page 701
Definition: service-flow.h:59
Direction
Direction enumeration.
Definition: service-flow.h:44
helps to manage and create WimaxNetDevice objects
Definition: wimax-helper.h:59
virtual void EnableAsciiInternal(Ptr< OutputStreamWrapper > stream, std::string prefix, Ptr< NetDevice > nd, bool explicitFilename)
Enable ascii trace output on the indicated net device.
SchedulerType
Scheduler Type Different implementations of uplink/downlink scheduler.
Definition: wimax-helper.h:86
@ SCHED_TYPE_RTPS
A simple scheduler - rtPS based scheduler.
Definition: wimax-helper.h:88
@ SCHED_TYPE_MBQOS
An migration-based uplink scheduler.
Definition: wimax-helper.h:89
@ SCHED_TYPE_SIMPLE
A simple priority-based FCFS scheduler.
Definition: wimax-helper.h:87
NetDeviceType
Net Device Type Distinguish a subscriber station(SS) device from base station(BS) device.
Definition: wimax-helper.h:66
@ DEVICE_TYPE_SUBSCRIBER_STATION
Subscriber station(SS) device.
Definition: wimax-helper.h:67
@ DEVICE_TYPE_BASE_STATION
Base station(BS) device.
Definition: wimax-helper.h:68
Ptr< WimaxChannel > m_channel
wifi channel
Definition: wimax-helper.h:326
Ptr< WimaxPhy > CreatePhyWithoutChannel(PhyType phyType)
static void EnableLogComponents(void)
Helper to enable all WimaxNetDevice log components with one statement.
Ptr< UplinkScheduler > CreateUplinkScheduler(SchedulerType schedulerType)
void SetPropagationLossModel(SimpleOfdmWimaxChannel::PropModel propagationModel)
Set the propagation and loss model of the channel.
Definition: wimax-helper.cc:94
PhyType
WiMAX Physical layer WiMAX Physical layers with different levels of detail.
Definition: wimax-helper.h:77
Ptr< BSScheduler > CreateBSScheduler(SchedulerType schedulerType)
Ptr< WimaxPhy > CreatePhy(PhyType phyType)
Definition: wimax-helper.cc:74
static void AsciiTxEvent(Ptr< OutputStreamWrapper > stream, std::string path, Ptr< const Packet > packet, const Mac48Address &dest)
ASCII trace transmit event.
int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model.
static void EnableAsciiForConnection(Ptr< OutputStreamWrapper > oss, uint32_t nodeid, uint32_t deviceid, char *netdevice, char *connection)
Enable ascii trace output on the indicated net device for a given connection.
Definition: wimax-helper.cc:52
NetDeviceContainer Install(NodeContainer c, NetDeviceType type, PhyType phyType, SchedulerType schedulerType)
static void AsciiRxEvent(Ptr< OutputStreamWrapper > stream, std::string path, Ptr< const Packet > packet, const Mac48Address &source)
ASCII trace receive event.
virtual void EnablePcapInternal(std::string prefix, Ptr< NetDevice > nd, bool explicitFilename, bool promiscuous)
Enable pcap output on the indicated net device.
ServiceFlow CreateServiceFlow(ServiceFlow::Direction direction, ServiceFlow::SchedulingType schedulinType, IpcsClassifierRecord classifier)
Creates a transport service flow.
WimaxHelper(void)
Create a Wimax helper in an empty state.
Definition: wimax-helper.cc:43
Every class exported by the ns3 library is enclosed in the ns3 namespace.
channel
Definition: third.py:92