A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
component-carrier-enb.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2015 Danilo Abrignani
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Danilo Abrignani <danilo.abrignani@unibo.it>
7 */
8
9#ifndef COMPONENT_CARRIER_ENB_H
10#define COMPONENT_CARRIER_ENB_H
11
12#include "component-carrier.h"
13#include "lte-enb-phy.h"
14
15#include "ns3/nstime.h"
16#include "ns3/object.h"
17#include "ns3/packet.h"
18#include "ns3/pointer.h"
19
20namespace ns3
21{
22
23class LteEnbMac;
24class FfMacScheduler;
25class LteFfrAlgorithm;
26
27/**
28 * @ingroup lte
29 *
30 * Defines a single carrier for enb, and contains pointers to LteEnbPhy,
31 * LteEnbMac, LteFfrAlgorithm, and FfMacScheduler objects.
32 *
33 */
35{
36 public:
37 /**
38 * @brief Get the type ID.
39 * @return the object TypeId
40 */
41 static TypeId GetTypeId();
42
44
45 ~ComponentCarrierEnb() override;
46 void DoDispose() override;
47
48 /**
49 * @return a pointer to the physical layer.
50 */
52
53 /**
54 * @return a pointer to the MAC layer.
55 */
57
58 /**
59 * @return a pointer to the Ffr Algorithm.
60 */
62
63 /**
64 * @return a pointer to the Mac Scheduler.
65 */
67
68 /**
69 * Set the LteEnbPhy
70 * @param s a pointer to the LteEnbPhy
71 */
72 void SetPhy(Ptr<LteEnbPhy> s);
73 /**
74 * Set the LteEnbMac
75 * @param s a pointer to the LteEnbMac
76 */
77 void SetMac(Ptr<LteEnbMac> s);
78
79 /**
80 * Set the FfMacScheduler Algorithm
81 * @param s a pointer to the FfMacScheduler
82 */
84
85 /**
86 * Set the LteFfrAlgorithm
87 * @param s a pointer to the LteFfrAlgorithm
88 */
90
91 protected:
92 void DoInitialize() override;
93
94 private:
95 Ptr<LteEnbPhy> m_phy; ///< the Phy instance of this eNodeB component carrier
96 Ptr<LteEnbMac> m_mac; ///< the MAC instance of this eNodeB component carrier
97 Ptr<FfMacScheduler> m_scheduler; ///< the scheduler instance of this eNodeB component carrier
99 m_ffrAlgorithm; ///< the FFR algorithm instance of this eNodeB component carrier
100};
101
102} // namespace ns3
103
104#endif /* COMPONENT_CARRIER_H */
void DoInitialize() override
Initialize() implementation.
void DoDispose() override
Destructor implementation.
Ptr< LteFfrAlgorithm > GetFfrAlgorithm()
static TypeId GetTypeId()
Get the type ID.
Ptr< FfMacScheduler > m_scheduler
the scheduler instance of this eNodeB component carrier
Ptr< LteEnbMac > m_mac
the MAC instance of this eNodeB component carrier
void SetFfrAlgorithm(Ptr< LteFfrAlgorithm > s)
Set the LteFfrAlgorithm.
Ptr< LteFfrAlgorithm > m_ffrAlgorithm
the FFR algorithm instance of this eNodeB component carrier
void SetMac(Ptr< LteEnbMac > s)
Set the LteEnbMac.
void SetFfMacScheduler(Ptr< FfMacScheduler > s)
Set the FfMacScheduler Algorithm.
Ptr< FfMacScheduler > GetFfMacScheduler()
Ptr< LteEnbPhy > m_phy
the Phy instance of this eNodeB component carrier
void SetPhy(Ptr< LteEnbPhy > s)
Set the LteEnbPhy.
This abstract base class identifies the interface by means of which the helper object can plug on the...
This class implements the MAC layer of the eNodeB device.
Definition lte-enb-mac.h:47
The abstract base class of a Frequency Reuse algorithm.
Smart pointer class similar to boost::intrusive_ptr.
Definition ptr.h:66
a unique identifier for an interface.
Definition type-id.h:49
Every class exported by the ns3 library is enclosed in the ns3 namespace.