A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Loading...
Searching...
No Matches
lte-ue-component-carrier-manager.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
10
#ifndef LTE_UE_COMPONENT_CARRIER_MANAGER_H
11
#define LTE_UE_COMPONENT_CARRIER_MANAGER_H
12
13
#include "
lte-mac-sap.h
"
14
#include "
lte-ue-ccm-rrc-sap.h
"
15
16
#include "ns3/object.h"
17
18
#include <map>
19
#include <vector>
20
21
namespace
ns3
22
{
23
24
class
LteUeCcmRrcSapUser
;
25
class
LteUeCcmRrcSapProvider
;
26
27
class
LteMacSapUser
;
28
class
LteMacSapProvider
;
29
30
/**
31
* @brief The abstract base class of a Component Carrier Manager* for UE
32
that operates using the component carrier manager SAP interface.
33
*
34
*/
35
class
LteUeComponentCarrierManager
:
public
Object
36
{
37
public
:
38
LteUeComponentCarrierManager
();
39
~LteUeComponentCarrierManager
()
override
;
40
41
/**
42
* @brief Get the type ID.
43
* @return the object TypeId
44
*/
45
static
TypeId
GetTypeId
();
46
47
/**
48
* @brief Set the "user" part of the ComponentCarrier Management SAP interface
49
* that this UE component carrier manager will interact with.
50
* @param s a reference to the "user" part of the interface, typically a
51
* member of an LteEnbRrc instance
52
*/
53
virtual
void
SetLteCcmRrcSapUser
(
LteUeCcmRrcSapUser
* s);
54
55
/**
56
* @brief Exports the "provider" part of the ComponentCarrier Management SAP interface.
57
* @return the reference to the "provider" part of the interface, typically to
58
* be kept by an LteUeRrc instance
59
*/
60
virtual
LteUeCcmRrcSapProvider
*
GetLteCcmRrcSapProvider
();
61
62
/**
63
* @brief Returns the MAC sap provider interface that if forwarding calls to the
64
* instance of the LteUeComponentCarrierManager.
65
* @return the reference to the "provider" part of the interface
66
*/
67
virtual
LteMacSapProvider
*
GetLteMacSapProvider
() = 0;
68
69
/**
70
* @brief Sets a pointer to SAP interface of MAC instance for the specified carrier.
71
* @param componentCarrierId the component carrier id
72
* @param sap the pointer to the sap interface
73
* @return whether the settings of the sap provider was successful
74
*/
75
bool
SetComponentCarrierMacSapProviders
(uint8_t componentCarrierId,
LteMacSapProvider
* sap);
76
77
/**
78
* @brief Sets number of component carriers that are supported by this UE.
79
* @param noOfComponentCarriers number of component carriers
80
*/
81
void
SetNumberOfComponentCarriers
(uint8_t noOfComponentCarriers);
82
83
protected
:
84
// inherited from Object
85
void
DoDispose
()
override
;
86
87
LteUeCcmRrcSapUser
*
m_ccmRrcSapUser
;
//!< Interface to the UE RRC instance.
88
LteUeCcmRrcSapProvider
*
m_ccmRrcSapProvider
;
//!< Receive API calls from the UE RRC instance.
89
90
std::map<uint8_t, LteMacSapUser*>
m_lcAttached
;
//!< Map of pointers to SAP interfaces of the
91
//!< RLC instance of the flows of this UE.
92
std::map<uint8_t, std::map<uint8_t, LteMacSapProvider*>>
93
m_componentCarrierLcMap
;
//!< Flow configuration per flow Id of this UE.
94
uint8_t
m_noOfComponentCarriers
;
//!< The number of component carriers that this UE can support.
95
std::map<uint8_t, LteMacSapProvider*>
96
m_macSapProvidersMap
;
//!< Map of pointers to SAP to interfaces of the MAC instance if the
97
//!< flows of this UE.
98
};
99
100
}
// end of namespace ns3
101
102
#endif
/* LTE_UE_COMPONENT_CARRIER_MANAGER_H */
ns3::LteMacSapProvider
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition
lte-mac-sap.h:25
ns3::LteMacSapUser
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition
lte-mac-sap.h:85
ns3::LteUeCcmRrcSapProvider
Service Access Point (SAP) offered by the UE component carrier manager to the UE RRC.
Definition
lte-ue-ccm-rrc-sap.h:32
ns3::LteUeCcmRrcSapUser
Service Access Point (SAP) offered by the UE RRC to the UE CCM.
Definition
lte-ue-ccm-rrc-sap.h:178
ns3::LteUeComponentCarrierManager::m_ccmRrcSapProvider
LteUeCcmRrcSapProvider * m_ccmRrcSapProvider
Receive API calls from the UE RRC instance.
Definition
lte-ue-component-carrier-manager.h:88
ns3::LteUeComponentCarrierManager::GetLteMacSapProvider
virtual LteMacSapProvider * GetLteMacSapProvider()=0
Returns the MAC sap provider interface that if forwarding calls to the instance of the LteUeComponent...
ns3::LteUeComponentCarrierManager::m_lcAttached
std::map< uint8_t, LteMacSapUser * > m_lcAttached
Map of pointers to SAP interfaces of the RLC instance of the flows of this UE.
Definition
lte-ue-component-carrier-manager.h:90
ns3::LteUeComponentCarrierManager::m_componentCarrierLcMap
std::map< uint8_t, std::map< uint8_t, LteMacSapProvider * > > m_componentCarrierLcMap
Flow configuration per flow Id of this UE.
Definition
lte-ue-component-carrier-manager.h:93
ns3::LteUeComponentCarrierManager::SetNumberOfComponentCarriers
void SetNumberOfComponentCarriers(uint8_t noOfComponentCarriers)
Sets number of component carriers that are supported by this UE.
Definition
lte-ue-component-carrier-manager.cc:89
ns3::LteUeComponentCarrierManager::~LteUeComponentCarrierManager
~LteUeComponentCarrierManager() override
Definition
lte-ue-component-carrier-manager.cc:30
ns3::LteUeComponentCarrierManager::m_macSapProvidersMap
std::map< uint8_t, LteMacSapProvider * > m_macSapProvidersMap
Map of pointers to SAP to interfaces of the MAC instance if the flows of this UE.
Definition
lte-ue-component-carrier-manager.h:96
ns3::LteUeComponentCarrierManager::m_noOfComponentCarriers
uint8_t m_noOfComponentCarriers
The number of component carriers that this UE can support.
Definition
lte-ue-component-carrier-manager.h:94
ns3::LteUeComponentCarrierManager::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition
lte-ue-component-carrier-manager.cc:36
ns3::LteUeComponentCarrierManager::SetLteCcmRrcSapUser
virtual void SetLteCcmRrcSapUser(LteUeCcmRrcSapUser *s)
Set the "user" part of the ComponentCarrier Management SAP interface that this UE component carrier m...
Definition
lte-ue-component-carrier-manager.cc:50
ns3::LteUeComponentCarrierManager::m_ccmRrcSapUser
LteUeCcmRrcSapUser * m_ccmRrcSapUser
Interface to the UE RRC instance.
Definition
lte-ue-component-carrier-manager.h:87
ns3::LteUeComponentCarrierManager::LteUeComponentCarrierManager
LteUeComponentCarrierManager()
Definition
lte-ue-component-carrier-manager.cc:22
ns3::LteUeComponentCarrierManager::DoDispose
void DoDispose() override
Destructor implementation.
Definition
lte-ue-component-carrier-manager.cc:44
ns3::LteUeComponentCarrierManager::GetLteCcmRrcSapProvider
virtual LteUeCcmRrcSapProvider * GetLteCcmRrcSapProvider()
Exports the "provider" part of the ComponentCarrier Management SAP interface.
Definition
lte-ue-component-carrier-manager.cc:57
ns3::LteUeComponentCarrierManager::SetComponentCarrierMacSapProviders
bool SetComponentCarrierMacSapProviders(uint8_t componentCarrierId, LteMacSapProvider *sap)
Sets a pointer to SAP interface of MAC instance for the specified carrier.
Definition
lte-ue-component-carrier-manager.cc:64
ns3::Object::Object
Object()
Constructor.
Definition
object.cc:96
ns3::TypeId
a unique identifier for an interface.
Definition
type-id.h:49
lte-mac-sap.h
lte-ue-ccm-rrc-sap.h
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
src
lte
model
lte-ue-component-carrier-manager.h
Generated on Wed Jun 11 2025 13:15:33 for ns-3 by
1.13.2