A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
default-channel-scheduler.h
Go to the documentation of this file.
1
/*
2
* This program is free software; you can redistribute it and/or modify
3
* it under the terms of the GNU General Public License version 2 as
4
* published by the Free Software Foundation;
5
*
6
* This program is distributed in the hope that it will be useful,
7
* but WITHOUT ANY WARRANTY; without even the implied warranty of
8
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9
* GNU General Public License for more details.
10
*
11
* You should have received a copy of the GNU General Public License
12
* along with this program; if not, write to the Free Software
13
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14
*
15
* Author: Junling Bu <linlinjavaer@gmail.com>
16
*/
17
#ifndef DEFAULT_CHANNEL_SCHEDULER_H
18
#define DEFAULT_CHANNEL_SCHEDULER_H
19
20
#include "
wave-net-device.h
"
21
22
namespace
ns3
23
{
24
class
WaveNetDevice;
25
33
class
DefaultChannelScheduler
:
public
ChannelScheduler
34
{
35
public
:
40
static
TypeId
GetTypeId
();
41
DefaultChannelScheduler
();
42
~DefaultChannelScheduler
()
override
;
43
47
void
SetWaveNetDevice
(
Ptr<WaveNetDevice>
device)
override
;
52
ChannelAccess
GetAssignedAccessType
(uint32_t channelNumber)
const override
;
53
58
void
NotifyCchSlotStart
(
Time
duration);
63
void
NotifySchSlotStart
(
Time
duration);
69
void
NotifyGuardSlotStart
(
Time
duration,
bool
cchi);
70
71
private
:
72
void
DoInitialize
()
override
;
73
void
DoDispose
()
override
;
81
bool
AssignAlternatingAccess
(uint32_t channelNumber,
bool
immediate)
override
;
89
bool
AssignContinuousAccess
(uint32_t channelNumber,
bool
immediate)
override
;
98
bool
AssignExtendedAccess
(uint32_t channelNumber, uint32_t extends,
bool
immediate)
override
;
103
bool
AssignDefaultCchAccess
()
override
;
109
bool
ReleaseAccess
(uint32_t channelNumber)
override
;
114
void
SwitchToNextChannel
(uint32_t curChannelNumber, uint32_t nextChannelNumber);
115
116
Ptr<ChannelManager>
m_manager
;
117
Ptr<ChannelCoordinator>
m_coordinator
;
118
Ptr<WifiPhy>
m_phy
;
119
129
uint32_t
m_channelNumber
;
130
uint32_t
m_extend
;
131
EventId
m_extendEvent
;
132
ChannelAccess
m_channelAccess
;
133
134
EventId
m_waitEvent
;
135
uint32_t
m_waitChannelNumber
;
136
uint32_t
m_waitExtend
;
137
138
Ptr<ChannelCoordinationListener>
m_coordinationListener
;
139
};
140
141
}
// namespace ns3
142
#endif
/* DEFAULT_CHANNEL_SCHEDULER_H */
ns3::ChannelScheduler
This class will assign channel access for requests from higher layers.
Definition:
channel-scheduler.h:135
ns3::DefaultChannelScheduler
This class uses a simple mechanism to assign channel access with following features: (1) only in the ...
Definition:
default-channel-scheduler.h:34
ns3::DefaultChannelScheduler::ReleaseAccess
bool ReleaseAccess(uint32_t channelNumber) override
Definition:
default-channel-scheduler.cc:405
ns3::DefaultChannelScheduler::DoDispose
void DoDispose() override
Destructor implementation.
Definition:
default-channel-scheduler.cc:100
ns3::DefaultChannelScheduler::m_manager
Ptr< ChannelManager > m_manager
channel manager
Definition:
default-channel-scheduler.h:116
ns3::DefaultChannelScheduler::DefaultChannelScheduler
DefaultChannelScheduler()
Definition:
default-channel-scheduler.cc:76
ns3::DefaultChannelScheduler::m_extend
uint32_t m_extend
extend
Definition:
default-channel-scheduler.h:130
ns3::DefaultChannelScheduler::m_extendEvent
EventId m_extendEvent
extend event
Definition:
default-channel-scheduler.h:131
ns3::DefaultChannelScheduler::NotifyGuardSlotStart
void NotifyGuardSlotStart(Time duration, bool cchi)
Notify guard slot start.
Definition:
default-channel-scheduler.cc:444
ns3::DefaultChannelScheduler::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition:
default-channel-scheduler.cc:67
ns3::DefaultChannelScheduler::NotifyCchSlotStart
void NotifyCchSlotStart(Time duration)
Notify CCH slot start.
Definition:
default-channel-scheduler.cc:432
ns3::DefaultChannelScheduler::SwitchToNextChannel
void SwitchToNextChannel(uint32_t curChannelNumber, uint32_t nextChannelNumber)
Definition:
default-channel-scheduler.cc:378
ns3::DefaultChannelScheduler::AssignContinuousAccess
bool AssignContinuousAccess(uint32_t channelNumber, bool immediate) override
Definition:
default-channel-scheduler.cc:187
ns3::DefaultChannelScheduler::m_coordinator
Ptr< ChannelCoordinator > m_coordinator
channel coordinator
Definition:
default-channel-scheduler.h:117
ns3::DefaultChannelScheduler::AssignDefaultCchAccess
bool AssignDefaultCchAccess() override
This method will assign default CCH access for CCH.
Definition:
default-channel-scheduler.cc:346
ns3::DefaultChannelScheduler::m_waitEvent
EventId m_waitEvent
wait event
Definition:
default-channel-scheduler.h:134
ns3::DefaultChannelScheduler::AssignAlternatingAccess
bool AssignAlternatingAccess(uint32_t channelNumber, bool immediate) override
Definition:
default-channel-scheduler.cc:150
ns3::DefaultChannelScheduler::AssignExtendedAccess
bool AssignExtendedAccess(uint32_t channelNumber, uint32_t extends, bool immediate) override
Definition:
default-channel-scheduler.cc:249
ns3::DefaultChannelScheduler::NotifySchSlotStart
void NotifySchSlotStart(Time duration)
Notify SCH slot start.
Definition:
default-channel-scheduler.cc:438
ns3::DefaultChannelScheduler::SetWaveNetDevice
void SetWaveNetDevice(Ptr< WaveNetDevice > device) override
Definition:
default-channel-scheduler.cc:121
ns3::DefaultChannelScheduler::GetAssignedAccessType
ChannelAccess GetAssignedAccessType(uint32_t channelNumber) const override
Definition:
default-channel-scheduler.cc:139
ns3::DefaultChannelScheduler::m_channelNumber
uint32_t m_channelNumber
when m_channelAccess is ContinuousAccess, m_channelNumber is continuous channel number; when m_channe...
Definition:
default-channel-scheduler.h:129
ns3::DefaultChannelScheduler::m_channelAccess
ChannelAccess m_channelAccess
channel access
Definition:
default-channel-scheduler.h:132
ns3::DefaultChannelScheduler::m_phy
Ptr< WifiPhy > m_phy
Phy.
Definition:
default-channel-scheduler.h:118
ns3::DefaultChannelScheduler::~DefaultChannelScheduler
~DefaultChannelScheduler() override
Definition:
default-channel-scheduler.cc:87
ns3::DefaultChannelScheduler::m_waitChannelNumber
uint32_t m_waitChannelNumber
wait channel number
Definition:
default-channel-scheduler.h:135
ns3::DefaultChannelScheduler::m_waitExtend
uint32_t m_waitExtend
wait extend
Definition:
default-channel-scheduler.h:136
ns3::DefaultChannelScheduler::DoInitialize
void DoInitialize() override
Initialize() implementation.
Definition:
default-channel-scheduler.cc:93
ns3::DefaultChannelScheduler::m_coordinationListener
Ptr< ChannelCoordinationListener > m_coordinationListener
coordination listener
Definition:
default-channel-scheduler.h:138
ns3::EventId
An identifier for simulation events.
Definition:
event-id.h:55
ns3::Ptr< WaveNetDevice >
ns3::Time
Simulation virtual time values and global simulation resolution.
Definition:
nstime.h:105
ns3::TypeId
a unique identifier for an interface.
Definition:
type-id.h:60
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::ChannelAccess
ChannelAccess
ChannelAccess enumeration.
Definition:
channel-scheduler.h:117
wave-net-device.h
src
wave
model
default-channel-scheduler.h
Generated on Fri Mar 31 2023 13:30:52 for ns-3 by
1.9.1