View | Details | Raw Unified | Return to bug 2456
Collapse All | Expand All

(-)a/src/lte/model/cqa-ff-mac-scheduler.cc (-167 / +2 lines)
 Lines 96-266    Link Here 
96
}
96
}
97
97
98
98
99
class CqaSchedulerMemberCschedSapProvider : public FfMacCschedSapProvider
100
{
101
public:
102
  CqaSchedulerMemberCschedSapProvider (CqaFfMacScheduler* scheduler);
103
104
  // inherited from FfMacCschedSapProvider
105
  virtual void CschedCellConfigReq (const struct CschedCellConfigReqParameters& params);
106
  virtual void CschedUeConfigReq (const struct CschedUeConfigReqParameters& params);
107
  virtual void CschedLcConfigReq (const struct CschedLcConfigReqParameters& params);
108
  virtual void CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params);
109
  virtual void CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params);
110
111
private:
112
  CqaSchedulerMemberCschedSapProvider ();
113
  CqaFfMacScheduler* m_scheduler;
114
};
115
116
CqaSchedulerMemberCschedSapProvider::CqaSchedulerMemberCschedSapProvider ()
117
{
118
}
119
120
CqaSchedulerMemberCschedSapProvider::CqaSchedulerMemberCschedSapProvider (CqaFfMacScheduler* scheduler) : m_scheduler (scheduler)
121
{
122
}
123
124
125
void
126
CqaSchedulerMemberCschedSapProvider::CschedCellConfigReq (const struct CschedCellConfigReqParameters& params)
127
{
128
  m_scheduler->DoCschedCellConfigReq (params);
129
}
130
131
void
132
CqaSchedulerMemberCschedSapProvider::CschedUeConfigReq (const struct CschedUeConfigReqParameters& params)
133
{
134
  m_scheduler->DoCschedUeConfigReq (params);
135
}
136
137
138
void
139
CqaSchedulerMemberCschedSapProvider::CschedLcConfigReq (const struct CschedLcConfigReqParameters& params)
140
{
141
  m_scheduler->DoCschedLcConfigReq (params);
142
}
143
144
void
145
CqaSchedulerMemberCschedSapProvider::CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params)
146
{
147
  m_scheduler->DoCschedLcReleaseReq (params);
148
}
149
150
void
151
CqaSchedulerMemberCschedSapProvider::CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params)
152
{
153
  m_scheduler->DoCschedUeReleaseReq (params);
154
}
155
156
157
158
class CqaSchedulerMemberSchedSapProvider : public FfMacSchedSapProvider
159
{
160
public:
161
  CqaSchedulerMemberSchedSapProvider (CqaFfMacScheduler* scheduler);
162
163
  // inherited from FfMacSchedSapProvider
164
  virtual void SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params);
165
  virtual void SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params);
166
  virtual void SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params);
167
  virtual void SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params);
168
  virtual void SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params);
169
  virtual void SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params);
170
  virtual void SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params);
171
  virtual void SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params);
172
  virtual void SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params);
173
  virtual void SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params);
174
  virtual void SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params);
175
176
177
private:
178
  CqaSchedulerMemberSchedSapProvider ();
179
  CqaFfMacScheduler* m_scheduler;
180
};
181
182
183
184
CqaSchedulerMemberSchedSapProvider::CqaSchedulerMemberSchedSapProvider ()
185
{
186
}
187
188
189
CqaSchedulerMemberSchedSapProvider::CqaSchedulerMemberSchedSapProvider (CqaFfMacScheduler* scheduler)
190
  : m_scheduler (scheduler)
191
{
192
}
193
194
void
195
CqaSchedulerMemberSchedSapProvider::SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params)
196
{
197
  m_scheduler->DoSchedDlRlcBufferReq (params);
198
}
199
200
void
201
CqaSchedulerMemberSchedSapProvider::SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params)
202
{
203
  m_scheduler->DoSchedDlPagingBufferReq (params);
204
}
205
206
void
207
CqaSchedulerMemberSchedSapProvider::SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params)
208
{
209
  m_scheduler->DoSchedDlMacBufferReq (params);
210
}
211
212
void
213
CqaSchedulerMemberSchedSapProvider::SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params)
214
{
215
  m_scheduler->DoSchedDlTriggerReq (params);
216
}
217
218
void
219
CqaSchedulerMemberSchedSapProvider::SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params)
220
{
221
  m_scheduler->DoSchedDlRachInfoReq (params);
222
}
223
224
void
225
CqaSchedulerMemberSchedSapProvider::SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params)
226
{
227
  m_scheduler->DoSchedDlCqiInfoReq (params);
228
}
229
230
void
231
CqaSchedulerMemberSchedSapProvider::SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params)
232
{
233
  m_scheduler->DoSchedUlTriggerReq (params);
234
}
235
236
void
237
CqaSchedulerMemberSchedSapProvider::SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params)
238
{
239
  m_scheduler->DoSchedUlNoiseInterferenceReq (params);
240
}
241
242
void
243
CqaSchedulerMemberSchedSapProvider::SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params)
244
{
245
  m_scheduler->DoSchedUlSrInfoReq (params);
246
}
247
248
void
249
CqaSchedulerMemberSchedSapProvider::SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params)
250
{
251
  m_scheduler->DoSchedUlMacCtrlInfoReq (params);
252
}
253
254
void
255
CqaSchedulerMemberSchedSapProvider::SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params)
256
{
257
  m_scheduler->DoSchedUlCqiInfoReq (params);
258
}
259
260
261
262
263
264
CqaFfMacScheduler::CqaFfMacScheduler ()
99
CqaFfMacScheduler::CqaFfMacScheduler ()
265
  :   m_cschedSapUser (0),
100
  :   m_cschedSapUser (0),
266
    m_schedSapUser (0),
101
    m_schedSapUser (0),
 Lines 268-275    Link Here 
268
    m_nextRntiUl (0)
103
    m_nextRntiUl (0)
269
{
104
{
270
  m_amc = CreateObject <LteAmc> ();
105
  m_amc = CreateObject <LteAmc> ();
271
  m_cschedSapProvider = new CqaSchedulerMemberCschedSapProvider (this);
106
  m_cschedSapProvider = new MemberCschedSapProvider<CqaFfMacScheduler> (this);
272
  m_schedSapProvider = new CqaSchedulerMemberSchedSapProvider (this);
107
  m_schedSapProvider = new MemberSchedSapProvider<CqaFfMacScheduler> (this);
273
  m_ffrSapProvider = 0;
108
  m_ffrSapProvider = 0;
274
  m_ffrSapUser = new MemberLteFfrSapUser<CqaFfMacScheduler> (this);
109
  m_ffrSapUser = new MemberLteFfrSapUser<CqaFfMacScheduler> (this);
275
}
110
}
(-)a/src/lte/model/cqa-ff-mac-scheduler.h (-2 / +2 lines)
 Lines 99-106    Link Here 
99
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
99
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
100
  virtual LteFfrSapUser* GetLteFfrSapUser ();
100
  virtual LteFfrSapUser* GetLteFfrSapUser ();
101
101
102
  friend class CqaSchedulerMemberCschedSapProvider;
102
  friend class MemberCschedSapProvider<CqaFfMacScheduler>;
103
  friend class CqaSchedulerMemberSchedSapProvider;
103
  friend class MemberSchedSapProvider<CqaFfMacScheduler>;
104
104
105
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
105
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
106
106
(-)a/src/lte/model/fdbet-ff-mac-scheduler.cc (-168 / +2 lines)
 Lines 47-218    Link Here 
47
47
48
48
49
49
50
class FdBetSchedulerMemberCschedSapProvider : public FfMacCschedSapProvider
51
{
52
public:
53
  FdBetSchedulerMemberCschedSapProvider (FdBetFfMacScheduler* scheduler);
54
55
  // inherited from FfMacCschedSapProvider
56
  virtual void CschedCellConfigReq (const struct CschedCellConfigReqParameters& params);
57
  virtual void CschedUeConfigReq (const struct CschedUeConfigReqParameters& params);
58
  virtual void CschedLcConfigReq (const struct CschedLcConfigReqParameters& params);
59
  virtual void CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params);
60
  virtual void CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params);
61
62
private:
63
  FdBetSchedulerMemberCschedSapProvider ();
64
  FdBetFfMacScheduler* m_scheduler;
65
};
66
67
FdBetSchedulerMemberCschedSapProvider::FdBetSchedulerMemberCschedSapProvider ()
68
{
69
}
70
71
FdBetSchedulerMemberCschedSapProvider::FdBetSchedulerMemberCschedSapProvider (FdBetFfMacScheduler* scheduler) : m_scheduler (scheduler)
72
{
73
}
74
75
76
void
77
FdBetSchedulerMemberCschedSapProvider::CschedCellConfigReq (const struct CschedCellConfigReqParameters& params)
78
{
79
  m_scheduler->DoCschedCellConfigReq (params);
80
}
81
82
void
83
FdBetSchedulerMemberCschedSapProvider::CschedUeConfigReq (const struct CschedUeConfigReqParameters& params)
84
{
85
  m_scheduler->DoCschedUeConfigReq (params);
86
}
87
88
89
void
90
FdBetSchedulerMemberCschedSapProvider::CschedLcConfigReq (const struct CschedLcConfigReqParameters& params)
91
{
92
  m_scheduler->DoCschedLcConfigReq (params);
93
}
94
95
void
96
FdBetSchedulerMemberCschedSapProvider::CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params)
97
{
98
  m_scheduler->DoCschedLcReleaseReq (params);
99
}
100
101
void
102
FdBetSchedulerMemberCschedSapProvider::CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params)
103
{
104
  m_scheduler->DoCschedUeReleaseReq (params);
105
}
106
107
108
109
110
class FdBetSchedulerMemberSchedSapProvider : public FfMacSchedSapProvider
111
{
112
public:
113
  FdBetSchedulerMemberSchedSapProvider (FdBetFfMacScheduler* scheduler);
114
115
  // inherited from FfMacSchedSapProvider
116
  virtual void SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params);
117
  virtual void SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params);
118
  virtual void SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params);
119
  virtual void SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params);
120
  virtual void SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params);
121
  virtual void SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params);
122
  virtual void SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params);
123
  virtual void SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params);
124
  virtual void SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params);
125
  virtual void SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params);
126
  virtual void SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params);
127
128
129
private:
130
  FdBetSchedulerMemberSchedSapProvider ();
131
  FdBetFfMacScheduler* m_scheduler;
132
};
133
134
135
136
FdBetSchedulerMemberSchedSapProvider::FdBetSchedulerMemberSchedSapProvider ()
137
{
138
}
139
140
141
FdBetSchedulerMemberSchedSapProvider::FdBetSchedulerMemberSchedSapProvider (FdBetFfMacScheduler* scheduler)
142
  : m_scheduler (scheduler)
