lte: minor modifications to prepare module for model refactoring

This commit is contained in:
Biljana Bojovic
2017-01-26 08:32:10 +01:00
parent 83cad157df
commit 048daabdab
7 changed files with 338 additions and 8 deletions

View File

@@ -13303,7 +13303,7 @@ def register_Ns3CcHelper_methods(root_module, cls):
'void',
[],
is_virtual=True)
## cc-helper.h (module 'lte'): std::map<unsigned char,ns3::Ptr<ns3::ComponentCarrier>,std::less<unsigned char>,std::allocator<std::pair<const unsigned char, ns3::Ptr<ns3::ComponentCarrier> > > > ns3::CcHelper::EquallySpacedCcs() [member function]
## cc-helper.h (module 'lte'): std::map<unsigned char, ns3::Ptr<ns3::ComponentCarrier>, std::less<unsigned char>, std::allocator<std::pair<unsigned char const, ns3::Ptr<ns3::ComponentCarrier> > > > ns3::CcHelper::EquallySpacedCcs() [member function]
cls.add_method('EquallySpacedCcs',
'std::map< unsigned char, ns3::Ptr< ns3::ComponentCarrier > >',
[])
@@ -16072,6 +16072,10 @@ def register_Ns3LteEnbMac_methods(root_module, cls):
cls.add_method('GetFfMacSchedSapUser',
'ns3::FfMacSchedSapUser *',
[])
## lte-enb-mac.h (module 'lte'): ns3::LteCcmMacSapProvider * ns3::LteEnbMac::GetLteCcmMacSapProvider() [member function]
cls.add_method('GetLteCcmMacSapProvider',
'ns3::LteCcmMacSapProvider *',
[])
## lte-enb-mac.h (module 'lte'): ns3::LteEnbCmacSapProvider * ns3::LteEnbMac::GetLteEnbCmacSapProvider() [member function]
cls.add_method('GetLteEnbCmacSapProvider',
'ns3::LteEnbCmacSapProvider *',
@@ -16101,6 +16105,10 @@ def register_Ns3LteEnbMac_methods(root_module, cls):
cls.add_method('SetFfMacSchedSapProvider',
'void',
[param('ns3::FfMacSchedSapProvider *', 's')])
## lte-enb-mac.h (module 'lte'): void ns3::LteEnbMac::SetLteCcmMacSapUser(ns3::LteCcmMacSapUser * s) [member function]
cls.add_method('SetLteCcmMacSapUser',
'void',
[param('ns3::LteCcmMacSapUser *', 's')])
## lte-enb-mac.h (module 'lte'): void ns3::LteEnbMac::SetLteEnbCmacSapUser(ns3::LteEnbCmacSapUser * s) [member function]
cls.add_method('SetLteEnbCmacSapUser',
'void',
@@ -17445,6 +17453,16 @@ def register_Ns3LteHelper_methods(root_module, cls):
cls.add_method('EnableUlTxPhyTraces',
'void',
[])
## lte-helper.h (module 'lte'): ns3::Ptr<ns3::SpectrumChannel> ns3::LteHelper::GetDownlinkSpectrumChannel() const [member function]
cls.add_method('GetDownlinkSpectrumChannel',
'ns3::Ptr< ns3::SpectrumChannel >',
[],
is_const=True)
## lte-helper.h (module 'lte'): std::string ns3::LteHelper::GetEnbComponentCarrierManagerType() const [member function]
cls.add_method('GetEnbComponentCarrierManagerType',
'std::string',
[],
is_const=True)
## lte-helper.h (module 'lte'): std::string ns3::LteHelper::GetFfrAlgorithmType() const [member function]
cls.add_method('GetFfrAlgorithmType',
'std::string',
@@ -17473,6 +17491,16 @@ def register_Ns3LteHelper_methods(root_module, cls):
'ns3::TypeId',
[],
is_static=True)
## lte-helper.h (module 'lte'): std::string ns3::LteHelper::GetUeComponentCarrierManagerType() const [member function]
cls.add_method('GetUeComponentCarrierManagerType',
'std::string',
[],
is_const=True)
## lte-helper.h (module 'lte'): ns3::Ptr<ns3::SpectrumChannel> ns3::LteHelper::GetUplinkSpectrumChannel() const [member function]
cls.add_method('GetUplinkSpectrumChannel',
'ns3::Ptr< ns3::SpectrumChannel >',
[],
is_const=True)
## lte-helper.h (module 'lte'): void ns3::LteHelper::HandoverRequest(ns3::Time hoTime, ns3::Ptr<ns3::NetDevice> ueDev, ns3::Ptr<ns3::NetDevice> sourceEnbDev, ns3::Ptr<ns3::NetDevice> targetEnbDev) [member function]
cls.add_method('HandoverRequest',
'void',
@@ -17485,6 +17513,10 @@ def register_Ns3LteHelper_methods(root_module, cls):
cls.add_method('InstallUeDevice',
'ns3::NetDeviceContainer',
[param('ns3::NodeContainer', 'c')])
## lte-helper.h (module 'lte'): void ns3::LteHelper::SetCcPhyParams(std::map<unsigned char, ns3::Ptr<ns3::ComponentCarrier>, std::less<unsigned char>, std::allocator<std::pair<unsigned char const, ns3::Ptr<ns3::ComponentCarrier> > > > ccmap) [member function]
cls.add_method('SetCcPhyParams',
'void',
[param('std::map< unsigned char, ns3::Ptr< ns3::ComponentCarrier > >', 'ccmap')])
## lte-helper.h (module 'lte'): void ns3::LteHelper::SetEnbAntennaModelAttribute(std::string n, ns3::AttributeValue const & v) [member function]
cls.add_method('SetEnbAntennaModelAttribute',
'void',
@@ -17493,6 +17525,14 @@ def register_Ns3LteHelper_methods(root_module, cls):
cls.add_method('SetEnbAntennaModelType',
'void',
[param('std::string', 'type')])
## lte-helper.h (module 'lte'): void ns3::LteHelper::SetEnbComponentCarrierManagerAttribute(std::string n, ns3::AttributeValue const & v) [member function]
cls.add_method('SetEnbComponentCarrierManagerAttribute',
'void',
[param('std::string', 'n'), param('ns3::AttributeValue const &', 'v')])
## lte-helper.h (module 'lte'): void ns3::LteHelper::SetEnbComponentCarrierManagerType(std::string type) [member function]
cls.add_method('SetEnbComponentCarrierManagerType',
'void',
[param('std::string', 'type')])
## lte-helper.h (module 'lte'): void ns3::LteHelper::SetEnbDeviceAttribute(std::string n, ns3::AttributeValue const & v) [member function]
cls.add_method('SetEnbDeviceAttribute',
'void',
@@ -17557,6 +17597,14 @@ def register_Ns3LteHelper_methods(root_module, cls):
cls.add_method('SetUeAntennaModelType',
'void',
[param('std::string', 'type')])
## lte-helper.h (module 'lte'): void ns3::LteHelper::SetUeComponentCarrierManagerAttribute(std::string n, ns3::AttributeValue const & v) [member function]
cls.add_method('SetUeComponentCarrierManagerAttribute',
'void',
[param('std::string', 'n'), param('ns3::AttributeValue const &', 'v')])
## lte-helper.h (module 'lte'): void ns3::LteHelper::SetUeComponentCarrierManagerType(std::string type) [member function]
cls.add_method('SetUeComponentCarrierManagerType',
'void',
[param('std::string', 'type')])
## lte-helper.h (module 'lte'): void ns3::LteHelper::SetUeDeviceAttribute(std::string n, ns3::AttributeValue const & v) [member function]
cls.add_method('SetUeDeviceAttribute',
'void',

View File

@@ -13303,7 +13303,7 @@ def register_Ns3CcHelper_methods(root_module, cls):
'void',
[],
is_virtual=True)
## cc-helper.h (module 'lte'): std::map<unsigned char,ns3::Ptr<ns3::ComponentCarrier>,std::less<unsigned char>,std::allocator<std::pair<const unsigned char, ns3::Ptr<ns3::ComponentCarrier> > > > ns3::CcHelper::EquallySpacedCcs() [member function]
## cc-helper.h (module 'lte'): std::map<unsigned char, ns3::Ptr<ns3::ComponentCarrier>, std::less<unsigned char>, std::allocator<std::pair<unsigned char const, ns3::Ptr<ns3::ComponentCarrier> > > > ns3::CcHelper::EquallySpacedCcs() [member function]
cls.add_method('EquallySpacedCcs',
'std::map< unsigned char, ns3::Ptr< ns3::ComponentCarrier > >',
[])
@@ -16072,6 +16072,10 @@ def register_Ns3LteEnbMac_methods(root_module, cls):
cls.add_method('GetFfMacSchedSapUser',
'ns3::FfMacSchedSapUser *',
[])
## lte-enb-mac.h (module 'lte'): ns3::LteCcmMacSapProvider * ns3::LteEnbMac::GetLteCcmMacSapProvider() [member function]
cls.add_method('GetLteCcmMacSapProvider',
'ns3::LteCcmMacSapProvider *',
[])
## lte-enb-mac.h (module 'lte'): ns3::LteEnbCmacSapProvider * ns3::LteEnbMac::GetLteEnbCmacSapProvider() [member function]
cls.add_method('GetLteEnbCmacSapProvider',
'ns3::LteEnbCmacSapProvider *',
@@ -16101,6 +16105,10 @@ def register_Ns3LteEnbMac_methods(root_module, cls):
cls.add_method('SetFfMacSchedSapProvider',
'void',
[param('ns3::FfMacSchedSapProvider *', 's')])
## lte-enb-mac.h (module 'lte'): void ns3::LteEnbMac::SetLteCcmMacSapUser(ns3::LteCcmMacSapUser * s) [member function]
cls.add_method('SetLteCcmMacSapUser',
'void',
[param('ns3::LteCcmMacSapUser *', 's')])
## lte-enb-mac.h (module 'lte'): void ns3::LteEnbMac::SetLteEnbCmacSapUser(ns3::LteEnbCmacSapUser * s) [member function]
cls.add_method('SetLteEnbCmacSapUser',
'void',
@@ -17445,6 +17453,16 @@ def register_Ns3LteHelper_methods(root_module, cls):
cls.add_method('EnableUlTxPhyTraces',
'void',
[])
## lte-helper.h (module 'lte'): ns3::Ptr<ns3::SpectrumChannel> ns3::LteHelper::GetDownlinkSpectrumChannel() const [member function]
cls.add_method('GetDownlinkSpectrumChannel',
'ns3::Ptr< ns3::SpectrumChannel >',
[],
is_const=True)
## lte-helper.h (module 'lte'): std::string ns3::LteHelper::GetEnbComponentCarrierManagerType() const [member function]
cls.add_method('GetEnbComponentCarrierManagerType',
'std::string',
[],
is_const=True)
## lte-helper.h (module 'lte'): std::string ns3::LteHelper::GetFfrAlgorithmType() const [member function]
cls.add_method('GetFfrAlgorithmType',
'std::string',
@@ -17473,6 +17491,16 @@ def register_Ns3LteHelper_methods(root_module, cls):
'ns3::TypeId',
[],
is_static=True)
## lte-helper.h (module 'lte'): std::string ns3::LteHelper::GetUeComponentCarrierManagerType() const [member function]
cls.add_method('GetUeComponentCarrierManagerType',
'std::string',
[],
is_const=True)
## lte-helper.h (module 'lte'): ns3::Ptr<ns3::SpectrumChannel> ns3::LteHelper::GetUplinkSpectrumChannel() const [member function]
cls.add_method('GetUplinkSpectrumChannel',
'ns3::Ptr< ns3::SpectrumChannel >',
[],
is_const=True)
## lte-helper.h (module 'lte'): void ns3::LteHelper::HandoverRequest(ns3::Time hoTime, ns3::Ptr<ns3::NetDevice> ueDev, ns3::Ptr<ns3::NetDevice> sourceEnbDev, ns3::Ptr<ns3::NetDevice> targetEnbDev) [member function]
cls.add_method('HandoverRequest',
'void',
@@ -17485,6 +17513,10 @@ def register_Ns3LteHelper_methods(root_module, cls):
cls.add_method('InstallUeDevice',
'ns3::NetDeviceContainer',
[param('ns3::NodeContainer', 'c')])
## lte-helper.h (module 'lte'): void ns3::LteHelper::SetCcPhyParams(std::map<unsigned char, ns3::Ptr<ns3::ComponentCarrier>, std::less<unsigned char>, std::allocator<std::pair<unsigned char const, ns3::Ptr<ns3::ComponentCarrier> > > > ccmap) [member function]
cls.add_method('SetCcPhyParams',
'void',
[param('std::map< unsigned char, ns3::Ptr< ns3::ComponentCarrier > >', 'ccmap')])
## lte-helper.h (module 'lte'): void ns3::LteHelper::SetEnbAntennaModelAttribute(std::string n, ns3::AttributeValue const & v) [member function]
cls.add_method('SetEnbAntennaModelAttribute',
'void',
@@ -17493,6 +17525,14 @@ def register_Ns3LteHelper_methods(root_module, cls):
cls.add_method('SetEnbAntennaModelType',
'void',
[param('std::string', 'type')])
## lte-helper.h (module 'lte'): void ns3::LteHelper::SetEnbComponentCarrierManagerAttribute(std::string n, ns3::AttributeValue const & v) [member function]
cls.add_method('SetEnbComponentCarrierManagerAttribute',
'void',
[param('std::string', 'n'), param('ns3::AttributeValue const &', 'v')])
## lte-helper.h (module 'lte'): void ns3::LteHelper::SetEnbComponentCarrierManagerType(std::string type) [member function]
cls.add_method('SetEnbComponentCarrierManagerType',
'void',
[param('std::string', 'type')])
## lte-helper.h (module 'lte'): void ns3::LteHelper::SetEnbDeviceAttribute(std::string n, ns3::AttributeValue const & v) [member function]
cls.add_method('SetEnbDeviceAttribute',
'void',
@@ -17557,6 +17597,14 @@ def register_Ns3LteHelper_methods(root_module, cls):
cls.add_method('SetUeAntennaModelType',
'void',
[param('std::string', 'type')])
## lte-helper.h (module 'lte'): void ns3::LteHelper::SetUeComponentCarrierManagerAttribute(std::string n, ns3::AttributeValue const & v) [member function]
cls.add_method('SetUeComponentCarrierManagerAttribute',
'void',
[param('std::string', 'n'), param('ns3::AttributeValue const &', 'v')])
## lte-helper.h (module 'lte'): void ns3::LteHelper::SetUeComponentCarrierManagerType(std::string type) [member function]
cls.add_method('SetUeComponentCarrierManagerType',
'void',
[param('std::string', 'type')])
## lte-helper.h (module 'lte'): void ns3::LteHelper::SetUeDeviceAttribute(std::string n, ns3::AttributeValue const & v) [member function]
cls.add_method('SetUeDeviceAttribute',
'void',

View File

@@ -45,6 +45,8 @@
#include <ns3/ff-mac-scheduler.h>
#include <ns3/lte-ffr-algorithm.h>
#include <ns3/lte-handover-algorithm.h>
#include <ns3/lte-enb-component-carrier-manager.h>
#include <ns3/lte-ue-component-carrier-manager.h>
#include <ns3/lte-anr.h>
#include <ns3/lte-rlc.h>
#include <ns3/lte-rlc-um.h>
@@ -61,6 +63,9 @@
#include <ns3/buildings-propagation-loss-model.h>
#include <ns3/lte-spectrum-value-helper.h>
#include <ns3/epc-x2.h>
#include <ns3/pointer.h>
#include <ns3/object-map.h>
#include <ns3/object-factory.h>
namespace ns3 {
@@ -200,6 +205,34 @@ TypeId LteHelper::GetTypeId (void)
BooleanValue (true),
MakeBooleanAccessor (&LteHelper::m_usePdschForCqiGeneration),
MakeBooleanChecker ())
.AddAttribute ("EnbComponentCarrierManager",
"The type of Component Carrier Manager to be used for eNBs. "
"The allowed values for this attributes are the type names "
"of any class inheriting ns3::LteEnbComponentCarrierManager.",
StringValue ("ns3::NoOpComponentCarrierManager"),
MakeStringAccessor (&LteHelper::SetEnbComponentCarrierManagerType,
&LteHelper::GetEnbComponentCarrierManagerType),
MakeStringChecker ())
.AddAttribute ("UeComponentCarrierManager",
"The type of Component Carrier Manager to be used for UEs. "
"The allowed values for this attributes are the type names "
"of any class inheriting ns3::LteUeComponentCarrierManager.",
StringValue ("ns3::SimpleUeComponentCarrierManager"),
MakeStringAccessor (&LteHelper::SetUeComponentCarrierManagerType,
&LteHelper::GetUeComponentCarrierManagerType),
MakeStringChecker ())
.AddAttribute ("UseCa",
"If true, Carrier Aggregation feature is enabled and a valid Component Carrier Map is expected."
"If false, single carrier simulation.",
BooleanValue (false),
MakeBooleanAccessor (&LteHelper::m_useCa),
MakeBooleanChecker ())
.AddAttribute ("NumberOfComponentCarriers",
"Set the number of Component carrier to use "
"If it is more than one and m_useCa is false, it will raise an error ",
UintegerValue (1),
MakeUintegerAccessor (&LteHelper::m_noOfCcs),
MakeUintegerChecker<uint16_t> (1, 3))
;
return tid;
}
@@ -213,6 +246,18 @@ LteHelper::DoDispose ()
Object::DoDispose ();
}
Ptr<SpectrumChannel>
LteHelper::GetUplinkSpectrumChannel (void) const
{
return m_uplinkChannel;
}
Ptr<SpectrumChannel>
LteHelper::GetDownlinkSpectrumChannel (void) const
{
return m_downlinkChannel;
}
void
LteHelper::SetEpcHelper (Ptr<EpcHelper> h)
@@ -285,8 +330,50 @@ LteHelper::SetHandoverAlgorithmAttribute (std::string n, const AttributeValue &v
}
void
LteHelper::SetPathlossModelType (std::string type)
std::string
LteHelper::GetEnbComponentCarrierManagerType () const
{
return m_enbComponentCarrierManagerFactory.GetTypeId ().GetName ();
}
void
LteHelper::SetEnbComponentCarrierManagerType (std::string type)
{
NS_LOG_FUNCTION (this << type);
m_enbComponentCarrierManagerFactory = ObjectFactory ();
m_enbComponentCarrierManagerFactory.SetTypeId (type);
}
void
LteHelper::SetEnbComponentCarrierManagerAttribute (std::string n, const AttributeValue &v)
{
NS_LOG_FUNCTION (this << n);
m_enbComponentCarrierManagerFactory.Set (n, v);
}
std::string
LteHelper::GetUeComponentCarrierManagerType () const
{
return m_ueComponentCarrierManagerFactory.GetTypeId ().GetName ();
}
void
LteHelper::SetUeComponentCarrierManagerType (std::string type)
{
NS_LOG_FUNCTION (this << type);
m_ueComponentCarrierManagerFactory = ObjectFactory ();
m_ueComponentCarrierManagerFactory.SetTypeId (type);
}
void
LteHelper::SetUeComponentCarrierManagerAttribute (std::string n, const AttributeValue &v)
{
NS_LOG_FUNCTION (this << n);
m_ueComponentCarrierManagerFactory.Set (n, v);
}
void
LteHelper::SetPathlossModelType (std::string type)
{
NS_LOG_FUNCTION (this << type);
m_dlPathlossModelFactory = ObjectFactory ();
@@ -377,6 +464,12 @@ LteHelper::SetSpectrumChannelAttribute (std::string n, const AttributeValue &v)
m_channelFactory.Set (n, v);
}
void
LteHelper::SetCcPhyParams ( std::map< uint8_t, Ptr<ComponentCarrier> > ccMapParams)
{
NS_LOG_FUNCTION (this);
m_componentCarrierPhyParams = ccMapParams;
}
NetDeviceContainer
LteHelper::InstallEnbDevice (NodeContainer c)

View File

@@ -37,6 +37,9 @@
#include <ns3/radio-bearer-stats-connector.h>
#include <ns3/epc-tft.h>
#include <ns3/mobility-model.h>
#include <ns3/component-carrier-enb.h>
#include <ns3/cc-helper.h>
#include <map>
namespace ns3 {
@@ -76,6 +79,7 @@ class SpectrumPropagationLossModel;
* * Handover algorithm
* * FFR (frequency reuse) algorithm
* * ANR (automatic neighbour relation)
* * CCM (Carrier Component Manager)
* + EPC related models (EPC application, Internet stack, X2 interface)
* - UE node(s)
* + Mobility model
@@ -263,7 +267,15 @@ public:
*/
void SetUeAntennaModelAttribute (std::string n, const AttributeValue &v);
/**
/**
* This method is used to send the ComponentCarrier map created with CcHelper
* to the helper, the structure will be used within InstallSingleEnbDevice
*
* \param ccmap, the component carrier map
*/
void SetCcPhyParams (std::map< uint8_t, Ptr<ComponentCarrier> > ccmap);
/**
* Set the type of spectrum channel to be used in both DL and UL.
*
* \param type type of spectrum channel model, must be a type name of any
@@ -280,6 +292,51 @@ public:
*/
void SetSpectrumChannelAttribute (std::string n, const AttributeValue &v);
/**
* Set the type of carrier component algorithm to be used by eNodeB devices.
*
* \param type type of carrier component manager
*
*/
void SetEnbComponentCarrierManagerType (std::string type);
/**
*
* \return the carrier enb component carrier manager type
*/
std::string GetEnbComponentCarrierManagerType () const;
/**
* Set an attribute for the enb component carrier manager to be created.
*
* \param n the name of the attribute
* \param v the value of the attribute
*/
void SetEnbComponentCarrierManagerAttribute (std::string n, const AttributeValue &v);
/**
* Set the type of Component Carrier Manager to be used by Ue devices.
*
* \param type type of UE Component Carrier Manager
*
*/
void SetUeComponentCarrierManagerType (std::string type);
/**
*
* \return the carrier ue component carrier manager type
*/
std::string GetUeComponentCarrierManagerType () const;
/**
* Set an attribute for the ue component carrier manager to be created.
*
* \param n the name of the attribute
* \param v the value of the attribute
*/
void SetUeComponentCarrierManagerAttribute (std::string n, const AttributeValue &v);
/**
* Create a set of eNodeB devices.
*
@@ -590,6 +647,18 @@ public:
*/
int64_t AssignStreams (NetDeviceContainer c, int64_t stream);
/**
* \return a pointer to the SpectrumChannel instance used for the uplink
*/
Ptr<SpectrumChannel> GetUplinkSpectrumChannel (void) const;
/**
* \return a pointer to the SpectrumChannel instance used for the downlink
*/
Ptr<SpectrumChannel> GetDownlinkSpectrumChannel (void) const;
protected:
// inherited from Object
virtual void DoInitialize (void);
@@ -653,6 +722,10 @@ private:
ObjectFactory m_ffrAlgorithmFactory;
/// Factory of handover algorithm object.
ObjectFactory m_handoverAlgorithmFactory;
/// Factory of enb component carrier manager object.
ObjectFactory m_enbComponentCarrierManagerFactory;
/// Factory of ue component carrier manager object.
ObjectFactory m_ueComponentCarrierManagerFactory;
/// Factory of LteEnbNetDevice objects.
ObjectFactory m_enbNetDeviceFactory;
/// Factory of antenna object for eNodeB.
@@ -732,7 +805,22 @@ private:
*/
bool m_usePdschForCqiGeneration;
}; // end of `class LteHelper`
/**
* The `UseCa` attribute. If true, Carrier Aggregation is enabled.
* Hence, the helper will expec a valid component carrier map
* If it is false, the component carrier will be created within the LteHelper
* this is to mantain the backwards compatibility with user script
*/
bool m_useCa;
/**
* This contains all the information about each component carrier
*/
std::map< uint8_t, Ptr<ComponentCarrier> > m_componentCarrierPhyParams;
uint16_t m_noOfCcs;
}; // end of `class LteHelper`
} // namespace ns3

View File

@@ -38,6 +38,7 @@
#include <ns3/lte-ue-phy.h>
#include "ns3/lte-mac-sap.h"
#include "ns3/lte-enb-cmac-sap.h"
#include <ns3/lte-common.h>
@@ -353,7 +354,8 @@ LteEnbMac::GetTypeId (void)
}
LteEnbMac::LteEnbMac ()
LteEnbMac::LteEnbMac ():
m_ccmMacSapUser (0)
{
NS_LOG_FUNCTION (this);
m_macSapProvider = new EnbMacMemberLteMacSapProvider<LteEnbMac> (this);
@@ -361,6 +363,7 @@ LteEnbMac::LteEnbMac ()
m_schedSapUser = new EnbMacMemberFfMacSchedSapUser (this);
m_cschedSapUser = new EnbMacMemberFfMacCschedSapUser (this);
m_enbPhySapUser = new EnbMacMemberLteEnbPhySapUser (this);
m_ccmMacSapProvider = new MemberLteCcmMacSapProvider<LteEnbMac> (this);
}
@@ -384,6 +387,7 @@ LteEnbMac::DoDispose ()
delete m_schedSapUser;
delete m_cschedSapUser;
delete m_enbPhySapUser;
delete m_ccmMacSapProvider;
}
void
@@ -455,8 +459,19 @@ LteEnbMac::GetLteEnbPhySapUser ()
return m_enbPhySapUser;
}
void
LteEnbMac::SetLteCcmMacSapUser (LteCcmMacSapUser* s)
{
m_ccmMacSapUser = s;
}
LteCcmMacSapProvider*
LteEnbMac::GetLteCcmMacSapProvider ()
{
return m_ccmMacSapProvider;
}
void
LteEnbMac::DoSubframeIndication (uint32_t frameNo, uint32_t subframeNo)
{
@@ -680,6 +695,16 @@ LteEnbMac::ReceiveBsrMessage (MacCeListElement_s bsr)
m_ulCeReceived.push_back (bsr);
}
void
LteEnbMac::DoReportMacCeToScheduler (MacCeListElement_s bsr)
{
NS_LOG_FUNCTION (this);
NS_LOG_DEBUG (this << " bsr Size " << (uint16_t) m_ulCeReceived.size ());
//send to LteCcmMacSapUser
m_ulCeReceived.push_back (bsr); // this to called when LteUlCcmSapProvider::ReportMacCeToScheduler is called
NS_LOG_DEBUG (this << " bsr Size after push_back " << (uint16_t) m_ulCeReceived.size ());
}
void
LteEnbMac::DoReceivePhyPdu (Ptr<Packet> p)

View File

@@ -38,6 +38,7 @@
#include "ns3/trace-source-accessor.h"
#include <ns3/packet.h>
#include <ns3/packet-burst.h>
#include <ns3/lte-ccm-mac-sap.h>
namespace ns3 {
@@ -57,6 +58,7 @@ class LteEnbMac : public Object
friend class EnbMacMemberFfMacSchedSapUser;
friend class EnbMacMemberFfMacCschedSapUser;
friend class EnbMacMemberLteEnbPhySapUser;
friend class MemberLteCcmMacSapProvider<LteEnbMac>;
public:
static TypeId GetTypeId (void);
@@ -123,6 +125,19 @@ public:
*/
void SetLteEnbPhySapProvider (LteEnbPhySapProvider* s);
/**
* \brief Get the eNB-ComponetCarrierManager SAP User
* \return a pointer to the SAP User of the ComponetCarrierManager
*/
LteCcmMacSapProvider* GetLteCcmMacSapProvider ();
/**
* \brief Set the ComponentCarrierManager SAP user
* \param s a pointer to the ComponentCarrierManager provider
*/
void SetLteCcmMacSapUser (LteCcmMacSapUser* s);
/**
* TracedCallback signature for DL scheduling events.
*
@@ -207,6 +222,9 @@ private:
void DoSubframeIndication (uint32_t frameNo, uint32_t subframeNo);
void DoReceiveRachPreamble (uint8_t prachId);
// forwarded by LteCcmMacSapProvider
void DoReportMacCeToScheduler (MacCeListElement_s bsr);
public:
// legacy public for use the Phy callback
void DoReceivePhyPdu (Ptr<Packet> p);
@@ -249,6 +267,9 @@ private:
LteEnbPhySapProvider* m_enbPhySapProvider;
LteEnbPhySapUser* m_enbPhySapUser;
// Sap For ComponentCarrierManager 'Uplink case'
LteCcmMacSapProvider* m_ccmMacSapProvider;
LteCcmMacSapUser* m_ccmMacSapUser;
/**
* frame number of current subframe indication
*/

View File

@@ -194,6 +194,13 @@ LteUeNetDevice::GetPhy (void) const
return m_phy;
}
Ptr<LteUeComponentCarrierManager>
LteUeNetDevice::GetComponentCarrierManager (void) const
{
NS_LOG_FUNCTION (this);
return m_componentCarrierManager;
}
Ptr<EpcUeNas>
LteUeNetDevice::GetNas (void) const
{
@@ -281,7 +288,7 @@ LteUeNetDevice::Send (Ptr<Packet> packet, const Address& dest, uint16_t protocol
NS_LOG_FUNCTION (this << dest << protocolNumber);
if (protocolNumber != Ipv4L3Protocol::PROT_NUMBER)
{
NS_LOG_INFO("unsupported protocol " << protocolNumber << ", only IPv4 is supported");
NS_LOG_INFO ("unsupported protocol " << protocolNumber << ", only IPv4 is supported");
return true;
}
return m_nas->Send (packet);