1 /******************************************************************************
2 ###############################################################################
3 # Copyright (c) [2017-2020] [ICT/CAS] #
4 # Licensed under the ORAN Software License v1.0 (License) #
5 ###############################################################################
6 ******************************************************************************/
9 #ifndef __CUMODULEINTERFACEH__
10 #define __CUMODULEINTERFACEH__
17 #include "cuModuleCommon.h"
18 #include "ngasn_constant.h"
19 /**********************************************************************************
20 ***********************************************************************************
21 **************** CUC <--> NGAP ACCORDING TO STRUCTURE ***************
22 ***********************************************************************************
23 ***********************************************************************************/
24 typedef UINT16 Instance_t;
26 #define NGAP_MAX_AMF_NUM 2
27 #define NGAP_MAX_UE_NUM MAX_UE_NUM
29 #define NG_MAX_TAC_NUM 10
30 #define NG_MAX_PLMN_NUM 2
32 #define NG_MAX_GUAMI_NUM 2
33 #define NG_MAX_SESSION_NUM 10
35 #define RrcVersionLatestVerEnhancedChosen 0x1
37 #define e1ap_maxnoofErrors 256
38 #define e1ap_maxnoofSPLMNs 12
39 #define e1ap_maxnoofSliceItems 1024
40 #define e1ap_maxnoofIndividualE1ConnectionsToReset 65536
41 #define e1ap_maxnoofNGRANQOSParameters 256
42 #define e1ap_maxnoofDRBs 32
43 #define e1ap_maxnoofNRCGI 512
44 #define e1ap_maxnoofPDUSessionResource 256
45 #define e1ap_maxnoofQoSFlows 64
46 #define e1ap_maxnoofUPParameters 8
47 #define e1ap_maxnoofCellGroups 4
50 typedef struct rrcVersion
53 UINT8 latestRrcVer;//f30版本中 asn的语法描述中是个错误,不应该是bitstring,在f70版本中已经修复
54 UINT8 latestRrcVerEn[3]; /* OPTIONAL */
58 typedef RanName_t AmfName_t;
63 PlmnId_t plmnId[NG_MAX_PLMN_NUM];
64 SliceList_t taiSlice[NG_MAX_PLMN_NUM];
70 CuTac_t tac[NG_MAX_TAC_NUM];
71 BroadPlmns_t bPlmn[NG_MAX_TAC_NUM];
74 typedef UINT8 AmfRegionId_t;
76 typedef struct AmfSetId
81 typedef struct AmfPointer
86 #define GUAMI_PLMNID_PRESENCE (1<<0)
91 AmfRegionId_t amfRegionId;
93 AmfPointer_t amfPointer;
96 typedef struct guamiList
99 Guami_t guAmi[NG_MAX_GUAMI_NUM];
100 AmfName_t backupAmfName[NG_MAX_GUAMI_NUM]; /* xycTBD */
103 #define MAX_SIZE_OF_OCTET_STRING 255
104 typedef struct NasPdu
107 UINT8 buffer[MAX_SIZE_OF_OCTET_STRING];
110 typedef struct FiveGTmsi
115 typedef struct FiveGSTmsi
118 AmfPointer_t amfPointer;
119 FiveGTmsi_t fiveGTmsi;
122 typedef UINT64 AmfUeNgapId_t;
124 #define EMERGENCY_SERVICE_TARGET_CN_PRESENT (1 << 0)
125 typedef struct emergFbInd
128 EmergencyFallbackRequestIndicator_e emergencyFallbackRequestIndicator;
129 EmergencyServiceTargetCN_e emergencyServiceTargetCn; /* OPTIONAL */
132 typedef struct ueRadioCapaForPagOfNr
135 UINT8 buffer[MAX_SIZE_OF_OCTET_STRING];
136 }UeRadioCapaForPagOfNr_t;
138 #define UE_RADIO_CAPABILITY_PAGING_NR_PRESENT (1 << 0)
139 #define UE_RADIO_CAPABILITY_PAGING_EUTRA_PRESENT (1 << 1)
140 typedef struct UeRadioCapaForPag
143 UeRadioCapaForPagOfNr_t ueRadioCapabilityForPagingOfNr; /* OPTIONAL */
144 UeRadioCapaForPagOfNr_t ueRadioCapabilityForPagingOfEutra; /* OPTIONAL */
145 } UeRadioCapaForPag_t;
147 typedef struct UeRadioCapability
150 UINT8 buffer[MAX_SIZE_OF_OCTET_STRING];
151 }UeRadioCapability_t;
153 typedef struct ngRanTraceId
156 UINT8 buffer[MAX_SIZE_OF_OCTET_STRING];
159 typedef UINT8 InterToTrace_t;
161 typedef struct traceActiv
163 NgRanTraceId_t ngRanTraceId;
164 InterToTrace_t interfacesToTrace;
166 TransLayerAddr_t traceCollectionEntityIpAddress;
169 typedef struct secuKey
171 UINT8 securityKey[32];
176 UINT8 nextHopChainingCount;
179 typedef UINT8 RatRestrInfo_t;
181 typedef struct ratRestrItem
184 RatRestrInfo_t ratRestrInfo;
187 typedef struct mobiRestrInfo
191 PlmnId_t ePlmnId[ngap_maxnoofEPLMNs];
192 UINT8 ratRestrictNum;
193 RatRestrItem_t ratRestrictItem[ngap_maxnoofEPLMNsPlusOne];
194 UINT8 forbiddenAreaNum;
195 PlmnId_t forbPlmnId[ngap_maxnoofEPLMNsPlusOne];
196 UINT16 forbTacNum[ngap_maxnoofEPLMNsPlusOne];
197 CuTac_t forbTac[ngap_maxnoofEPLMNsPlusOne][ngap_maxnoofForbTACs];
199 PlmnId_t servPlmnId[ngap_maxnoofEPLMNsPlusOne];
200 UINT8 allowTacNum[ngap_maxnoofEPLMNsPlusOne];
201 CuTac_t allowedTac[ngap_maxnoofEPLMNsPlusOne][ngap_maxnoofAllowedAreas];
202 UINT8 notAllowTacNum[ngap_maxnoofEPLMNsPlusOne];
203 CuTac_t notAllowedTac[ngap_maxnoofEPLMNsPlusOne][ngap_maxnoofAllowedAreas];
206 typedef struct ueSecurCapa
208 UINT16 nrEncryptionAlgorithms;
209 UINT16 nrIntegrityProtectionAlgorithms;
210 UINT16 eutraEncryptionAlgorithms;
211 UINT16 eutraIntegrityProtectionAlgorithms;
214 #define EXPECTED_ACTIVITY_PERIOD_PRESENT (1 << 0)
215 #define EXPECTED_IDLE_PERIOD_PRESENT (1 << 1)
216 #define SOURCEOF_UE_ACTIVITY_BEHAVIOUR_INFORMATION_PRESENT (1 << 2)
217 typedef struct expectedUeActivityBehaviour
220 INT64 expectedActivityPeriod; /* OPTIONAL */
221 INT64 expectedIdlePeriod; /* OPTIONAL */
222 SourceOfUEActivityBehaviourInformation_e sourceOfUeActivityBehaviourInformation; /* OPTIONAL */
223 } ExpectedUeActivityBehaviour_t;
225 #define EXPECTEDUEMOVINGTRAJECTORYITEM_TIME_STAYED_IN_CELL_PRESENT (1 << 0)
226 typedef struct expectedUeMovingTrajectoryItem
230 INT64 timeStayedInCell; /* OPTIONAL */
231 } ExpectedUeMovingTrajectoryItem_t;
233 #define EXPECTED_UE_ACTIVITY_BEHAVIOR_PRESENT (1 << 0)
234 #define EXPECTED_HO_INTERVAL_PRESENT (1 << 1)
235 #define EXPECTED_UE_MOBILITY_PRESENT (1 << 2)
239 ExpectedUeActivityBehaviour_t expectedUeActivityBehaviour;
240 INT64 expectedHoInterval;
241 INT64 expectedUeMobility;
242 UINT8 expectUeMovTrajectoryNum;
243 ExpectedUeMovingTrajectoryItem_t expectedUeMovingTrajectory[ngap_maxnoofCellsUEMovingTrajectory];
244 }ExpectUeBeHaviour_t;
246 #define CORE_ASSISTANCE_INFO_UE_SPECIFIC_DRX_PRESENT (1 << 0)
247 #define CORE_ASSISTANCE_INFO_MICO_MODE_INDICATION_PRESENT (1 << 1)
248 #define CORE_ASSISTANCE_INFO_EXPECT_UE_BEHAVIOUR_PRESENT (1 << 2)
249 typedef struct coreAssitInfo
252 UeIdIdxValue_t ueIdIdxValue;
254 UINT8 periodicRegistrationUpdateTimer;
255 INT64 micoModeIndication;
256 UINT8 inactiveTaiNum;
257 Tai_t inactiveTai[ngap_maxnoofTAIforInactive];
258 ExpectUeBeHaviour_t exceptUeBehaviour;
261 #define NOTIFICATION_CONTROL_PRESENT (1 << 0)
262 #define MAX_PACKET_LOSSRATE_DL_PRESENT (1 << 1)
263 #define MAX_PACKET_LOSSRATE_UL_PRESENT (1 << 2)
264 typedef struct gbrQosInfo
267 UINT64 maxFlowBitRateDL;
268 UINT64 maxFlowBitRateUL;
269 UINT64 guaranteedFlowBitRateDL;
270 UINT64 guaranteedFlowBitRateUL;
271 NotificationControl_e notificationControl; /* OPTIONAL */
272 INT64 maxPacketLossRateDL; /* OPTIONAL */
273 INT64 maxPacketLossRateUL; /* OPTIONAL */
276 #define GBR_QOS_INFORMATION_PRESENT (1 << 0)
277 #define REFLECTIVE_QOS_ATTRIBUTE_PRESENT (1 << 1)
278 #define ADDITIONAL_QOS_FLOW_INFORMATION_PRESENT (1 << 2)
279 typedef struct qosFlowLevelQosParam
282 QosCharact_t qosCharacteristics;
283 AllocAndRetenPriority_t allocationAndRetentionPriority;
284 GbrQosInfo_t gbrQosInformation; /* OPTIONAL */
285 ReflectiveQosAttribute_e reflectiveQosAttribute; /* OPTIONAL */
286 AddQosFlowInfo_e additionalQosFlowInformation; /* OPTIONAL */
287 } QosFlowLevelQosParam_t;
289 #define QOS_FLOW_SETUP_REQ_E_RAB_ID_PRESENT (1 << 0)
290 typedef struct qosFlowSetupReqItem
294 QosFlowLevelQosParam_t qosFlowLevelQosParameters;
295 INT64 eRabId; /* OPTIONAL */
296 } QosFlowSetupReqItem_t;
298 #define MAX_INTERITY_PROTECTED_DATARATE_PRESENT (1 << 0)
299 typedef struct securIndic
302 INT64 integrityProtectionIndication;
303 INT64 confidentialityProtectionIndication;
304 INT64 maxIntegrityProtectedDataRate; /* OPTIONAL */
313 #define PDU_SESSION_SETUP_REQ_TRANSFER_SESSION_AMBR_PRESENT (1 << 0)
314 #define PDU_SESSION_SETUP_REQ_TRANSFER_DATA_FORWARD_NOT_POSSIBLE_PRESENT (1 << 1)
315 #define PDU_SESSION_SETUP_REQ_TRANSFER_SECURITY_INDICATION_PRESENT (1 << 2)
316 #define PDU_SESSION_SETUP_REQ_TRANSFER_NET_WORK_INSTANCE_PRESENT (1 << 3)
321 NgapPduSessAmber_t sessAMBR;//Optional
322 UpTransLayerInfo_t ulNguUpTnlInfor;
323 UINT8 additionalUpTnlNum;
324 UpTransLayerInfo_t additionalUlNguUpTnlInfor[ngap_maxnoofMultiConnectivityMinusOne];
325 INT64 dataForwardingNotPossible;//Optional
326 INT64 pduSessionType;
327 SecurIndic_t securityIndication;//Optional
328 INT64 networkInstance;//Optional
329 UINT8 qosFlowSetupReqNum;// >= 1
330 QosFlowSetupReqItem_t qosFlowSetupRequestItems[ngap_maxnoofQosFlows];
331 }PduSessSetupReqTransfer_t;
333 #define PDU_SESSION_RESOURCE_SETUP_REQUEST_NAS_PDU_PRESENT (1 << 0)
334 typedef struct pduSessionSetupReq
338 NasPdu_t nasPdu;//Optional
340 PduSessSetupReqTransfer_t pduSetupReqTransfer;
341 }PduSessionSetupReq_t;
343 typedef struct recommRanforPag
346 /* AMFPagingTarget_PR */
347 AmfPgType_e amfPgType[ngap_maxnoofRecommendedRANNodes];
348 RecomRanGnbId_t gNBId[ngap_maxnoofRecommendedRANNodes];
349 Tai_t Tai[ngap_maxnoofRecommendedRANNodes];
352 #define RECOMMCELLITEM_TIME_STAYED_INCELL_PRESENT (1 << 0)
353 typedef struct recommCellItem
357 UINT64 timeStayedInCell; /* OPTIONAL */
360 typedef struct recommCellforPag
363 RecommCellItem_t cellItem[ngap_maxnoofRecommendedCells];
367 #define PAGING_ATTEMPT_INFO_NEXT_PAGING_AREA_SCOPE_PRESENT (1 << 0)
368 typedef struct pagingAttemptInfo
370 UINT8 pagingAttemptCount;
371 UINT8 intendNoOfPagingAttempt;
372 NextPagingAreaScope_e nextPagingAreaScope;//Optional
373 }PagingAttemptInfo_t;
375 #define ASSIST_DATA_FOR_PAGING_RECOMMAND_CELL_PRESENT (1 << 0)
376 #define ASSIST_DATA_FOR_PAGING_PAGING_ATTEMPT_INFO_PRESENT (1 << 1)
377 typedef struct assistDataForPaging
379 RecommCellforPag_t recommandCell;//Optinal
380 PagingAttemptInfo_t pagingAttemptInfo;//Optional
381 }AssistDataForPaging_t;
382 #define QOSFLOW_MAPPING_INDICATION_PRESENT (1 << 0)
383 typedef struct AssocQosFlowItem
387 QosFlowMapInd_e qosFlowMappingIndication; /* OPTIONAL */
388 } AssocQosFlowItem_t;
390 typedef struct qosFlowPerTnlInfo
392 UpTransLayerInfo_t upTransLayerInfo;
393 UINT8 assocQosFlowNum;
394 AssocQosFlowItem_t assocQosItem[ngap_maxnoofQosFlows];
395 }QosFlowPerTnlInfo_t;
397 typedef struct qosFlowIte
403 #define PDU_SESSION_SETUP_RSP_SECURITY_RESULT_PRESENT (1 << 0)
404 typedef struct pduSessSetupResp
408 QosFlowPerTnlInfo_t dlQosFlowTnlInfo;
409 UINT8 addDlQosFlowNum;
410 QosFlowPerTnlInfo_t addDlQosFlowTnlInfo[ngap_maxnoofMultiConnectivityMinusOne];
411 SecuResult_t securityResult;
412 UINT8 qosFlowFailNum;
413 QosFlowIte_t qosFlowFailtoSetup[ngap_maxnoofQosFlows];
416 typedef struct pduSessSetupFail
430 UINT8 timePeriodsNum;
431 Timestamp_t startTimeStamp[ngap_maxnoofTimePeriods];
432 Timestamp_t endTimeStamp[ngap_maxnoofTimePeriods];
433 UINT64 usageCountUl[ngap_maxnoofTimePeriods];
434 UINT64 usageConutDl[ngap_maxnoofTimePeriods];
440 VolumeTimedRpt_t sessTimedRpt;
447 VolumeTimedRpt_t flowTimedRpt;
448 }QosFlowUsageRptItem_t;
452 PduSessUsageRpt_t sessUsageRpt;
453 UINT8 qosFlowUsageRptNum;
454 QosFlowUsageRptItem_t qosFlowUsageRptItem;
455 }SecondRATUsageInfo_t;
457 #define PDU_SESSION_RESOURCE_ITEM_SECOND_RAT_USAGE_INFO_PRESENT (1 << 0)
461 SecondRATUsageInfo_t secondRatUsageInfo;
462 }PduSessResourceItem_t;
464 #define HO_REQUIRED_TRANSFER_DIRECT_FORWARD_PATH_AVAILABILITY_PRESENT (1 << 0)
468 DirectForwardPathAvailability_e directForwardPathAvailability;//Optional
469 }HoRequiredTransfer_t;
474 HoRequiredTransfer_t HoRequiredTransfer;
475 }HoRequiredPduSessResourcItem_t;
480 DataForwardAccepted_e dataForwardAccepted;
481 }QosFlowSetupRspItem_t;
485 UINT8 qosFlowFailNum;
486 QosFlowIte_t qosFlowFailtoSetup[ngap_maxnoofQosFlows];
487 }QosFlowSetupFailItem_t;
491 UpTransLayerInfo_t additionDlUpTnlInfo;
492 QosFlowSetupRspItem_t additionQosFlowSetupRsp;
493 UpTransLayerInfo_t additionDlForwardUpTnlInfo;
494 }HoAdditionDlUpTnlInfoItem_t;
496 #define DATA_FORWARD_RSP_DRB_DL_NGU_UP_TNL_INFO_PRESENT (1 << 0)
497 #define DATA_FORWARD_RSP_DRB_UL_NGU_UP_TNL_INFO_PRESENT (1 << 1)
502 UpTransLayerInfo_t dlNguUpTnlInfo;//Optional
503 UpTransLayerInfo_t ulNguUpTnlInfo;//Optional
504 }DataForwardRspDrb_t;
506 #define HO_REQUEST_ACK_TRANSFER_DL_FORWARD_UP_TNL_INFO_PRESENT (1 << 0)
507 #define HO_REQUEST_ACK_TRANSFER_SECURITY_RESULT_PRESENT (1 << 1)
510 UpTransLayerInfo_t dlNguUpTnlInfo;
511 UpTransLayerInfo_t dlForwardUpTnlInfo;//Optinal
512 SecuResult_t securityResult;//Optional
514 QosFlowSetupRspItem_t qosFlowSetupRspItem[ngap_maxnoofQosFlows];
515 UINT8 qosFlowFailNum;
516 QosFlowSetupFailItem_t qosFlowSetupFailItem[ngap_maxnoofQosFlows];
518 DataForwardRspDrb_t dataForwardRspDrbItem[ngap_maxnoofDRBs];
519 UINT8 HoAddDlUpTnlInfoNum;
520 HoAdditionDlUpTnlInfoItem_t HoAddDlUpTnlInfoItem[ngap_maxnoofMultiConnectivityMinusOne];
521 }HoRequestAckTransfer_t;
526 HoRequestAckTransfer_t HoRequestAckTransfer;
527 }HoRequestAckPduSessItem_t;
532 }HoRequestUnsuccTransfer_t;
537 HoRequestUnsuccTransfer_t HoRequestUnsuccTransfer;
538 }HoRequestFailPduSessItem_t;
540 #define HO_CMD_SUCC_TRANSFER_DATA_FORWARD_RSP_DRB_PRESENT (1 << 0)
543 UpTransLayerInfo_t dlNguUpTnlInfo;//Optional
545 UINT64 qosFlowIdItem[ngap_maxnoofQosFlows];
547 DataForwardRspDrb_t dataForwardRspDrbItem[ngap_maxnoofDRBs];
548 UINT8 addDlQosFlowNum;
549 QosFlowPerTnlInfo_t addDlQosFlowTnlInfo[ngap_maxnoofMultiConnectivityMinusOne];
550 }HoCmdSuccTransfer_t;
555 HoCmdSuccTransfer_t HoCmdSuccTransfer;
556 }HoCmdSuccPduSessResourceItem_t;
561 }HoCmdFailTransfer_t;
566 HoCmdFailTransfer_t HoCmdFailTranser;
567 }HoCmdFailPduSessResourcItem_t;
573 PduSessSetupReqTransfer_t HoRequestTransfer;
574 }HoRequestPduSessResourceItem_t;
575 #define PATH_SWITCH_REQ_TRANSFER_DL_NGU_TNL_INFO_REUSED_PRESENT (1 << 0)
576 #define PATH_SWITCH_REQ_TRANSFER_USER_PLANE_SECUR_INFO_PRESENT (1 << 1)
579 UpTransLayerInfo_t dlNguUpTnlInfo;
580 DlNguTnlInfoReused_e dlNguUpTnlInfoReused;//Optional
581 UserPlaneSecurInfo_t userPlaneSecurInfo;//Optional
583 UINT64 qosFlowIdItem[ngap_maxnoofQosFlows];
584 UINT8 addDlQosFlowNum;
585 QosFlowPerTnlInfo_t addDlQosFlowTnlInfo[ngap_maxnoofMultiConnectivityMinusOne];
586 }PathSwitchReqTransfer_t;
591 PathSwitchReqTransfer_t pathSwitchReqTransfer;
592 }PathSwitchReqPduSessItem_t;
597 }PathSwitchReqFailTransfer_t;
602 PathSwitchReqFailTransfer_t pathSwitchReqFailTransfer;
603 }PathSwitchReqFailPduSessItem_t;
605 #define PATH_SWITCH_REQ_ACK_TRANSFER_UL_NGU_UP_TNL_INFO_PRESENT (1 << 0)
606 #define PATH_SWITCH_REQ_ACK_TRANSFER_SECURITY_IND_PRESENT (1 << 1)
609 UpTransLayerInfo_t ulNguUpTnlInfo;//Optional
610 SecurIndic_t securityIndication;//Optional
611 UINT8 upTransLayerInfoPairItemNum;
612 UpTransLayerInfo_t ulNguUpTnlInfoItem[ngap_maxnoofMultiConnectivityMinusOne];
613 UpTransLayerInfo_t dlNguUpTnlInfoItem[ngap_maxnoofMultiConnectivityMinusOne];
614 }PathSwitchReqAckTransfer_t;
619 PathSwitchReqAckTransfer_t pathSwitchReqAckTransfer;
620 }PathSwitchReqAckPduSessItem_t;
625 }PathSwitchReqUnsuccTransfer_t;
631 PathSwitchReqUnsuccTransfer_t pathSwitchReqUnsuccTransfer;
632 }PathSwitchRlsPduSessItem_t;
637 IpAddress_t amfAddr[NGAP_MAX_AMF_NUM];
638 BroadPlmns_t broadPlmn[NGAP_MAX_AMF_NUM];
651 Tai_t areaIntTaiItem[ngap_maxnoofTAIinAoI];
652 UINT8 areaIntCellNum;
653 CuNrCgi_t areaIntCgiItem[ngap_maxnoofCellinAoI];
654 UINT8 areaIntRanNodeIdNum;
655 GlobalRanNodeId_t areaIntRanNodeIdItem[ngap_maxnoofRANNodeinAoI];
660 UINT8 areaIntItemNum;
661 AreaInterestItem_t areaIntItem[ngap_maxnoofAoI];
662 UINT8 locaReportReferenceId;
663 }AreaInterestListItem_t;
667 EventType_e eventType;
668 ReportArea_e reportArea;
669 UINT8 areaIntListItemNum;
670 AreaInterestListItem_t areaIntListItem[ngap_maxnoofAoI];
671 UINT8 locaReportReferenceIdTobeCancel;//Condition
672 }LocationReportRequestType_t;
674 /**********************************************************************************
675 ***********************************************************************************
676 *********** CUC --> NGAP MESSAGE STRUCTURE *************************
677 ***********************************************************************************
678 ***********************************************************************************/
680 /* Register Request ( NG Setup Request )*/
681 typedef struct ngapRegistergNBReq
687 SupportTas_t supportTa;
688 PagingDRX_e ranDefaPagDrx;
690 UERetentionInformation_e ueRetenInfo;
691 RegisterAmf_t registerAmfInfo;
692 }NgapRegistergNBReq_t;
694 /* First NAS Request (Initial Ue Message)*/
695 #define FIRST_UL_NAS_AMF_REGISTER_PRESENT (1 << 0)
696 #define FIRST_UL_NAS_FIVEG_STMSI_PRESENT (1 << 1)
697 #define FIRST_UL_NAS_LOCATION_INFO_TIMESTAMP_PRESENT (1 << 2)
698 #define FIRST_UL_NAS_UE_CONTEXT_REQ_PRESENT (1 << 3)
699 typedef struct ngapFirstNasReq
706 guamiType_e guamiType;
708 /* e_RRCEstablishmentCause */
709 RrcEstablishmentCause_e establishmentCause;
712 Timestamp_t timeStamp;
713 FiveGSTmsi_t fiveGSTmsi;
714 ueContextRequest_e ueReq;
715 SliceList_t ranAllowNssai;
718 /* Ue Radio Capability Check Response */
719 typedef struct ngapUeRadioCapaCheckRsp
723 AmfUeNgapId_t amfUeNgapId;
724 IMSVoiceSupportInd_e IMSVoiceSupportInd;
725 }NgapUeRadioCapaCheckRsp_t;
727 /* UL NAS Transfer */
728 #define UL_NAS_LOCATION_INFO_TIMESTAMP_PRESENT (1 << 0)
729 typedef struct ngapULNas
735 AmfUeNgapId_t amfUeNgapId;
739 Timestamp_t timeStamp;
742 /*Ue Radio Capability Information Indication*/
743 #define UE_RADIO_CAPABILITY_PAGING_PRESENT (1 << 0)
744 typedef struct ngapUeRadioCapaInfoIndication
749 AmfUeNgapId_t amfUeNgapId;
750 UeRadioCapability_t ueRadioCapability;
751 UeRadioCapaForPag_t ueRadioCapabilityForPag;/* optional */
752 }NgapUeRadioCapaInfoIndication_t;
754 /* Initial Context Setup Response */
755 typedef struct ngapInitialContextSetupResp
758 AmfUeNgapId_t amfUeNgapId;
761 NgapCause_e failCause;
762 UINT16 pduSessSetRspNum;
763 PduSessSetupResp_t pduSessSetRspItem[NG_MAX_SESSION_NUM];
764 UINT16 pduSessSetFailNum;
765 PduSessSetupFail_t pduSessSetFailItem[NG_MAX_SESSION_NUM];
766 } NgapInitialContextSetupResp_t;
768 /* PDU Session Resource Setup Response */
769 typedef struct ngapPduSessSetupRsp
772 AmfUeNgapId_t amfUeNgapId;
774 UINT16 pduSessSetRspNum;
775 PduSessSetupResp_t pduSessSetRspItem[NG_MAX_SESSION_NUM];
776 UINT16 pduSessSetFailNum;
777 PduSessSetupFail_t pduSessSetFailItem[NG_MAX_SESSION_NUM];
778 }NgapPduSessSetupRsp_t;
780 /* Ue Context Release Request */
781 typedef struct ngapUeCxtReleaseReq
785 AmfUeNgapId_t amfUeNgapId;
787 UINT16 rlsSessId[NG_MAX_SESSION_NUM];
789 } NgapUeCxtReleaseReq_t;
791 /* Ue Context Release Complete */
792 #define UE_CONTEXT_RELEASE_COMPLETE_USERLOCATION_TIMESTAMP_PRESENT (1 << 0)
793 typedef struct ngapUeReleaseComplete
798 AmfUeNgapId_t amfUeNgapId;
803 Timestamp_t timeStamp;
804 RecommCellforPag_t recomCellInfo;
805 RecommRanforPag_t recomRanInfo;
807 PduSessResourceItem_t sessResourceItem[NG_MAX_SESSION_NUM];
808 UINT8 allSessRlsFlag;
809 } NgapUeReleaseComplete_t;
811 #define HANDOVER_REQUIRED_DIRECT_FORWARDING_PATH_AVAILABILITY_PRESENT (1 << 0)
812 typedef struct ngapHandoverRequired
817 AmfUeNgapId_t amfUeNgapId;
818 HandoverType_e handoverType;
823 DirectForwardPathAvailability_e directForwardPathAvailability;//Optional
825 HoRequiredPduSessResourcItem_t sessResourceItem[NG_MAX_SESSION_NUM];
826 }NgapHandoverRequired_t;
828 typedef struct ngapHandoverRequestAcknowledge
832 AmfUeNgapId_t amfUeNgapId;
834 HoRequestAckPduSessItem_t HoRequestAckSessItem[NG_MAX_SESSION_NUM];
836 HoRequestFailPduSessItem_t HoRequestFailSessItem[NG_MAX_SESSION_NUM];
837 }NgapHandoverRequestAcknowledge_t;
838 typedef struct ngapHandoverFailure
841 AmfUeNgapId_t amfUeNgapId;
843 }NgapHandoverFailure_t;
844 #define HANDOVER_NOTIFY_USERLOCATION_TIMESTAMP_PRESENT (1 << 0)
845 typedef struct ngapHandoverNotify
849 AmfUeNgapId_t amfUeNgapId;
853 Timestamp_t timeStamp;
854 }NgapHandoverNotify_t;
855 /* Handover Cancel */
856 typedef struct ngapHandoverCancel
860 AmfUeNgapId_t amfUeNgapId;
862 }NgapHandoverCancel_t;
864 /* Path Switch Request */
865 #define PATH_SWITCH_REQUEST_USERLOCATION_TIMESTAMP_PRESENT (1 << 0)
866 typedef struct ngapPathSwitchRequest
871 AmfUeNgapId_t sourceAmfUeNgapId;
875 Timestamp_t timeStamp;
876 UeSecurCapa_t ueSecurityCapability;
878 PathSwitchReqPduSessItem_t switchPduSessItem[NG_MAX_SESSION_NUM];
879 UINT8 setupFailSessNum;
880 PathSwitchReqFailPduSessItem_t setupFailPduSessItem[NG_MAX_SESSION_NUM];
881 }NgapPathSwitchRequest_t;
883 /* RRC Inactive Transition Report */
884 #define RRC_INACTIVE_TRANSITION_REPORT_USERLOCATION_TIMESTAMP_PRESENT (1 << 0)
885 typedef struct ngapRrcInactiveTransitionReport
889 AmfUeNgapId_t amfUeNgapId;
894 Timestamp_t timeStamp;
895 }NgapRrcInactiveTransitionReport_t;
896 /**********************************************************************************
897 ***********************************************************************************
898 *************** NGAP --> CUC MESSAGE STRUCTURE ********************
899 ***********************************************************************************
900 ***********************************************************************************/
901 /* Register Confirm (NG Setup Response)*/
902 typedef struct ngapRegistergNBCnf
905 UINT8 numAmf; /* Number of AMF connected */
906 AmfRegistResult_t registRet[NGAP_MAX_AMF_NUM];
907 } NgapRegistergNBCnf_t;
909 /* Deregister Indication */
910 typedef struct ngapDeregisteredgNBInd_t
912 UINT8 numAmf; /* Number of AMF connected */
913 } NgapDeregisteredgNBInd_t;
915 #define UE_RADIO_CAPA_CHECK_REQ_UE_RADIO_CAPA_PRESENT (1 << 0)
916 /* Ue Radio Capability Check Request */
917 typedef struct ngapUeRadioCapaCheckReq
921 AmfUeNgapId_t amfUeNgapId;
923 UeRadioCapability_t ueRadioCapability;//Optional
924 }NgapUeRadioCapaCheckReq_t;
926 /* DL NAS Transfer */
927 #define DL_NAS_TRANSFER_OLD_AMF_NAME_PRESENT (1 << 0)
928 #define DL_NAS_TRANSFER_RAN_PAGING_PRIORITY_PRESENT (1 << 1)
929 #define DL_NAS_TRANSFER_MOBILITY_RESTRICTION_PRESENT (1 << 2)
930 #define DL_NAS_TRANSFER_INDEX_TO_RFSP_PRESENT (1 << 3)
931 #define DL_NAS_TRANSFER_UE_AMBR_PRESENT (1 << 4)
932 #define DL_NAS_TRANSFER_SNSSAI_PRESENT (1 << 5)
933 typedef struct ngapDLNas
937 AmfUeNgapId_t amfUeNgapId;
939 AmfName_t oldAmfName;
940 INT64 ranPagPriority;
942 MobiRestrInfo_t mobiRestrictInfo;
946 SliceList_t amfSlice;
949 /* Initial Context Setup Request */
950 #define INITIAL_CXT_SETUP_REQ_OLD_AMFNAME_PRESENT (1 << 0)
951 #define INITIAL_CXT_SETUP_REQ_UE_AGGREGATE_MAX_BITRATE_PRESENT (1 << 1)
952 #define INITIAL_CXT_SETUP_REQ_CORE_INFO_PRESENT (1 << 2)
953 #define INITIAL_CXT_SETUP_REQ_PDU_SESSION_RESOURCE_SETUPLIST_CXTREQ_PRESENT (1 << 3)
954 #define INITIAL_CXT_SETUP_REQ_TRACE_ACTIVATION_PRESENT (1 << 4)
955 #define INITIAL_CXT_SETUP_REQ_MOBI_RESTRICT_PRESENT (1 << 5)
956 #define INITIAL_CXT_SETUP_REQ_UE_RADIO_CAPA_PRESENT (1 << 6)
957 #define INITIAL_CXT_SETUP_REQ_IDX_RFSP_PRESENT (1 << 7)
958 #define INITIAL_CXT_SETUP_REQ_MASK_IMEISV_PRESENT (1 << 8)
959 #define INITIAL_CXT_SETUP_REQ_NASPDU_PRESENT (1 << 9)
960 #define INITIAL_CXT_SETUP_REQ_EMERGENCY_FB_PRESENT (1 << 10)
961 #define INITIAL_CXT_SETUP_REQ_INACT_TRANS_RPT_REQ_PRESENT (1 << 11)
962 #define INITIAL_CXT_SETUP_REQ_RADIO_CAPA_FOR_PAG_PRESENT (1 << 12)
963 #define INITIAL_CXT_SETUP_REQ_REDIRECTION_FOR_VOICE_EPS_FB_PRESENT (1 << 13)
964 typedef struct ngapInitialContextSetupReq
968 AmfUeNgapId_t amfUeNgapId;
970 AmfName_t oldAmfName;//Optional
971 NgapUeAmber_t ueAMBR;//Optional
972 CoreAssitInfo_t coreNetAssistInfo;//Optional
974 UINT16 pduSessSetupNum;
975 PduSessionSetupReq_t pduSessSetReqItem[NG_MAX_SESSION_NUM];
976 SliceList_t amfSlice;
977 UeSecurCapa_t ueSecurityCapa;
978 SecuKey_t securityKey;
979 TraceActiv_t traceActivation;//Optional
980 MobiRestrInfo_t mobiRestrictInfo;//Optional
981 UeRadioCapability_t ueRadioCapability;//Optional
982 INT64 indexToRfsp;//Optional
983 MaskedImeiSv_t maskedImeisv;//Optional
984 NasPdu_t nasPdu;//Optional
985 EmergFbInd_t emergencyFallbackIndicator;//Optional
986 INT64 rrcInactiveTransitionReportRequest;//Optional
987 UeRadioCapaForPag_t ueRadioCapabilityForPag;//Optional
988 INT64 redirectVoiceFb;//Optional
989 }NgapInitialContextSetupReq_t;
991 /* PDU Session Resource Setup Request */
992 #define PDU_SESS_SETUP_REQ_RAN_PAGING_PRIORITY_PRESENT (1 << 0)
993 #define PDU_SESS_SETUP_REQ_NAS_PDU_PRESENT (1 << 1)
994 #define PDU_SESS_SETUP_REQ_UE_AMBR_PRESENT (1 << 2)
996 typedef struct ngapPduSessSetupReq
1000 AmfUeNgapId_t amfUeNgapId;
1002 INT64 ranPagPriority;//Optional
1003 NasPdu_t nasPdu;//Optional
1004 UINT16 pduSessSetupNum;
1005 PduSessionSetupReq_t pduSessSetReqItem[NG_MAX_SESSION_NUM];
1006 UINT64 ueAMBRDl;//Optional
1007 UINT64 ueAMBRUl;//Optional
1008 }NgapPduSessSetupReq_t;
1010 /* Ue Context Release Command */
1011 typedef struct ngapUeReleaseCommand
1013 /* UE_NGAP_IDs_PR */
1014 Instance_t instance;
1015 NgapIdType_e ngapIdType;
1017 AmfUeNgapId_t amfUeNgapId;
1019 }NgapUeReleaseCommand_t;
1021 /* Handover Command */
1022 #define HANDOVER_COMMAND_NAS_SECURITY_PARAM_FROM_NGRAN_PRESENT (1 << 0)
1023 typedef struct ngapHandoverCommand
1026 Instance_t instance;
1027 AmfUeNgapId_t amfUeNgapId;
1029 HandoverType_e handoverType;
1031 HoCmdSuccPduSessResourceItem_t HoSessResourceItem[NG_MAX_SESSION_NUM];
1033 HoCmdFailPduSessResourcItem_t rlsSessResourceItem[NG_MAX_SESSION_NUM];
1034 }NgapHandoverCommand_t;
1036 /* Handover Preparation Failure*/
1037 typedef struct ngapHandoverPreparationFailure
1040 Instance_t instance;
1041 AmfUeNgapId_t amfUeNgapId;
1044 }NgapHandoverPreparationFailure_t;
1046 /* Handover Request */
1047 #define HANDOVER_REQUEST_CORE_ASSIST_INFO_PRESENT (1 << 0)
1048 #define HANDOVER_REQUEST_NEW_SECURITY_CTX_IND_PRESENT (1 << 1)
1049 #define HANDOVER_REQUEST_TRACE_ACTIVATION_PRESENT (1 << 2)
1050 #define HANDOVER_REQUEST_MASKED_IMEISV_PRESENT (1 << 3)
1051 #define HANDOVER_REQUEST_MOBILITY_RESTRICTION_INFO_PRESENT (1 << 4)
1052 #define HANDOVER_REQUEST_LOCATION_REPORT_REQUEST_TYPE_PRESENT (1 << 5)
1053 #define HANDOVER_REQUEST_RRC_INACTIVE_TRANS_REPORT_REQUEST_PRESNET (1 << 6)
1054 #define HANDOVER_REQUEST_REDIRECT_VOICE_FB_PRESNET (1 << 7)
1055 typedef struct ngapHandoverRequest
1058 Instance_t instance;
1059 AmfUeNgapId_t amfUeNgapId;
1060 HandoverType_e handoverType;
1062 NgapUeAmber_t ueAMBR;
1063 CoreAssitInfo_t coreNetAssistInfo;//Optional
1064 UeSecurCapa_t ueSecurityCapability;
1065 SecurityCtx_t securityContext;
1066 NewSecurityCtxInd_e newSecurityContextInd;//Optional
1069 HoRequestPduSessResourceItem_t HoRequestSessResourceItem[NG_MAX_SESSION_NUM];
1070 SliceList_t amfSlice;
1071 TraceActiv_t traceActivation;//Optional
1072 MaskedImeiSv_t maskedImeisv;//Optional
1073 MobiRestrInfo_t mobiRestrictInfo;//Optional
1074 LocationReportRequestType_t locaReportReqType;//Optional
1075 INT64 rrcInactiveTransitionReportRequest;//Optional
1077 INT64 redirectVoiceFb;//Optional
1078 }NgapHandoverRequest_t;
1080 /* Handover Cancel Acknowledge */
1081 typedef struct ngapHandoverCancelAcknowledge
1083 Instance_t instance;
1084 AmfUeNgapId_t amfUeNgapId;
1086 }NgapHandoverCancelAcknowledge_t;
1089 #define PAGING_PAGING_DRX_PRESENT (1 << 0)
1090 #define PAGING_PAGING_PRIORITY_PRESENT (1 << 1)
1091 #define PAGING_UE_RADIO_CAPABILITY_FOR_PAGING_PRESENT (1 << 2)
1092 #define PAGING_PAGING_ORIGIN_PRESENT (1 << 3)
1093 #define PAGING_ASSIST_DATA_FOR_PAGING (1 << 4)
1094 typedef struct ngapPaging
1096 FiveGSTmsi_t fiveGSTmsi;
1097 PagingDRX_e pagingDrx;//Optional
1098 UINT8 taiForPagingNum;
1099 Tai_t taiForPagingItem[ngap_maxnoofTAIforPaging];
1100 PagingPriority_e pagingPriority;//Optional
1101 UeRadioCapaForPag_t ueRadioCapabilityForPaging;//Optional
1102 PagingOrigin_e pagingOrigin;//Optional
1103 AssistDataForPaging_t assistDataForPaging;//Optional
1106 /* Path Switch Request Acknowledge */
1107 #define PATH_SWITCH_REQUEST_ACK_UE_SECURITY_CAPABILITY_PRESENT (1 << 0)
1108 #define PATH_SWITCH_REQUEST_ACK_NEW_SECURITY_CTX_IND_PRESENT (1 << 1)
1109 #define PATH_SWITCH_REQUEST_ACK_CORE_NETWORK_ASSIST_INFO_PRESENT (1 << 2)
1110 #define PATH_SWITCH_REQUEST_ACK_RRC_INACTIVE_TRANSITION_REPORT_REQUEST_PRESENT (1 << 3)
1111 #define PATH_SWITCH_REQUEST_ACK_REDIRECT_VOICE_FB_PRESENT (1 << 4)
1112 typedef struct ngapPathSwitchRequestAcknowledge
1115 Instance_t instance;
1116 AmfUeNgapId_t amfUeNgapId;
1118 UeSecurCapa_t ueSecurityCapability;//optional
1119 SecurityCtx_t securityContext;
1120 NewSecurityCtxInd_e newSecurCtxInd;//optional
1121 UINT8 switchSessNum;
1122 PathSwitchReqAckPduSessItem_t switchPduSessItem[NG_MAX_SESSION_NUM];
1124 PathSwitchRlsPduSessItem_t rlsPduSessItem[NG_MAX_SESSION_NUM];
1126 SNssai_t SNssaiItem[ngap_maxnoofAllowedS_NSSAIs];
1127 CoreAssitInfo_t coreNetworkAssitInfo;//optional
1128 INT64 rrcInactiveTransitionReportRequest;//Optional
1129 INT64 redirectVoiceFb;//Optional
1130 }NgapPathSwitchRequestAcknowledge_t;
1132 /* Path Switch Request Failure */
1133 typedef struct ngapPathSwitchRequestFailure
1135 Instance_t instance;
1136 AmfUeNgapId_t amfUeNgapId;
1139 PathSwitchRlsPduSessItem_t rlsPduSessItem[NG_MAX_SESSION_NUM];
1140 }NgapPathSwitchRequestFailure_t;
1141 /**********************************************************************************
1142 ***********************************************************************************
1143 ***************** CUC <--> E1AP ACCORDING TO STRUCTURE **************
1144 ***********************************************************************************
1145 ***********************************************************************************/
1146 #define MAX_LENGTH_GNBCUCP_NAME 150
1148 typedef struct gnbCucpName
1150 char gnbCucpName[MAX_LENGTH_GNBCUCP_NAME];
1153 #define SECURITY_ALGORITHM_INTERGRITY_PROTECTION_ALGORITHM (1 << 0)
1157 CipAlgorithm_e cipheringAlgorithm;
1158 IpAlgorithm_e integrityProtectionAlgorithm ;/* OPTIONAL */
1164 UINT8 buffer[MAX_SIZE_OF_OCTET_STRING];
1170 UINT8 buffer[MAX_SIZE_OF_OCTET_STRING];
1171 }IntegrityProtectKey_t;
1173 #define USER_PLANE_SECURITY_KEY_INTERGRITYPROTECTIONKEY_PRESENT (1 << 0)
1177 EncrypTionKey_t encryptionKey;
1178 IntegrityProtectKey_t integrityProtectionKey;/* OPTIONAL */
1183 SecuAlgorithm_t secuAlgorithm;
1184 UpSecuritykey_t upSecukey;
1187 #define GBR_QOS_FLOW_INFO_MAX_PACKET_LOSSRATE_DOWNLINK_PRESENT (1 << 0)
1188 #define GBR_QOS_FLOW_INFO_MAX_PACKET_LOSSRATE_UPLINK_PRESENT (1 << 1)
1189 typedef struct gbrQoSFlowInformation
1192 UINT64 maxFlowBitRateDownlink;
1193 UINT64 maxFlowBitRateUplink;
1194 UINT64 guaranteedFlowBitRateDownlink;
1195 UINT64 guaranteedFlowBitRateUplink;
1196 UINT64 maxPacketLossRateDownlink;/* OPTIONAL */
1197 UINT64 maxPacketLossRateUplink;/* OPTIONAL */
1198 } GBRQoSFlowInformation_t;
1200 #define QOS_FLOW_LEVEL_PARA_GBR_QOS_FLOW_INFO_PRESENT (1 << 0)
1201 #define QOS_FLOW_LEVEL_PARA_REFLECTIVE_QOS_ATTRIBUTE_PRESENT (1 << 1)
1202 #define QOS_FLOW_LEVEL_PARA_ADDITIONAL_QOS_FLOW_INFO_PRESENT (1 << 2)
1203 #define QOS_FLOW_LEVEL_PARA_PAGING_POLICY_INDICATOR_PRESENT (1 << 3)
1204 #define QOS_FLOW_LEVEL_PARA_RDI_PRESENT (1 << 4)
1208 /* QoS_Characteristics_PR */
1209 QosCharact_t qosCharacter;
1210 AllocAndRetenPriority_t ngRanAllAndRetentionPriority;
1211 GBRQoSFlowInformation_t gbrQoSFlowInformation;/* OPTIONAL */
1212 /* e_ReflectiveQosAttribute */
1213 ReflectiveQosAttribute_e reflectiveQosAttribute;/* OPTIONAL */
1214 /* e_AdditionalQosFlowInformation */
1215 AddQosFlowInfo_e addiQosFlowInfo;/* OPTIONAL */
1216 INT64 pagingPolicyInd;/* OPTIONAL */
1217 RDI_e rDI;/* OPTIONAL */
1218 }QosFlowLevelQosPar_t;
1220 #define QOS_FLOW_QOS_ITEM_QOS_FLOW_MAP_INDICATION_PRESENT (1 << 0)
1224 INT64 qosFlowIdentifier;
1225 QosFlowLevelQosPar_t qosFlowLevelQosPar;
1226 /* e_QoS_Flow_Mapping_Indication */
1227 QosFlowMapInd_e qosFlowMapInd;/* OPTIONAL */
1230 #define QOS_FLOW_ITEM_QOS_FLOW_MAP_INDICATION_PRESENT (1 << 0)
1231 typedef struct qoSFlowItem
1233 long qosFlowIdentifier;
1236 typedef struct qosFlowList
1238 UINT8 qosFlowItemNum;
1239 QoSFlowItem_t qosFlowItem[e1ap_maxnoofQoSFlows];
1242 typedef struct qosFlowMap
1246 UINT8 qosFlowMapFlag;
1247 /* e_QoS_Flow_Mapping_Indication */
1248 QosFlowMapInd_e qosFlowMapInd;
1251 #define QOS_FLOW_MAP_IND_PRESENT (1 << 0)
1252 typedef struct qosFlowMapItem
1255 UINT8 qosFlowIdentifier;
1256 QosFlowMapInd_e qosFlowMappingInd;/* OPTIONAL */
1259 typedef struct qosFlowMapList
1261 UINT8 qosFlowMapItemNum;
1262 QosFlowMapItem_t qosFlowMapItem[e1ap_maxnoofQoSFlows];
1265 #define DATA_FORWARDIGN_INFO_REQ_QOS_FLOWS_FORWARD_TUNNELS_PRESENT (1 << 0)
1269 /* e_Data_Forwarding_Request */
1270 DataForwardReq_e dataForwardingRequest;
1271 QosFlowMapList_t qosFlowForwardTunnelList;/* OPTIONAL */
1274 #define CELL_GROUP_ITEM_UL_CONFIGURATION_PRESENT (1 << 0)
1275 #define CELL_GROUP_ITEM_DL_TX_STOP_PRESENT (1 << 1)
1276 #define CELL_GROUP_ITEM_RAT_TYPE_PRESENT (1 << 2)
1277 typedef struct cellGroupItem
1281 /* e_UL_Configuration */
1282 UlConfig_e ulConfig;/* OPTIONAL */
1284 DlTXStop_e dlTxStop;/* OPTIONAL */
1286 RatType_e ratType;/* OPTIONAL */
1289 typedef struct cellGroupInformation
1292 CellGroupItem_t cellGroupItem[e1ap_maxnoofCellGroups];
1293 }CellGroupInformation_t;
1295 typedef struct flowMappingInformation
1297 QoSFlowList_t qosFlowList;
1298 }FlowMappingInformation_t;
1300 #define ROHC_CONTINUE_ROHC_PRESENT (1 << 0)
1306 /* e_ROHC__continueROHC */
1307 RohcContinueRohc_e continueRohc;/* OPTIONAL */
1312 /* ROHC_Parameters_PR */
1313 RohcParaPR_e rohcType;
1318 #define PDCP_CONFIGURATION_ROHC_PARA_PRESENT (1 << 0)
1319 #define PDCP_CONFIGURATION_REORDERING_TIMER_PRESENT (1 << 1)
1320 #define PDCP_CONFIGURATION_DISCARD_TIMER_PRESENT (1 << 2)
1321 #define PDCP_CONFIGURATION_UL_DATA_SPLIT_THRESHOLD_PRESENT (1 << 3)
1322 #define PDCP_CONFIGURATION_PDCP_DUPLICATION_PRESENT (1 << 4)
1323 #define PDCP_CONFIGURATION_PDCP_REESTABLISHMENT_PRESENT (1 << 5)
1324 #define PDCP_CONFIGURATION_PDCP_DATA_RECOVERY_PRESENT (1 << 6)
1325 #define PDCP_CONFIGURATION_DUPLICATION_ACTIVATION_PRESENT (1 << 7)
1326 #define PDCP_CONFIGURATION_OUT_OF_ORDER_DELIVERY_PRESENT (1 << 8)
1327 typedef struct pdcpConfiguration
1330 /* e_PDCP_SN_Size */
1331 PdcpSNSize_e pdcpSNSizeUl;
1332 PdcpSNSize_e pdcpSNSizeDl;
1334 CuRlcMode_e rlcMode;
1335 RohcPara_t rohcPara;/* OPTIONAL */
1336 /* e_T_Reordering */
1337 TReordering_e reorderTimer;/* OPTIONAL */
1338 /* e_DiscardTimer */
1339 DiscardTimer_e discadTimer;/* OPTIONAL */
1340 /* e_ULDataSplitThreshold */
1341 UlDataSplitThreshold_e ulDataSplitThreshold;/* OPTIONAL */
1342 /* e_PDCP_Duplication */
1343 PdcpDuplication_e pdcpDuplication;/* OPTIONAL */
1344 /* e_PDCP_Reestablishment */
1345 PdcpReestablishment_e pdcpReestablishment;/* OPTIONAL */
1346 /* e_PDCP_DataRecovery */
1347 PdcpDataRecovery_e pdcpDataRecovery;/* OPTIONAL */
1348 /* e_Duplication_Activation */
1349 DuplicationActivation_e duplicationAct;/* OPTIONAL */
1350 /* e_OutOfOrderDelivery */
1351 OutOfOrderDelivery_e outofOrderDelivery;/* OPTIONAL */
1352 }PDCPConfiguration_t;
1357 DefaultDRB_e defaultDrbInd;
1358 /* e_SDAP_Header_UL */
1359 SdapHeader_e sdapUlHeaderInd;
1360 /* e_SDAP_Header_DL */
1361 SdapHeader_e sdapDlHeaderInd;
1367 QoSFlowQosItem_t qosFlowInfo[e1ap_maxnoofQoSFlows];
1376 #define PDCP_SN_STATUS_INFORMATION_RECEIVE_PDCP_SDU_STATUSPRESENT (1 << 0)
1380 UINT64 receivePdcpSDUBitNum;/* OPTIONAL */
1381 UINT64 receiveStatusofPdcpSDU[2048]; /*Length: 1 - 131072 */
1382 PdcpCount_t ulCountValue;
1383 }PdcpUlStatusInfo_t;
1387 PdcpCount_t dlCountValue;
1388 }PdcpDlStatusInfo_t;
1392 PdcpUlStatusInfo_t pdcpUlStatusInfo;
1393 PdcpDlStatusInfo_t pdcpDlStatusInfo;
1394 }PdcpSNStatusInfo_t;
1396 #define DRB_TO_SETUP_ITEM_DRB_DFI_REQUEST_PRESENT (1 << 0)
1397 #define DRB_TO_SETUP_ITEM_DRB_INACTIVITY_TIMER_PRESENT (1 << 1)
1398 #define DRB_TO_SETUP_ITEM_PDCP_SN_STATUS_INFO_PRESENT (1 << 2)
1399 typedef struct drbToSetupItem
1403 SdapCfg_t sdapConfig;
1404 PDCPConfiguration_t pdcpConfig;
1405 CellGroupInformation_t cellGroupInfo;
1406 QosFlowQosPara_t qosFlowSetup;
1407 DFIRequest_t drbDataForwardInfoReq;/* OPTIONAL */
1408 INT64 inactivityTimer;/* OPTIONAL */
1409 PdcpSNStatusInfo_t pdcpSNStatusInfo;/* OPTIONAL */
1412 typedef struct drbToSetupList
1414 UINT8 drbToSetupListNum;
1415 DRBToSetupItem_t drbToSetupItem[e1ap_maxnoofDRBs];
1418 #define PDU_SESSION_RESOURCE_SETUP_DL_AMBR_PRESENT (1 << 0)
1419 #define PDU_SESSION_RESOURCE_SETUP_DATA_FORWARD_INFORMATION_REQ_PRESENT (1 << 1)
1420 #define PDU_SESSION_RESOURCE_SETUP_INACTIVITY_TIMER_PRESENT (1 << 2)
1421 #define PDU_SESSION_RESOURCE_SETUP_DL_UP_TRANSPORT_LAYER_INFO_PRESENT (1 << 3)
1422 #define PDU_SESSION_RESOURCE_SETUP_NETWORK_INSTANCE_PRESENT (1 << 4)
1423 typedef struct pduSessionResourceToSetupItem
1426 UINT16 pduSessionId;
1427 PduSessType_e pduSessionType;
1429 SecuInd_t securityIndication;
1430 UINT64 pduSessionResourceDlAMBR;/* OPTIONAL */
1431 UpTransLayerInfo_t ulUpTNLInformation;
1432 DFIRequest_t dataForwardInfoReq;/* OPTIONAL */
1433 INT64 inactTimer;/* OPTIONAL */
1434 UpTransLayerInfo_t existAllocateNgDlUpTnlInfo;/* OPTIONAL */
1435 INT64 networkInstance;/* OPTIONAL */
1436 DRBToSetupList_t drbToSetupList;
1437 }PduSessionResourceToSetupItem_t;
1439 typedef struct pduSessionResourceToSetupList
1442 PduSessionResourceToSetupItem_t pduSessionResourceToSetupItem[e1ap_maxnoofPDUSessionResource];
1443 }PduSessionResourceToSetupList_t;
1445 typedef struct upParametersItem
1447 UpTransLayerInfo_t upTransLayerInfo;
1449 } UPParametersItem_t;
1451 typedef struct upParametersList
1454 UPParametersItem_t upParametersItem[e1ap_maxnoofUPParameters];
1455 } UPParametersList_t;
1457 #define DATA_FORWARDIGN_INFO_RSP_UL_DATA_FORWARD_PRESENT (1 << 0)
1458 #define DATA_FORWARDIGN_INFO_RSP_DL_DATA_FORWARD_PRESENT (1 << 1)
1459 typedef struct dFIResponse
1462 UpTransLayerInfo_t ulDataForwarding;/*optional*/
1463 UpTransLayerInfo_t dlDataForwarding;/*optional*/
1466 #define DRB_TO_MODIFY_ITEM_SDAP_CONFIG_PRESENT (1 << 0)
1467 #define DRB_TO_MODIFY_ITEM_PDCP_CONFIG_PRESENT (1 << 1)
1468 #define DRB_TO_MODIFY_ITEM_DRB_DATA_FORWARD_INFO_RSP_PRESENT (1 << 2)
1469 #define DRB_TO_MODIFY_ITEM_PDCP_SN_STATUS_REQ_PRESENT (1 << 3)
1470 #define DRB_TO_MODIFY_ITEM_PDCP_SN_STATUS_INFO_PRESENT (1 << 4)
1471 #define DRB_TO_MODIFY_ITEM_DL_UP_PARA_PRESENT (1 << 5)
1472 #define DRB_TO_MODIFY_ITEM_CELL_GROUP_TO_ADD_PRESENT (1 << 6)
1473 #define DRB_TO_MODIFY_ITEM_CELL_GROUP_TO_MODIFY_PRESENT (1 << 7)
1474 #define DRB_TO_MODIFY_ITEM_CELL_GROUP_TO_REMOVE_PRESENT (1 << 8)
1475 #define DRB_TO_MODIFY_ITEM_FLOW_MAPPING_INFO_PRESENT (1 << 9)
1476 #define DRB_TO_MODIFY_ITEM_DRB_INACTIVITY_TIMER_PRESENT (1 << 10)
1477 typedef struct drbToModifyItem
1481 SdapCfg_t sdapConfig;/* OPTIONAL */
1482 PDCPConfiguration_t pdcpConfig;/* OPTIONAL */
1483 DFIResponse_t drbDataForwardInfoRsp;/* OPTIONAL */
1484 PdcpSNStatusRequest_e pdcpSNStatusReq;/* OPTIONAL */
1485 PdcpSNStatusInfo_t pdcpSNStatusInfo;/* OPTIONAL */
1486 UPParametersList_t dlUPParameters;/* OPTIONAL */
1487 CellGroupInformation_t cellGroupToAdd;/* OPTIONAL */
1488 CellGroupInformation_t cellGroupToModify;/* OPTIONAL */
1489 CellGroupInformation_t cellGroupToRemove;/* OPTIONAL */
1490 QosFlowQosPara_t flowMappingInfo;/* OPTIONAL */
1491 INT64 drbInactTimer;/* OPTIONAL */
1494 typedef struct drbToModifyList
1496 UINT8 drbToModifyItemNum;
1497 DRBToModifyItem_t drbToModifyItem[e1ap_maxnoofDRBs];
1500 typedef struct drbToRemoveItem
1505 typedef struct drbToRemoveList
1507 UINT8 drbToRemovetemNum;
1508 DRBToRemoveItem_t drbToRemoveItem[e1ap_maxnoofDRBs];
1511 #define PDU_SESSION_RESOURCE_TO_MODIFY_SECURITY_INDICATION_PRESENT (1 << 0)
1512 #define PDU_SESSION_RESOURCE_TO_MODIFY_DL_AMBR_PRESENT (1 << 1)
1513 #define PDU_SESSION_RESOURCE_TO_MODIFY_UL_UP_TNL_INFO_PRESENT (1 << 2)
1514 #define PDU_SESSION_RESOURCE_TO_MODIFY_DATA_FORWARD_INFORMATION_REQ_PRESENT (1 << 3)
1515 #define PDU_SESSION_RESOURCE_TO_MODIFY_DATA_FORWARD_INFORMATION_RSP_PRESENT (1 << 4)
1516 #define PDU_SESSION_RESOURCE_TO_MODIFY_INACTIVITY_TIMER_PRESENT (1 << 5)
1517 #define PDU_SESSION_RESOURCE_TO_MODIFY_NETWORK_INSTANCE_PRESENT (1 << 6)
1518 #define PDU_SESSION_RESOURCE_TO_MODIFY_DRB_TO_SETUP_LIST_PRESENT (1 << 7)
1519 #define PDU_SESSION_RESOURCE_TO_MODIFY_DRB_TO_MODIFY_LIST_PRESENT (1 << 8)
1520 #define PDU_SESSION_RESOURCE_TO_MODIFY_DRB_TO_REMOVE_LIST_PRESENT (1 << 9)
1521 typedef struct pduSessionResourceToModifyItem
1525 SecuInd_t secuIndi;/* OPTIONAL */
1526 UINT64 pduSessionResourceDlAMBR;/* OPTIONAL */
1527 UpTransLayerInfo_t ngUlUpTnlInfo;/* OPTIONAL */
1528 DFIRequest_t pduSessionDataForwardInfoReq;/* OPTIONAL */
1529 DFIResponse_t pduSessionDataForwardInfoRsp;/* OPTIONAL */
1530 INT64 pduSessionInactTimer;/* OPTIONAL */
1531 INT64 networkInstance;/* OPTIONAL */
1532 DRBToSetupList_t drbToSetupList;/* OPTIONAL */
1533 DRBToModifyList_t drbToModifyList;/* OPTIONAL */
1534 DRBToRemoveList_t drbToRemoveList;/* OPTIONAL */
1535 }PduSessionResourceToModifyItem_t;
1537 typedef struct pduSessionResourceToModifylist
1539 UINT8 pduSessionResourceToModifyItemNum;
1540 PduSessionResourceToModifyItem_t pduSessionResourceToModifyItem[e1ap_maxnoofPDUSessionResource];
1541 }PduSessionResourceToModifyList_t;
1543 typedef struct cellGroupList
1545 UINT8 numCellGroupItem;
1546 CellGroupItem_t cellGroupItem[e1ap_maxnoofCellGroups];
1549 typedef struct pduSessionResourceToRemoveItem
1551 UINT16 pduSessionID;
1552 }PduSessionResourceToRemoveItem_t;
1554 typedef struct pduSessionResourceToRemoveList
1556 UINT8 pduSessionResourceToRemoveItemNum;
1557 PduSessionResourceToRemoveItem_t pduSessionResourceToRemoveItem[e1ap_maxnoofPDUSessionResource];
1558 }PduSessionResourceToRemoveList_t;
1560 typedef struct ieCriticalityDiagnostics
1562 Criticality_e ieCriticality;
1563 E1apProtocolIeId_e protocolIEId;
1564 ErrorType_e typeOfError;
1565 }E1IECriticalityDiagnostics_t;
1567 #define PROCEDURE_CODE_PRESENT (1 << 0)
1568 #define TRIGGER_MESSAGE_TYPE_PRESENT (1 << 1)
1569 #define PROCDURE_CRITICALITY_PRESENT (1 << 2)
1570 #define TRANSACTION_ID_PRESENT (1 << 3)
1571 #define IE_CRITICALITY_DIAGNOSTICS_PRESENT (1 << 4)
1572 typedef struct criticalitydiagnostics
1575 E1apProcCode_e procedureCode;/* OPTIONAL */
1576 TriggerMsg_e typeOfMessage;/* OPTIONAL */
1577 Criticality_e criticality;/* OPTIONAL */
1578 INT64 transactionID;/* OPTIONAL */
1579 UINT8 IECriticalityDiagnosticsNum;/* OPTIONAL */
1580 E1IECriticalityDiagnostics_t ieCriticalityDiagnostics[e1ap_maxnoofErrors];/* OPTIONAL */
1581 }E1Criticalitydiagnostics_t;
1583 typedef struct e1apCause
1585 E1apCausePr_e present;
1588 E1apCauseRadioNetwork_e e1apRadioNetwork;
1589 E1apCauseTransport_e e1apTransport;
1590 E1apCauseProtocol_e e1apProtocol;
1591 E1apCauseMisc_e e1apMisc;
1595 #define PART_E1_INTERFACE_GNBCUCPUEID_PRESENT (1 << 0)
1596 #define PART_E1_INTERFACE_GNBCUUPUEID_PRESENT (1 << 1)
1598 typedef struct partE1InterfaceItem
1601 UINT32 gnbCucpUeE1apId;/*optional*/
1602 UINT32 gnbCuupUeE1apId;/*optional*/
1603 }PartE1InterfaceItem_t;
1605 typedef struct partE1InterfaceList
1607 UINT8 PartE1InterfaceListNum;
1608 PartE1InterfaceItem_t partE1InterfaceItem[e1ap_maxnoofIndividualE1ConnectionsToReset];
1609 }PartE1InterfaceList_t;
1611 typedef struct e1apResetType
1613 E1apResetPr_e present;
1617 PartE1InterfaceList_t PartE1InterfaceList;
1621 /**********************************************************************************
1622 ***********************************************************************************
1623 ***************** CUC <--> E1AP MESSAGE STRUCTURE ******************
1624 ***********************************************************************************
1625 ***********************************************************************************/
1626 typedef struct ifmCucpE1apReset
1628 UINT64 transactionId;
1630 E1apResetType_t e1apResetType;
1631 } IfmCucpE1apReset_t;
1633 #define CUUPE1APRESETACKPARTE1INTERFACE (1 << 0)
1634 #define CUUPE1APRESETACKCRITICALDIAGNOSTICS (1 << 1)
1636 typedef struct ifmE1apResetAck
1639 UINT64 transactionId;
1640 PartE1InterfaceList_t PartE1InterfaceList;/*optional*/
1641 E1Criticalitydiagnostics_t criticalDiagnostics;/*optional*/
1642 } IfmE1apResetAck_t;
1644 #define CUCP_E1AP_SETUP_REQ_GNB_CUCP_NAME_CHOSEN_PRESENT (1 << 0)
1645 typedef struct ifmCucpE1apSetupReq
1648 UINT64 transactionId;
1649 GnbCucpName_t gnbCucpName;/*optional*/
1650 } IfmCucpE1apSetupReq_t;
1652 #define CUUPE1APSETUPRSPGNBCUCPNAMECHOSEN (1 << 0)
1653 typedef struct ifmCuupE1apSetupRsp
1656 UINT64 transactionId;
1657 GnbCucpName_t gnbCucpName;/*optional*/
1658 } IfmCuupE1apSetupRsp_t;
1660 #define CUUPE1APSETUPFAILURETIMETOWAIT (1 << 0)
1661 #define CUUPE1APSETUPFAILURECRITICALDIAGNOSTICS (1 << 1)
1662 typedef struct ifmCuupE1apSetupFailure
1667 TimeToWait_e timeToWait;/*optional*/
1668 E1Criticalitydiagnostics_t criticalDiagnostics;/*optional*/
1669 } IfmCuupE1apSetupFailure_t;
1671 typedef struct e1apReleaseReq
1673 INT64 transactionId;
1677 #define BEARER_CONTEXT_SETUP_UE_DL_MAX_IPDR_PRESENT (1 << 0)
1678 #define BEARER_CONTEXT_SETUP_UE_INACTIVITY_TIMER_PRESENT (1 << 1)
1679 #define BEARER_CONTEXT_SETUP_BEARER_CONTEXT_STATUS_CHANGE_PRESENT (1 << 2)
1680 typedef struct e1apBearerContextSetupReq
1684 UINT32 cucpUeE1apId;
1685 SecuInfo_t secuInfo;
1687 UINT64 ueDlMaxIPDR;/*optional*/
1688 PlmnId_t servPlmnId;
1689 /* e_ActivityNotificationLevel */
1690 ActNotiLevel_e actNotiLevel;
1691 /* Inactivity_Timer_t */
1692 INT64 inactTimer;/*optional*/
1693 /* e_BearerContextStatusChange */
1694 BearCxtStatusChange_e bearerCxtStatusChg;/*optional*/
1695 PduSessionResourceToSetupList_t pduSessionResourceToSetupList;
1696 } E1apBearerContextSetupReq_t;
1698 #define DRB_TO_SETUP_MOD_ITEM_DRB_DATA_FORWARD_INFO_REQ_PRESENT (1 << 0)
1699 #define DRB_TO_SETUP_MOD_ITEM_DRB_INACTIVITY_TIMER_PRESENT (1 << 1)
1700 #define DRB_TO_SETUP_MOD_ITEM_PDCP_UL_COUNT_PRESENT (1 << 2)
1701 #define DRB_TO_SETUP_MOD_ITEM_PDCP_DL_COUNT_PRESENT (1 << 3)
1702 typedef struct drbToSetupModItem
1706 SdapCfg_t sdapConfig;
1707 PDCPConfiguration_t pdcpConfig;
1708 CellGroupInformation_t cellGroupInfo;
1709 QosFlowQosPara_t flowMappingInfo;
1710 DFIRequest_t drbDataForwardInfoReq;/* OPTIONAL */
1711 INT64 drbInactTimer;/* OPTIONAL */
1712 PdcpCount_t pdcpUlCnt;/* OPTIONAL */
1713 PdcpCount_t pdcpDlCnt;/* OPTIONAL */
1714 }DrbToSetupModItem_t;
1716 typedef struct drbToSetupModList
1718 UINT8 drbToSetupModListNum;
1719 DrbToSetupModItem_t drbToSetupModItem[e1ap_maxnoofDRBs];
1720 }DrbToSetupModList_t;
1722 #define PDU_SESSION_RESOURCE_TO_SETUP_MOD_AMBR_PRESENT (1 << 0)
1723 #define PDU_SESSION_RESOURCE_TO_SETUP_MOD_DATA_FORWARD_INFORMATION_REQ_PRESENT (1 << 1)
1724 #define PDU_SESSION_RESOURCE_TO_SETUP_MOD_INACTIVITY_TIMER_PRESENT (1 << 2)
1725 typedef struct pduSessionResourceToSetupModItem
1729 PduSessType_e pduSessionType;
1732 UINT64 pduSessionResourceAMBR;/* OPTIONAL */
1733 UpTransLayerInfo_t ngUlUpTnlInfo;
1734 DFIRequest_t pduSessionDataForwardInfoReq;/* OPTIONAL */
1735 INT64 pduSessionInactTimer;/* OPTIONAL */
1736 DrbToSetupModList_t drbToSetupModList;
1737 }PduSessionResourceToSetupModItem_t;
1739 typedef struct pduSessionResourceToSetupModList
1741 UINT8 pduSessionResourceToSetupModItemNum;
1742 PduSessionResourceToSetupModItem_t pduSessionResourceToSetupModItem[e1ap_maxnoofPDUSessionResource];
1743 }PduSessionResourceToSetupModList_t;
1745 #define BEARER_CONTEXT_MODIFY_REQ_PDU_SESSION_RESOURCE_TO_SETUP_MOD_LIST_PRESENT (1 << 0)
1746 #define BEARER_CONTEXT_MODIFY_REQ_PDU_SESSION_RESOURCE_TO_MODIFY_LIST_PRESENT (1 << 1)
1747 #define BEARER_CONTEXT_MODIFY_REQ_PDU_SESSION_RESOURCE_TO_REMOVE_LIST_PRESENT (1 << 2)
1748 typedef struct e1apPduSessionResourceToList
1751 PduSessionResourceToSetupModList_t pduSessionResourceToSetupModList; ///< Optional field
1752 PduSessionResourceToModifyList_t pduSessionResourceToModfiyList; ///< Optional field
1753 PduSessionResourceToRemoveList_t pduSessionResourceToRemoveList; ///< Optional field
1754 } PduSessionResourceList_t;
1756 #define BEARER_CONTEXT_MODIFY_REQ_SECURITY_INFORMATION_PRESENT (1 << 0)
1757 #define BEARER_CONTEXT_MODIFY_REQ_UE_DL_AMBR_PRESENT (1 << 1)
1758 #define BEARER_CONTEXT_MODIFY_REQ_UE_DL_MAX_IPDR_PRESENT (1 << 2)
1759 #define BEARER_CONTEXT_MODIFY_REQ_BEARER_CTX_SATAUS_CHANGE_PRESENT (1 << 3)
1760 #define BEARER_CONTEXT_MODIFY_REQ_NEW_UL_TNL_INFO_REQ_PRESENT (1 << 4)
1761 #define BEARER_CONTEXT_MODIFY_REQ_UE_INACTIBITY_TIMER_PRESENT (1 << 5)
1762 #define BEARER_CONTEXT_MODIFY_REQ_DATA_DISCARD_REQUIRED_PRESENT (1 << 6)
1763 #define BEARER_CONTEXT_MODIFY_REQ_PDU_SESSION_RESOURCE (1 << 7)
1764 typedef struct e1apBearerContextModReq
1768 UINT32 gnbCucpUeE1apId;
1769 UINT32 gnbCuupUeE1apId;
1770 SecuInfo_t secuInfo; ///< Optional field
1771 UINT64 ueDlAMBR; ///< Optional field
1772 UINT64 ueDlMaxIPDR; ///< Optional field
1773 BearCxtStatusChange_e bearerCtxStatusChg; ///< Optional field
1774 NewUlTnlInfoRequire_e newUlTnlInfoRequire; ///< Optional field
1775 INT64 ueInactTimer; ///< Optional field
1776 DataDisRequire_e dataDisRequire; ///< Optional field
1777 PduSessionResourceList_t pduSessionResourceList;///< Optional field
1778 } E1apBearerContextModReq_t;
1780 typedef struct e1apBearerContextRelCmd
1782 NrCellId_t cellId;//added artifficially
1783 UINT64 gnbCucpUeE1apId;
1784 UINT64 gnbCuupUeE1apId;
1786 } E1apBearerContextRelCmd_t;
1788 /**********************************************************************************
1789 ** UPC <--> E1AP ACCORDING TO STRUCTURE
1790 ***********************************************************************************/
1791 #define MAX_LENGTH_GNBCUUP_NAME 150
1792 typedef struct gnbCuupName
1794 char gnbCuupName[MAX_LENGTH_GNBCUUP_NAME];
1798 #define DATA_FORWARDING_INFO_UL_DATA_FORWARD_PRESENT (1 << 0)
1799 #define DATA_FORWARDING_INFO_DL_DATA_FORWARD_PRESENT (1 << 1)
1800 typedef struct qosFlowItemIEs
1802 UINT8 qosFlowIndicator;
1805 typedef struct flowFailedlist
1808 QoSFlowItemIEs_t qosFlowItemIEs[e1ap_maxnoofQoSFlows];
1811 #define DRB_SETUP_ITEM_DATA_FORWARD_INFO_RES_PRESENT (1 << 0)
1812 #define DRB_SETUP_ITEM_FLOW_FAILED_LIST_PRESENT (1 << 1)
1813 typedef struct drbSetupItem
1817 DFIResponse_t dataForwardInfoRsp;/*optional*/
1818 UPParametersList_t upPara;
1819 QoSFlowList_t flowSetupList;
1820 FlowFailedlist_t flowFailedlist;/*optional*/
1822 typedef struct drbSetupList
1825 DRBSetupItem_t drbSetupItem[e1ap_maxnoofDRBs];
1834 typedef struct drbFailedList
1837 DRBFailItem_t drbFailItem[e1ap_maxnoofDRBs];
1840 #define PDU_SESSION_RESOURCE_SETUP_SECURITY_RESULT_PRESENT (1 << 0)
1841 #define PDU_SESSION_RESOURCE_SETUP_DATA_FORWARD_INFO_RES_PRESENT (1 << 1)
1842 #define PDU_SESSION_RESOURCE_SETUP_NG_DL_UP_UNCHANGED_PRESENT (1 << 2)
1843 #define PDU_SESSION_RESOURCE_SETUP_DRB_FAILED_LIST_PRESENT (1 << 3)
1845 typedef struct pduSessionResourceSetupItem
1849 SecuResult_t securityResult;/* OPTIONAL */
1850 UpTransLayerInfo_t ngDlUpTransLayerInfo;
1851 DFIResponse_t dataForwardingInformationResponse;/* OPTIONAL */
1852 /* e_PDU_Session_Resource_Setup_Item__nG_DL_UP_Unchanged */
1853 NgDlUpUnchange_e ngDlUpUchange;/* OPTIONAL */
1854 DRBSetupList_t drbSetupList;
1855 DRBFailedList_t drbFailedList;
1856 }PduSessionResourceSetupItem_t;
1858 typedef struct pduSessionResourceSetupList
1860 UINT8 sessionResourceSetupNum;
1861 PduSessionResourceSetupItem_t pduSessionResourceSetupItem[e1ap_maxnoofPDUSessionResource];
1862 }PduSessionResourceSetupList_t;
1864 typedef struct pduSessionResourceFailedItem
1868 }PduSessionResourceFailedItem_t;
1870 typedef struct pduSessionResourceFailedlist
1873 PduSessionResourceFailedItem_t sessFailItem[e1ap_maxnoofPDUSessionResource];
1874 }PduSessionResourceFailedList_t;
1876 #define DRB_MODIFY_ITEM_UL_UP_TRANSPORT_PARA_PRESENT (1 << 0)
1877 #define DRB_MODIFY_ITEM_PDCP_SN_STATUS_INFO_PRESENT (1 << 1)
1878 #define DRB_MODIFY_ITEM_FLOW_SETUP_LIST_PRESENT (1 << 2)
1879 #define DRB_MODIFY_ITEM_FLOW_FAILED_LIST_PRESENT (1 << 3)
1880 typedef struct dRBModifyItem
1884 UPParametersList_t ulUpTransPara;/* OPTIONAL */
1885 PdcpSNStatusInfo_t pdcpSNStatusInfo;/* OPTIONAL */
1886 QoSFlowList_t flowSetupList;/* OPTIONAL */
1887 FlowFailedlist_t flowFailedlist;/* OPTIONAL */
1890 typedef struct dRBModifyList
1892 UINT8 drbModifyItemNum;
1893 DRBModifyItem_t drbModifyItem[e1ap_maxnoofDRBs];
1896 #define PDU_SESSION_RESOURCE_MODIFY_DL_UP_TNL_INFO_PRESENT (1 << 0)
1897 #define PDU_SESSION_RESOURCE_MODIFY_SECURITY_RESULT_PRESENT (1 << 1)
1898 #define PDU_SESSION_RESOURCE_MODIFY_DATA_FORWARD_INFO_RSP_PRESENT (1 << 2)
1899 #define PDU_SESSION_RESOURCE_MODIFY_DRB_SETUP_LIST_PRESENT (1 << 3)
1900 #define PDU_SESSION_RESOURCE_MODIFY_DRB_FAILED_LIST_PRESENT (1 << 4)
1901 #define PDU_SESSION_RESOURCE_MODIFY_DRB_MODIFY_LIST_PRESENT (1 << 5)
1902 #define PDU_SESSION_RESOURCE_MODIFY_DRB_FAILED_TO_MOD_LIST_PRESENT (1 << 6)
1903 typedef struct pduSessionResourceModifyItem
1907 UpTransLayerInfo_t ngDlUpTnlInfo;/* OPTIONAL */
1908 SecuResult_t securityResult;/* OPTIONAL */
1909 DFIResponse_t pduSessionDataForwardInfoRsp;/* OPTIONAL */
1910 DRBSetupList_t drbSetupList;/* OPTIONAL */
1911 DRBFailedList_t drbFailedList;/* OPTIONAL */
1912 DRBModifyList_t drbModifyList;/* OPTIONAL */
1913 DRBFailedList_t drbFailedToModList;/* OPTIONAL */
1914 }PduSessionResourceModifyItem_t;
1916 typedef struct pduSessionResourceModifyList
1918 UINT8 pduSessionResourceModifyItemNum;
1919 PduSessionResourceModifyItem_t pduSessionResourceModifyItem[e1ap_maxnoofPDUSessionResource];
1920 }PduSessionResourceModifyList_t;
1922 typedef struct e1apSliceSupportItem
1925 }E1apsliceSupportItem_t;
1927 typedef struct e1apSliceSupportList
1929 UINT8 SliceSupportItemNum;
1930 E1apsliceSupportItem_t sliceSupportItem[e1ap_maxnoofSliceItems];
1931 }E1apsliceSupportList_t;
1933 typedef struct nrCgiSupportItem
1936 }NrCgiSupportItem_t;
1938 typedef struct nrCgiSupportList
1940 UINT8 NrCgiSupportItemNum;
1941 NrCgiSupportItem_t NrCgiSupportItem[e1ap_maxnoofNRCGI];
1942 }NrCgiSupportList_t;
1944 typedef struct NGRANQoSSupportItem
1946 NonDynamic5QIDescr_t NonDynamic5QIDescr;
1947 }NGRANQoSSupportItem_t;
1949 typedef struct nGRANQoSSupportList
1951 UINT8 NGRANQoSSupportItemNum;
1952 NGRANQoSSupportItem_t NGRANQoSSupportItem[e1ap_maxnoofNGRANQOSParameters];
1953 }NGRANQoSSupportList_t;
1955 typedef struct qosParamtersSupportList
1958 NGRANQoSSupportList_t NGRANQoSSupportList;
1959 }QosParamtersSupportList_t;
1961 typedef struct supportedPLMNsItem_s
1964 E1apsliceSupportList_t sliceSupportList;/*optional*/
1965 NrCgiSupportList_t nrCgiSupportList;/*optional*/
1966 QosParamtersSupportList_t qosParamtersSupportList;/*optional*/
1967 }SupportedPLMNsItem_t;
1969 typedef struct supportedPLMNsList_s
1972 SupportedPLMNsItem_t SupportedPLMNsItem[e1ap_maxnoofSPLMNs];
1973 }SupportedPLMNsList_t;
1975 typedef struct pduSessionToNotifyItem_s
1978 QoSFlowList_t flowSetupList;
1979 }PduSessionToNotifyItem_t;
1981 typedef struct pduSessionToNotifyList_s
1983 UINT8 pduSessionToNotifynum;
1984 PduSessionToNotifyItem_t pduSessionToNotifyItem[e1ap_maxnoofPDUSessionResource];
1985 }PduSessionToNotifyList_t;
1987 typedef struct e1apUpbPlmnCfgInfo_s
1991 CuNrCgi_t cgi[e1ap_maxnoofNRCGI];/*optional*/
1992 E1apsliceSupportList_t sliceSupportList;/*optional*/
1994 NonDynamic5QIDescr_t qosPara[e1ap_maxnoofNGRANQOSParameters];/*optional*/
1995 }E1apUpbPlmnCfgInfo_t;
1997 /**********************************************************************************
1998 ** UPC <--> E1AP MESSAGE STRUCTURE
1999 ***********************************************************************************/
2001 typedef struct e1apRegistergNBReq
2003 Instance_t instance;
2005 GnbCuupName_t gnbCuupName;
2006 }E1apRegistergNBReq_t;
2008 /* ¸ÃÏûÏ¢½á¹¹Ó¦¸ÃŲµ½ CUUP/INC Ŀ¼Ï TBD */
2009 typedef struct e1apRegistergNBCnf
2011 Instance_t instance;
2013 GnbCucpName_t gnbCucpName;
2015 CellIdList_t successCellList;
2017 CellIdList_t failCellList;
2018 } E1apRegistergNBCnf_t;
2020 /* Deregister Indication */
2021 typedef struct e1apDeregisteredgNBInd
2023 Instance_t instance;
2024 } E1apDeregisteredgNBInd_t;
2026 typedef struct UpbPlmnCfgInfolist
2029 E1apUpbPlmnCfgInfo_t bPlmnCfgInfo[e1ap_maxnoofSPLMNs];
2030 } E1apUpbPlmnCfgInfoList_t;
2032 #define E1AP_REGISTER_REQ_UPNAME_PRESENT (1 << 0)
2033 #define E1AP_REGISTER_REQ_UP_CAPACITY_PRESENT (1 << 1)
2034 typedef struct e1apRegisterCpReq
2037 Instance_t instance;
2038 UINT64 transactionId;
2040 GnbCuupName_t gnbCuupName;/*optional*/
2041 CNSupport_e cnSupport;
2042 E1apUpbPlmnCfgInfoList_t e1apUpbPlmnCfgInfoList;
2043 INT64 upCapacity;/*optional*/
2044 } E1apRegisterCpReq_t;
2045 #define E1AP_SETUP_RSP_UPNAME_PRESENT (1 << 0)
2046 #define E1AP_SETUP_RSP_UP_CAPACITY_PRESENT (1 << 1)
2047 typedef struct e1apSetupRsp
2050 Instance_t instance;
2051 UINT64 transactionId;
2053 GnbCuupName_t gnbCuupName;/*optional*/
2054 CNSupport_e cnSupport;
2055 E1apUpbPlmnCfgInfoList_t e1apUpbPlmnCfgInfoList;
2056 INT64 upCapacity;/*optional*/
2058 typedef struct e1apSetupFail
2063 TimeToWait_e timeToWait;/*optional*/
2064 E1Criticalitydiagnostics_t criticalDiagnostics;/*optional*/
2067 typedef struct e1apReleaseRsp
2069 INT64 transactionId;
2072 #define E1AP_PDU_SESSION_RESOURCE_FAILED_LIST_PRESENT (1 << 0)
2073 typedef struct e1apPduSessionResourceSetuplist
2076 PduSessionResourceSetupList_t pduSessionResourceSetuplist;
2077 PduSessionResourceFailedList_t pduSessionResourceFailedList; //OPTION
2078 } E1apPduSessionResourceSetupList_t;
2080 typedef struct e1apBearerContextSetupRsp
2082 UINT64 gnbCucpUeE1apId;
2083 UINT64 gnbCuupUeE1apId;
2084 E1apPduSessionResourceSetupList_t e1apPduSessionResourceSetuplist;
2085 } E1apBearerContextSetupRsp_t;
2087 #define BEARER_CONTEXT_MOD_FAIL_CRITICAL_DIAGNOSE_PRESENT (1 << 0)
2088 typedef struct e1apBearerContextModFail
2091 UINT32 gnbCucpUeE1apId;
2092 UINT32 gnbCuupUeE1apId;
2094 E1Criticalitydiagnostics_t e1apCriticalDiagnose;
2095 } E1apBearerContextModFail_t;
2097 #define BEARER_CONTEXT_SETUP_FAILURE_CRITICAL_DIAGNOSE_PRESENT (1 << 0)
2098 typedef struct e1apBearerContextSetupFailure
2101 UINT64 gnbCucpUeE1apId;
2102 UINT64 gnbCuupUeE1apId;
2104 E1Criticalitydiagnostics_t criticalDiagnose; /* Optional field*/
2105 } E1apBearerContextSetupFailure_t;
2107 #define DRB_SETUP_MOD_ITEM_DATA_FORWARD_INFO_RSP_PRESENT (1 << 0)
2108 #define DRB_SETUP_MOD_ITEM_FLOW_FAILED_LIST_PRESENT (1 << 1)
2109 typedef struct dRBSetupModItem
2113 DFIResponse_t drbDataForwardInfoRsp;/* OPTIONAL */
2114 UPParametersList_t ulUpTransPara;
2115 QoSFlowList_t flowSetupList;
2116 FlowFailedlist_t flowFailedlist;/* OPTIONAL */
2117 } DRBSetupModItem_t;
2119 typedef struct dRBSetupModList
2121 UINT8 drbSetupModItemNum;
2122 DRBSetupModItem_t drbSetupModItem[e1ap_maxnoofDRBs];
2123 } DRBSetupModList_t;
2125 #define PDU_SESSION_RESOURCE_SETUP_MOD_SECURITY_RESULT_PRESENT (1 << 0)
2126 #define PDU_SESSION_RESOURCE_SETUP_MOD_DATA_FORWARD_INFO_RSP_PRESENT (1 << 1)
2127 #define PDU_SESSION_RESOURCE_SETUP_MOD_DRB_FAILED_LIST_PRESENT (1 << 2)
2128 typedef struct pduSessionResourceSetupModItem
2132 SecuResult_t securityResult;/* OPTIONAL */
2133 UpTransLayerInfo_t ngDlUpTnlInfo;
2134 DFIResponse_t pduSessionDataForwardInfoRsp;/* OPTIONAL */
2135 DRBSetupModList_t drbSetupModList;
2136 DRBFailedList_t drbFailedList;/* OPTIONAL */
2137 }PduSessionResourceSetupModItem_t;
2139 typedef struct pduSessionResourceSetupModList
2141 UINT8 pduSessionResourceSetupModItemNum;
2142 PduSessionResourceSetupModItem_t pduSessionResourceSetupModItem[e1ap_maxnoofPDUSessionResource];
2143 }PduSessionResourceSetupModList_t;
2145 #define BEARER_CONTEXT_MODIFY_RSP_PDU_SESSION_RESOURCE_SETUP_MOD_LIST_PRESENT (1 << 0)
2146 #define BEARER_CONTEXT_MODIFY_RSP_PDU_SESSION_RESOURCE_FAILED_MOD_LIST_PRESENT (1 << 1)
2147 #define BEARER_CONTEXT_MODIFY_RSP_PDU_SESSION_RESOURCE_MODIFY_LIST_PRESENT (1 << 2)
2148 #define BEARER_CONTEXT_MODIFY_RSP_PDU_SESSION_RESOURCE_FAILED_TO_MOD_LIST_PRESENT (1 << 3)
2149 typedef struct e1apBearModPduSessionResource
2152 PduSessionResourceSetupModList_t pduSessionResourceSetupModList;///< Optional field
2153 PduSessionResourceFailedList_t pduSessionResourceFailedModList;///< Optional field
2154 PduSessionResourceModifyList_t pduSessionResourceModfiyList;///< Optional field
2155 PduSessionResourceFailedList_t pduSessionResourceFailedToModList;///< Optional field
2156 } E1apBearModPduSessionResource_t;
2158 #define BEARER_CONTEXT_MODIFY_RSP_PDU_SESSION_RESOURCE_LIST (1 << 0)
2159 typedef struct e1apBearerContextModRsp
2162 UINT64 gnbCucpUeE1apId;
2163 UINT64 gnbCuupUeE1apId;
2164 E1apBearModPduSessionResource_t e1apBearModPduSessionResource;/*optional*/
2165 } E1apBearerContextModRsp_t;
2167 #define BREARE_CONTEXT_RELEASE_COMPLETE_CRITICALITY_DIAGNOSTICS_PRESENT (1 << 0)
2168 typedef struct e1apBearerContextRlsCmp
2171 UINT64 gnbCucpUeE1apId;
2172 UINT64 gnbCuupUeE1apId;
2173 E1Criticalitydiagnostics_t criticalDiagnostics;/*optional*/
2174 }E1apBearerContextRlsCmp_t;
2176 #define E1AP_DL_DATA_NOTIFY_PPI_PRESENCE (1 << 0)
2177 typedef struct e1apDlDataNote
2180 UINT64 gnbCucpUeE1apId;
2181 UINT64 gnbCuupUeE1apId;
2182 INT64 ppi; /*optional*/
2183 }IfmE1apDlDataNotify_t;
2185 typedef struct e1apUlDataNote
2187 UINT64 gnbCucpUeE1apId;
2188 UINT64 gnbCuupUeE1apId;
2189 PduSessionToNotifyList_t pduSessionToNotifyList;
2192 /* Error Indication */
2193 #define ERROR_INDICATION_CU_CP_UE_E1AP_ID_PRESENT (1 << 0)
2194 #define ERROR_INDICATION_CU_UP_UE_E1AP_ID_PRESENT (1 << 1)
2195 #define ERROR_INDICATION_CAUSE_PRESENT (1 << 2)
2196 #define ERROR_INDICATION_CRITICALITYDIAGNOSTICS_PRESENT (1 << 3)
2197 typedef struct E1apErrInd
2201 UINT64 gnbCucpUeE1apId; /* OPTIONAL */
2202 UINT64 gnbCuupUeE1apId; /* OPTIONAL */
2203 E1apCause_t cause; /* OPTIONAL */
2204 E1Criticalitydiagnostics_t critiDiag; /* OPTIONAL */
2207 //RRC_INACTIVE Begin
2208 typedef struct e1apDrbActivityItem_s
2212 }E1apDrbActivityItem_t;
2214 typedef struct e1apDrbActivityList_s
2216 UINT8 numDrbActivityItem;//1~e1ap_maxnoofDRBs
2217 E1apDrbActivityItem_t drbActivityItem[e1ap_maxnoofDRBs];
2218 }E1apDrbActivityList_t;
2221 typedef struct e1apPduSessionActivityItem_s
2225 }E1apPduSessionActivityItem_t;
2226 typedef struct e1apPduSessionActivityList_s
2228 UINT16 numPduSessionActivityItem;//1~e1ap_maxnoofPDUSessionResource
2229 E1apPduSessionActivityItem_t pduSessionActivityItem[e1ap_maxnoofPDUSessionResource];
2230 }E1apPduSessionActivityList_t;
2231 typedef struct e1apUeActivity_s
2236 //UPC_E1AP_BEAR_CTX_INACTIVE_NOTIFY
2237 //E1AP_CUC_BEAR_CTX_INACTIVE_NOTIFY
2238 #define TAG_E1AP_BEAR_INAC_DRB_ACTIVITY_LIST 1
2239 #define TAG_E1AP_BEAR_INAC_PDU_SESSION_ACTIVITY_LIST 2
2240 #define TAG_E1AP_BEAR_INAC_UE_ACTIVITY 3
2241 typedef struct ifmE1apBearCtxInactiveNotify
2244 UINT64 gnbCucpUeE1apId;
2245 UINT64 gnbCuupUeE1apId;
2248 E1apDrbActivityList_t drbActivityList;
2249 E1apPduSessionActivityList_t pduSessionActivityList;
2250 E1apUeActivity_t ueActivity;
2252 } IfmE1apBearCtxInactiveNotify_t;
2258 #endif /* __CUMODULEINTERFACEH__*/