143
{
144
}
145
146
void
147
FdBetSchedulerMemberSchedSapProvider::SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params)
148
{
149
  m_scheduler->DoSchedDlRlcBufferReq (params);
150
}
151
152
void
153
FdBetSchedulerMemberSchedSapProvider::SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params)
154
{
155
  m_scheduler->DoSchedDlPagingBufferReq (params);
156
}
157
158
void
159
FdBetSchedulerMemberSchedSapProvider::SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params)
160
{
161
  m_scheduler->DoSchedDlMacBufferReq (params);
162
}
163
164
void
165
FdBetSchedulerMemberSchedSapProvider::SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params)
166
{
167
  m_scheduler->DoSchedDlTriggerReq (params);
168
}
169
170
void
171
FdBetSchedulerMemberSchedSapProvider::SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params)
172
{
173
  m_scheduler->DoSchedDlRachInfoReq (params);
174
}
175
176
void
177
FdBetSchedulerMemberSchedSapProvider::SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params)
178
{
179
  m_scheduler->DoSchedDlCqiInfoReq (params);
180
}
181
182
void
183
FdBetSchedulerMemberSchedSapProvider::SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params)
184
{
185
  m_scheduler->DoSchedUlTriggerReq (params);
186
}
187
188
void
189
FdBetSchedulerMemberSchedSapProvider::SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params)
190
{
191
  m_scheduler->DoSchedUlNoiseInterferenceReq (params);
192
}
193
194
void
195
FdBetSchedulerMemberSchedSapProvider::SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params)
196
{
197
  m_scheduler->DoSchedUlSrInfoReq (params);
198
}
199
200
void
201
FdBetSchedulerMemberSchedSapProvider::SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params)
202
{
203
  m_scheduler->DoSchedUlMacCtrlInfoReq (params);
204
}
205
206
void
207
FdBetSchedulerMemberSchedSapProvider::SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params)
208
{
209
  m_scheduler->DoSchedUlCqiInfoReq (params);
210
}
211
212
213
214
215
216
FdBetFfMacScheduler::FdBetFfMacScheduler ()
50
FdBetFfMacScheduler::FdBetFfMacScheduler ()
217
  :   m_cschedSapUser (0),
51
  :   m_cschedSapUser (0),
218
    m_schedSapUser (0),
52
    m_schedSapUser (0),
 Lines 220-227    Link Here 
220
    m_nextRntiUl (0)
54
    m_nextRntiUl (0)
221
{
55
{
222
  m_amc = CreateObject <LteAmc> ();
56
  m_amc = CreateObject <LteAmc> ();
223
  m_cschedSapProvider = new FdBetSchedulerMemberCschedSapProvider (this);
57
  m_cschedSapProvider = new MemberCschedSapProvider<FdBetFfMacScheduler> (this);
224
  m_schedSapProvider = new FdBetSchedulerMemberSchedSapProvider (this);
58
  m_schedSapProvider = new MemberSchedSapProvider<FdBetFfMacScheduler> (this);
225
}
59
}
226
60
227
FdBetFfMacScheduler::~FdBetFfMacScheduler ()
61
FdBetFfMacScheduler::~FdBetFfMacScheduler ()
(-)a/src/lte/model/fdbet-ff-mac-scheduler.h (-2 / +2 lines)
 Lines 98-105    Link Here 
98
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
98
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
99
  virtual LteFfrSapUser* GetLteFfrSapUser ();
99
  virtual LteFfrSapUser* GetLteFfrSapUser ();
100
100
101
  friend class FdBetSchedulerMemberCschedSapProvider;
101
  friend class MemberCschedSapProvider<FdBetFfMacScheduler>;
102
  friend class FdBetSchedulerMemberSchedSapProvider;
102
  friend class MemberSchedSapProvider<FdBetFfMacScheduler>;
103
103
104
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
104
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
105
105
(-)a/src/lte/model/fdmt-ff-mac-scheduler.cc (-168 / +2 lines)
 Lines 47-226    Link Here 
47
47
48
48
49
49
50
class FdMtSchedulerMemberCschedSapProvider : public FfMacCschedSapProvider
51
{
52
public:
53
  FdMtSchedulerMemberCschedSapProvider (FdMtFfMacScheduler* scheduler);
54
55
  // inherited from FfMacCschedSapProvider
56
  virtual void CschedCellConfigReq (const struct CschedCellConfigReqParameters& params);
57
  virtual void CschedUeConfigReq (const struct CschedUeConfigReqParameters& params);
58
  virtual void CschedLcConfigReq (const struct CschedLcConfigReqParameters& params);
59
  virtual void CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params);
60
  virtual void CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params);
61
62
private:
63
  FdMtSchedulerMemberCschedSapProvider ();
64
  FdMtFfMacScheduler* m_scheduler;
65
};
66
67
FdMtSchedulerMemberCschedSapProvider::FdMtSchedulerMemberCschedSapProvider ()
68
{
69
}
70
71
FdMtSchedulerMemberCschedSapProvider::FdMtSchedulerMemberCschedSapProvider (FdMtFfMacScheduler* scheduler) : m_scheduler (scheduler)
72
{
73
}
74
75
76
void
77
FdMtSchedulerMemberCschedSapProvider::CschedCellConfigReq (const struct CschedCellConfigReqParameters& params)
78
{
79
  m_scheduler->DoCschedCellConfigReq (params);
80
}
81
82
void
83
FdMtSchedulerMemberCschedSapProvider::CschedUeConfigReq (const struct CschedUeConfigReqParameters& params)
84
{
85
  m_scheduler->DoCschedUeConfigReq (params);
86
}
87
88
89
void
90
FdMtSchedulerMemberCschedSapProvider::CschedLcConfigReq (const struct CschedLcConfigReqParameters& params)
91
{
92
  m_scheduler->DoCschedLcConfigReq (params);
93
}
94
95
void
96
FdMtSchedulerMemberCschedSapProvider::CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params)
97
{
98
  m_scheduler->DoCschedLcReleaseReq (params);
99
}
100
101
void
102
FdMtSchedulerMemberCschedSapProvider::CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params)
103
{
104
  m_scheduler->DoCschedUeReleaseReq (params);
105
}
106
107
108
109
110
class FdMtSchedulerMemberSchedSapProvider : public FfMacSchedSapProvider
111
{
112
public:
113
  FdMtSchedulerMemberSchedSapProvider (FdMtFfMacScheduler* scheduler);
114
115
  // inherited from FfMacSchedSapProvider
116
  virtual void SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params);
117
  virtual void SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params);
118
  virtual void SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params);
119
  virtual void SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params);
120
  virtual void SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params);
121
  virtual void SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params);
122
  virtual void SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params);
123
  virtual void SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params);
124
  virtual void SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params);
125
  virtual void SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params);
126
  virtual void SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params);
127
128
129
private:
130
  FdMtSchedulerMemberSchedSapProvider ();
131
  FdMtFfMacScheduler* m_scheduler;
132
};
133
134
135
136
FdMtSchedulerMemberSchedSapProvider::FdMtSchedulerMemberSchedSapProvider ()
137
{
138
}
139
140
141
FdMtSchedulerMemberSchedSapProvider::FdMtSchedulerMemberSchedSapProvider (FdMtFfMacScheduler* scheduler)
142
  : m_scheduler (scheduler)
143
{
144
}
145
146
void
147
FdMtSchedulerMemberSchedSapProvider::SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params)
148
{
149
  m_scheduler->DoSchedDlRlcBufferReq (params);
150
}
151
152
void
153
FdMtSchedulerMemberSchedSapProvider::SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params)
154
{
155
  m_scheduler->DoSchedDlPagingBufferReq (params);
156
}
157
158
void
159
FdMtSchedulerMemberSchedSapProvider::SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params)
160
{
161
  m_scheduler->DoSchedDlMacBufferReq (params);
162
}
163
164
void
165
FdMtSchedulerMemberSchedSapProvider::SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params)
166
{
167
  m_scheduler->DoSchedDlTriggerReq (params);
168
}
169
170
void
171
FdMtSchedulerMemberSchedSapProvider::SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params)
172
{
173
  m_scheduler->DoSchedDlRachInfoReq (params);
174
}
175
176
void
177
FdMtSchedulerMemberSchedSapProvider::SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params)
178
{
179
  m_scheduler->DoSchedDlCqiInfoReq (params);
180
}
181
182
void
183
FdMtSchedulerMemberSchedSapProvider::SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params)
184
{
185
  m_scheduler->DoSchedUlTriggerReq (params);
186
}
187
188
void
189
FdMtSchedulerMemberSchedSapProvider::SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params)
190
{
191
  m_scheduler->DoSchedUlNoiseInterferenceReq (params);
192
}
193
194
void
195
FdMtSchedulerMemberSchedSapProvider::SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params)
196
{
197
  m_scheduler->DoSchedUlSrInfoReq (params);
198
}
199
200
void
201
FdMtSchedulerMemberSchedSapProvider::SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params)
202
{
203
  m_scheduler->DoSchedUlMacCtrlInfoReq (params);
204
}
205
206
void
207
FdMtSchedulerMemberSchedSapProvider::SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params)
208
{
209
  m_scheduler->DoSchedUlCqiInfoReq (params);
210
}
211
212
213
214
215
216
FdMtFfMacScheduler::FdMtFfMacScheduler ()
50
FdMtFfMacScheduler::FdMtFfMacScheduler ()
217
  :   m_cschedSapUser (0),
51
  :   m_cschedSapUser (0),
218
    m_schedSapUser (0),
52
    m_schedSapUser (0),
219
    m_nextRntiUl (0)
53
    m_nextRntiUl (0)
220
{
54
{
221
  m_amc = CreateObject <LteAmc> ();
55
  m_amc = CreateObject <LteAmc> ();
222
  m_cschedSapProvider = new FdMtSchedulerMemberCschedSapProvider (this);
56
  m_cschedSapProvider = new MemberCschedSapProvider<FdMtFfMacScheduler> (this);
223
  m_schedSapProvider = new FdMtSchedulerMemberSchedSapProvider (this);
57
  m_schedSapProvider = new MemberSchedSapProvider<FdMtFfMacScheduler> (this);
224
}
58
}
225
59
226
FdMtFfMacScheduler::~FdMtFfMacScheduler ()
60
FdMtFfMacScheduler::~FdMtFfMacScheduler ()
(-)a/src/lte/model/fdmt-ff-mac-scheduler.h (-2 / +2 lines)
 Lines 90-97    Link Here 
90
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
90
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
91
  virtual LteFfrSapUser* GetLteFfrSapUser ();
91
  virtual LteFfrSapUser* GetLteFfrSapUser ();
92
92
93
  friend class FdMtSchedulerMemberCschedSapProvider;
93
  friend class MemberCschedSapProvider<FdMtFfMacScheduler>;
94
  friend class FdMtSchedulerMemberSchedSapProvider;
