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 
50 {
51 public:
52  virtual ~FfMacCschedSapProvider ();
53 
63  {
65 
67  {
70  } m_hoppingMode;
71 
72  uint8_t m_nSb;
73 
75  {
81 
82 
84 
86 
88 
89  uint8_t m_ulBandwidth;
90  uint8_t m_dlBandwidth;
91 
94 
96 
98  {
101  } m_duplexMode;
102 
105  std::vector <uint8_t> m_mbsfnSubframeConfigRfPeriod;
106  std::vector <uint8_t> m_mbsfnSubframeConfigRfOffset;
107  std::vector <uint8_t> m_mbsfnSubframeConfigSfAllocation;
113  uint16_t m_n1PucchAn;
115  uint8_t m_nrbCqi;
116  uint8_t m_ncsAn;
121 
123  {
126  } m_enable64Qam;
127 
128  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
129  };
130 
136  {
137  uint16_t m_rnti;
142 
144  {
149 
161 
163  {
168 
170  uint8_t m_maxHarqTx;
176 
178  {
181 
183  {
187 
189 
190  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
191  };
192 
198  {
199  uint16_t m_rnti;
201 
202  std::vector <struct LogicalChannelConfigListElement_s> m_logicalChannelConfigList;
203 
204  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
205  };
206 
212  {
213  uint16_t m_rnti;
214 
215  std::vector <uint8_t> m_logicalChannelIdentity;
216 
217  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
218  };
219 
225  {
226  uint16_t m_rnti;
227 
228  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
229  };
230 
231  //
232  // CSCHED - MAC Scheduler Control SAP primitives
233  // (See 4.1 for description of the primitives)
234  //
235 
239  virtual void CschedCellConfigReq (const struct CschedCellConfigReqParameters& params) = 0;
240 
241  virtual void CschedUeConfigReq (const struct CschedUeConfigReqParameters& params) = 0;
242 
243  virtual void CschedLcConfigReq (const struct CschedLcConfigReqParameters& params) = 0;
244 
245  virtual void CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params) = 0;
246 
247  virtual void CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params) = 0;
248 
249 private:
250 };
251 
252 
254 {
255 public:
256  virtual ~FfMacCschedSapUser ();
257 
267  {
269 
270  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
271  };
272 
278  {
279  uint16_t m_rnti;
281 
282  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
283  };
284 
290  {
291  uint16_t m_rnti;
293 
294  std::vector <uint8_t> m_logicalChannelIdentity;
295 
296  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
297  };
298 
304  {
305  uint16_t m_rnti;
307 
308  std::vector <uint8_t> m_logicalChannelIdentity;
309 
310  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
311  };
312 
318  {
319  uint16_t m_rnti;
321 
322  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
323  };
324 
330  {
331  uint16_t m_rnti;
339 
340  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
341  };
342 
348  {
351 
352  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
353  };
354 
355  //
356  // CSCHED - MAC Scheduler Control SAP primitives
357  // (See 4.1 for description of the primitives)
358  //
359 
360  virtual void CschedCellConfigCnf (const struct CschedCellConfigCnfParameters& params) = 0;
361 
362  virtual void CschedUeConfigCnf (const struct CschedUeConfigCnfParameters& params) = 0;
363 
364  virtual void CschedLcConfigCnf (const struct CschedLcConfigCnfParameters& params) = 0;
365 
366  virtual void CschedLcReleaseCnf (const struct CschedLcReleaseCnfParameters& params) = 0;
367 
368  virtual void CschedUeReleaseCnf (const struct CschedUeReleaseCnfParameters& params) = 0;
369 
370  virtual void CschedUeConfigUpdateInd (const struct CschedUeConfigUpdateIndParameters& params) = 0;
371 
372  virtual void CschedCellConfigUpdateInd (const struct CschedCellConfigUpdateIndParameters& params) = 0;
373 
374 private:
375 };
376 
377 } // end namespace ns3
378 
379 #endif /* FF_MAC_CSCHED_SAP_H */