A Discrete-Event Network Simulator
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
21namespace ns3
22{
23
26
27class LteMacSapUser;
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 */
36{
37 public:
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 */
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 */
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 */
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 */
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition lte-mac-sap.h:25
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition lte-mac-sap.h:85
Service Access Point (SAP) offered by the UE component carrier manager to the UE RRC.
Service Access Point (SAP) offered by the UE RRC to the UE CCM.
LteUeCcmRrcSapProvider * m_ccmRrcSapProvider
Receive API calls from the UE RRC instance.
virtual LteMacSapProvider * GetLteMacSapProvider()=0
Returns the MAC sap provider interface that if forwarding calls to the instance of the LteUeComponent...
std::map< uint8_t, LteMacSapUser * > m_lcAttached
Map of pointers to SAP interfaces of the RLC instance of the flows of this UE.
std::map< uint8_t, std::map< uint8_t, LteMacSapProvider * > > m_componentCarrierLcMap
Flow configuration per flow Id of this UE.
void SetNumberOfComponentCarriers(uint8_t noOfComponentCarriers)
Sets number of component carriers that are supported by this UE.
std::map< uint8_t, LteMacSapProvider * > m_macSapProvidersMap
Map of pointers to SAP to interfaces of the MAC instance if the flows of this UE.
uint8_t m_noOfComponentCarriers
The number of component carriers that this UE can support.
virtual void SetLteCcmRrcSapUser(LteUeCcmRrcSapUser *s)
Set the "user" part of the ComponentCarrier Management SAP interface that this UE component carrier m...
LteUeCcmRrcSapUser * m_ccmRrcSapUser
Interface to the UE RRC instance.
void DoDispose() override
Destructor implementation.
virtual LteUeCcmRrcSapProvider * GetLteCcmRrcSapProvider()
Exports the "provider" part of the ComponentCarrier Management SAP interface.
bool SetComponentCarrierMacSapProviders(uint8_t componentCarrierId, LteMacSapProvider *sap)
Sets a pointer to SAP interface of MAC instance for the specified carrier.
Object()
Constructor.
Definition object.cc:96
a unique identifier for an interface.
Definition type-id.h:49
Every class exported by the ns3 library is enclosed in the ns3 namespace.