94
  friend class MemberSchedSapProvider<FdMtFfMacScheduler>;
95
95
96
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
96
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
97
97
(-)a/src/lte/model/fdtbfq-ff-mac-scheduler.cc (-168 / +2 lines)
 Lines 48-219    Link Here 
48
48
49
49
50
50
51
class FdTbfqSchedulerMemberCschedSapProvider : public FfMacCschedSapProvider
52
{
53
public:
54
  FdTbfqSchedulerMemberCschedSapProvider (FdTbfqFfMacScheduler* scheduler);
55
56
  // inherited from FfMacCschedSapProvider
57
  virtual void CschedCellConfigReq (const struct CschedCellConfigReqParameters& params);
58
  virtual void CschedUeConfigReq (const struct CschedUeConfigReqParameters& params);
59
  virtual void CschedLcConfigReq (const struct CschedLcConfigReqParameters& params);
60
  virtual void CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params);
61
  virtual void CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params);
62
63
private:
64
  FdTbfqSchedulerMemberCschedSapProvider ();
65
  FdTbfqFfMacScheduler* m_scheduler;
66
};
67
68
FdTbfqSchedulerMemberCschedSapProvider::FdTbfqSchedulerMemberCschedSapProvider ()
69
{
70
}
71
72
FdTbfqSchedulerMemberCschedSapProvider::FdTbfqSchedulerMemberCschedSapProvider (FdTbfqFfMacScheduler* scheduler) : m_scheduler (scheduler)
73
{
74
}
75
76
77
void
78
FdTbfqSchedulerMemberCschedSapProvider::CschedCellConfigReq (const struct CschedCellConfigReqParameters& params)
79
{
80
  m_scheduler->DoCschedCellConfigReq (params);
81
}
82
83
void
84
FdTbfqSchedulerMemberCschedSapProvider::CschedUeConfigReq (const struct CschedUeConfigReqParameters& params)
85
{
86
  m_scheduler->DoCschedUeConfigReq (params);
87
}
88
89
90
void
91
FdTbfqSchedulerMemberCschedSapProvider::CschedLcConfigReq (const struct CschedLcConfigReqParameters& params)
92
{
93
  m_scheduler->DoCschedLcConfigReq (params);
94
}
95
96
void
97
FdTbfqSchedulerMemberCschedSapProvider::CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params)
98
{
99
  m_scheduler->DoCschedLcReleaseReq (params);
100
}
101
102
void
103
FdTbfqSchedulerMemberCschedSapProvider::CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params)
104
{
105
  m_scheduler->DoCschedUeReleaseReq (params);
106
}
107
108
109
110
111
class FdTbfqSchedulerMemberSchedSapProvider : public FfMacSchedSapProvider
112
{
113
public:
114
  FdTbfqSchedulerMemberSchedSapProvider (FdTbfqFfMacScheduler* scheduler);
115
116
  // inherited from FfMacSchedSapProvider
117
  virtual void SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params);
118
  virtual void SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params);
119
  virtual void SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params);
120
  virtual void SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params);
121
  virtual void SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params);
122
  virtual void SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params);
123
  virtual void SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params);
124
  virtual void SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params);
125
  virtual void SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params);
126
  virtual void SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params);
127
  virtual void SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params);
128
129
130
private:
131
  FdTbfqSchedulerMemberSchedSapProvider ();
132
  FdTbfqFfMacScheduler* m_scheduler;
133
};
134
135
136
137
FdTbfqSchedulerMemberSchedSapProvider::FdTbfqSchedulerMemberSchedSapProvider ()
138
{
139
}
140
141
142
FdTbfqSchedulerMemberSchedSapProvider::FdTbfqSchedulerMemberSchedSapProvider (FdTbfqFfMacScheduler* scheduler)
143
  : m_scheduler (scheduler)
144
{
145
}
146
147
void
148
FdTbfqSchedulerMemberSchedSapProvider::SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params)
149
{
150
  m_scheduler->DoSchedDlRlcBufferReq (params);
151
}
152
153
void
154
FdTbfqSchedulerMemberSchedSapProvider::SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params)
155
{
156
  m_scheduler->DoSchedDlPagingBufferReq (params);
157
}
158
159
void
160
FdTbfqSchedulerMemberSchedSapProvider::SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params)
161
{
162
  m_scheduler->DoSchedDlMacBufferReq (params);
163
}
164
165
void
166
FdTbfqSchedulerMemberSchedSapProvider::SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params)
167
{
168
  m_scheduler->DoSchedDlTriggerReq (params);
169
}
170
171
void
172
FdTbfqSchedulerMemberSchedSapProvider::SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params)
173
{
174
  m_scheduler->DoSchedDlRachInfoReq (params);
175
}
176
177
void
178
FdTbfqSchedulerMemberSchedSapProvider::SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params)
179
{
180
  m_scheduler->DoSchedDlCqiInfoReq (params);
181
}
182
183
void
184
FdTbfqSchedulerMemberSchedSapProvider::SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params)
185
{
186
  m_scheduler->DoSchedUlTriggerReq (params);
187
}
188
189
void
190
FdTbfqSchedulerMemberSchedSapProvider::SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params)
191
{
192
  m_scheduler->DoSchedUlNoiseInterferenceReq (params);
193
}
194
195
void
196
FdTbfqSchedulerMemberSchedSapProvider::SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params)
197
{
198
  m_scheduler->DoSchedUlSrInfoReq (params);
199
}
200
201
void
202
FdTbfqSchedulerMemberSchedSapProvider::SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params)
203
{
204
  m_scheduler->DoSchedUlMacCtrlInfoReq (params);
205
}
206
207
void
208
FdTbfqSchedulerMemberSchedSapProvider::SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params)
209
{
210
  m_scheduler->DoSchedUlCqiInfoReq (params);
211
}
212
213
214
215
216
217
FdTbfqFfMacScheduler::FdTbfqFfMacScheduler ()
51
FdTbfqFfMacScheduler::FdTbfqFfMacScheduler ()
218
  :   m_cschedSapUser (0),
52
  :   m_cschedSapUser (0),
219
    m_schedSapUser (0),
53
    m_schedSapUser (0),
 Lines 221-228    Link Here 
221
    bankSize (0)
55
    bankSize (0)
222
{
56
{
223
  m_amc = CreateObject <LteAmc> ();
57
  m_amc = CreateObject <LteAmc> ();
224
  m_cschedSapProvider = new FdTbfqSchedulerMemberCschedSapProvider (this);
58
  m_cschedSapProvider = new MemberCschedSapProvider<FdTbfqFfMacScheduler> (this);
225
  m_schedSapProvider = new FdTbfqSchedulerMemberSchedSapProvider (this);
59
  m_schedSapProvider = new MemberSchedSapProvider<FdTbfqFfMacScheduler> (this);
226
  m_ffrSapProvider = 0;
60
  m_ffrSapProvider = 0;
227
  m_ffrSapUser = new MemberLteFfrSapUser<FdTbfqFfMacScheduler> (this);
61
  m_ffrSapUser = new MemberLteFfrSapUser<FdTbfqFfMacScheduler> (this);
228
}
62
}
(-)a/src/lte/model/fdtbfq-ff-mac-scheduler.h (-2 / +2 lines)
 Lines 105-112    Link Here 
105
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
105
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
106
  virtual LteFfrSapUser* GetLteFfrSapUser ();
106
  virtual LteFfrSapUser* GetLteFfrSapUser ();
107
107
108
  friend class FdTbfqSchedulerMemberCschedSapProvider;
108
  friend class MemberCschedSapProvider<FdTbfqFfMacScheduler>;
109
  friend class FdTbfqSchedulerMemberSchedSapProvider;
109
  friend class MemberSchedSapProvider<FdTbfqFfMacScheduler>;
110
110
111
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
111
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
112
112
(-)a/src/lte/model/ff-mac-csched-sap.h (+65 lines)
 Lines 370-375    Link Here 
370
private:
370
private:
371
};
371
};
372
372
373
374
template <class C>
375
class MemberCschedSapProvider : public FfMacCschedSapProvider
376
{
377
public:
378
  MemberCschedSapProvider (C* scheduler);
379
380
  // inherited from FfMacCschedSapProvider
381
  virtual void CschedCellConfigReq (const struct CschedCellConfigReqParameters& params);
382
  virtual void CschedUeConfigReq (const struct CschedUeConfigReqParameters& params);
383
  virtual void CschedLcConfigReq (const struct CschedLcConfigReqParameters& params);
384
  virtual void CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params);
385
  virtual void CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params);
386
387
private:
388
  MemberCschedSapProvider ();
389
  C* m_scheduler;
390
};
391
392
template <class C>
393
MemberCschedSapProvider<C>::MemberCschedSapProvider ()
394
{
395
}
396
397
template <class C>
398
MemberCschedSapProvider<C>::MemberCschedSapProvider (C* scheduler) : m_scheduler (scheduler)
399
{
400
}
401
402
template <class C>
403
void
404
MemberCschedSapProvider<C>::CschedCellConfigReq (const struct CschedCellConfigReqParameters& params)
405
{
406
  m_scheduler->DoCschedCellConfigReq (params);
407
}
408
409
template <class C>
410
void
411
MemberCschedSapProvider<C>::CschedUeConfigReq (const struct CschedUeConfigReqParameters& params)
412
{
413
  m_scheduler->DoCschedUeConfigReq (params);
414
}
415
416
template <class C>
417
void
418
MemberCschedSapProvider<C>::CschedLcConfigReq (const struct CschedLcConfigReqParameters& params)
419
{
420
  m_scheduler->DoCschedLcConfigReq (params);
421
}
422
423
template <class C>
424
void
425
MemberCschedSapProvider<C>::CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params)
426
{
427
  m_scheduler->DoCschedLcReleaseReq (params);
428
}
429
430
template <class C>
431
void
432
MemberCschedSapProvider<C>::CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params)
433
{
434
  m_scheduler->DoCschedUeReleaseReq (params);
435
}
436
437
373
} // end namespace ns3
438
} // end namespace ns3
374
439
375
#endif /* FF_MAC_CSCHED_SAP_H */
440
#endif /* FF_MAC_CSCHED_SAP_H */
(-)a/src/lte/model/ff-mac-sched-sap.h (+121 lines)
 Lines 269-274    Link Here 
269
private:
269
private:
270
};
270
};
271
271
272
273
274
template <class C>
275
class MemberSchedSapProvider : public FfMacSchedSapProvider
276
{
277
public:
278
  MemberSchedSapProvider (C* scheduler);
279
280
  // inherited from FfMacSchedSapProvider
281
  virtual void SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params);
282
  virtual void SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params);
283
  virtual void SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params);
284
  virtual void SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params);
285
  virtual void SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params);
286
  virtual void SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params);
287
  virtual void SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params);
288
  virtual void SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params);
289
  virtual void SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params);
