A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ff-mac-csched-sap.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
4  *
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
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Manuel Requena <manuel.requena@cttc.es>
19  */
20 
21 #ifndef FF_MAC_CSCHED_SAP_H
22 #define FF_MAC_CSCHED_SAP_H
23 
24 #include <stdint.h>
25 #include <vector>
26 
27 #include "ff-mac-common.h"
28 
29 namespace ns3 {
30 
46 {
47 public:
48  virtual ~FfMacCschedSapProvider ();
49 
59  {
61 
63  {
66  } m_hoppingMode;
67 
68  uint8_t m_nSb;
69 
71  {
77 
78 
80 
82 
84 
85  uint8_t m_ulBandwidth;
86  uint8_t m_dlBandwidth;
87 
90 
92 
94  {
97  } m_duplexMode;
98 
101  std::vector <uint8_t> m_mbsfnSubframeConfigRfPeriod;
102  std::vector <uint8_t> m_mbsfnSubframeConfigRfOffset;
103  std::vector <uint8_t> m_mbsfnSubframeConfigSfAllocation;
109  uint16_t m_n1PucchAn;
111  uint8_t m_nrbCqi;
112  uint8_t m_ncsAn;
117 
119  {
122  } m_enable64Qam;
123 
124  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
125  };
126 
132  {
133  uint16_t m_rnti;
138 
140  {
145 
157 
159  {
164 
166  uint8_t m_maxHarqTx;
172 
174  {
177 
179  {
183 
185 
186  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
187  };
188 
194  {
195  uint16_t m_rnti;
197 
198  std::vector <struct LogicalChannelConfigListElement_s> m_logicalChannelConfigList;
199 
200  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
201  };
202 
208  {
209  uint16_t m_rnti;
210 
211  std::vector <uint8_t> m_logicalChannelIdentity;
212 
213  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
214  };
215 
221  {
222  uint16_t m_rnti;
223 
224  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
225  };
226 
227  //
228  // CSCHED - MAC Scheduler Control SAP primitives
229  // (See 4.1 for description of the primitives)
230  //
231 
235  virtual void CschedCellConfigReq (const struct CschedCellConfigReqParameters& params) = 0;
236 
237  virtual void CschedUeConfigReq (const struct CschedUeConfigReqParameters& params) = 0;
238 
239  virtual void CschedLcConfigReq (const struct CschedLcConfigReqParameters& params) = 0;
240 
241  virtual void CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params) = 0;
242 
243  virtual void CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params) = 0;
244 
245 private:
246 };
247 
248 
250 {
251 public:
252  virtual ~FfMacCschedSapUser ();
253 
263  {
265 
266  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
267  };
268 
274  {
275  uint16_t m_rnti;
277 
278  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
279  };
280 
286  {
287  uint16_t m_rnti;
289 
290  std::vector <uint8_t> m_logicalChannelIdentity;
291 
292  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
293  };
294 
300  {
301  uint16_t m_rnti;
303 
304  std::vector <uint8_t> m_logicalChannelIdentity;
305 
306  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
307  };
308 
314  {
315  uint16_t m_rnti;
317 
318  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
319  };
320 
326  {
327  uint16_t m_rnti;
335 
336  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
337  };
338 
344  {
347 
348  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
349  };
350 
351  //
352  // CSCHED - MAC Scheduler Control SAP primitives
353  // (See 4.1 for description of the primitives)
354  //
355 
356  virtual void CschedCellConfigCnf (const struct CschedCellConfigCnfParameters& params) = 0;
357 
358  virtual void CschedUeConfigCnf (const struct CschedUeConfigCnfParameters& params) = 0;
359 
360  virtual void CschedLcConfigCnf (const struct CschedLcConfigCnfParameters& params) = 0;
361 
362  virtual void CschedLcReleaseCnf (const struct CschedLcReleaseCnfParameters& params) = 0;
363 
364  virtual void CschedUeReleaseCnf (const struct CschedUeReleaseCnfParameters& params) = 0;
365 
366  virtual void CschedUeConfigUpdateInd (const struct CschedUeConfigUpdateIndParameters& params) = 0;
367 
368  virtual void CschedCellConfigUpdateInd (const struct CschedCellConfigUpdateIndParameters& params) = 0;
369 
370 private:
371 };
372 
373 } // end namespace ns3
374 
375 #endif /* FF_MAC_CSCHED_SAP_H */
Parameters of the CSCHED_LC_CONFIG_CNF primitive.
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
virtual void CschedUeConfigReq(const struct CschedUeConfigReqParameters &params)=0
Parameters of the CSCHED_UE_CONFIG_CNF primitive.
Parameters of the CSCHED_UE_RELEASE_REQ primitive.
Parameters of the CSCHED_CELL_CONFIG_UPDATE_IND primitive.
enum ns3::FfMacCschedSapProvider::CschedCellConfigReqParameters::Enable64Qam_e m_enable64Qam
See section 4.3.19 cqiConfig.
std::vector< struct LogicalChannelConfigListElement_s > m_logicalChannelConfigList
Provides the CSCHED SAP.
Parameters of the CSCHED_UE_CONFIG_UPDATE_IND primitive.
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
Parameters of the CSCHED_LC_RELEASE_REQ primitive.
enum ns3::FfMacCschedSapProvider::CschedCellConfigReqParameters::HoppingMode_e m_hoppingMode
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
virtual void CschedCellConfigUpdateInd(const struct CschedCellConfigUpdateIndParameters &params)=0
enum ns3::FfMacCschedSapProvider::CschedCellConfigReqParameters::PhichResource_e m_phichResource
Parameters of the CSCHED_LC_RELEASE_CNF primitive.
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
virtual void CschedUeConfigUpdateInd(const struct CschedUeConfigUpdateIndParameters &params)=0
virtual void CschedLcReleaseCnf(const struct CschedLcReleaseCnfParameters &params)=0
See section 4.3.20 ueCapabilities.
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
See section 4.3.21 siConfiguration.
virtual void CschedUeConfigCnf(const struct CschedUeConfigCnfParameters &params)=0
See section 4.3.17 spsConfig.
enum ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::MeasGapConfigPattern_e m_measGapConfigPattern
virtual void CschedCellConfigReq(const struct CschedCellConfigReqParameters &params)=0
CSCHED_CELL_CONFIG_REQ.
NormalExtended_e
Definition: ff-mac-common.h:78
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
virtual void CschedUeReleaseReq(const struct CschedUeReleaseReqParameters &params)=0
enum ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::FeedbackMode_e m_tddAckNackFeedbackMode
Parameters of the CSCHED_LC_CONFIG_REQ primitive.
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
virtual void CschedLcConfigCnf(const struct CschedLcConfigCnfParameters &params)=0
See section 4.3.18 srConfig.
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
virtual void CschedCellConfigCnf(const struct CschedCellConfigCnfParameters &params)=0
enum ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::RepMode_e m_aperiodicCqiRepMode
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
See section 4.3.16 drxConfig.
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
virtual void CschedUeReleaseCnf(const struct CschedUeReleaseCnfParameters &params)=0
virtual void CschedLcConfigReq(const struct CschedLcConfigReqParameters &params)=0
enum ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::OpenClosedLoop_e m_ueTransmitAntennaSelection
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
Parameters of the CSCHED_UE_CONFIG_REQ primitive.
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
enum ns3::FfMacCschedSapProvider::CschedCellConfigReqParameters::DuplexMode_e m_duplexMode
Parameters of the CSCHED_UE_RELEASE_CNF primitive.
virtual void CschedLcReleaseReq(const struct CschedLcReleaseReqParameters &params)=0