A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
simple-ofdm-wimax-channel.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2007,2008, 2009 INRIA, UDcast
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
7 * <amine.ismail@udcast.com>
8 */
9
10#ifndef SIMPLE_OFDM_WIMAX_CHANNEL_H
11#define SIMPLE_OFDM_WIMAX_CHANNEL_H
12
13#include "bvec.h"
15#include "wimax-channel.h"
16#include "wimax-phy.h"
17
18#include "ns3/propagation-loss-model.h"
19
20#include <list>
21
22namespace ns3
23{
24
25class Packet;
26class PacketBurst;
27class SimpleOfdmWimaxPhy;
28
29/**
30 * \ingroup wimax
31 * \brief SimpleOfdmWimaxChannel class
32 */
34{
35 public:
37 ~SimpleOfdmWimaxChannel() override;
38
39 /// PropModel enumeration
47
48 /**
49 * Register this type.
50 * \return The TypeId.
51 */
52 static TypeId GetTypeId();
53
54 /**
55 * \brief Creates a channel and sets the propagation model
56 * \param propModel the propagation model to use
57 */
59
60 /**
61 * \brief Sends a dummy fec block to all connected physical devices
62 * \param BlockTime the time needed to send the block
63 * \param burstSize the size of the burst
64 * \param phy the sender device
65 * \param isFirstBlock true if this block is the first one, false otherwise
66 * \param isLastBlock true if this block is the last one, false otherwise
67 * \param frequency the frequency on which the block is sent
68 * \param modulationType the modulation used to send the fec block
69 * \param direction uplink or downlink
70 * \param txPowerDbm the transmission power
71 * \param burst the packet burst to send
72 */
73 void Send(Time BlockTime,
74 uint32_t burstSize,
75 Ptr<WimaxPhy> phy,
76 bool isFirstBlock,
77 bool isLastBlock,
78 uint64_t frequency,
79 WimaxPhy::ModulationType modulationType,
80 uint8_t direction,
81 double txPowerDbm,
82 Ptr<PacketBurst> burst);
83 /**
84 * \brief sets the propagation model
85 * \param propModel the propagation model to used
86 */
87 void SetPropagationModel(PropModel propModel);
88
89 /**
90 * Assign a fixed random variable stream number to the random variables
91 * used by this model. Return the number of streams (possibly zero) that
92 * have been assigned.
93 *
94 * \param stream first stream index to use
95 * \return the number of stream indices assigned by this model
96 */
97 int64_t AssignStreams(int64_t stream) override;
98
99 private:
100 /**
101 * Attach function
102 * \param phy the phy layer
103 */
104 void DoAttach(Ptr<WimaxPhy> phy) override;
105 std::list<Ptr<SimpleOfdmWimaxPhy>> m_phyList; ///< phy list
106 /**
107 * Get number of devices function
108 * \returns the number of devices
109 */
110 std::size_t DoGetNDevices() const override;
111 /**
112 * End send dummy block function
113 * \param rxphy the Ptr<SimpleOfdmWimaxPhy>
114 * \param param the SimpleOfdmSendParam *
115 */
117 /**
118 * Get device function
119 * \param i the device index
120 * \returns the device
121 */
122 Ptr<NetDevice> DoGetDevice(std::size_t i) const override;
124};
125
126} // namespace ns3
127
128#endif /* SIMPLE_OFDM_WIMAX_CHANNEL_H */
Smart pointer class similar to boost::intrusive_ptr.
SimpleOfdmSendParam class.
SimpleOfdmWimaxChannel class.
Ptr< PropagationLossModel > m_loss
loss
void SetPropagationModel(PropModel propModel)
sets the propagation model
void DoAttach(Ptr< WimaxPhy > phy) override
Attach function.
std::size_t DoGetNDevices() const override
Get number of devices function.
static TypeId GetTypeId()
Register this type.
std::list< Ptr< SimpleOfdmWimaxPhy > > m_phyList
phy list
void EndSendDummyBlock(Ptr< SimpleOfdmWimaxPhy > rxphy, SimpleOfdmSendParam *param)
End send dummy block function.
Ptr< NetDevice > DoGetDevice(std::size_t i) const override
Get device function.
void Send(Time BlockTime, uint32_t burstSize, Ptr< WimaxPhy > phy, bool isFirstBlock, bool isLastBlock, uint64_t frequency, WimaxPhy::ModulationType modulationType, uint8_t direction, double txPowerDbm, Ptr< PacketBurst > burst)
Sends a dummy fec block to all connected physical devices.
int64_t AssignStreams(int64_t stream) override
Assign a fixed random variable stream number to the random variables used by this model.
Simulation virtual time values and global simulation resolution.
Definition nstime.h:94
a unique identifier for an interface.
Definition type-id.h:48
The channel object to attach Wimax NetDevices.
ModulationType
ModulationType enumeration.
Definition wimax-phy.h:43
Every class exported by the ns3 library is enclosed in the ns3 namespace.