290
  virtual void SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params);
291
  virtual void SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params);
292
293
294
private:
295
  MemberSchedSapProvider ();
296
  C* m_scheduler;
297
};
298
299
300
template <class C>
301
MemberSchedSapProvider<C>::MemberSchedSapProvider ()
302
{
303
}
304
305
306
template <class C>
307
MemberSchedSapProvider<C>::MemberSchedSapProvider (C* scheduler)
308
  : m_scheduler (scheduler)
309
{
310
}
311
312
template <class C>
313
void
314
MemberSchedSapProvider<C>::SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params)
315
{
316
  m_scheduler->DoSchedDlRlcBufferReq (params);
317
}
318
319
template <class C>
320
void
321
MemberSchedSapProvider<C>::SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params)
322
{
323
  m_scheduler->DoSchedDlPagingBufferReq (params);
324
}
325
326
template <class C>
327
void
328
MemberSchedSapProvider<C>::SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params)
329
{
330
  m_scheduler->DoSchedDlMacBufferReq (params);
331
}
332
333
template <class C>
334
void
335
MemberSchedSapProvider<C>::SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params)
336
{
337
  m_scheduler->DoSchedDlTriggerReq (params);
338
}
339
340
template <class C>
341
void
342
MemberSchedSapProvider<C>::SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params)
343
{
344
  m_scheduler->DoSchedDlRachInfoReq (params);
345
}
346
347
template <class C>
348
void
349
MemberSchedSapProvider<C>::SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params)
350
{
351
  m_scheduler->DoSchedDlCqiInfoReq (params);
352
}
353
354
template <class C>
355
void
356
MemberSchedSapProvider<C>::SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params)
357
{
358
  m_scheduler->DoSchedUlTriggerReq (params);
359
}
360
361
template <class C>
362
void
363
MemberSchedSapProvider<C>::SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params)
364
{
365
  m_scheduler->DoSchedUlNoiseInterferenceReq (params);
366
}
367
368
template <class C>
369
void
370
MemberSchedSapProvider<C>::SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params)
371
{
372
  m_scheduler->DoSchedUlSrInfoReq (params);
373
}
374
375
template <class C>
376
void
377
MemberSchedSapProvider<C>::SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params)
378
{
379
  m_scheduler->DoSchedUlMacCtrlInfoReq (params);
380
}
381
382
template <class C>
383
void
384
MemberSchedSapProvider<C>::SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params)
385
{
386
  m_scheduler->DoSchedUlCqiInfoReq (params);
387
}
388
389
390
391
392
272
} // namespace ns3
393
} // namespace ns3
273
394
274
#endif /* FF_MAC_SCHED_SAP_H */
395
#endif /* FF_MAC_SCHED_SAP_H */
(-)a/src/lte/model/pf-ff-mac-scheduler.cc (-168 / +2 lines)
 Lines 47-218    Link Here 
47
47
48
48
49
49
50
class PfSchedulerMemberCschedSapProvider : public FfMacCschedSapProvider
51
{
52
public:
53
  PfSchedulerMemberCschedSapProvider (PfFfMacScheduler* scheduler);
54
55
  // inherited from FfMacCschedSapProvider
56
  virtual void CschedCellConfigReq (const struct CschedCellConfigReqParameters& params);
57
  virtual void CschedUeConfigReq (const struct CschedUeConfigReqParameters& params);
58
  virtual void CschedLcConfigReq (const struct CschedLcConfigReqParameters& params);
59
  virtual void CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params);
60
  virtual void CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params);
61
62
private:
63
  PfSchedulerMemberCschedSapProvider ();
64
  PfFfMacScheduler* m_scheduler;
65
};
66
67
PfSchedulerMemberCschedSapProvider::PfSchedulerMemberCschedSapProvider ()
68
{
69
}
70
71
PfSchedulerMemberCschedSapProvider::PfSchedulerMemberCschedSapProvider (PfFfMacScheduler* scheduler) : m_scheduler (scheduler)
72
{
73
}
74
75
76
void
77
PfSchedulerMemberCschedSapProvider::CschedCellConfigReq (const struct CschedCellConfigReqParameters& params)
78
{
79
  m_scheduler->DoCschedCellConfigReq (params);
80
}
81
82
void
83
PfSchedulerMemberCschedSapProvider::CschedUeConfigReq (const struct CschedUeConfigReqParameters& params)
84
{
85
  m_scheduler->DoCschedUeConfigReq (params);
86
}
87
88
89
void
90
PfSchedulerMemberCschedSapProvider::CschedLcConfigReq (const struct CschedLcConfigReqParameters& params)
91
{
92
  m_scheduler->DoCschedLcConfigReq (params);
93
}
94
95
void
96
PfSchedulerMemberCschedSapProvider::CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params)
97
{
98
  m_scheduler->DoCschedLcReleaseReq (params);
99
}
100
101
void
102
PfSchedulerMemberCschedSapProvider::CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params)
103
{
104
  m_scheduler->DoCschedUeReleaseReq (params);
105
}
106
107
108
109
110
class PfSchedulerMemberSchedSapProvider : public FfMacSchedSapProvider
111
{
112
public:
113
  PfSchedulerMemberSchedSapProvider (PfFfMacScheduler* scheduler);
114
115
  // inherited from FfMacSchedSapProvider
116
  virtual void SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params);
117
  virtual void SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params);
118
  virtual void SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params);
119
  virtual void SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params);
120
  virtual void SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params);
121
  virtual void SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params);
122
  virtual void SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params);
123
  virtual void SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params);
124
  virtual void SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params);
125
  virtual void SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params);
126
  virtual void SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params);
127
128
129
private:
130
  PfSchedulerMemberSchedSapProvider ();
131
  PfFfMacScheduler* m_scheduler;
132
};
133
134
135
136
PfSchedulerMemberSchedSapProvider::PfSchedulerMemberSchedSapProvider ()
137
{
138
}
139
140
141
PfSchedulerMemberSchedSapProvider::PfSchedulerMemberSchedSapProvider (PfFfMacScheduler* scheduler)
142
  : m_scheduler (scheduler)
143
{
144
}
145
146
void
147
PfSchedulerMemberSchedSapProvider::SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params)
148
{
149
  m_scheduler->DoSchedDlRlcBufferReq (params);
150
}
151
152
void
153
PfSchedulerMemberSchedSapProvider::SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params)
154
{
155
  m_scheduler->DoSchedDlPagingBufferReq (params);
156
}
157
158
void
159
PfSchedulerMemberSchedSapProvider::SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params)
160
{
161
  m_scheduler->DoSchedDlMacBufferReq (params);
162
}
163
164
void
165
PfSchedulerMemberSchedSapProvider::SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params)
166
{
167
  m_scheduler->DoSchedDlTriggerReq (params);
168
}
169
170
void
171
PfSchedulerMemberSchedSapProvider::SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params)
172
{
173
  m_scheduler->DoSchedDlRachInfoReq (params);
174
}
175
176
void
177
PfSchedulerMemberSchedSapProvider::SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params)
178
{
179
  m_scheduler->DoSchedDlCqiInfoReq (params);
180
}
181
182
void
183
PfSchedulerMemberSchedSapProvider::SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params)
184
{
185
  m_scheduler->DoSchedUlTriggerReq (params);
186
}
187
188
void
189
PfSchedulerMemberSchedSapProvider::SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params)
190
{
191
  m_scheduler->DoSchedUlNoiseInterferenceReq (params);
192
}
193
194
void
195
PfSchedulerMemberSchedSapProvider::SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params)
196
{
197
  m_scheduler->DoSchedUlSrInfoReq (params);
198
}
199
200
void
201
PfSchedulerMemberSchedSapProvider::SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params)
202
{
203
  m_scheduler->DoSchedUlMacCtrlInfoReq (params);
204
}
205
206
void
207
PfSchedulerMemberSchedSapProvider::SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params)
208
{
209
  m_scheduler->DoSchedUlCqiInfoReq (params);
210
}
211
212
213
214
215
216
PfFfMacScheduler::PfFfMacScheduler ()
50
PfFfMacScheduler::PfFfMacScheduler ()
217
  :   m_cschedSapUser (0),
51
  :   m_cschedSapUser (0),
218
    m_schedSapUser (0),
52
    m_schedSapUser (0),
 Lines 220-227    Link Here 
220
    m_nextRntiUl (0)
54
    m_nextRntiUl (0)
221
{
55
{
222
  m_amc = CreateObject <LteAmc> ();
56
  m_amc = CreateObject <LteAmc> ();
223
  m_cschedSapProvider = new PfSchedulerMemberCschedSapProvider (this);
57
  m_cschedSapProvider = new MemberCschedSapProvider<PfFfMacScheduler> (this);
224
  m_schedSapProvider = new PfSchedulerMemberSchedSapProvider (this);
58
  m_schedSapProvider = new MemberSchedSapProvider<PfFfMacScheduler> (this);
225
  m_ffrSapProvider = 0;
59
  m_ffrSapProvider = 0;
226
  m_ffrSapUser = new MemberLteFfrSapUser<PfFfMacScheduler> (this);
60
  m_ffrSapUser = new MemberLteFfrSapUser<PfFfMacScheduler> (this);
227
}
61
}
(-)a/src/lte/model/pf-ff-mac-scheduler.h (-2 / +2 lines)
 Lines 97-104    Link Here 
97
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
97
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
98
  virtual LteFfrSapUser* GetLteFfrSapUser ();
98
  virtual LteFfrSapUser* GetLteFfrSapUser ();
99
99
100
  friend class PfSchedulerMemberCschedSapProvider;
100
  friend class MemberCschedSapProvider<PfFfMacScheduler>;
101
  friend class PfSchedulerMemberSchedSapProvider;
101
  friend class MemberSchedSapProvider<PfFfMacScheduler>;
102
102
103
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
103
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
104
104
(-)a/src/lte/model/pss-ff-mac-scheduler.cc (-168 / +2 lines)
 Lines 50-221    Link Here 
50
50
51
51
52
52
53
class PssSchedulerMemberCschedSapProvider : public FfMacCschedSapProvider
54
{
55
public:
56
  PssSchedulerMemberCschedSapProvider (PssFfMacScheduler* scheduler);
57
58
  // inherited from FfMacCschedSapProvider
59
  virtual void CschedCellConfigReq (const struct CschedCellConfigReqParameters& params);
60
  virtual void CschedUeConfigReq (const struct CschedUeConfigReqParameters& params);
61
  virtual void CschedLcConfigReq (const struct CschedLcConfigReqParameters& params);
62
  virtual void CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params);
63
  virtual void CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params);
64
65
private:
66
  PssSchedulerMemberCschedSapProvider ();
67
  PssFfMacScheduler* m_scheduler;
