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) 2014 Piotr Gawlowicz | 3 * Copyright (c) 2014 Piotr Gawlowicz |
4 * | 4 * |
5 * This program is free software; you can redistribute it and/or modify | 5 * This program is free software; you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 2 as | 6 * it under the terms of the GNU General Public License version 2 as |
7 * published by the Free Software Foundation; | 7 * published by the Free Software Foundation; |
8 * | 8 * |
9 * This program is distributed in the hope that it will be useful, | 9 * This program is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 25 matching lines...) Expand all Loading... |
36 class LteFrHardAlgorithm : public LteFfrAlgorithm | 36 class LteFrHardAlgorithm : public LteFfrAlgorithm |
37 { | 37 { |
38 public: | 38 public: |
39 /** | 39 /** |
40 * \brief Creates a trivial ffr algorithm instance. | 40 * \brief Creates a trivial ffr algorithm instance. |
41 */ | 41 */ |
42 LteFrHardAlgorithm (); | 42 LteFrHardAlgorithm (); |
43 | 43 |
44 virtual ~LteFrHardAlgorithm (); | 44 virtual ~LteFrHardAlgorithm (); |
45 | 45 |
46 // inherited from Object | 46 /** |
| 47 * \brief Get the type ID. |
| 48 * \return the object TypeId |
| 49 */ |
47 static TypeId GetTypeId (); | 50 static TypeId GetTypeId (); |
48 | 51 |
49 // inherited from LteFfrAlgorithm | 52 // inherited from LteFfrAlgorithm |
50 virtual void SetLteFfrSapUser (LteFfrSapUser* s); | 53 virtual void SetLteFfrSapUser (LteFfrSapUser* s); |
51 virtual LteFfrSapProvider* GetLteFfrSapProvider (); | 54 virtual LteFfrSapProvider* GetLteFfrSapProvider (); |
52 | 55 |
53 virtual void SetLteFfrRrcSapUser (LteFfrRrcSapUser* s); | 56 virtual void SetLteFfrRrcSapUser (LteFfrRrcSapUser* s); |
54 virtual LteFfrRrcSapProvider* GetLteFfrRrcSapProvider (); | 57 virtual LteFfrRrcSapProvider* GetLteFfrRrcSapProvider (); |
55 | 58 |
56 // let the forwarder class access the protected and private members | 59 // let the forwarder class access the protected and private members |
(...skipping 16 matching lines...) Expand all Loading... |
73 virtual void DoReportUlCqiInfo (const struct FfMacSchedSapProvider::SchedUlCqi
InfoReqParameters& params); | 76 virtual void DoReportUlCqiInfo (const struct FfMacSchedSapProvider::SchedUlCqi
InfoReqParameters& params); |
74 virtual void DoReportUlCqiInfo ( std::map <uint16_t, std::vector <double> > ul
CqiMap ); | 77 virtual void DoReportUlCqiInfo ( std::map <uint16_t, std::vector <double> > ul
CqiMap ); |
75 virtual uint8_t DoGetTpc (uint16_t rnti); | 78 virtual uint8_t DoGetTpc (uint16_t rnti); |
76 virtual uint8_t DoGetMinContinuousUlBandwidth (); | 79 virtual uint8_t DoGetMinContinuousUlBandwidth (); |
77 | 80 |
78 // FFR SAP RRC PROVIDER IMPLEMENTATION | 81 // FFR SAP RRC PROVIDER IMPLEMENTATION |
79 virtual void DoReportUeMeas (uint16_t rnti, LteRrcSap::MeasResults measResults
); | 82 virtual void DoReportUeMeas (uint16_t rnti, LteRrcSap::MeasResults measResults
); |
80 virtual void DoRecvLoadInformation (EpcX2Sap::LoadInformationParams params); | 83 virtual void DoRecvLoadInformation (EpcX2Sap::LoadInformationParams params); |
81 | 84 |
82 private: | 85 private: |
| 86 /** |
| 87 * Set downlink configuration |
| 88 * |
| 89 * \param cellId the cell ID |
| 90 * \param bandwidth the bandwidth |
| 91 */ |
83 void SetDownlinkConfiguration (uint16_t cellId, uint8_t bandwidth); | 92 void SetDownlinkConfiguration (uint16_t cellId, uint8_t bandwidth); |
| 93 /** |
| 94 * Set uplink configuration |
| 95 * |
| 96 * \param cellId the cell ID |
| 97 * \param bandwidth the bandwidth |
| 98 */ |
84 void SetUplinkConfiguration (uint16_t cellId, uint8_t bandwidth); | 99 void SetUplinkConfiguration (uint16_t cellId, uint8_t bandwidth); |
| 100 /** |
| 101 * Initialize downlink rbg maps |
| 102 */ |
85 void InitializeDownlinkRbgMaps (); | 103 void InitializeDownlinkRbgMaps (); |
| 104 /** |
| 105 * Initialize uplink rbg maps |
| 106 */ |
86 void InitializeUplinkRbgMaps (); | 107 void InitializeUplinkRbgMaps (); |
87 | 108 |
88 // FFR SAP | 109 // FFR SAP |
89 LteFfrSapUser* m_ffrSapUser; | 110 LteFfrSapUser* m_ffrSapUser; ///< FFR SAP user |
90 LteFfrSapProvider* m_ffrSapProvider; | 111 LteFfrSapProvider* m_ffrSapProvider; ///< FFR SAP provider |
91 | 112 |
92 // FFR RRF SAP | 113 // FFR RRF SAP |
93 LteFfrRrcSapUser* m_ffrRrcSapUser; | 114 LteFfrRrcSapUser* m_ffrRrcSapUser; ///< FFR RRC SAP user |
94 LteFfrRrcSapProvider* m_ffrRrcSapProvider; | 115 LteFfrRrcSapProvider* m_ffrRrcSapProvider; ///< FFR RRC SAP provider |
95 | 116 |
96 uint8_t m_dlOffset; | 117 uint8_t m_dlOffset; ///< DL offset |
97 uint8_t m_dlSubBand; | 118 uint8_t m_dlSubBand; ///< DL subband |
98 | 119 |
99 uint8_t m_ulOffset; | 120 uint8_t m_ulOffset; ///< UL offset |
100 uint8_t m_ulSubBand; | 121 uint8_t m_ulSubBand; ///< UL subband |
101 | 122 |
102 std::vector <bool> m_dlRbgMap; | 123 std::vector <bool> m_dlRbgMap; ///< DL RBG Map |
103 std::vector <bool> m_ulRbgMap; | 124 std::vector <bool> m_ulRbgMap; ///< UL RBG Map |
104 | 125 |
105 }; // end of class LteFrHardAlgorithm | 126 }; // end of class LteFrHardAlgorithm |
106 | 127 |
107 | 128 |
108 } // end of namespace ns3 | 129 } // end of namespace ns3 |
109 | 130 |
110 | 131 |
111 #endif /* LTE_FR_HARD_ALGORITHM_H */ | 132 #endif /* LTE_FR_HARD_ALGORITHM_H */ |
OLD | NEW |