A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
epc-x2-sap.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Author: Manuel Requena <manuel.requena@cttc.es>
18 */
19
20#ifndef EPC_X2_SAP_H
21#define EPC_X2_SAP_H
22
23#include "eps-bearer.h"
24
25#include "ns3/ipv4-address.h"
26#include "ns3/packet.h"
27
28#include <bitset>
29
30namespace ns3
31{
32
33class Node;
34
35/**
36 * The X2 SAP defines the service between the X2 entity and the RRC entity.
37 *
38 * The X2 SAP follows the specification 3GPP TS 36.423: "X2 application protocol (X2AP)"
39 *
40 * The service primitives corresponds to the X2AP procedures and messages and
41 * the service parameters corresponds to the Information Elements
42 *
43 * Note: Any reference in this file refers to the 3GPP TS 36.423 specification
44 */
45
46/**
47 * \brief Common structures for EpcX2SapProvider and EpcX2SapUser
48 */
50{
51 public:
52 virtual ~EpcX2Sap();
53
54 /**
55 * E-RABs to be setup item as
56 * it is used in the HANDOVER REQUEST message.
57 * See section 9.1.1.1 for further info about the parameters
58 */
60 {
61 uint16_t erabId; ///< E-RAB ID
62 EpsBearer erabLevelQosParameters; ///< E-RAB level QOS parameters
63 bool dlForwarding; ///< DL forwarding
64 Ipv4Address transportLayerAddress; ///< transport layer address
65 uint32_t gtpTeid; ///< TEID
66
68 };
69
70 /**
71 * E-RABs admitted item as
72 * it is used in the HANDOVER REQUEST ACKNOWLEDGE message.
73 * See section 9.1.1.2 for further info about the parameters
74 */
76 {
77 uint16_t erabId; ///< E-RAB ID
78 uint32_t ulGtpTeid; ///< uplink GTP TEID
79 uint32_t dlGtpTeid; ///< downlink GTP TEID
80 };
81
82 /**
83 * E-RABs not admitted item as
84 * it is used in the HANDOVER REQUEST ACKNOWLEDGE message.
85 * See section 9.1.1.2 for further info about the parameters
86 */
88 {
89 uint16_t erabId; ///< E-RAB ID
90 uint16_t cause; ///< cause
91 };
92
93 /**
94 * E-RABs subject to status transfer item as
95 * it is used in the SN STATUS TRANSFER message.
96 * See section 9.1.1.4 for further info about the parameters
97 */
98 static const uint16_t m_maxPdcpSn = 4096;
99
100 /// ErabsSubjectToStatusTransferItem structure
102 {
103 uint16_t erabId; ///< ERAB ID
104 std::bitset<m_maxPdcpSn> receiveStatusOfUlPdcpSdus; ///< receive status of UL PDCP SDUs
105 uint16_t ulPdcpSn; ///< UL PDCP SN
106 uint32_t ulHfn; ///< UL HFN
107 uint16_t dlPdcpSn; ///< DL PDCP SN
108 uint32_t dlHfn; ///< DL HFN
109 };
110
111 /**
112 * UL Interference OverloadIndication as
113 * it is used in the LOAD INFORMATION message.
114 * See section 9.2.17 for further info about the values
115 */
117 {
121 };
122
123 /**
124 * UL High Interference Information as
125 * it is used in the LOAD INFORMATION message.
126 * See section 9.1.2.1 for further info about the parameters
127 */
129 {
130 uint16_t targetCellId; ///< target cell ID
131 std::vector<bool>
132 ulHighInterferenceIndicationList; ///< UL high interference indication list
133 };
134
135 /**
136 * Relative Narrowband Tx Power (RNTP) as
137 * it is used in the LOAD INFORMATION message.
138 * See section 9.2.19 for further info about the parameters
139 *
140 * Note: You can use INT16_MIN value for -infinite value
141 * in the rntpThreshold field
142 */
144 {
145 std::vector<bool> rntpPerPrbList; ///< RNTP per prb list
146 int16_t rntpThreshold{INT16_MIN}; ///< RNTP threshold
147 uint16_t antennaPorts{UINT16_MAX}; ///< antenna ports
148 uint16_t pB{UINT16_MAX}; ///< PB
149 uint16_t pdcchInterferenceImpact{UINT16_MAX}; ///< PDC channel interference list
150 };
151
152 /**
153 * Cell Information Item as
154 * it is used in the LOAD INFORMATION message.
155 * See section 9.1.2.1 for further info about the parameters
156 */
158 {
159 uint16_t sourceCellId; ///< source cell ID
160 std::vector<UlInterferenceOverloadIndicationItem>
161 ulInterferenceOverloadIndicationList; ///< UL interference overload indication list
162 std::vector<UlHighInterferenceInformationItem>
163 ulHighInterferenceInformationList; ///< UL high interference information list
164 RelativeNarrowbandTxBand relativeNarrowbandTxBand; ///< relative narrow transmit band
165 };
166
167 /**
168 * Load Indicator as
169 * it is used in the RESOURCE STATUS UPDATE message.
170 * See section 9.2.36 for further info about the value
171 */
173 {
178 };
179
180 /**
181 * Composite Available Capacity as
182 * it is used in the RESOURCE STATUS UPDATE message.
183 * See section 9.2.45 for further info about the parameters
184 */
186 {
187 uint16_t cellCapacityClassValue; ///< cell capacity class value
188 uint16_t capacityValue; ///< capacity value
189 };
190
191 /**
192 * Cell Measurement Result Item as
193 * it is used in the RESOURCE STATUS UPDATE message.
194 * See section 9.1.2.14 for further info about the parameters
195 */
197 {
198 uint16_t sourceCellId; ///< source cell id
199
200 LoadIndicator dlHardwareLoadIndicator; ///< DL hardware load indicator
201 LoadIndicator ulHardwareLoadIndicator; ///< UL hardware load indicator
202
203 LoadIndicator dlS1TnlLoadIndicator; ///< DL S1 TNL load indicator
204 LoadIndicator ulS1TnlLoadIndicator; ///< UL S1 TNL load indicator
205
206 uint16_t dlGbrPrbUsage; ///< DL GBR PRB usage
207 uint16_t ulGbrPrbUsage; ///< UL GBR PRB usage
208 uint16_t dlNonGbrPrbUsage; ///< DL Non GBR PRB usage
209 uint16_t ulNonGbrPrbUsage; ///< UL Non GBR PRB usage
210 uint16_t dlTotalPrbUsage; ///< DL Total PRB usage
211 uint16_t ulTotalPrbUsage; ///< UL Total PRB usage
212
213 CompositeAvailCapacity dlCompositeAvailableCapacity; ///< DL composite available capacity
214 CompositeAvailCapacity ulCompositeAvailableCapacity; ///< UL composite available capacity
215 };
216
217 /// Cause ID enumeration
219 {
222 };
223
224 /**
225 * \brief Parameters of the HANDOVER REQUEST message.
226 *
227 * See section 9.1.1.1 for further info about the parameters
228 */
230 {
231 uint16_t oldEnbUeX2apId; ///< old ENB UE X2 AP ID
232 uint16_t cause; ///< cause
233 uint16_t sourceCellId; ///< source cell ID
234 uint16_t targetCellId; ///< target cell ID
235 uint32_t mmeUeS1apId; ///< MME UE S1 AP ID
236 uint64_t ueAggregateMaxBitRateDownlink; ///< UE aggregate max bit rate downlink
237 uint64_t ueAggregateMaxBitRateUplink; ///< UE aggregate max bit rate uplink
238 std::vector<ErabToBeSetupItem> bearers; ///< bearers
239 Ptr<Packet> rrcContext; ///< RRC context
240 };
241
242 /**
243 * \brief Parameters of the HANDOVER REQUEST ACKNOWLEDGE message.
244 *
245 * See section 9.1.1.2 for further info about the parameters
246 */
248 {
249 uint16_t oldEnbUeX2apId; ///< old ENB UE X2 AP ID
250 uint16_t newEnbUeX2apId; ///< new ENB UE X2 AP ID
251 uint16_t sourceCellId; ///< source cell ID
252 uint16_t targetCellId; ///< target cell ID
253 std::vector<ErabAdmittedItem> admittedBearers; ///< admitted bearers
254 std::vector<ErabNotAdmittedItem> notAdmittedBearers; ///< not admitted bearers
255 Ptr<Packet> rrcContext; ///< RRC context
256 };
257
258 /**
259 * \brief Parameters of the HANDOVER PREPARATION FAILURE message.
260 *
261 * See section 9.1.1.3 for further info about the parameters
262 */
264 {
265 uint16_t oldEnbUeX2apId; ///< old ENB UE X2 AP ID
266 uint16_t sourceCellId; ///< source cell ID
267 uint16_t targetCellId; ///< target cell ID
268 uint16_t cause; ///< cause
269 uint16_t criticalityDiagnostics; ///< criticality diagnostics
270 };
271
272 /**
273 * \brief Parameters of the SN STATUS TRANSFER message.
274 *
275 * See section 9.1.1.4 for further info about the parameters
276 */
278 {
279 uint16_t oldEnbUeX2apId; ///< old ENB UE X2 AP ID
280 uint16_t newEnbUeX2apId; ///< new ENB UE X2 AP ID
281 uint16_t sourceCellId; ///< source cell ID
282 uint16_t targetCellId; ///< target cell ID
283 std::vector<ErabsSubjectToStatusTransferItem>
284 erabsSubjectToStatusTransferList; ///< ERABs subject to status transfer list
285 };
286
287 /**
288 * \brief Parameters of the UE CONTEXT RELEASE message.
289 *
290 * See section 9.1.1.5 for further info about the parameters
291 */
293 {
294 uint16_t oldEnbUeX2apId; ///< old ENB UE X2 AP ID
295 uint16_t newEnbUeX2apId; ///< new ENB UE X2 AP ID
296 uint16_t sourceCellId; ///< source cell ID
297 uint16_t targetCellId; ///< target cell ID
298 };
299
300 /**
301 * \brief Parameters of the LOAD INFORMATION message.
302 *
303 * See section 9.1.2.1 for further info about the parameters
304 */
306 {
307 uint16_t targetCellId{UINT16_MAX}; ///< target cell ID
308 std::vector<CellInformationItem> cellInformationList; ///< cell information list
309 };
310
311 /**
312 * \brief Parameters of the RESOURCE STATUS UPDATE message.
313 *
314 * See section 9.1.2.14 for further info about the parameters
315 */
317 {
318 uint16_t targetCellId; ///< target cell ID
319 uint16_t enb1MeasurementId; ///< ENB1 measurement ID
320 uint16_t enb2MeasurementId; ///< ENB2 measurement ID
321 std::vector<CellMeasurementResultItem>
322 cellMeasurementResultList; ///< cell measurement result list
323 };
324
325 /**
326 * \brief Parameters of the UE DATA primitive
327 *
328 * Forward UE data during the handover procedure from source eNB (sourceCellId)
329 * to target eNB (targetCellId) using a GTP-U tunnel (gtpTeid)
330 */
332 {
333 uint16_t sourceCellId; ///< source cell ID
334 uint16_t targetCellId; ///< target cell ID
335 uint32_t gtpTeid; ///< GTP TEID
336 Ptr<Packet> ueData; ///< UE data
337 };
338
339 /**
340 * \brief Parameters of the HANDOVER CANCEL message.
341 *
342 * See section 9.1.1.6 for further info about the parameters
343 */
345 {
346 uint16_t oldEnbUeX2apId; ///< old ENB UE X2 AP ID
347 uint16_t newEnbUeX2apId; ///< new ENB UE X2 AP ID
348 uint16_t sourceCellId; ///< source cell ID
349 uint16_t targetCellId; ///< target cell ID
350 uint16_t cause; ///< cause
351 };
352};
353
354/**
355 * These service primitives of this part of the X2 SAP
356 * are provided by the X2 entity and issued by RRC entity
357 */
359{
360 public:
361 ~EpcX2SapProvider() override;
362
363 //
364 // Service primitives
365 //
366
367 /**
368 * Send handover request function
369 * \param params handover request parameters
370 */
372
373 /**
374 * Send handover request ack function
375 * \param params the handover request ack parameters
376 */
378
379 /**
380 * Send handover preparation failure function
381 * \param params the handover preparation failure
382 */
384
385 /**
386 * Send SN status transfer function
387 * \param params the SN status transfer parameters
388 */
390
391 /**
392 * Send UE context release function
393 * \param params the UE context release parameters
394 */
396
397 /**
398 * Send load information function
399 * \param params the load information parameters
400 */
402
403 /**
404 * Send resource status update function
405 * \param params the resource statue update parameters
406 */
408
409 /**
410 * Send UE data function
411 * \param params the UE data parameters
412 */
413 virtual void SendUeData(UeDataParams params) = 0;
414
415 /**
416 * \brief Send handover Cancel to the target eNB
417 * \param params the handover cancel parameters
418 */
419 virtual void SendHandoverCancel(HandoverCancelParams params) = 0;
420};
421
422/**
423 * These service primitives of this part of the X2 SAP
424 * are provided by the RRC entity and issued by the X2 entity
425 */
426class EpcX2SapUser : public EpcX2Sap
427{
428 public:
429 ~EpcX2SapUser() override;
430
431 /*
432 * Service primitives
433 */
434
435 /**
436 * Receive handover request function
437 * \param params the handover request parameters
438 */
440
441 /**
442 * Receive handover request ack function
443 * \param params the handover request ack parameters
444 */
446
447 /**
448 * Receive handover preparation failure function
449 * \param params the handover preparation failure parameters
450 */
452
453 /**
454 * Receive SN status transfer function
455 * \param params the SN status transfer parameters
456 */
458
459 /**
460 * Receive UE context release function
461 * \param params the receive UE context release parameters
462 */
464
465 /**
466 * Receive load information function
467 * \param params the load information parameters
468 */
470
471 /**
472 * Receive resource status update function
473 * \param params the resource status update parameters
474 */
476
477 /**
478 * Receive UE data function
479 * \param params UE data parameters
480 */
481 virtual void RecvUeData(UeDataParams params) = 0;
482
483 /**
484 * Receive handover cancel function
485 * \param params the receive handover cancel parameters
486 *
487 */
488 virtual void RecvHandoverCancel(HandoverCancelParams params) = 0;
489};
490
491///////////////////////////////////////
492
493/**
494 * EpcX2SpecificEpcX2SapProvider
495 */
496template <class C>
498{
499 public:
500 /**
501 * Constructor
502 *
503 * \param x2 the owner class
504 */
506
507 // Delete default constructor to avoid misuse
509
510 //
511 // Interface implemented from EpcX2SapProvider
512 //
513
514 /**
515 * Send handover request function
516 * \param params the handover request parameters
517 */
518 void SendHandoverRequest(HandoverRequestParams params) override;
519
520 /**
521 * Send handover request ack function
522 * \param params the handover request ack parameters
523 */
525
526 /**
527 * Send handover preparation failure function
528 * \param params the handover preparation failure parameters
529 */
531
532 /**
533 * Send SN status transfer function
534 * \param params the SN status transfer parameters
535 */
536 void SendSnStatusTransfer(SnStatusTransferParams params) override;
537
538 /**
539 * Send UE context release function
540 * \param params the UE context release parameters
541 */
542 void SendUeContextRelease(UeContextReleaseParams params) override;
543
544 /**
545 * Send load information function
546 * \param params the load information parameters
547 */
548 void SendLoadInformation(LoadInformationParams params) override;
549
550 /**
551 * Send resource status update function
552 * \param params the resource status update parameters
553 */
555
556 /**
557 * Send UE data function
558 * \param params the UE data parameters
559 */
560 void SendUeData(UeDataParams params) override;
561
562 /**
563 * \brief Send handover Cancel to the target eNB
564 * \param params the handover cancel parameters
565 */
566 void SendHandoverCancel(HandoverCancelParams params) override;
567
568 private:
569 C* m_x2; ///< owner class
570};
571
572template <class C>
574 : m_x2(x2)
575{
576}
577
578template <class C>
579void
581{
582 m_x2->DoSendHandoverRequest(params);
583}
584
585template <class C>
586void
588{
589 m_x2->DoSendHandoverRequestAck(params);
590}
591
592template <class C>
593void
596{
597 m_x2->DoSendHandoverPreparationFailure(params);
598}
599
600template <class C>
601void
603{
604 m_x2->DoSendSnStatusTransfer(params);
605}
606
607template <class C>
608void
610{
611 m_x2->DoSendUeContextRelease(params);
612}
613
614template <class C>
615void
617{
618 m_x2->DoSendLoadInformation(params);
619}
620
621template <class C>
622void
624{
625 m_x2->DoSendResourceStatusUpdate(params);
626}
627
628template <class C>
629void
631{
632 m_x2->DoSendUeData(params);
633}
634
635template <class C>
636void
638{
639 m_x2->DoSendHandoverCancel(params);
640}
641
642/**
643 * EpcX2SpecificEpcX2SapUser
644 */
645template <class C>
647{
648 public:
649 /**
650 * Constructor
651 *
652 * \param rrc RRC
653 */
655
656 // Delete default constructor to avoid misuse
658
659 //
660 // Interface implemented from EpcX2SapUser
661 //
662
663 /**
664 * Receive handover request function
665 * \param params the receive handover request parameters
666 */
667 void RecvHandoverRequest(HandoverRequestParams params) override;
668
669 /**
670 * Receive handover request ack function
671 * \param params the receive handover request ack parameters
672 */
674
675 /**
676 * Receive handover preparation failure function
677 * \param params the receive handover preparation failure parameters
678 */
680
681 /**
682 * Receive SN status transfer function
683 * \param params the SN status transfer parameters
684 */
685 void RecvSnStatusTransfer(SnStatusTransferParams params) override;
686
687 /**
688 * Receive UE context release function
689 * \param params the UE context release parameters
690 */
691 void RecvUeContextRelease(UeContextReleaseParams params) override;
692
693 /**
694 * Receive load information function
695 * \param params the load information parameters
696 */
697 void RecvLoadInformation(LoadInformationParams params) override;
698
699 /**
700 * Receive resource status update function
701 * \param params the receive resource status update
702 */
704
705 /**
706 * Receive UE data function
707 * \param params the UE data parameters
708 */
709 void RecvUeData(UeDataParams params) override;
710
711 /**
712 * Receive handover cancel function
713 * \param params the receive handover cancel parameters
714 *
715 */
716 void RecvHandoverCancel(HandoverCancelParams params) override;
717
718 private:
719 C* m_rrc; ///< owner class
720};
721
722template <class C>
724 : m_rrc(rrc)
725{
726}
727
728template <class C>
729void
731{
732 m_rrc->DoRecvHandoverRequest(params);
733}
734
735template <class C>
736void
738{
739 m_rrc->DoRecvHandoverRequestAck(params);
740}
741
742template <class C>
743void
746{
747 m_rrc->DoRecvHandoverPreparationFailure(params);
748}
749
750template <class C>
751void
753{
754 m_rrc->DoRecvSnStatusTransfer(params);
755}
756
757template <class C>
758void
760{
761 m_rrc->DoRecvUeContextRelease(params);
762}
763
764template <class C>
765void
767{
768 m_rrc->DoRecvLoadInformation(params);
769}
770
771template <class C>
772void
774{
775 m_rrc->DoRecvResourceStatusUpdate(params);
776}
777
778template <class C>
779void
781{
782 m_rrc->DoRecvUeData(params);
783}
784
785template <class C>
786void
788{
789 m_rrc->DoRecvHandoverCancel(params);
790}
791
792} // namespace ns3
793
794#endif // EPC_X2_SAP_H
The X2 SAP defines the service between the X2 entity and the RRC entity.
Definition: epc-x2-sap.h:50
static const uint16_t m_maxPdcpSn
E-RABs subject to status transfer item as it is used in the SN STATUS TRANSFER message.
Definition: epc-x2-sap.h:98
UlInterferenceOverloadIndicationItem
UL Interference OverloadIndication as it is used in the LOAD INFORMATION message.
Definition: epc-x2-sap.h:117
LoadIndicator
Load Indicator as it is used in the RESOURCE STATUS UPDATE message.
Definition: epc-x2-sap.h:173
virtual ~EpcX2Sap()
Definition: epc-x2-sap.cc:25
IdCause
Cause ID enumeration.
Definition: epc-x2-sap.h:219
@ TimeCriticalHandover
Definition: epc-x2-sap.h:221
@ HandoverDesirableForRadioReason
Definition: epc-x2-sap.h:220
These service primitives of this part of the X2 SAP are provided by the X2 entity and issued by RRC e...
Definition: epc-x2-sap.h:359
virtual void SendHandoverRequestAck(HandoverRequestAckParams params)=0
Send handover request ack function.
~EpcX2SapProvider() override
Definition: epc-x2-sap.cc:34
virtual void SendHandoverRequest(HandoverRequestParams params)=0
Send handover request function.
virtual void SendResourceStatusUpdate(ResourceStatusUpdateParams params)=0
Send resource status update function.
virtual void SendSnStatusTransfer(SnStatusTransferParams params)=0
Send SN status transfer function.
virtual void SendHandoverPreparationFailure(HandoverPreparationFailureParams params)=0
Send handover preparation failure function.
virtual void SendHandoverCancel(HandoverCancelParams params)=0
Send handover Cancel to the target eNB.
virtual void SendUeContextRelease(UeContextReleaseParams params)=0
Send UE context release function.
virtual void SendLoadInformation(LoadInformationParams params)=0
Send load information function.
virtual void SendUeData(UeDataParams params)=0
Send UE data function.
These service primitives of this part of the X2 SAP are provided by the RRC entity and issued by the ...
Definition: epc-x2-sap.h:427
virtual void RecvUeData(UeDataParams params)=0
Receive UE data function.
virtual void RecvUeContextRelease(UeContextReleaseParams params)=0
Receive UE context release function.
virtual void RecvHandoverCancel(HandoverCancelParams params)=0
Receive handover cancel function.
virtual void RecvSnStatusTransfer(SnStatusTransferParams params)=0
Receive SN status transfer function.
virtual void RecvLoadInformation(LoadInformationParams params)=0
Receive load information function.
virtual void RecvHandoverRequestAck(HandoverRequestAckParams params)=0
Receive handover request ack function.
virtual void RecvResourceStatusUpdate(ResourceStatusUpdateParams params)=0
Receive resource status update function.
virtual void RecvHandoverPreparationFailure(HandoverPreparationFailureParams params)=0
Receive handover preparation failure function.
~EpcX2SapUser() override
Definition: epc-x2-sap.cc:38
virtual void RecvHandoverRequest(HandoverRequestParams params)=0
Receive handover request function.
EpcX2SpecificEpcX2SapProvider.
Definition: epc-x2-sap.h:498
void SendHandoverCancel(HandoverCancelParams params) override
Send handover Cancel to the target eNB.
Definition: epc-x2-sap.h:637
void SendUeData(UeDataParams params) override
Send UE data function.
Definition: epc-x2-sap.h:630
void SendUeContextRelease(UeContextReleaseParams params) override
Send UE context release function.
Definition: epc-x2-sap.h:609
void SendHandoverPreparationFailure(HandoverPreparationFailureParams params) override
Send handover preparation failure function.
Definition: epc-x2-sap.h:594
void SendSnStatusTransfer(SnStatusTransferParams params) override
Send SN status transfer function.
Definition: epc-x2-sap.h:602
void SendHandoverRequest(HandoverRequestParams params) override
Send handover request function.
Definition: epc-x2-sap.h:580
void SendHandoverRequestAck(HandoverRequestAckParams params) override
Send handover request ack function.
Definition: epc-x2-sap.h:587
void SendResourceStatusUpdate(ResourceStatusUpdateParams params) override
Send resource status update function.
Definition: epc-x2-sap.h:623
void SendLoadInformation(LoadInformationParams params) override
Send load information function.
Definition: epc-x2-sap.h:616
EpcX2SpecificEpcX2SapUser.
Definition: epc-x2-sap.h:647
void RecvUeContextRelease(UeContextReleaseParams params) override
Receive UE context release function.
Definition: epc-x2-sap.h:759
void RecvHandoverRequest(HandoverRequestParams params) override
Receive handover request function.
Definition: epc-x2-sap.h:730
void RecvLoadInformation(LoadInformationParams params) override
Receive load information function.
Definition: epc-x2-sap.h:766
void RecvHandoverPreparationFailure(HandoverPreparationFailureParams params) override
Receive handover preparation failure function.
Definition: epc-x2-sap.h:744
void RecvResourceStatusUpdate(ResourceStatusUpdateParams params) override
Receive resource status update function.
Definition: epc-x2-sap.h:773
void RecvHandoverCancel(HandoverCancelParams params) override
Receive handover cancel function.
Definition: epc-x2-sap.h:787
void RecvSnStatusTransfer(SnStatusTransferParams params) override
Receive SN status transfer function.
Definition: epc-x2-sap.h:752
void RecvUeData(UeDataParams params) override
Receive UE data function.
Definition: epc-x2-sap.h:780
void RecvHandoverRequestAck(HandoverRequestAckParams params) override
Receive handover request ack function.
Definition: epc-x2-sap.h:737
This class contains the specification of EPS Bearers.
Definition: eps-bearer.h:91
Ipv4 addresses are stored in host order in this class.
Definition: ipv4-address.h:42
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:77
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Cell Information Item as it is used in the LOAD INFORMATION message.
Definition: epc-x2-sap.h:158
uint16_t sourceCellId
source cell ID
Definition: epc-x2-sap.h:159
std::vector< UlHighInterferenceInformationItem > ulHighInterferenceInformationList
UL high interference information list.
Definition: epc-x2-sap.h:163
RelativeNarrowbandTxBand relativeNarrowbandTxBand
relative narrow transmit band
Definition: epc-x2-sap.h:164
std::vector< UlInterferenceOverloadIndicationItem > ulInterferenceOverloadIndicationList
UL interference overload indication list.
Definition: epc-x2-sap.h:161
Cell Measurement Result Item as it is used in the RESOURCE STATUS UPDATE message.
Definition: epc-x2-sap.h:197
uint16_t ulTotalPrbUsage
UL Total PRB usage.
Definition: epc-x2-sap.h:211
LoadIndicator ulHardwareLoadIndicator
UL hardware load indicator.
Definition: epc-x2-sap.h:201
LoadIndicator dlHardwareLoadIndicator
DL hardware load indicator.
Definition: epc-x2-sap.h:200
uint16_t sourceCellId
source cell id
Definition: epc-x2-sap.h:198
uint16_t ulGbrPrbUsage
UL GBR PRB usage.
Definition: epc-x2-sap.h:207
uint16_t dlTotalPrbUsage
DL Total PRB usage.
Definition: epc-x2-sap.h:210
LoadIndicator dlS1TnlLoadIndicator
DL S1 TNL load indicator.
Definition: epc-x2-sap.h:203
uint16_t ulNonGbrPrbUsage
UL Non GBR PRB usage.
Definition: epc-x2-sap.h:209
CompositeAvailCapacity dlCompositeAvailableCapacity
DL composite available capacity.
Definition: epc-x2-sap.h:213
CompositeAvailCapacity ulCompositeAvailableCapacity
UL composite available capacity.
Definition: epc-x2-sap.h:214
uint16_t dlGbrPrbUsage
DL GBR PRB usage.
Definition: epc-x2-sap.h:206
LoadIndicator ulS1TnlLoadIndicator
UL S1 TNL load indicator.
Definition: epc-x2-sap.h:204
uint16_t dlNonGbrPrbUsage
DL Non GBR PRB usage.
Definition: epc-x2-sap.h:208
Composite Available Capacity as it is used in the RESOURCE STATUS UPDATE message.
Definition: epc-x2-sap.h:186
uint16_t cellCapacityClassValue
cell capacity class value
Definition: epc-x2-sap.h:187
uint16_t capacityValue
capacity value
Definition: epc-x2-sap.h:188
E-RABs admitted item as it is used in the HANDOVER REQUEST ACKNOWLEDGE message.
Definition: epc-x2-sap.h:76
uint32_t dlGtpTeid
downlink GTP TEID
Definition: epc-x2-sap.h:79
uint32_t ulGtpTeid
uplink GTP TEID
Definition: epc-x2-sap.h:78
uint16_t erabId
E-RAB ID.
Definition: epc-x2-sap.h:77
E-RABs not admitted item as it is used in the HANDOVER REQUEST ACKNOWLEDGE message.
Definition: epc-x2-sap.h:88
E-RABs to be setup item as it is used in the HANDOVER REQUEST message.
Definition: epc-x2-sap.h:60
bool dlForwarding
DL forwarding.
Definition: epc-x2-sap.h:63
Ipv4Address transportLayerAddress
transport layer address
Definition: epc-x2-sap.h:64
EpsBearer erabLevelQosParameters
E-RAB level QOS parameters.
Definition: epc-x2-sap.h:62
ErabsSubjectToStatusTransferItem structure.
Definition: epc-x2-sap.h:102
std::bitset< m_maxPdcpSn > receiveStatusOfUlPdcpSdus
receive status of UL PDCP SDUs
Definition: epc-x2-sap.h:104
Parameters of the HANDOVER CANCEL message.
Definition: epc-x2-sap.h:345
uint16_t oldEnbUeX2apId
old ENB UE X2 AP ID
Definition: epc-x2-sap.h:346
uint16_t targetCellId
target cell ID
Definition: epc-x2-sap.h:349
uint16_t newEnbUeX2apId
new ENB UE X2 AP ID
Definition: epc-x2-sap.h:347
uint16_t sourceCellId
source cell ID
Definition: epc-x2-sap.h:348
Parameters of the HANDOVER PREPARATION FAILURE message.
Definition: epc-x2-sap.h:264
uint16_t criticalityDiagnostics
criticality diagnostics
Definition: epc-x2-sap.h:269
uint16_t oldEnbUeX2apId
old ENB UE X2 AP ID
Definition: epc-x2-sap.h:265
Parameters of the HANDOVER REQUEST ACKNOWLEDGE message.
Definition: epc-x2-sap.h:248
std::vector< ErabNotAdmittedItem > notAdmittedBearers
not admitted bearers
Definition: epc-x2-sap.h:254
std::vector< ErabAdmittedItem > admittedBearers
admitted bearers
Definition: epc-x2-sap.h:253
uint16_t sourceCellId
source cell ID
Definition: epc-x2-sap.h:251
uint16_t newEnbUeX2apId
new ENB UE X2 AP ID
Definition: epc-x2-sap.h:250
uint16_t targetCellId
target cell ID
Definition: epc-x2-sap.h:252
uint16_t oldEnbUeX2apId
old ENB UE X2 AP ID
Definition: epc-x2-sap.h:249
Ptr< Packet > rrcContext
RRC context.
Definition: epc-x2-sap.h:255
Parameters of the HANDOVER REQUEST message.
Definition: epc-x2-sap.h:230
uint16_t oldEnbUeX2apId
old ENB UE X2 AP ID
Definition: epc-x2-sap.h:231
uint64_t ueAggregateMaxBitRateDownlink
UE aggregate max bit rate downlink.
Definition: epc-x2-sap.h:236
uint16_t sourceCellId
source cell ID
Definition: epc-x2-sap.h:233
uint64_t ueAggregateMaxBitRateUplink
UE aggregate max bit rate uplink.
Definition: epc-x2-sap.h:237
uint16_t targetCellId
target cell ID
Definition: epc-x2-sap.h:234
Ptr< Packet > rrcContext
RRC context.
Definition: epc-x2-sap.h:239
uint32_t mmeUeS1apId
MME UE S1 AP ID.
Definition: epc-x2-sap.h:235
std::vector< ErabToBeSetupItem > bearers
bearers
Definition: epc-x2-sap.h:238
Parameters of the LOAD INFORMATION message.
Definition: epc-x2-sap.h:306
std::vector< CellInformationItem > cellInformationList
cell information list
Definition: epc-x2-sap.h:308
uint16_t targetCellId
target cell ID
Definition: epc-x2-sap.h:307
Relative Narrowband Tx Power (RNTP) as it is used in the LOAD INFORMATION message.
Definition: epc-x2-sap.h:144
int16_t rntpThreshold
RNTP threshold.
Definition: epc-x2-sap.h:146
uint16_t antennaPorts
antenna ports
Definition: epc-x2-sap.h:147
std::vector< bool > rntpPerPrbList
RNTP per prb list.
Definition: epc-x2-sap.h:145
uint16_t pdcchInterferenceImpact
PDC channel interference list.
Definition: epc-x2-sap.h:149
Parameters of the RESOURCE STATUS UPDATE message.
Definition: epc-x2-sap.h:317
uint16_t enb2MeasurementId
ENB2 measurement ID.
Definition: epc-x2-sap.h:320
uint16_t enb1MeasurementId
ENB1 measurement ID.
Definition: epc-x2-sap.h:319
std::vector< CellMeasurementResultItem > cellMeasurementResultList
cell measurement result list
Definition: epc-x2-sap.h:322
Parameters of the SN STATUS TRANSFER message.
Definition: epc-x2-sap.h:278
uint16_t newEnbUeX2apId
new ENB UE X2 AP ID
Definition: epc-x2-sap.h:280
std::vector< ErabsSubjectToStatusTransferItem > erabsSubjectToStatusTransferList
ERABs subject to status transfer list.
Definition: epc-x2-sap.h:284
uint16_t oldEnbUeX2apId
old ENB UE X2 AP ID
Definition: epc-x2-sap.h:279
uint16_t targetCellId
target cell ID
Definition: epc-x2-sap.h:282
uint16_t sourceCellId
source cell ID
Definition: epc-x2-sap.h:281
Parameters of the UE CONTEXT RELEASE message.
Definition: epc-x2-sap.h:293
uint16_t newEnbUeX2apId
new ENB UE X2 AP ID
Definition: epc-x2-sap.h:295
uint16_t oldEnbUeX2apId
old ENB UE X2 AP ID
Definition: epc-x2-sap.h:294
uint16_t sourceCellId
source cell ID
Definition: epc-x2-sap.h:296
uint16_t targetCellId
target cell ID
Definition: epc-x2-sap.h:297
Parameters of the UE DATA primitive.
Definition: epc-x2-sap.h:332
Ptr< Packet > ueData
UE data.
Definition: epc-x2-sap.h:336
uint16_t sourceCellId
source cell ID
Definition: epc-x2-sap.h:333
uint32_t gtpTeid
GTP TEID.
Definition: epc-x2-sap.h:335
uint16_t targetCellId
target cell ID
Definition: epc-x2-sap.h:334
UL High Interference Information as it is used in the LOAD INFORMATION message.
Definition: epc-x2-sap.h:129
std::vector< bool > ulHighInterferenceIndicationList
UL high interference indication list.
Definition: epc-x2-sap.h:132