68
};
69
70
PssSchedulerMemberCschedSapProvider::PssSchedulerMemberCschedSapProvider ()
71
{
72
}
73
74
PssSchedulerMemberCschedSapProvider::PssSchedulerMemberCschedSapProvider (PssFfMacScheduler* scheduler) : m_scheduler (scheduler)
75
{
76
}
77
78
79
void
80
PssSchedulerMemberCschedSapProvider::CschedCellConfigReq (const struct CschedCellConfigReqParameters& params)
81
{
82
  m_scheduler->DoCschedCellConfigReq (params);
83
}
84
85
void
86
PssSchedulerMemberCschedSapProvider::CschedUeConfigReq (const struct CschedUeConfigReqParameters& params)
87
{
88
  m_scheduler->DoCschedUeConfigReq (params);
89
}
90
91
92
void
93
PssSchedulerMemberCschedSapProvider::CschedLcConfigReq (const struct CschedLcConfigReqParameters& params)
94
{
95
  m_scheduler->DoCschedLcConfigReq (params);
96
}
97
98
void
99
PssSchedulerMemberCschedSapProvider::CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params)
100
{
101
  m_scheduler->DoCschedLcReleaseReq (params);
102
}
103
104
void
105
PssSchedulerMemberCschedSapProvider::CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params)
106
{
107
  m_scheduler->DoCschedUeReleaseReq (params);
108
}
109
110
111
112
113
class PssSchedulerMemberSchedSapProvider : public FfMacSchedSapProvider
114
{
115
public:
116
  PssSchedulerMemberSchedSapProvider (PssFfMacScheduler* scheduler);
117
118
  // inherited from FfMacSchedSapProvider
119
  virtual void SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params);
120
  virtual void SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params);
121
  virtual void SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params);
122
  virtual void SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params);
123
  virtual void SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params);
124
  virtual void SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params);
125
  virtual void SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params);
126
  virtual void SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params);
127
  virtual void SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params);
128
  virtual void SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params);
129
  virtual void SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params);
130
131
132
private:
133
  PssSchedulerMemberSchedSapProvider ();
134
  PssFfMacScheduler* m_scheduler;
135
};
136
137
138
139
PssSchedulerMemberSchedSapProvider::PssSchedulerMemberSchedSapProvider ()
140
{
141
}
142
143
144
PssSchedulerMemberSchedSapProvider::PssSchedulerMemberSchedSapProvider (PssFfMacScheduler* scheduler)
145
  : m_scheduler (scheduler)
146
{
147
}
148
149
void
150
PssSchedulerMemberSchedSapProvider::SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params)
151
{
152
  m_scheduler->DoSchedDlRlcBufferReq (params);
153
}
154
155
void
156
PssSchedulerMemberSchedSapProvider::SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params)
157
{
158
  m_scheduler->DoSchedDlPagingBufferReq (params);
159
}
160
161
void
162
PssSchedulerMemberSchedSapProvider::SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params)
163
{
164
  m_scheduler->DoSchedDlMacBufferReq (params);
165
}
166
167
void
168
PssSchedulerMemberSchedSapProvider::SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params)
169
{
170
  m_scheduler->DoSchedDlTriggerReq (params);
171
}
172
173
void
174
PssSchedulerMemberSchedSapProvider::SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params)
175
{
176
  m_scheduler->DoSchedDlRachInfoReq (params);
177
}
178
179
void
180
PssSchedulerMemberSchedSapProvider::SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params)
181
{
182
  m_scheduler->DoSchedDlCqiInfoReq (params);
183
}
184
185
void
186
PssSchedulerMemberSchedSapProvider::SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params)
187
{
188
  m_scheduler->DoSchedUlTriggerReq (params);
189
}
190
191
void
192
PssSchedulerMemberSchedSapProvider::SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params)
193
{
194
  m_scheduler->DoSchedUlNoiseInterferenceReq (params);
195
}
196
197
void
198
PssSchedulerMemberSchedSapProvider::SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params)
199
{
200
  m_scheduler->DoSchedUlSrInfoReq (params);
201
}
202
203
void
204
PssSchedulerMemberSchedSapProvider::SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params)
205
{
206
  m_scheduler->DoSchedUlMacCtrlInfoReq (params);
207
}
208
209
void
210
PssSchedulerMemberSchedSapProvider::SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params)
211
{
212
  m_scheduler->DoSchedUlCqiInfoReq (params);
213
}
214
215
216
217
218
219
PssFfMacScheduler::PssFfMacScheduler ()
53
PssFfMacScheduler::PssFfMacScheduler ()
220
  :   m_cschedSapUser (0),
54
  :   m_cschedSapUser (0),
221
    m_schedSapUser (0),
55
    m_schedSapUser (0),
 Lines 223-230    Link Here 
223
    m_nextRntiUl (0)
57
    m_nextRntiUl (0)
224
{
58
{
225
  m_amc = CreateObject <LteAmc> ();
59
  m_amc = CreateObject <LteAmc> ();
226
  m_cschedSapProvider = new PssSchedulerMemberCschedSapProvider (this);
60
  m_cschedSapProvider = new MemberCschedSapProvider<PssFfMacScheduler> (this);
227
  m_schedSapProvider = new PssSchedulerMemberSchedSapProvider (this);
61
  m_schedSapProvider = new MemberSchedSapProvider<PssFfMacScheduler> (this);
228
  m_ffrSapProvider = 0;
62
  m_ffrSapProvider = 0;
229
  m_ffrSapUser = new MemberLteFfrSapUser<PssFfMacScheduler> (this);
63
  m_ffrSapUser = new MemberLteFfrSapUser<PssFfMacScheduler> (this);
230
}
64
}
(-)a/src/lte/model/pss-ff-mac-scheduler.h (-2 / +2 lines)
 Lines 106-113    Link Here 
106
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
106
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
107
  virtual LteFfrSapUser* GetLteFfrSapUser ();
107
  virtual LteFfrSapUser* GetLteFfrSapUser ();
108
108
109
  friend class PssSchedulerMemberCschedSapProvider;
109
  friend class MemberCschedSapProvider<PssFfMacScheduler>;
110
  friend class PssSchedulerMemberSchedSapProvider;
110
  friend class MemberSchedSapProvider<PssFfMacScheduler>;
111
111
112
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
112
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
113
113
(-)a/src/lte/model/rr-ff-mac-scheduler.cc (-168 / +2 lines)
 Lines 49-220    Link Here 
49
NS_OBJECT_ENSURE_REGISTERED (RrFfMacScheduler);
49
NS_OBJECT_ENSURE_REGISTERED (RrFfMacScheduler);
50
50
51
51
52
class RrSchedulerMemberCschedSapProvider : public FfMacCschedSapProvider
53
{
54
public:
55
  RrSchedulerMemberCschedSapProvider (RrFfMacScheduler* scheduler);
56
57
  // inherited from FfMacCschedSapProvider
58
  virtual void CschedCellConfigReq (const struct CschedCellConfigReqParameters& params);
59
  virtual void CschedUeConfigReq (const struct CschedUeConfigReqParameters& params);
60
  virtual void CschedLcConfigReq (const struct CschedLcConfigReqParameters& params);
61
  virtual void CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params);
62
  virtual void CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params);
63
64
private:
65
  RrSchedulerMemberCschedSapProvider ();
66
  RrFfMacScheduler* m_scheduler;
67
};
68
69
RrSchedulerMemberCschedSapProvider::RrSchedulerMemberCschedSapProvider ()
70
{
71
}
72
73
RrSchedulerMemberCschedSapProvider::RrSchedulerMemberCschedSapProvider (RrFfMacScheduler* scheduler) : m_scheduler (scheduler)
74
{
75
}
76
77
78
void
79
RrSchedulerMemberCschedSapProvider::CschedCellConfigReq (const struct CschedCellConfigReqParameters& params)
80
{
81
  m_scheduler->DoCschedCellConfigReq (params);
82
}
83
84
void
85
RrSchedulerMemberCschedSapProvider::CschedUeConfigReq (const struct CschedUeConfigReqParameters& params)
86
{
87
  m_scheduler->DoCschedUeConfigReq (params);
88
}
89
90
91
void
92
RrSchedulerMemberCschedSapProvider::CschedLcConfigReq (const struct CschedLcConfigReqParameters& params)
93
{
94
  m_scheduler->DoCschedLcConfigReq (params);
95
}
96
97
void
98
RrSchedulerMemberCschedSapProvider::CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params)
99
{
100
  m_scheduler->DoCschedLcReleaseReq (params);
101
}
102
103
void
104
RrSchedulerMemberCschedSapProvider::CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params)
105
{
106
  m_scheduler->DoCschedUeReleaseReq (params);
107
}
108
109
110
111
112
class RrSchedulerMemberSchedSapProvider : public FfMacSchedSapProvider
113
{
114
public:
115
  RrSchedulerMemberSchedSapProvider (RrFfMacScheduler* scheduler);
116
117
  // inherited from FfMacSchedSapProvider
118
  virtual void SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params);
119
  virtual void SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params);
120
  virtual void SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params);
121
  virtual void SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params);
122
  virtual void SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params);
123
  virtual void SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params);
124
  virtual void SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params);
125
  virtual void SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params);
126
  virtual void SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params);
127
  virtual void SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params);
128
  virtual void SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params);
129
130
131
private:
132
  RrSchedulerMemberSchedSapProvider ();
133
  RrFfMacScheduler* m_scheduler;
134
};
135
136
137
138
RrSchedulerMemberSchedSapProvider::RrSchedulerMemberSchedSapProvider ()
139
{
140
}
141
142
143
RrSchedulerMemberSchedSapProvider::RrSchedulerMemberSchedSapProvider (RrFfMacScheduler* scheduler)
144
  : m_scheduler (scheduler)
145
{
146
}
147
148
void
149
RrSchedulerMemberSchedSapProvider::SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params)
150
{
151
  m_scheduler->DoSchedDlRlcBufferReq (params);
152
}
153
154
void
155
RrSchedulerMemberSchedSapProvider::SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params)
156
{
157
  m_scheduler->DoSchedDlPagingBufferReq (params);
158
}
159
160
void
161
RrSchedulerMemberSchedSapProvider::SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params)
162
{
163
  m_scheduler->DoSchedDlMacBufferReq (params);
164
}
165
166
void
167
RrSchedulerMemberSchedSapProvider::SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params)
168
{
169
  m_scheduler->DoSchedDlTriggerReq (params);
170
}
171
172
void
173
RrSchedulerMemberSchedSapProvider::SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params)
174
{
175
  m_scheduler->DoSchedDlRachInfoReq (params);
176
}
177
178
void
179
RrSchedulerMemberSchedSapProvider::SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params)
180
{
181
  m_scheduler->DoSchedDlCqiInfoReq (params);
182
}
183
184
void
185
RrSchedulerMemberSchedSapProvider::SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params)
186
{
187
  m_scheduler->DoSchedUlTriggerReq (params);
188
}
189
190
void
191
RrSchedulerMemberSchedSapProvider::SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params)
192
{
193
  m_scheduler->DoSchedUlNoiseInterferenceReq (params);
194
}
195
196
void
197
RrSchedulerMemberSchedSapProvider::SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params)
198
{
199
  m_scheduler->DoSchedUlSrInfoReq (params);
200
}
201
202
void
203
RrSchedulerMemberSchedSapProvider::SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params)
204
{
205
  m_scheduler->DoSchedUlMacCtrlInfoReq (params);
206
}
207
208
void
209
RrSchedulerMemberSchedSapProvider::SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params)
210
{
211
  m_scheduler->DoSchedUlCqiInfoReq (params);
212
}
213
214
215
216
217
218
RrFfMacScheduler::RrFfMacScheduler ()
52
RrFfMacScheduler::RrFfMacScheduler ()
219
  :   m_cschedSapUser (0),
