A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ff-mac-sched-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_SCHED_SAP_H
22 #define FF_MAC_SCHED_SAP_H
23 
24 #include <stdint.h>
25 #include <vector>
26 
27 #include "ff-mac-common.h"
28 
29 
30 namespace ns3 {
31 
47 {
48 public:
49  virtual ~FfMacSchedSapProvider ();
50 
60  {
61  uint16_t m_rnti;
68 
69  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
70  };
71 
77  {
78  uint16_t m_rnti;
79  std::vector <struct PagingInfoListElement_s> m_pagingInfoList;
80 
81  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
82  };
83 
89  {
90  uint16_t m_rnti;
92 
93  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
94  };
95 
101  {
102  uint16_t m_sfnSf;
103  std::vector <struct DlInfoListElement_s> m_dlInfoList;
104 
105  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
106  };
107 
113  {
114  uint16_t m_sfnSf;
115  std::vector <struct RachListElement_s> m_rachList;
116 
117  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
118  };
119 
125  {
126  uint16_t m_sfnSf;
127  std::vector <struct CqiListElement_s> m_cqiList;
128 
129  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
130  };
131 
137  {
138  uint16_t m_sfnSf;
139  std::vector <struct UlInfoListElement_s> m_ulInfoList;
140 
141  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
142  };
143 
149  {
150  uint16_t m_sfnSf;
151  uint16_t m_rip;
152  uint16_t m_tnp;
153 
154  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
155  };
156 
162  {
163  uint16_t m_sfnSf;
164  std::vector <struct SrListElement_s> m_srList;
165 
166  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
167  };
168 
174  {
175  uint16_t m_sfnSf;
176  std::vector <struct MacCeListElement_s> m_macCeList;
177 
178  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
179  };
180 
186  {
187  uint16_t m_sfnSf;
188  struct UlCqi_s m_ulCqi;
189 
190  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
191  };
192 
193  //
194  // SCHED - MAC Scheduler SAP primitives
195  // (See 4.2 for description of the primitives)
196  //
197 
198  virtual void SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params) = 0;
199 
200  virtual void SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params) = 0;
201 
202  virtual void SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params) = 0;
203 
204  virtual void SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params) = 0;
205 
206  virtual void SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params) = 0;
207 
208  virtual void SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params) = 0;
209 
210  virtual void SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params) = 0;
211 
212  virtual void SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params) = 0;
213 
214  virtual void SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params) = 0;
215 
216  virtual void SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params) = 0;
217 
218  virtual void SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params) = 0;
219 
220 private:
221 };
222 
223 
225 {
226 public:
227  virtual ~FfMacSchedSapUser ();
228 
238  {
239  std::vector <struct BuildDataListElement_s> m_buildDataList;
240  std::vector <struct BuildRarListElement_s> m_buildRarList;
241  std::vector <struct BuildBroadcastListElement_s> m_buildBroadcastList;
242 
244 
245  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
246  };
247 
253  {
254  std::vector <struct UlDciListElement_s> m_dciList;
255  std::vector <struct PhichListElement_s> m_phichList;
256 
257  std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
258  };
259 
260  //
261  // SCHED - MAC Scheduler SAP primitives
262  // (See 4.2 for description of the primitives)
263  //
264 
265  virtual void SchedDlConfigInd (const struct SchedDlConfigIndParameters& params) = 0;
266 
267  virtual void SchedUlConfigInd (const struct SchedUlConfigIndParameters& params) = 0;
268 
269 private:
270 };
271 
272 } // namespace ns3
273 
274 #endif /* FF_MAC_SCHED_SAP_H */
std::vector< struct UlInfoListElement_s > m_ulInfoList
virtual void SchedUlTriggerReq(const struct SchedUlTriggerReqParameters &params)=0
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
std::vector< struct UlDciListElement_s > m_dciList
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
virtual void SchedUlSrInfoReq(const struct SchedUlSrInfoReqParameters &params)=0
virtual void SchedDlTriggerReq(const struct SchedDlTriggerReqParameters &params)=0
virtual void SchedDlRlcBufferReq(const struct SchedDlRlcBufferReqParameters &params)=0
Parameters of the SCHED_DL_TRIGGER_REQ primitive.
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
Parameters of the SCHED_DL_MAC_BUFFER_REQ primitive.
Parameters of the SCHED_DL_PAGING_BUFFER_REQ primitive.
std::vector< struct PagingInfoListElement_s > m_pagingInfoList
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
Parameters of the SCHED_UL_TRIGGER_REQ primitive.
virtual void SchedUlNoiseInterferenceReq(const struct SchedUlNoiseInterferenceReqParameters &params)=0
std::vector< struct SrListElement_s > m_srList
virtual void SchedDlRachInfoReq(const struct SchedDlRachInfoReqParameters &params)=0
Provides the SCHED SAP.
Parameters of the SCHED_UL_NOISE_INTERFERENCE_REQ primitive.
std::vector< struct CqiListElement_s > m_cqiList
std::vector< struct DlInfoListElement_s > m_dlInfoList
std::vector< struct BuildBroadcastListElement_s > m_buildBroadcastList
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
virtual void SchedDlConfigInd(const struct SchedDlConfigIndParameters &params)=0
std::vector< struct PhichListElement_s > m_phichList
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
virtual void SchedUlConfigInd(const struct SchedUlConfigIndParameters &params)=0
virtual void SchedUlCqiInfoReq(const struct SchedUlCqiInfoReqParameters &params)=0
Parameters of the SCHED_DL_CQI_INFO_REQ primitive.
std::vector< struct MacCeListElement_s > m_macCeList
virtual void SchedUlMacCtrlInfoReq(const struct SchedUlMacCtrlInfoReqParameters &params)=0
std::vector< struct RachListElement_s > m_rachList
Parameters of the SCHED_UL_CQI_INFO_REQ primitive.
CeBitmap_e
Definition: ff-mac-common.h:71
Parameters of the SCHED_UL_MAC_CTRL_INFO_REQ primitive.
Parameters of the SCHED_UL_SR_INFO_REQ primitive.
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
See section 4.3.29 ulCQI.
Parameters of the SCHED_DL_RACH_INFO_REQ primitive.
Parameters of the SCHED_UL_CONFIG_IND primitive.
virtual void SchedDlCqiInfoReq(const struct SchedDlCqiInfoReqParameters &params)=0
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
virtual void SchedDlMacBufferReq(const struct SchedDlMacBufferReqParameters &params)=0
std::vector< struct BuildRarListElement_s > m_buildRarList
std::vector< struct VendorSpecificListElement_s > m_vendorSpecificList
virtual void SchedDlPagingBufferReq(const struct SchedDlPagingBufferReqParameters &params)=0
std::vector< struct BuildDataListElement_s > m_buildDataList