equal
deleted
inserted
replaced
126 std::vector <ErabAdmittedItem> admittedBearers; |
126 std::vector <ErabAdmittedItem> admittedBearers; |
127 std::vector <ErabNotAdmittedItem> notAdmittedBearers; |
127 std::vector <ErabNotAdmittedItem> notAdmittedBearers; |
128 Ptr<Packet> rrcContext; |
128 Ptr<Packet> rrcContext; |
129 }; |
129 }; |
130 |
130 |
|
131 /** |
|
132 * \brief Parameters of the UE CONTEXT RELEASE message. |
|
133 * |
|
134 * See section 9.1.1.5 for further info about the parameters |
|
135 */ |
|
136 struct UeContextReleaseParams |
|
137 { |
|
138 uint16_t oldEnbUeX2apId; |
|
139 uint16_t newEnbUeX2apId; |
|
140 }; |
131 }; |
141 }; |
132 |
142 |
133 |
143 |
134 /** |
144 /** |
135 * These service primitives of this part of the X2 SAP |
145 * These service primitives of this part of the X2 SAP |
149 virtual void SendHandoverRequestAck (HandoverRequestAckParams params) = 0; |
159 virtual void SendHandoverRequestAck (HandoverRequestAckParams params) = 0; |
150 |
160 |
151 // TODO |
161 // TODO |
152 // virtual void SendSnStatusTransfer (const struct SnStatusTransfer& params) = 0; |
162 // virtual void SendSnStatusTransfer (const struct SnStatusTransfer& params) = 0; |
153 // |
163 // |
154 // virtual void SendUeContextRelease (const struct UeContextRelease& params) = 0; |
164 virtual void SendUeContextRelease (UeContextReleaseParams params) = 0; |
155 }; |
165 }; |
156 |
166 |
157 |
167 |
158 /** |
168 /** |
159 * These service primitives of this part of the X2 SAP |
169 * These service primitives of this part of the X2 SAP |
173 virtual void RecvHandoverRequestAck (HandoverRequestAckParams params) = 0; |
183 virtual void RecvHandoverRequestAck (HandoverRequestAckParams params) = 0; |
174 |
184 |
175 // TODO |
185 // TODO |
176 // virtual void RecvSnStatusTransfer (const struct SnStatusTransfer& params) = 0; |
186 // virtual void RecvSnStatusTransfer (const struct SnStatusTransfer& params) = 0; |
177 // |
187 // |
178 // virtual void RecvUeContextRelease (const struct UeContextRelease& params) = 0; |
188 virtual void RecvUeContextRelease (UeContextReleaseParams params) = 0; |
179 }; |
189 }; |
180 |
190 |
181 /////////////////////////////////////// |
191 /////////////////////////////////////// |
182 |
192 |
183 template <class C> |
193 template <class C> |
191 // |
201 // |
192 |
202 |
193 virtual void SendHandoverRequest (HandoverRequestParams params); |
203 virtual void SendHandoverRequest (HandoverRequestParams params); |
194 |
204 |
195 virtual void SendHandoverRequestAck (HandoverRequestAckParams params); |
205 virtual void SendHandoverRequestAck (HandoverRequestAckParams params); |
|
206 |
|
207 virtual void SendUeContextRelease (UeContextReleaseParams params); |
196 |
208 |
197 private: |
209 private: |
198 EpcX2SpecificEpcX2SapProvider (); |
210 EpcX2SpecificEpcX2SapProvider (); |
199 C* m_x2; |
211 C* m_x2; |
200 }; |
212 }; |
222 EpcX2SpecificEpcX2SapProvider<C>::SendHandoverRequestAck (HandoverRequestAckParams params) |
234 EpcX2SpecificEpcX2SapProvider<C>::SendHandoverRequestAck (HandoverRequestAckParams params) |
223 { |
235 { |
224 m_x2->DoSendHandoverRequestAck (params); |
236 m_x2->DoSendHandoverRequestAck (params); |
225 } |
237 } |
226 |
238 |
|
239 template <class C> |
|
240 void |
|
241 EpcX2SpecificEpcX2SapProvider<C>::SendUeContextRelease (UeContextReleaseParams params) |
|
242 { |
|
243 m_x2->DoSendUeContextRelease (params); |
|
244 } |
|
245 |
227 /////////////////////////////////////// |
246 /////////////////////////////////////// |
228 |
247 |
229 template <class C> |
248 template <class C> |
230 class EpcX2SpecificEpcX2SapUser : public EpcX2SapUser |
249 class EpcX2SpecificEpcX2SapUser : public EpcX2SapUser |
231 { |
250 { |
238 |
257 |
239 virtual void RecvHandoverRequest (HandoverRequestParams params); |
258 virtual void RecvHandoverRequest (HandoverRequestParams params); |
240 |
259 |
241 virtual void RecvHandoverRequestAck (HandoverRequestAckParams params); |
260 virtual void RecvHandoverRequestAck (HandoverRequestAckParams params); |
242 |
261 |
|
262 virtual void RecvUeContextRelease (UeContextReleaseParams params); |
|
263 |
243 private: |
264 private: |
244 EpcX2SpecificEpcX2SapUser (); |
265 EpcX2SpecificEpcX2SapUser (); |
245 C* m_rrc; |
266 C* m_rrc; |
246 }; |
267 }; |
247 |
268 |
268 EpcX2SpecificEpcX2SapUser<C>::RecvHandoverRequestAck (HandoverRequestAckParams params) |
289 EpcX2SpecificEpcX2SapUser<C>::RecvHandoverRequestAck (HandoverRequestAckParams params) |
269 { |
290 { |
270 m_rrc->DoRecvHandoverRequestAck (params); |
291 m_rrc->DoRecvHandoverRequestAck (params); |
271 } |
292 } |
272 |
293 |
|
294 template <class C> |
|
295 void |
|
296 EpcX2SpecificEpcX2SapUser<C>::RecvUeContextRelease (UeContextReleaseParams params) |
|
297 { |
|
298 m_rrc->DoRecvUeContextRelease (params); |
|
299 } |
|
300 |
273 |
301 |
274 } // namespace ns3 |
302 } // namespace ns3 |
275 |
303 |
276 #endif // EPC_X2_SAP_H |
304 #endif // EPC_X2_SAP_H |