53
  :   m_cschedSapUser (0),
220
    m_schedSapUser (0),
54
    m_schedSapUser (0),
 Lines 222-229    Link Here 
222
    m_nextRntiUl (0)
56
    m_nextRntiUl (0)
223
{
57
{
224
  m_amc = CreateObject <LteAmc> ();
58
  m_amc = CreateObject <LteAmc> ();
225
  m_cschedSapProvider = new RrSchedulerMemberCschedSapProvider (this);
59
  m_cschedSapProvider = new MemberCschedSapProvider<RrFfMacScheduler> (this);
226
  m_schedSapProvider = new RrSchedulerMemberSchedSapProvider (this);
60
  m_schedSapProvider = new MemberSchedSapProvider<RrFfMacScheduler> (this);
227
}
61
}
228
62
229
RrFfMacScheduler::~RrFfMacScheduler ()
63
RrFfMacScheduler::~RrFfMacScheduler ()
(-)a/src/lte/model/rr-ff-mac-scheduler.h (-2 / +2 lines)
 Lines 85-92    Link Here 
85
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
85
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
86
  virtual LteFfrSapUser* GetLteFfrSapUser ();
86
  virtual LteFfrSapUser* GetLteFfrSapUser ();
87
87
88
  friend class RrSchedulerMemberCschedSapProvider;
88
  friend class MemberCschedSapProvider<RrFfMacScheduler>;
89
  friend class RrSchedulerMemberSchedSapProvider;
89
  friend class MemberSchedSapProvider<RrFfMacScheduler>;
90
90
91
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
91
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
92
92
(-)a/src/lte/model/tdbet-ff-mac-scheduler.cc (-168 / +2 lines)
 Lines 47-218    Link Here 
47
47
48
48
49
49
50
class TdBetSchedulerMemberCschedSapProvider : public FfMacCschedSapProvider
51
{
52
public:
53
  TdBetSchedulerMemberCschedSapProvider (TdBetFfMacScheduler* scheduler);
54
55
  // inherited from FfMacCschedSapProvider
56
  virtual void CschedCellConfigReq (const struct CschedCellConfigReqParameters& params);
57
  virtual void CschedUeConfigReq (const struct CschedUeConfigReqParameters& params);
58
  virtual void CschedLcConfigReq (const struct CschedLcConfigReqParameters& params);
59
  virtual void CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params);
60
  virtual void CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params);
61
62
private:
63
  TdBetSchedulerMemberCschedSapProvider ();
64
  TdBetFfMacScheduler* m_scheduler;
65
};
66
67
TdBetSchedulerMemberCschedSapProvider::TdBetSchedulerMemberCschedSapProvider ()
68
{
69
}
70
71
TdBetSchedulerMemberCschedSapProvider::TdBetSchedulerMemberCschedSapProvider (TdBetFfMacScheduler* scheduler) : m_scheduler (scheduler)
72
{
73
}
74
75
76
void
77
TdBetSchedulerMemberCschedSapProvider::CschedCellConfigReq (const struct CschedCellConfigReqParameters& params)
78
{
79
  m_scheduler->DoCschedCellConfigReq (params);
80
}
81
82
void
83
TdBetSchedulerMemberCschedSapProvider::CschedUeConfigReq (const struct CschedUeConfigReqParameters& params)
84
{
85
  m_scheduler->DoCschedUeConfigReq (params);
86
}
87
88
89
void
90
TdBetSchedulerMemberCschedSapProvider::CschedLcConfigReq (const struct CschedLcConfigReqParameters& params)
91
{
92
  m_scheduler->DoCschedLcConfigReq (params);
93
}
94
95
void
96
TdBetSchedulerMemberCschedSapProvider::CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params)
97
{
98
  m_scheduler->DoCschedLcReleaseReq (params);
99
}
100
101
void
102
TdBetSchedulerMemberCschedSapProvider::CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params)
103
{
104
  m_scheduler->DoCschedUeReleaseReq (params);
105
}
106
107
108
109
110
class TdBetSchedulerMemberSchedSapProvider : public FfMacSchedSapProvider
111
{
112
public:
113
  TdBetSchedulerMemberSchedSapProvider (TdBetFfMacScheduler* scheduler);
114
115
  // inherited from FfMacSchedSapProvider
116
  virtual void SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params);
117
  virtual void SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params);
118
  virtual void SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params);
119
  virtual void SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params);
120
  virtual void SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params);
121
  virtual void SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params);
122
  virtual void SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params);
123
  virtual void SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params);
124
  virtual void SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params);
125
  virtual void SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params);
126
  virtual void SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params);
127
128
129
private:
130
  TdBetSchedulerMemberSchedSapProvider ();
131
  TdBetFfMacScheduler* m_scheduler;
132
};
133
134
135
136
TdBetSchedulerMemberSchedSapProvider::TdBetSchedulerMemberSchedSapProvider ()
137
{
138
}
139
140
141
TdBetSchedulerMemberSchedSapProvider::TdBetSchedulerMemberSchedSapProvider (TdBetFfMacScheduler* scheduler)
142
  : m_scheduler (scheduler)
143
{
144
}
145
146
void
147
TdBetSchedulerMemberSchedSapProvider::SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params)
148
{
149
  m_scheduler->DoSchedDlRlcBufferReq (params);
150
}
151
152
void
153
TdBetSchedulerMemberSchedSapProvider::SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params)
154
{
155
  m_scheduler->DoSchedDlPagingBufferReq (params);
156
}
157
158
void
159
TdBetSchedulerMemberSchedSapProvider::SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params)
160
{
161
  m_scheduler->DoSchedDlMacBufferReq (params);
162
}
163
164
void
165
TdBetSchedulerMemberSchedSapProvider::SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params)
166
{
167
  m_scheduler->DoSchedDlTriggerReq (params);
168
}
169
170
void
171
TdBetSchedulerMemberSchedSapProvider::SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params)
172
{
173
  m_scheduler->DoSchedDlRachInfoReq (params);
174
}
175
176
void
177
TdBetSchedulerMemberSchedSapProvider::SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params)
178
{
179
  m_scheduler->DoSchedDlCqiInfoReq (params);
180
}
181
182
void
183
TdBetSchedulerMemberSchedSapProvider::SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params)
184
{
185
  m_scheduler->DoSchedUlTriggerReq (params);
186
}
187
188
void
189
TdBetSchedulerMemberSchedSapProvider::SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params)
190
{
191
  m_scheduler->DoSchedUlNoiseInterferenceReq (params);
192
}
193
194
void
195
TdBetSchedulerMemberSchedSapProvider::SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params)
196
{
197
  m_scheduler->DoSchedUlSrInfoReq (params);
198
}
199
200
void
201
TdBetSchedulerMemberSchedSapProvider::SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params)
202
{
203
  m_scheduler->DoSchedUlMacCtrlInfoReq (params);
204
}
205
206
void
207
TdBetSchedulerMemberSchedSapProvider::SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params)
208
{
209
  m_scheduler->DoSchedUlCqiInfoReq (params);
210
}
211
212
213
214
215
216
TdBetFfMacScheduler::TdBetFfMacScheduler ()
50
TdBetFfMacScheduler::TdBetFfMacScheduler ()
217
  :   m_cschedSapUser (0),
51
  :   m_cschedSapUser (0),
218
    m_schedSapUser (0),
52
    m_schedSapUser (0),
 Lines 220-227    Link Here 
220
    m_nextRntiUl (0)
54
    m_nextRntiUl (0)
221
{
55
{
222
  m_amc = CreateObject <LteAmc> ();
56
  m_amc = CreateObject <LteAmc> ();
223
  m_cschedSapProvider = new TdBetSchedulerMemberCschedSapProvider (this);
57
  m_cschedSapProvider = new MemberCschedSapProvider<TdBetFfMacScheduler> (this);
224
  m_schedSapProvider = new TdBetSchedulerMemberSchedSapProvider (this);
58
  m_schedSapProvider = new MemberSchedSapProvider<TdBetFfMacScheduler> (this);
225
}
59
}
226
60
227
TdBetFfMacScheduler::~TdBetFfMacScheduler ()
61
TdBetFfMacScheduler::~TdBetFfMacScheduler ()
(-)a/src/lte/model/tdbet-ff-mac-scheduler.h (-2 / +2 lines)
 Lines 98-105    Link Here 
98
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
98
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
99
  virtual LteFfrSapUser* GetLteFfrSapUser ();
99
  virtual LteFfrSapUser* GetLteFfrSapUser ();
100
100
101
  friend class TdBetSchedulerMemberCschedSapProvider;
101
  friend class MemberCschedSapProvider<TdBetFfMacScheduler>;
102
  friend class TdBetSchedulerMemberSchedSapProvider;
102
  friend class MemberSchedSapProvider<TdBetFfMacScheduler>;
103
103
104
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
104
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
105
105
(-)a/src/lte/model/tdmt-ff-mac-scheduler.cc (-168 / +2 lines)
 Lines 47-226    Link Here 
47
47
48
48
49
49
50
class TdMtSchedulerMemberCschedSapProvider : public FfMacCschedSapProvider
51
{
52
public:
53
  TdMtSchedulerMemberCschedSapProvider (TdMtFfMacScheduler* scheduler);
54
55
  // inherited from FfMacCschedSapProvider
56
  virtual void CschedCellConfigReq (const struct CschedCellConfigReqParameters& params);
57
  virtual void CschedUeConfigReq (const struct CschedUeConfigReqParameters& params);
58
  virtual void CschedLcConfigReq (const struct CschedLcConfigReqParameters& params);
59
  virtual void CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params);
60
  virtual void CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params);
61
62
private:
63
  TdMtSchedulerMemberCschedSapProvider ();
64
  TdMtFfMacScheduler* m_scheduler;
