OLD | NEW |
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ | 1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ |
2 /* | 2 /* |
3 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC) | 3 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC) |
4 * Copyright (c) 2015 Danilo Abrignani | 4 * Copyright (c) 2015 Danilo Abrignani |
5 * | 5 * |
6 * This program is free software; you can redistribute it and/or modify | 6 * This program is free software; you can redistribute it and/or modify |
7 * it under the terms of the GNU General Public License version 2 as | 7 * it under the terms of the GNU General Public License version 2 as |
8 * published by the Free Software Foundation; | 8 * published by the Free Software Foundation; |
9 * | 9 * |
10 * This program is distributed in the hope that it will be useful, | 10 * This program is distributed in the hope that it will be useful, |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 | 295 |
296 /** | 296 /** |
297 * Set the type of carrier component algorithm to be used by eNodeB devices. | 297 * Set the type of carrier component algorithm to be used by eNodeB devices. |
298 * | 298 * |
299 * \param type type of carrier component algorithm, must be a type name of any
class | 299 * \param type type of carrier component algorithm, must be a type name of any
class |
300 * inheriting from ns3::LteCcsAlgorithm, for example: | 300 * inheriting from ns3::LteCcsAlgorithm, for example: |
301 * "ns3::NoOpCcsAlgorithm" | 301 * "ns3::NoOpCcsAlgorithm" |
302 * | 302 * |
303 * Equivalent with setting the `CcsAlgorithm` attribute. | 303 * Equivalent with setting the `CcsAlgorithm` attribute. |
304 */ | 304 */ |
305 void SetCcsAlgorithmType (std::string type); | 305 void SetEnbComponentCarrierManagerType (std::string type); |
306 | 306 |
307 /** | 307 /** |
308 * | 308 * |
309 * \return the carrier component selection algorithm type | 309 * \return the carrier enb component carrier manager type |
310 */ | 310 */ |
311 std::string GetCcsAlgorithmType () const; | 311 std::string GetEnbComponentCarrierManagerType () const; |
312 | 312 |
313 /** | 313 /** |
314 * Set an attribute for the carrier component selection algorithm to be create
d. | 314 * Set an attribute for the enb component carrier manager to be created. |
315 * | 315 * |
316 * \param n the name of the attribute | 316 * \param n the name of the attribute |
317 * \param v the value of the attribute | 317 * \param v the value of the attribute |
318 */ | 318 */ |
319 void SetCcsAlgorithmAttribute (std::string n, const AttributeValue &v); | 319 void SetEnbComponentCarrierManagerAttribute (std::string n, const AttributeVal
ue &v); |
| 320 |
| 321 /** |
| 322 * Set the type of Component Carrier Manager to be used by Ue devices. |
| 323 * |
| 324 * \param type type of Component Carrier Manager, must be a type name of any c
lass |
| 325 * inheriting from ns3::LteCcsAlgorithm, for example: |
| 326 * "ns3::NoOpCcsAlgorithm" |
| 327 * |
| 328 * Equivalent with setting the `CcsAlgorithm` attribute. |
| 329 */ |
| 330 void SetUeComponentCarrierManagerType (std::string type); |
| 331 |
| 332 |
| 333 /** |
| 334 * |
| 335 * \return the carrier ue component carrier manager type |
| 336 */ |
| 337 std::string GetUeComponentCarrierManagerType () const; |
| 338 |
| 339 /** |
| 340 * Set an attribute for the ue component carrier manager to be created. |
| 341 * |
| 342 * \param n the name of the attribute |
| 343 * \param v the value of the attribute |
| 344 */ |
| 345 void SetUeComponentCarrierManagerAttribute (std::string n, const AttributeValu
e &v); |
320 | 346 |
321 /** | 347 /** |
322 * Create a set of eNodeB devices. | 348 * Create a set of eNodeB devices. |
323 * | 349 * |
324 * \param c the node container where the devices are to be installed | 350 * \param c the node container where the devices are to be installed |
325 * \return the NetDeviceContainer with the newly created devices | 351 * \return the NetDeviceContainer with the newly created devices |
326 */ | 352 */ |
327 NetDeviceContainer InstallEnbDevice (NodeContainer c); | 353 NetDeviceContainer InstallEnbDevice (NodeContainer c); |
328 | 354 |
329 /** | 355 /** |
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
672 * \param enbDevice eNB, must be of the type LteEnbNetDevice | 698 * \param enbDevice eNB, must be of the type LteEnbNetDevice |
673 * \param bearerId Bearer Identity which is to be de-activated | 699 * \param bearerId Bearer Identity which is to be de-activated |
674 * | 700 * |
675 * This method is normally scheduled by DeActivateDedicatedEpsBearer() to run
at a specific | 701 * This method is normally scheduled by DeActivateDedicatedEpsBearer() to run
at a specific |
676 * time when a manual bearer de-activation is desired by the simulation user. | 702 * time when a manual bearer de-activation is desired by the simulation user. |
677 */ | 703 */ |
678 void DoDeActivateDedicatedEpsBearer (Ptr<NetDevice> ueDevice, Ptr<NetDevice> e
nbDevice, uint8_t bearerId); | 704 void DoDeActivateDedicatedEpsBearer (Ptr<NetDevice> ueDevice, Ptr<NetDevice> e
nbDevice, uint8_t bearerId); |
679 | 705 |
680 void ChannelModelInitialized (void); | 706 void ChannelModelInitialized (void); |
681 | 707 |
| 708 /** |
| 709 * \brief This function just create the enb ComponentCarrierMap when CA is not
enabled |
| 710 */ |
| 711 void DoCreateEnbComponentCarrierMap (uint16_t ulearfc, uint16_t dlearfcn, uint
8_t ulbw, uint8_t dlbw); |
| 712 |
682 /// The downlink LTE channel used in the simulation. | 713 /// The downlink LTE channel used in the simulation. |
683 std::vector <Ptr<SpectrumChannel> > m_downlinkChannel; | 714 std::vector <Ptr<SpectrumChannel> > m_downlinkChannel; |
684 /// The uplink LTE channel used in the simulation. | 715 /// The uplink LTE channel used in the simulation. |
685 std::vector< Ptr<SpectrumChannel> > m_uplinkChannel; | 716 std::vector< Ptr<SpectrumChannel> > m_uplinkChannel; |
686 /// The path loss model used in the downlink channel. | 717 /// The path loss model used in the downlink channel. |
687 std::vector< Ptr<Object> > m_downlinkPathlossModel; | 718 std::vector< Ptr<Object> > m_downlinkPathlossModel; |
688 /// The path loss model used in the uplink channel. | 719 /// The path loss model used in the uplink channel. |
689 std::vector< Ptr<Object> > m_uplinkPathlossModel; | 720 std::vector< Ptr<Object> > m_uplinkPathlossModel; |
690 | 721 |
691 /// Factory of MAC scheduler object. | 722 /// Factory of MAC scheduler object. |
692 ObjectFactory m_schedulerFactory; | 723 ObjectFactory m_schedulerFactory; |
693 /// Factory of FFR (frequency reuse) algorithm object. | 724 /// Factory of FFR (frequency reuse) algorithm object. |
694 ObjectFactory m_ffrAlgorithmFactory; | 725 ObjectFactory m_ffrAlgorithmFactory; |
695 /// Factory of handover algorithm object. | 726 /// Factory of handover algorithm object. |
696 ObjectFactory m_handoverAlgorithmFactory; | 727 ObjectFactory m_handoverAlgorithmFactory; |
697 /// Factory of carrier component selection algorithm object. | 728 /// Factory of enb component carrier manager object. |
698 ObjectFactory m_ccsAlgorithmFactory; | 729 ObjectFactory m_enbComponentCarrierManagerFactory; |
| 730 /// Factory of ue component carrier manager object. |
| 731 ObjectFactory m_ueComponentCarrierManagerFactory; |
699 /// Factory of LteEnbNetDevice objects. | 732 /// Factory of LteEnbNetDevice objects. |
700 ObjectFactory m_enbNetDeviceFactory; | 733 ObjectFactory m_enbNetDeviceFactory; |
701 /// Factory of antenna object for eNodeB. | 734 /// Factory of antenna object for eNodeB. |
702 ObjectFactory m_enbAntennaModelFactory; | 735 ObjectFactory m_enbAntennaModelFactory; |
703 /// Factory for LteUeNetDevice objects. | 736 /// Factory for LteUeNetDevice objects. |
704 ObjectFactory m_ueNetDeviceFactory; | 737 ObjectFactory m_ueNetDeviceFactory; |
705 /// Factory of antenna object for UE. | 738 /// Factory of antenna object for UE. |
706 ObjectFactory m_ueAntennaModelFactory; | 739 ObjectFactory m_ueAntennaModelFactory; |
707 /// Factory of path loss model object for the downlink channel. | 740 /// Factory of path loss model object for the downlink channel. |
708 ObjectFactory m_dlPathlossModelFactory; | 741 ObjectFactory m_dlPathlossModelFactory; |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
780 * Hence, the helper will wait for a valid component carrier map | 813 * Hence, the helper will wait for a valid component carrier map |
781 * If it is false, the component carrier will be created within the LteHelper | 814 * If it is false, the component carrier will be created within the LteHelper |
782 * this is to mantain the backwards compatibility with user script | 815 * this is to mantain the backwards compatibility with user script |
783 */ | 816 */ |
784 bool m_useCa; | 817 bool m_useCa; |
785 | 818 |
786 /** | 819 /** |
787 * This contains all the information about each component carrier | 820 * This contains all the information about each component carrier |
788 * Moreover, there is also a pointer to LteEnbPhy Object. | 821 * Moreover, there is also a pointer to LteEnbPhy Object. |
789 */ | 822 */ |
790 std::map< uint8_t, Ptr<ComponentCarrierEnb> > m_ccMap; | 823 std::map< uint8_t, Ptr<ComponentCarrierEnb> > m_enbComponentCarrierMap; |
791 | 824 |
792 uint16_t m_noOfCcs; | 825 uint16_t m_noOfCcs; |
793 | 826 |
794 }; // end of `class LteHelper` | 827 }; // end of `class LteHelper` |
795 | 828 |
796 | 829 |
797 } // namespace ns3 | 830 } // namespace ns3 |
798 | 831 |
799 | 832 |
800 | 833 |
801 #endif // LTE_HELPER_H | 834 #endif // LTE_HELPER_H |
OLD | NEW |