65
};
66
67
TdMtSchedulerMemberCschedSapProvider::TdMtSchedulerMemberCschedSapProvider ()
68
{
69
}
70
71
TdMtSchedulerMemberCschedSapProvider::TdMtSchedulerMemberCschedSapProvider (TdMtFfMacScheduler* scheduler) : m_scheduler (scheduler)
72
{
73
}
74
75
76
void
77
TdMtSchedulerMemberCschedSapProvider::CschedCellConfigReq (const struct CschedCellConfigReqParameters& params)
78
{
79
  m_scheduler->DoCschedCellConfigReq (params);
80
}
81
82
void
83
TdMtSchedulerMemberCschedSapProvider::CschedUeConfigReq (const struct CschedUeConfigReqParameters& params)
84
{
85
  m_scheduler->DoCschedUeConfigReq (params);
86
}
87
88
89
void
90
TdMtSchedulerMemberCschedSapProvider::CschedLcConfigReq (const struct CschedLcConfigReqParameters& params)
91
{
92
  m_scheduler->DoCschedLcConfigReq (params);
93
}
94
95
void
96
TdMtSchedulerMemberCschedSapProvider::CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params)
97
{
98
  m_scheduler->DoCschedLcReleaseReq (params);
99
}
100
101
void
102
TdMtSchedulerMemberCschedSapProvider::CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params)
103
{
104
  m_scheduler->DoCschedUeReleaseReq (params);
105
}
106
107
108
109
110
class TdMtSchedulerMemberSchedSapProvider : public FfMacSchedSapProvider
111
{
112
public:
113
  TdMtSchedulerMemberSchedSapProvider (TdMtFfMacScheduler* scheduler);
114
115
  // inherited from FfMacSchedSapProvider
116
  virtual void SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params);
117
  virtual void SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params);
118
  virtual void SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params);
119
  virtual void SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params);
120
  virtual void SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params);
121
  virtual void SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params);
122
  virtual void SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params);
123
  virtual void SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params);
124
  virtual void SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params);
125
  virtual void SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params);
126
  virtual void SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params);
127
128
129
private:
130
  TdMtSchedulerMemberSchedSapProvider ();
131
  TdMtFfMacScheduler* m_scheduler;
132
};
133
134
135
136
TdMtSchedulerMemberSchedSapProvider::TdMtSchedulerMemberSchedSapProvider ()
137
{
138
}
139
140
141
TdMtSchedulerMemberSchedSapProvider::TdMtSchedulerMemberSchedSapProvider (TdMtFfMacScheduler* scheduler)
142
  : m_scheduler (scheduler)
143
{
144
}
145
146
void
147
TdMtSchedulerMemberSchedSapProvider::SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params)
148
{
149
  m_scheduler->DoSchedDlRlcBufferReq (params);
150
}
151
152
void
153
TdMtSchedulerMemberSchedSapProvider::SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params)
154
{
155
  m_scheduler->DoSchedDlPagingBufferReq (params);
156
}
157
158
void
159
TdMtSchedulerMemberSchedSapProvider::SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params)
160
{
161
  m_scheduler->DoSchedDlMacBufferReq (params);
162
}
163
164
void
165
TdMtSchedulerMemberSchedSapProvider::SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params)
166
{
167
  m_scheduler->DoSchedDlTriggerReq (params);
168
}
169
170
void
171
TdMtSchedulerMemberSchedSapProvider::SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params)
172
{
173
  m_scheduler->DoSchedDlRachInfoReq (params);
174
}
175
176
void
177
TdMtSchedulerMemberSchedSapProvider::SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params)
178
{
179
  m_scheduler->DoSchedDlCqiInfoReq (params);
180
}
181
182
void
183
TdMtSchedulerMemberSchedSapProvider::SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params)
184
{
185
  m_scheduler->DoSchedUlTriggerReq (params);
186
}
187
188
void
189
TdMtSchedulerMemberSchedSapProvider::SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params)
190
{
191
  m_scheduler->DoSchedUlNoiseInterferenceReq (params);
192
}
193
194
void
195
TdMtSchedulerMemberSchedSapProvider::SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params)
196
{
197
  m_scheduler->DoSchedUlSrInfoReq (params);
198
}
199
200
void
201
TdMtSchedulerMemberSchedSapProvider::SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params)
202
{
203
  m_scheduler->DoSchedUlMacCtrlInfoReq (params);
204
}
205
206
void
207
TdMtSchedulerMemberSchedSapProvider::SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params)
208
{
209
  m_scheduler->DoSchedUlCqiInfoReq (params);
210
}
211
212
213
214
215
216
TdMtFfMacScheduler::TdMtFfMacScheduler ()
50
TdMtFfMacScheduler::TdMtFfMacScheduler ()
217
  :   m_cschedSapUser (0),
51
  :   m_cschedSapUser (0),
218
    m_schedSapUser (0),
52
    m_schedSapUser (0),
219
    m_nextRntiUl (0)
53
    m_nextRntiUl (0)
220
{
54
{
221
  m_amc = CreateObject <LteAmc> ();
55
  m_amc = CreateObject <LteAmc> ();
222
  m_cschedSapProvider = new TdMtSchedulerMemberCschedSapProvider (this);
56
  m_cschedSapProvider = new MemberCschedSapProvider<TdMtFfMacScheduler> (this);
223
  m_schedSapProvider = new TdMtSchedulerMemberSchedSapProvider (this);
57
  m_schedSapProvider = new MemberSchedSapProvider<TdMtFfMacScheduler> (this);
224
}
58
}
225
59
226
TdMtFfMacScheduler::~TdMtFfMacScheduler ()
60
TdMtFfMacScheduler::~TdMtFfMacScheduler ()
(-)a/src/lte/model/tdmt-ff-mac-scheduler.h (-2 / +2 lines)
 Lines 90-97    Link Here 
90
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
90
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
91
  virtual LteFfrSapUser* GetLteFfrSapUser ();
91
  virtual LteFfrSapUser* GetLteFfrSapUser ();
92
92
93
  friend class TdMtSchedulerMemberCschedSapProvider;
93
  friend class MemberCschedSapProvider<TdMtFfMacScheduler>;
94
  friend class TdMtSchedulerMemberSchedSapProvider;
94
  friend class MemberSchedSapProvider<TdMtFfMacScheduler>;
95
95
96
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
96
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
97
97
(-)a/src/lte/model/tdtbfq-ff-mac-scheduler.cc (-168 / +2 lines)
 Lines 48-219    Link Here 
48
48
49
49
50
50
51
class TdTbfqSchedulerMemberCschedSapProvider : public FfMacCschedSapProvider
52
{
53
public:
54
  TdTbfqSchedulerMemberCschedSapProvider (TdTbfqFfMacScheduler* scheduler);
55
56
  // inherited from FfMacCschedSapProvider
57
  virtual void CschedCellConfigReq (const struct CschedCellConfigReqParameters& params);
58
  virtual void CschedUeConfigReq (const struct CschedUeConfigReqParameters& params);
59
  virtual void CschedLcConfigReq (const struct CschedLcConfigReqParameters& params);
60
  virtual void CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params);
61
  virtual void CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params);
62
63
private:
64
  TdTbfqSchedulerMemberCschedSapProvider ();
65
  TdTbfqFfMacScheduler* m_scheduler;
66
};
67
68
TdTbfqSchedulerMemberCschedSapProvider::TdTbfqSchedulerMemberCschedSapProvider ()
69
{
70
}
71
72
TdTbfqSchedulerMemberCschedSapProvider::TdTbfqSchedulerMemberCschedSapProvider (TdTbfqFfMacScheduler* scheduler) : m_scheduler (scheduler)
73
{
74
}
75
76
77
void
78
TdTbfqSchedulerMemberCschedSapProvider::CschedCellConfigReq (const struct CschedCellConfigReqParameters& params)
79
{
80
  m_scheduler->DoCschedCellConfigReq (params);
81
}
82
83
void
84
TdTbfqSchedulerMemberCschedSapProvider::CschedUeConfigReq (const struct CschedUeConfigReqParameters& params)
85
{
86
  m_scheduler->DoCschedUeConfigReq (params);
87
}
88
89
90
void
91
TdTbfqSchedulerMemberCschedSapProvider::CschedLcConfigReq (const struct CschedLcConfigReqParameters& params)
92
{
93
  m_scheduler->DoCschedLcConfigReq (params);
94
}
95
96
void
97
TdTbfqSchedulerMemberCschedSapProvider::CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params)
98
{
99
  m_scheduler->DoCschedLcReleaseReq (params);
100
}
101
102
void
103
TdTbfqSchedulerMemberCschedSapProvider::CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params)
104
{
105
  m_scheduler->DoCschedUeReleaseReq (params);
106
}
107
108
109
110
111
class TdTbfqSchedulerMemberSchedSapProvider : public FfMacSchedSapProvider
112
{
113
public:
114
  TdTbfqSchedulerMemberSchedSapProvider (TdTbfqFfMacScheduler* scheduler);
115
116
  // inherited from FfMacSchedSapProvider
117
  virtual void SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params);
118
  virtual void SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params);
119
  virtual void SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params);
120
  virtual void SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params);
121
  virtual void SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params);
122
  virtual void SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params);
123
  virtual void SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params);
124
  virtual void SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params);
125
  virtual void SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params);
126
  virtual void SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params);
127
  virtual void SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params);
128
129
130
private:
131
  TdTbfqSchedulerMemberSchedSapProvider ();
132
  TdTbfqFfMacScheduler* m_scheduler;
133
};
134
135
136
137
TdTbfqSchedulerMemberSchedSapProvider::TdTbfqSchedulerMemberSchedSapProvider ()
138
{
139
}
140
141
142
TdTbfqSchedulerMemberSchedSapProvider::TdTbfqSchedulerMemberSchedSapProvider (TdTbfqFfMacScheduler* scheduler)
143
  : m_scheduler (scheduler)
144
{
145
}
146
147
void
148
TdTbfqSchedulerMemberSchedSapProvider::SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params)
149
{
150
  m_scheduler->DoSchedDlRlcBufferReq (params);
151
}
152
153
void
154
TdTbfqSchedulerMemberSchedSapProvider::SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params)
155
{
156
  m_scheduler->DoSchedDlPagingBufferReq (params);
157
}
158
159
void
160
TdTbfqSchedulerMemberSchedSapProvider::SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params)
161
{
162
  m_scheduler->DoSchedDlMacBufferReq (params);
163
}
164
165
void
166
TdTbfqSchedulerMemberSchedSapProvider::SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params)
167
{
168
  m_scheduler->DoSchedDlTriggerReq (params);
169
}
170
171
void
172
TdTbfqSchedulerMemberSchedSapProvider::SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params)
173
{
174
  m_scheduler->DoSchedDlRachInfoReq (params);
175
}
176
177
void
178
TdTbfqSchedulerMemberSchedSapProvider::SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params)
179
{
180
  m_scheduler->DoSchedDlCqiInfoReq (params);
181
}
182
183
void
184
TdTbfqSchedulerMemberSchedSapProvider::SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params)
185
{
186
  m_scheduler->DoSchedUlTriggerReq (params);
187
}
188
189
void
190
TdTbfqSchedulerMemberSchedSapProvider::SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params)
191
{
192
  m_scheduler->DoSchedUlNoiseInterferenceReq (params);
193
}
194
195
void
196
TdTbfqSchedulerMemberSchedSapProvider::SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params)
197
{
198
  m_scheduler->DoSchedUlSrInfoReq (params);
199
}
200
201
void
202
TdTbfqSchedulerMemberSchedSapProvider::SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params)
203
{
204
  m_scheduler->DoSchedUlMacCtrlInfoReq (params);
205
}
206
207
void
208
TdTbfqSchedulerMemberSchedSapProvider::SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params)
209
{
210
  m_scheduler->DoSchedUlCqiInfoReq (params);
211
}
212
213
214
215
216
217
TdTbfqFfMacScheduler::TdTbfqFfMacScheduler ()
51
TdTbfqFfMacScheduler::TdTbfqFfMacScheduler ()
218
  :   m_cschedSapUser (0),
52
  :   m_cschedSapUser (0),
219
    m_schedSapUser (0),
53
    m_schedSapUser (0),
 Lines 221-228    Link Here 
221
    bankSize (0)
55
    bankSize (0)
222
{
56
{
223
  m_amc = CreateObject <LteAmc> ();
57
  m_amc = CreateObject <LteAmc> ();
224
  m_cschedSapProvider = new TdTbfqSchedulerMemberCschedSapProvider (this);
58
  m_cschedSapProvider = new MemberCschedSapProvider<TdTbfqFfMacScheduler> (this);
225
  m_schedSapProvider = new TdTbfqSchedulerMemberSchedSapProvider (this);
59
  m_schedSapProvider = new MemberSchedSapProvider<TdTbfqFfMacScheduler> (this);
226
  m_ffrSapProvider = 0;
60
  m_ffrSapProvider = 0;
227
  m_ffrSapUser = new MemberLteFfrSapUser<TdTbfqFfMacScheduler> (this);
61
  m_ffrSapUser = new MemberLteFfrSapUser<TdTbfqFfMacScheduler> (this);
228
}
62
}
(-)a/src/lte/model/tdtbfq-ff-mac-scheduler.h (-2 / +2 lines)
 Lines 105-112    Link Here 
105
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
105
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
106
  virtual LteFfrSapUser* GetLteFfrSapUser ();
106
  virtual LteFfrSapUser* GetLteFfrSapUser ();
107
107
108
  friend class TdTbfqSchedulerMemberCschedSapProvider;
108
  friend class MemberCschedSapProvider<TdTbfqFfMacScheduler>;
109
  friend class TdTbfqSchedulerMemberSchedSapProvider;
109
  friend class MemberSchedSapProvider<TdTbfqFfMacScheduler>;
110
110
111
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
111
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
112
112
(-)a/src/lte/model/tta-ff-mac-scheduler.cc (-168 / +2 lines)
 Lines 47-226    Link Here 
47
47
48
48
49
49
50
class TtaSchedulerMemberCschedSapProvider : public FfMacCschedSapProvider
51
{
52
public:
53
  TtaSchedulerMemberCschedSapProvider (TtaFfMacScheduler* scheduler);
54
55
  // inherited from FfMacCschedSapProvider
56
  virtual void CschedCellConfigReq (const struct CschedCellConfigReqParameters& params);
57
  virtual void CschedUeConfigReq (const struct CschedUeConfigReqParameters& params);
58
  virtual void CschedLcConfigReq (const struct CschedLcConfigReqParameters& params);
59
  virtual void CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params);
60
  virtual void CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params);
61
62
private:
63
  TtaSchedulerMemberCschedSapProvider ();
64
  TtaFfMacScheduler* m_scheduler;
65
};
66
67
TtaSchedulerMemberCschedSapProvider::TtaSchedulerMemberCschedSapProvider ()
68
{
69
}
70
71
TtaSchedulerMemberCschedSapProvider::TtaSchedulerMemberCschedSapProvider (TtaFfMacScheduler* scheduler) : m_scheduler (scheduler)
72
{
73
}
74
75
76
void
77
TtaSchedulerMemberCschedSapProvider::CschedCellConfigReq (const struct CschedCellConfigReqParameters& params)
78
{
79
  m_scheduler->DoCschedCellConfigReq (params);
80
}
81
82
void
83
TtaSchedulerMemberCschedSapProvider::CschedUeConfigReq (const struct CschedUeConfigReqParameters& params)
84
{
85
  m_scheduler->DoCschedUeConfigReq (params);
86
}
87
88
89
void
90
TtaSchedulerMemberCschedSapProvider::CschedLcConfigReq (const struct CschedLcConfigReqParameters& params)
91
{
92
  m_scheduler->DoCschedLcConfigReq (params);
93
}
94
95
void
96
TtaSchedulerMemberCschedSapProvider::CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params)
97
{
98
  m_scheduler->DoCschedLcReleaseReq (params);
99
}
100
101
void
102
TtaSchedulerMemberCschedSapProvider::CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params)
103
{
104
  m_scheduler->DoCschedUeReleaseReq (params);
105
}
106
107
108
109
110
class TtaSchedulerMemberSchedSapProvider : public FfMacSchedSapProvider
111
{
112
public:
113
  TtaSchedulerMemberSchedSapProvider (TtaFfMacScheduler* scheduler);
114
115
  // inherited from FfMacSchedSapProvider
116
  virtual void SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params);
117
  virtual void SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params);
118
  virtual void SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params);
119
  virtual void SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params);
120
  virtual void SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params);
121
  virtual void SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params);
122
  virtual void SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params);
123
  virtual void SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params);
124
  virtual void SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params);
125
  virtual void SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params);
126
  virtual void SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params);
127
128
129
private:
130
  TtaSchedulerMemberSchedSapProvider ();
131
  TtaFfMacScheduler* m_scheduler;
132
};
133
134
135
136
TtaSchedulerMemberSchedSapProvider::TtaSchedulerMemberSchedSapProvider ()
137
{
138
}
139
140
141
TtaSchedulerMemberSchedSapProvider::TtaSchedulerMemberSchedSapProvider (TtaFfMacScheduler* scheduler)
142
  : m_scheduler (scheduler)
143
{
144
}
145
146
void
147
TtaSchedulerMemberSchedSapProvider::SchedDlRlcBufferReq (const struct SchedDlRlcBufferReqParameters& params)
148
{
149
  m_scheduler->DoSchedDlRlcBufferReq (params);
150
}
151
152
void
153
TtaSchedulerMemberSchedSapProvider::SchedDlPagingBufferReq (const struct SchedDlPagingBufferReqParameters& params)
154
{
155
  m_scheduler->DoSchedDlPagingBufferReq (params);
156
}
157
158
void
159
TtaSchedulerMemberSchedSapProvider::SchedDlMacBufferReq (const struct SchedDlMacBufferReqParameters& params)
160
{
161
  m_scheduler->DoSchedDlMacBufferReq (params);
162
}
163
164
void
165
TtaSchedulerMemberSchedSapProvider::SchedDlTriggerReq (const struct SchedDlTriggerReqParameters& params)
166
{
167
  m_scheduler->DoSchedDlTriggerReq (params);
168
}
169
170
void
171
TtaSchedulerMemberSchedSapProvider::SchedDlRachInfoReq (const struct SchedDlRachInfoReqParameters& params)
172
{
173
  m_scheduler->DoSchedDlRachInfoReq (params);
174
}
175
176
void
177
TtaSchedulerMemberSchedSapProvider::SchedDlCqiInfoReq (const struct SchedDlCqiInfoReqParameters& params)
178
{
179
  m_scheduler->DoSchedDlCqiInfoReq (params);
180
}
181
182
void
183
TtaSchedulerMemberSchedSapProvider::SchedUlTriggerReq (const struct SchedUlTriggerReqParameters& params)
184
{
185
  m_scheduler->DoSchedUlTriggerReq (params);
186
}
187
188
void
189
TtaSchedulerMemberSchedSapProvider::SchedUlNoiseInterferenceReq (const struct SchedUlNoiseInterferenceReqParameters& params)
190
{
191
  m_scheduler->DoSchedUlNoiseInterferenceReq (params);
192
}
193
194
void
195
TtaSchedulerMemberSchedSapProvider::SchedUlSrInfoReq (const struct SchedUlSrInfoReqParameters& params)
196
{
197
  m_scheduler->DoSchedUlSrInfoReq (params);
198
}
199
200
void
201
TtaSchedulerMemberSchedSapProvider::SchedUlMacCtrlInfoReq (const struct SchedUlMacCtrlInfoReqParameters& params)
202
{
203
  m_scheduler->DoSchedUlMacCtrlInfoReq (params);
204
}
205
206
void
207
TtaSchedulerMemberSchedSapProvider::SchedUlCqiInfoReq (const struct SchedUlCqiInfoReqParameters& params)
208
{
209
  m_scheduler->DoSchedUlCqiInfoReq (params);
210
}
211
212
213
214
215
216
TtaFfMacScheduler::TtaFfMacScheduler ()
50
TtaFfMacScheduler::TtaFfMacScheduler ()
217
  :   m_cschedSapUser (0),
51
  :   m_cschedSapUser (0),
218
    m_schedSapUser (0),
52
    m_schedSapUser (0),
219
    m_nextRntiUl (0)
53
    m_nextRntiUl (0)
220
{
54
{
221
  m_amc = CreateObject <LteAmc> ();
55
  m_amc = CreateObject <LteAmc> ();
222
  m_cschedSapProvider = new TtaSchedulerMemberCschedSapProvider (this);
56
  m_cschedSapProvider = new MemberCschedSapProvider<TtaFfMacScheduler> (this);
223
  m_schedSapProvider = new TtaSchedulerMemberSchedSapProvider (this);
57
  m_schedSapProvider = new MemberSchedSapProvider<TtaFfMacScheduler> (this);
224
}
58
}
225
59
226
TtaFfMacScheduler::~TtaFfMacScheduler ()
60
TtaFfMacScheduler::~TtaFfMacScheduler ()
(-)a/src/lte/model/tta-ff-mac-scheduler.h (-2 / +2 lines)
 Lines 90-97    Link Here 
90
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
90
  virtual void SetLteFfrSapProvider (LteFfrSapProvider* s);
91
  virtual LteFfrSapUser* GetLteFfrSapUser ();
91
  virtual LteFfrSapUser* GetLteFfrSapUser ();
92
92
93
  friend class TtaSchedulerMemberCschedSapProvider;
93
  friend class MemberCschedSapProvider<TtaFfMacScheduler>;
94
  friend class TtaSchedulerMemberSchedSapProvider;
94
  friend class MemberSchedSapProvider<TtaFfMacScheduler>;
95
95
96
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
96
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
97
97

Return to bug 2456