1 /******************************************************************************
3 * Copyright (c) 2020 ICT/CAS.
5 * Licensed under the O-RAN Software License, Version 1.0 (the "Software License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * https://www.o-ran.org/software
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 *******************************************************************************/
21 #ifndef __CUMODULEINTERFACEH__
22 #define __CUMODULEINTERFACEH__
29 #include "cuModuleCommon.h"
30 #include "ngasn_constant.h"
31 /**********************************************************************************
32 ***********************************************************************************
33 **************** CUC <--> NGAP ACCORDING TO STRUCTURE ***************
34 ***********************************************************************************
35 ***********************************************************************************/
36 typedef UINT16 Instance_t;
38 #define NGAP_MAX_AMF_NUM 2
39 #define NGAP_MAX_UE_NUM MAX_UE_NUM
41 #define NG_MAX_TAC_NUM 10
42 #define NG_MAX_PLMN_NUM 2
44 #define NG_MAX_GUAMI_NUM 2
45 #define NG_MAX_SESSION_NUM 10
47 #define RrcVersionLatestVerEnhancedChosen 0x1
49 #define e1ap_maxnoofErrors 256
50 #define e1ap_maxnoofSPLMNs 12
51 #define e1ap_maxnoofSliceItems 1024
52 #define e1ap_maxnoofIndividualE1ConnectionsToReset 65536
53 #define e1ap_maxnoofNGRANQOSParameters 256
54 #define e1ap_maxnoofDRBs 32
55 #define e1ap_maxnoofNRCGI 512
56 #define e1ap_maxnoofPDUSessionResource 256
57 #define e1ap_maxnoofQoSFlows 64
58 #define e1ap_maxnoofUPParameters 8
59 #define e1ap_maxnoofCellGroups 4
62 typedef struct rrcVersion
65 UINT8 latestRrcVer;//f30版本中 asn的语法描述中是个错误,不应该是bitstring,在f70版本中已经修复
66 UINT8 latestRrcVerEn[3]; /* OPTIONAL */
70 typedef RanName_t AmfName_t;
75 PlmnId_t plmnId[NG_MAX_PLMN_NUM];
76 SliceList_t taiSlice[NG_MAX_PLMN_NUM];
82 CuTac_t tac[NG_MAX_TAC_NUM];
83 BroadPlmns_t bPlmn[NG_MAX_TAC_NUM];
86 typedef UINT8 AmfRegionId_t;
88 typedef struct AmfSetId
93 typedef struct AmfPointer
98 #define GUAMI_PLMNID_PRESENCE (1<<0)
103 AmfRegionId_t amfRegionId;
105 AmfPointer_t amfPointer;
108 typedef struct guamiList
111 Guami_t guAmi[NG_MAX_GUAMI_NUM];
112 AmfName_t backupAmfName[NG_MAX_GUAMI_NUM]; /* xycTBD */
115 #define MAX_SIZE_OF_OCTET_STRING 255
116 typedef struct NasPdu
119 UINT8 buffer[MAX_SIZE_OF_OCTET_STRING];
122 typedef struct FiveGTmsi
127 typedef struct FiveGSTmsi
130 AmfPointer_t amfPointer;
131 FiveGTmsi_t fiveGTmsi;
134 typedef UINT64 AmfUeNgapId_t;
136 #define EMERGENCY_SERVICE_TARGET_CN_PRESENT (1 << 0)
137 typedef struct emergFbInd
140 EmergencyFallbackRequestIndicator_e emergencyFallbackRequestIndicator;
141 EmergencyServiceTargetCN_e emergencyServiceTargetCn; /* OPTIONAL */
144 typedef struct ueRadioCapaForPagOfNr
147 UINT8 buffer[MAX_SIZE_OF_OCTET_STRING];
148 }UeRadioCapaForPagOfNr_t;
150 #define UE_RADIO_CAPABILITY_PAGING_NR_PRESENT (1 << 0)
151 #define UE_RADIO_CAPABILITY_PAGING_EUTRA_PRESENT (1 << 1)
152 typedef struct UeRadioCapaForPag
155 UeRadioCapaForPagOfNr_t ueRadioCapabilityForPagingOfNr; /* OPTIONAL */
156 UeRadioCapaForPagOfNr_t ueRadioCapabilityForPagingOfEutra; /* OPTIONAL */
157 } UeRadioCapaForPag_t;
159 typedef struct UeRadioCapability
162 UINT8 buffer[MAX_SIZE_OF_OCTET_STRING];
163 }UeRadioCapability_t;
165 typedef struct ngRanTraceId
168 UINT8 buffer[MAX_SIZE_OF_OCTET_STRING];
171 typedef UINT8 InterToTrace_t;
173 typedef struct traceActiv
175 NgRanTraceId_t ngRanTraceId;
176 InterToTrace_t interfacesToTrace;
178 TransLayerAddr_t traceCollectionEntityIpAddress;
181 typedef struct secuKey
183 UINT8 securityKey[32];
188 UINT8 nextHopChainingCount;
191 typedef UINT8 RatRestrInfo_t;
193 typedef struct ratRestrItem
196 RatRestrInfo_t ratRestrInfo;
199 typedef struct mobiRestrInfo
203 PlmnId_t ePlmnId[ngap_maxnoofEPLMNs];
204 UINT8 ratRestrictNum;
205 RatRestrItem_t ratRestrictItem[ngap_maxnoofEPLMNsPlusOne];
206 UINT8 forbiddenAreaNum;
207 PlmnId_t forbPlmnId[ngap_maxnoofEPLMNsPlusOne];
208 UINT16 forbTacNum[ngap_maxnoofEPLMNsPlusOne];
209 CuTac_t forbTac[ngap_maxnoofEPLMNsPlusOne][ngap_maxnoofForbTACs];
211 PlmnId_t servPlmnId[ngap_maxnoofEPLMNsPlusOne];
212 UINT8 allowTacNum[ngap_maxnoofEPLMNsPlusOne];
213 CuTac_t allowedTac[ngap_maxnoofEPLMNsPlusOne][ngap_maxnoofAllowedAreas];
214 UINT8 notAllowTacNum[ngap_maxnoofEPLMNsPlusOne];
215 CuTac_t notAllowedTac[ngap_maxnoofEPLMNsPlusOne][ngap_maxnoofAllowedAreas];
218 typedef struct ueSecurCapa
220 UINT16 nrEncryptionAlgorithms;
221 UINT16 nrIntegrityProtectionAlgorithms;
222 UINT16 eutraEncryptionAlgorithms;
223 UINT16 eutraIntegrityProtectionAlgorithms;
226 #define EXPECTED_ACTIVITY_PERIOD_PRESENT (1 << 0)
227 #define EXPECTED_IDLE_PERIOD_PRESENT (1 << 1)
228 #define SOURCEOF_UE_ACTIVITY_BEHAVIOUR_INFORMATION_PRESENT (1 << 2)
229 typedef struct expectedUeActivityBehaviour
232 INT64 expectedActivityPeriod; /* OPTIONAL */
233 INT64 expectedIdlePeriod; /* OPTIONAL */
234 SourceOfUEActivityBehaviourInformation_e sourceOfUeActivityBehaviourInformation; /* OPTIONAL */
235 } ExpectedUeActivityBehaviour_t;
237 #define EXPECTEDUEMOVINGTRAJECTORYITEM_TIME_STAYED_IN_CELL_PRESENT (1 << 0)
238 typedef struct expectedUeMovingTrajectoryItem
242 INT64 timeStayedInCell; /* OPTIONAL */
243 } ExpectedUeMovingTrajectoryItem_t;
245 #define EXPECTED_UE_ACTIVITY_BEHAVIOR_PRESENT (1 << 0)
246 #define EXPECTED_HO_INTERVAL_PRESENT (1 << 1)
247 #define EXPECTED_UE_MOBILITY_PRESENT (1 << 2)
251 ExpectedUeActivityBehaviour_t expectedUeActivityBehaviour;
252 INT64 expectedHoInterval;
253 INT64 expectedUeMobility;
254 UINT8 expectUeMovTrajectoryNum;
255 ExpectedUeMovingTrajectoryItem_t expectedUeMovingTrajectory[ngap_maxnoofCellsUEMovingTrajectory];
256 }ExpectUeBeHaviour_t;
258 #define CORE_ASSISTANCE_INFO_UE_SPECIFIC_DRX_PRESENT (1 << 0)
259 #define CORE_ASSISTANCE_INFO_MICO_MODE_INDICATION_PRESENT (1 << 1)
260 #define CORE_ASSISTANCE_INFO_EXPECT_UE_BEHAVIOUR_PRESENT (1 << 2)
261 typedef struct coreAssitInfo
264 UeIdIdxValue_t ueIdIdxValue;
266 UINT8 periodicRegistrationUpdateTimer;
267 INT64 micoModeIndication;
268 UINT8 inactiveTaiNum;
269 Tai_t inactiveTai[ngap_maxnoofTAIforInactive];
270 ExpectUeBeHaviour_t exceptUeBehaviour;
273 #define NOTIFICATION_CONTROL_PRESENT (1 << 0)
274 #define MAX_PACKET_LOSSRATE_DL_PRESENT (1 << 1)
275 #define MAX_PACKET_LOSSRATE_UL_PRESENT (1 << 2)
276 typedef struct gbrQosInfo
279 UINT64 maxFlowBitRateDL;
280 UINT64 maxFlowBitRateUL;
281 UINT64 guaranteedFlowBitRateDL;
282 UINT64 guaranteedFlowBitRateUL;
283 NotificationControl_e notificationControl; /* OPTIONAL */
284 INT64 maxPacketLossRateDL; /* OPTIONAL */
285 INT64 maxPacketLossRateUL; /* OPTIONAL */
288 #define GBR_QOS_INFORMATION_PRESENT (1 << 0)
289 #define REFLECTIVE_QOS_ATTRIBUTE_PRESENT (1 << 1)
290 #define ADDITIONAL_QOS_FLOW_INFORMATION_PRESENT (1 << 2)
291 typedef struct qosFlowLevelQosParam
294 QosCharact_t qosCharacteristics;
295 AllocAndRetenPriority_t allocationAndRetentionPriority;
296 GbrQosInfo_t gbrQosInformation; /* OPTIONAL */
297 ReflectiveQosAttribute_e reflectiveQosAttribute; /* OPTIONAL */
298 AddQosFlowInfo_e additionalQosFlowInformation; /* OPTIONAL */
299 } QosFlowLevelQosParam_t;
301 #define QOS_FLOW_SETUP_REQ_E_RAB_ID_PRESENT (1 << 0)
302 typedef struct qosFlowSetupReqItem
306 QosFlowLevelQosParam_t qosFlowLevelQosParameters;
307 INT64 eRabId; /* OPTIONAL */
308 } QosFlowSetupReqItem_t;
310 #define MAX_INTERITY_PROTECTED_DATARATE_PRESENT (1 << 0)
311 typedef struct securIndic
314 INT64 integrityProtectionIndication;
315 INT64 confidentialityProtectionIndication;
316 INT64 maxIntegrityProtectedDataRate; /* OPTIONAL */
325 #define PDU_SESSION_SETUP_REQ_TRANSFER_SESSION_AMBR_PRESENT (1 << 0)
326 #define PDU_SESSION_SETUP_REQ_TRANSFER_DATA_FORWARD_NOT_POSSIBLE_PRESENT (1 << 1)
327 #define PDU_SESSION_SETUP_REQ_TRANSFER_SECURITY_INDICATION_PRESENT (1 << 2)
328 #define PDU_SESSION_SETUP_REQ_TRANSFER_NET_WORK_INSTANCE_PRESENT (1 << 3)
333 NgapPduSessAmber_t sessAMBR;//Optional
334 UpTransLayerInfo_t ulNguUpTnlInfor;
335 UINT8 additionalUpTnlNum;
336 UpTransLayerInfo_t additionalUlNguUpTnlInfor[ngap_maxnoofMultiConnectivityMinusOne];
337 INT64 dataForwardingNotPossible;//Optional
338 INT64 pduSessionType;
339 SecurIndic_t securityIndication;//Optional
340 INT64 networkInstance;//Optional
341 UINT8 qosFlowSetupReqNum;// >= 1
342 QosFlowSetupReqItem_t qosFlowSetupRequestItems[ngap_maxnoofQosFlows];
343 }PduSessSetupReqTransfer_t;
345 #define PDU_SESSION_RESOURCE_SETUP_REQUEST_NAS_PDU_PRESENT (1 << 0)
346 typedef struct pduSessionSetupReq
350 NasPdu_t nasPdu;//Optional
352 PduSessSetupReqTransfer_t pduSetupReqTransfer;
353 }PduSessionSetupReq_t;
355 typedef struct recommRanforPag
358 /* AMFPagingTarget_PR */
359 AmfPgType_e amfPgType[ngap_maxnoofRecommendedRANNodes];
360 RecomRanGnbId_t gNBId[ngap_maxnoofRecommendedRANNodes];
361 Tai_t Tai[ngap_maxnoofRecommendedRANNodes];
364 #define RECOMMCELLITEM_TIME_STAYED_INCELL_PRESENT (1 << 0)
365 typedef struct recommCellItem
369 UINT64 timeStayedInCell; /* OPTIONAL */
372 typedef struct recommCellforPag
375 RecommCellItem_t cellItem[ngap_maxnoofRecommendedCells];
379 #define PAGING_ATTEMPT_INFO_NEXT_PAGING_AREA_SCOPE_PRESENT (1 << 0)
380 typedef struct pagingAttemptInfo
382 UINT8 pagingAttemptCount;
383 UINT8 intendNoOfPagingAttempt;
384 NextPagingAreaScope_e nextPagingAreaScope;//Optional
385 }PagingAttemptInfo_t;
387 #define ASSIST_DATA_FOR_PAGING_RECOMMAND_CELL_PRESENT (1 << 0)
388 #define ASSIST_DATA_FOR_PAGING_PAGING_ATTEMPT_INFO_PRESENT (1 << 1)
389 typedef struct assistDataForPaging
391 RecommCellforPag_t recommandCell;//Optinal
392 PagingAttemptInfo_t pagingAttemptInfo;//Optional
393 }AssistDataForPaging_t;
394 #define QOSFLOW_MAPPING_INDICATION_PRESENT (1 << 0)
395 typedef struct AssocQosFlowItem
399 QosFlowMapInd_e qosFlowMappingIndication; /* OPTIONAL */
400 } AssocQosFlowItem_t;
402 typedef struct qosFlowPerTnlInfo
404 UpTransLayerInfo_t upTransLayerInfo;
405 UINT8 assocQosFlowNum;
406 AssocQosFlowItem_t assocQosItem[ngap_maxnoofQosFlows];
407 }QosFlowPerTnlInfo_t;
409 typedef struct qosFlowIte
415 #define PDU_SESSION_SETUP_RSP_SECURITY_RESULT_PRESENT (1 << 0)
416 typedef struct pduSessSetupResp
420 QosFlowPerTnlInfo_t dlQosFlowTnlInfo;
421 UINT8 addDlQosFlowNum;
422 QosFlowPerTnlInfo_t addDlQosFlowTnlInfo[ngap_maxnoofMultiConnectivityMinusOne];
423 SecuResult_t securityResult;
424 UINT8 qosFlowFailNum;
425 QosFlowIte_t qosFlowFailtoSetup[ngap_maxnoofQosFlows];
428 typedef struct pduSessSetupFail
442 UINT8 timePeriodsNum;
443 Timestamp_t startTimeStamp[ngap_maxnoofTimePeriods];
444 Timestamp_t endTimeStamp[ngap_maxnoofTimePeriods];
445 UINT64 usageCountUl[ngap_maxnoofTimePeriods];
446 UINT64 usageConutDl[ngap_maxnoofTimePeriods];
452 VolumeTimedRpt_t sessTimedRpt;
459 VolumeTimedRpt_t flowTimedRpt;
460 }QosFlowUsageRptItem_t;
464 PduSessUsageRpt_t sessUsageRpt;
465 UINT8 qosFlowUsageRptNum;
466 QosFlowUsageRptItem_t qosFlowUsageRptItem;
467 }SecondRATUsageInfo_t;
469 #define PDU_SESSION_RESOURCE_ITEM_SECOND_RAT_USAGE_INFO_PRESENT (1 << 0)
473 SecondRATUsageInfo_t secondRatUsageInfo;
474 }PduSessResourceItem_t;
476 #define HO_REQUIRED_TRANSFER_DIRECT_FORWARD_PATH_AVAILABILITY_PRESENT (1 << 0)
480 DirectForwardPathAvailability_e directForwardPathAvailability;//Optional
481 }HoRequiredTransfer_t;
486 HoRequiredTransfer_t HoRequiredTransfer;
487 }HoRequiredPduSessResourcItem_t;
492 DataForwardAccepted_e dataForwardAccepted;
493 }QosFlowSetupRspItem_t;
497 UINT8 qosFlowFailNum;
498 QosFlowIte_t qosFlowFailtoSetup[ngap_maxnoofQosFlows];
499 }QosFlowSetupFailItem_t;
503 UpTransLayerInfo_t additionDlUpTnlInfo;
504 QosFlowSetupRspItem_t additionQosFlowSetupRsp;
505 UpTransLayerInfo_t additionDlForwardUpTnlInfo;
506 }HoAdditionDlUpTnlInfoItem_t;
508 #define DATA_FORWARD_RSP_DRB_DL_NGU_UP_TNL_INFO_PRESENT (1 << 0)
509 #define DATA_FORWARD_RSP_DRB_UL_NGU_UP_TNL_INFO_PRESENT (1 << 1)
514 UpTransLayerInfo_t dlNguUpTnlInfo;//Optional
515 UpTransLayerInfo_t ulNguUpTnlInfo;//Optional
516 }DataForwardRspDrb_t;
518 #define HO_REQUEST_ACK_TRANSFER_DL_FORWARD_UP_TNL_INFO_PRESENT (1 << 0)
519 #define HO_REQUEST_ACK_TRANSFER_SECURITY_RESULT_PRESENT (1 << 1)
522 UpTransLayerInfo_t dlNguUpTnlInfo;
523 UpTransLayerInfo_t dlForwardUpTnlInfo;//Optinal
524 SecuResult_t securityResult;//Optional
526 QosFlowSetupRspItem_t qosFlowSetupRspItem[ngap_maxnoofQosFlows];
527 UINT8 qosFlowFailNum;
528 QosFlowSetupFailItem_t qosFlowSetupFailItem[ngap_maxnoofQosFlows];
530 DataForwardRspDrb_t dataForwardRspDrbItem[ngap_maxnoofDRBs];
531 UINT8 HoAddDlUpTnlInfoNum;
532 HoAdditionDlUpTnlInfoItem_t HoAddDlUpTnlInfoItem[ngap_maxnoofMultiConnectivityMinusOne];
533 }HoRequestAckTransfer_t;
538 HoRequestAckTransfer_t HoRequestAckTransfer;
539 }HoRequestAckPduSessItem_t;
544 }HoRequestUnsuccTransfer_t;
549 HoRequestUnsuccTransfer_t HoRequestUnsuccTransfer;
550 }HoRequestFailPduSessItem_t;
552 #define HO_CMD_SUCC_TRANSFER_DATA_FORWARD_RSP_DRB_PRESENT (1 << 0)
555 UpTransLayerInfo_t dlNguUpTnlInfo;//Optional
557 UINT64 qosFlowIdItem[ngap_maxnoofQosFlows];
559 DataForwardRspDrb_t dataForwardRspDrbItem[ngap_maxnoofDRBs];
560 UINT8 addDlQosFlowNum;
561 QosFlowPerTnlInfo_t addDlQosFlowTnlInfo[ngap_maxnoofMultiConnectivityMinusOne];
562 }HoCmdSuccTransfer_t;
567 HoCmdSuccTransfer_t HoCmdSuccTransfer;
568 }HoCmdSuccPduSessResourceItem_t;
573 }HoCmdFailTransfer_t;
578 HoCmdFailTransfer_t HoCmdFailTranser;
579 }HoCmdFailPduSessResourcItem_t;
585 PduSessSetupReqTransfer_t HoRequestTransfer;
586 }HoRequestPduSessResourceItem_t;
587 #define PATH_SWITCH_REQ_TRANSFER_DL_NGU_TNL_INFO_REUSED_PRESENT (1 << 0)
588 #define PATH_SWITCH_REQ_TRANSFER_USER_PLANE_SECUR_INFO_PRESENT (1 << 1)
591 UpTransLayerInfo_t dlNguUpTnlInfo;
592 DlNguTnlInfoReused_e dlNguUpTnlInfoReused;//Optional
593 UserPlaneSecurInfo_t userPlaneSecurInfo;//Optional
595 UINT64 qosFlowIdItem[ngap_maxnoofQosFlows];
596 UINT8 addDlQosFlowNum;
597 QosFlowPerTnlInfo_t addDlQosFlowTnlInfo[ngap_maxnoofMultiConnectivityMinusOne];
598 }PathSwitchReqTransfer_t;
603 PathSwitchReqTransfer_t pathSwitchReqTransfer;
604 }PathSwitchReqPduSessItem_t;
609 }PathSwitchReqFailTransfer_t;
614 PathSwitchReqFailTransfer_t pathSwitchReqFailTransfer;
615 }PathSwitchReqFailPduSessItem_t;
617 #define PATH_SWITCH_REQ_ACK_TRANSFER_UL_NGU_UP_TNL_INFO_PRESENT (1 << 0)
618 #define PATH_SWITCH_REQ_ACK_TRANSFER_SECURITY_IND_PRESENT (1 << 1)
621 UpTransLayerInfo_t ulNguUpTnlInfo;//Optional
622 SecurIndic_t securityIndication;//Optional
623 UINT8 upTransLayerInfoPairItemNum;
624 UpTransLayerInfo_t ulNguUpTnlInfoItem[ngap_maxnoofMultiConnectivityMinusOne];
625 UpTransLayerInfo_t dlNguUpTnlInfoItem[ngap_maxnoofMultiConnectivityMinusOne];
626 }PathSwitchReqAckTransfer_t;
631 PathSwitchReqAckTransfer_t pathSwitchReqAckTransfer;
632 }PathSwitchReqAckPduSessItem_t;
637 }PathSwitchReqUnsuccTransfer_t;
643 PathSwitchReqUnsuccTransfer_t pathSwitchReqUnsuccTransfer;
644 }PathSwitchRlsPduSessItem_t;
649 IpAddress_t amfAddr[NGAP_MAX_AMF_NUM];
650 BroadPlmns_t broadPlmn[NGAP_MAX_AMF_NUM];
663 Tai_t areaIntTaiItem[ngap_maxnoofTAIinAoI];
664 UINT8 areaIntCellNum;
665 CuNrCgi_t areaIntCgiItem[ngap_maxnoofCellinAoI];
666 UINT8 areaIntRanNodeIdNum;
667 GlobalRanNodeId_t areaIntRanNodeIdItem[ngap_maxnoofRANNodeinAoI];
672 UINT8 areaIntItemNum;
673 AreaInterestItem_t areaIntItem[ngap_maxnoofAoI];
674 UINT8 locaReportReferenceId;
675 }AreaInterestListItem_t;
679 EventType_e eventType;
680 ReportArea_e reportArea;
681 UINT8 areaIntListItemNum;
682 AreaInterestListItem_t areaIntListItem[ngap_maxnoofAoI];
683 UINT8 locaReportReferenceIdTobeCancel;//Condition
684 }LocationReportRequestType_t;
686 /**********************************************************************************
687 ***********************************************************************************
688 *********** CUC --> NGAP MESSAGE STRUCTURE *************************
689 ***********************************************************************************
690 ***********************************************************************************/
692 /* Register Request ( NG Setup Request )*/
693 typedef struct ngapRegistergNBReq
699 SupportTas_t supportTa;
700 PagingDRX_e ranDefaPagDrx;
702 UERetentionInformation_e ueRetenInfo;
703 RegisterAmf_t registerAmfInfo;
704 }NgapRegistergNBReq_t;
706 /* First NAS Request (Initial Ue Message)*/
707 #define FIRST_UL_NAS_AMF_REGISTER_PRESENT (1 << 0)
708 #define FIRST_UL_NAS_FIVEG_STMSI_PRESENT (1 << 1)
709 #define FIRST_UL_NAS_LOCATION_INFO_TIMESTAMP_PRESENT (1 << 2)
710 #define FIRST_UL_NAS_UE_CONTEXT_REQ_PRESENT (1 << 3)
711 typedef struct ngapFirstNasReq
718 guamiType_e guamiType;
720 /* e_RRCEstablishmentCause */
721 RrcEstablishmentCause_e establishmentCause;
724 Timestamp_t timeStamp;
725 FiveGSTmsi_t fiveGSTmsi;
726 ueContextRequest_e ueReq;
727 SliceList_t ranAllowNssai;
730 /* Ue Radio Capability Check Response */
731 typedef struct ngapUeRadioCapaCheckRsp
735 AmfUeNgapId_t amfUeNgapId;
736 IMSVoiceSupportInd_e IMSVoiceSupportInd;
737 }NgapUeRadioCapaCheckRsp_t;
739 /* UL NAS Transfer */
740 #define UL_NAS_LOCATION_INFO_TIMESTAMP_PRESENT (1 << 0)
741 typedef struct ngapULNas
747 AmfUeNgapId_t amfUeNgapId;
751 Timestamp_t timeStamp;
754 /*Ue Radio Capability Information Indication*/
755 #define UE_RADIO_CAPABILITY_PAGING_PRESENT (1 << 0)
756 typedef struct ngapUeRadioCapaInfoIndication
761 AmfUeNgapId_t amfUeNgapId;
762 UeRadioCapability_t ueRadioCapability;
763 UeRadioCapaForPag_t ueRadioCapabilityForPag;/* optional */
764 }NgapUeRadioCapaInfoIndication_t;
766 /* Initial Context Setup Response */
767 typedef struct ngapInitialContextSetupResp
770 AmfUeNgapId_t amfUeNgapId;
773 NgapCause_e failCause;
774 UINT16 pduSessSetRspNum;
775 PduSessSetupResp_t pduSessSetRspItem[NG_MAX_SESSION_NUM];
776 UINT16 pduSessSetFailNum;
777 PduSessSetupFail_t pduSessSetFailItem[NG_MAX_SESSION_NUM];
778 } NgapInitialContextSetupResp_t;
780 /* PDU Session Resource Setup Response */
781 typedef struct ngapPduSessSetupRsp
784 AmfUeNgapId_t amfUeNgapId;
786 UINT16 pduSessSetRspNum;
787 PduSessSetupResp_t pduSessSetRspItem[NG_MAX_SESSION_NUM];
788 UINT16 pduSessSetFailNum;
789 PduSessSetupFail_t pduSessSetFailItem[NG_MAX_SESSION_NUM];
790 }NgapPduSessSetupRsp_t;
792 /* Ue Context Release Request */
793 typedef struct ngapUeCxtReleaseReq
797 AmfUeNgapId_t amfUeNgapId;
799 UINT16 rlsSessId[NG_MAX_SESSION_NUM];
801 } NgapUeCxtReleaseReq_t;
803 /* Ue Context Release Complete */
804 #define UE_CONTEXT_RELEASE_COMPLETE_USERLOCATION_TIMESTAMP_PRESENT (1 << 0)
805 typedef struct ngapUeReleaseComplete
810 AmfUeNgapId_t amfUeNgapId;
815 Timestamp_t timeStamp;
816 RecommCellforPag_t recomCellInfo;
817 RecommRanforPag_t recomRanInfo;
819 PduSessResourceItem_t sessResourceItem[NG_MAX_SESSION_NUM];
820 UINT8 allSessRlsFlag;
821 } NgapUeReleaseComplete_t;
823 #define HANDOVER_REQUIRED_DIRECT_FORWARDING_PATH_AVAILABILITY_PRESENT (1 << 0)
824 typedef struct ngapHandoverRequired
829 AmfUeNgapId_t amfUeNgapId;
830 HandoverType_e handoverType;
835 DirectForwardPathAvailability_e directForwardPathAvailability;//Optional
837 HoRequiredPduSessResourcItem_t sessResourceItem[NG_MAX_SESSION_NUM];
838 }NgapHandoverRequired_t;
840 typedef struct ngapHandoverRequestAcknowledge
844 AmfUeNgapId_t amfUeNgapId;
846 HoRequestAckPduSessItem_t HoRequestAckSessItem[NG_MAX_SESSION_NUM];
848 HoRequestFailPduSessItem_t HoRequestFailSessItem[NG_MAX_SESSION_NUM];
849 }NgapHandoverRequestAcknowledge_t;
850 typedef struct ngapHandoverFailure
853 AmfUeNgapId_t amfUeNgapId;
855 }NgapHandoverFailure_t;
856 #define HANDOVER_NOTIFY_USERLOCATION_TIMESTAMP_PRESENT (1 << 0)
857 typedef struct ngapHandoverNotify
861 AmfUeNgapId_t amfUeNgapId;
865 Timestamp_t timeStamp;
866 }NgapHandoverNotify_t;
867 /* Handover Cancel */
868 typedef struct ngapHandoverCancel
872 AmfUeNgapId_t amfUeNgapId;
874 }NgapHandoverCancel_t;
876 /* Path Switch Request */
877 #define PATH_SWITCH_REQUEST_USERLOCATION_TIMESTAMP_PRESENT (1 << 0)
878 typedef struct ngapPathSwitchRequest
883 AmfUeNgapId_t sourceAmfUeNgapId;
887 Timestamp_t timeStamp;
888 UeSecurCapa_t ueSecurityCapability;
890 PathSwitchReqPduSessItem_t switchPduSessItem[NG_MAX_SESSION_NUM];
891 UINT8 setupFailSessNum;
892 PathSwitchReqFailPduSessItem_t setupFailPduSessItem[NG_MAX_SESSION_NUM];
893 }NgapPathSwitchRequest_t;
895 /* RRC Inactive Transition Report */
896 #define RRC_INACTIVE_TRANSITION_REPORT_USERLOCATION_TIMESTAMP_PRESENT (1 << 0)
897 typedef struct ngapRrcInactiveTransitionReport
901 AmfUeNgapId_t amfUeNgapId;
906 Timestamp_t timeStamp;
907 }NgapRrcInactiveTransitionReport_t;
908 /**********************************************************************************
909 ***********************************************************************************
910 *************** NGAP --> CUC MESSAGE STRUCTURE ********************
911 ***********************************************************************************
912 ***********************************************************************************/
913 /* Register Confirm (NG Setup Response)*/
914 typedef struct ngapRegistergNBCnf
917 UINT8 numAmf; /* Number of AMF connected */
918 AmfRegistResult_t registRet[NGAP_MAX_AMF_NUM];
919 } NgapRegistergNBCnf_t;
921 /* Deregister Indication */
922 typedef struct ngapDeregisteredgNBInd_t
924 UINT8 numAmf; /* Number of AMF connected */
925 } NgapDeregisteredgNBInd_t;
927 #define UE_RADIO_CAPA_CHECK_REQ_UE_RADIO_CAPA_PRESENT (1 << 0)
928 /* Ue Radio Capability Check Request */
929 typedef struct ngapUeRadioCapaCheckReq
933 AmfUeNgapId_t amfUeNgapId;
935 UeRadioCapability_t ueRadioCapability;//Optional
936 }NgapUeRadioCapaCheckReq_t;
938 /* DL NAS Transfer */
939 #define DL_NAS_TRANSFER_OLD_AMF_NAME_PRESENT (1 << 0)
940 #define DL_NAS_TRANSFER_RAN_PAGING_PRIORITY_PRESENT (1 << 1)
941 #define DL_NAS_TRANSFER_MOBILITY_RESTRICTION_PRESENT (1 << 2)
942 #define DL_NAS_TRANSFER_INDEX_TO_RFSP_PRESENT (1 << 3)
943 #define DL_NAS_TRANSFER_UE_AMBR_PRESENT (1 << 4)
944 #define DL_NAS_TRANSFER_SNSSAI_PRESENT (1 << 5)
945 typedef struct ngapDLNas
949 AmfUeNgapId_t amfUeNgapId;
951 AmfName_t oldAmfName;
952 INT64 ranPagPriority;
954 MobiRestrInfo_t mobiRestrictInfo;
958 SliceList_t amfSlice;
961 /* Initial Context Setup Request */
962 #define INITIAL_CXT_SETUP_REQ_OLD_AMFNAME_PRESENT (1 << 0)
963 #define INITIAL_CXT_SETUP_REQ_UE_AGGREGATE_MAX_BITRATE_PRESENT (1 << 1)
964 #define INITIAL_CXT_SETUP_REQ_CORE_INFO_PRESENT (1 << 2)
965 #define INITIAL_CXT_SETUP_REQ_PDU_SESSION_RESOURCE_SETUPLIST_CXTREQ_PRESENT (1 << 3)
966 #define INITIAL_CXT_SETUP_REQ_TRACE_ACTIVATION_PRESENT (1 << 4)
967 #define INITIAL_CXT_SETUP_REQ_MOBI_RESTRICT_PRESENT (1 << 5)
968 #define INITIAL_CXT_SETUP_REQ_UE_RADIO_CAPA_PRESENT (1 << 6)
969 #define INITIAL_CXT_SETUP_REQ_IDX_RFSP_PRESENT (1 << 7)
970 #define INITIAL_CXT_SETUP_REQ_MASK_IMEISV_PRESENT (1 << 8)
971 #define INITIAL_CXT_SETUP_REQ_NASPDU_PRESENT (1 << 9)
972 #define INITIAL_CXT_SETUP_REQ_EMERGENCY_FB_PRESENT (1 << 10)
973 #define INITIAL_CXT_SETUP_REQ_INACT_TRANS_RPT_REQ_PRESENT (1 << 11)
974 #define INITIAL_CXT_SETUP_REQ_RADIO_CAPA_FOR_PAG_PRESENT (1 << 12)
975 #define INITIAL_CXT_SETUP_REQ_REDIRECTION_FOR_VOICE_EPS_FB_PRESENT (1 << 13)
976 typedef struct ngapInitialContextSetupReq
980 AmfUeNgapId_t amfUeNgapId;
982 AmfName_t oldAmfName;//Optional
983 NgapUeAmber_t ueAMBR;//Optional
984 CoreAssitInfo_t coreNetAssistInfo;//Optional
986 UINT16 pduSessSetupNum;
987 PduSessionSetupReq_t pduSessSetReqItem[NG_MAX_SESSION_NUM];
988 SliceList_t amfSlice;
989 UeSecurCapa_t ueSecurityCapa;
990 SecuKey_t securityKey;
991 TraceActiv_t traceActivation;//Optional
992 MobiRestrInfo_t mobiRestrictInfo;//Optional
993 UeRadioCapability_t ueRadioCapability;//Optional
994 INT64 indexToRfsp;//Optional
995 MaskedImeiSv_t maskedImeisv;//Optional
996 NasPdu_t nasPdu;//Optional
997 EmergFbInd_t emergencyFallbackIndicator;//Optional
998 INT64 rrcInactiveTransitionReportRequest;//Optional
999 UeRadioCapaForPag_t ueRadioCapabilityForPag;//Optional
1000 INT64 redirectVoiceFb;//Optional
1001 }NgapInitialContextSetupReq_t;
1003 /* PDU Session Resource Setup Request */
1004 #define PDU_SESS_SETUP_REQ_RAN_PAGING_PRIORITY_PRESENT (1 << 0)
1005 #define PDU_SESS_SETUP_REQ_NAS_PDU_PRESENT (1 << 1)
1006 #define PDU_SESS_SETUP_REQ_UE_AMBR_PRESENT (1 << 2)
1008 typedef struct ngapPduSessSetupReq
1011 Instance_t instance;
1012 AmfUeNgapId_t amfUeNgapId;
1014 INT64 ranPagPriority;//Optional
1015 NasPdu_t nasPdu;//Optional
1016 UINT16 pduSessSetupNum;
1017 PduSessionSetupReq_t pduSessSetReqItem[NG_MAX_SESSION_NUM];
1018 UINT64 ueAMBRDl;//Optional
1019 UINT64 ueAMBRUl;//Optional
1020 }NgapPduSessSetupReq_t;
1022 /* Ue Context Release Command */
1023 typedef struct ngapUeReleaseCommand
1025 /* UE_NGAP_IDs_PR */
1026 Instance_t instance;
1027 NgapIdType_e ngapIdType;
1029 AmfUeNgapId_t amfUeNgapId;
1031 }NgapUeReleaseCommand_t;
1033 /* Handover Command */
1034 #define HANDOVER_COMMAND_NAS_SECURITY_PARAM_FROM_NGRAN_PRESENT (1 << 0)
1035 typedef struct ngapHandoverCommand
1038 Instance_t instance;
1039 AmfUeNgapId_t amfUeNgapId;
1041 HandoverType_e handoverType;
1043 HoCmdSuccPduSessResourceItem_t HoSessResourceItem[NG_MAX_SESSION_NUM];
1045 HoCmdFailPduSessResourcItem_t rlsSessResourceItem[NG_MAX_SESSION_NUM];
1046 }NgapHandoverCommand_t;
1048 /* Handover Preparation Failure*/
1049 typedef struct ngapHandoverPreparationFailure
1052 Instance_t instance;
1053 AmfUeNgapId_t amfUeNgapId;
1056 }NgapHandoverPreparationFailure_t;
1058 /* Handover Request */
1059 #define HANDOVER_REQUEST_CORE_ASSIST_INFO_PRESENT (1 << 0)
1060 #define HANDOVER_REQUEST_NEW_SECURITY_CTX_IND_PRESENT (1 << 1)
1061 #define HANDOVER_REQUEST_TRACE_ACTIVATION_PRESENT (1 << 2)
1062 #define HANDOVER_REQUEST_MASKED_IMEISV_PRESENT (1 << 3)
1063 #define HANDOVER_REQUEST_MOBILITY_RESTRICTION_INFO_PRESENT (1 << 4)
1064 #define HANDOVER_REQUEST_LOCATION_REPORT_REQUEST_TYPE_PRESENT (1 << 5)
1065 #define HANDOVER_REQUEST_RRC_INACTIVE_TRANS_REPORT_REQUEST_PRESNET (1 << 6)
1066 #define HANDOVER_REQUEST_REDIRECT_VOICE_FB_PRESNET (1 << 7)
1067 typedef struct ngapHandoverRequest
1070 Instance_t instance;
1071 AmfUeNgapId_t amfUeNgapId;
1072 HandoverType_e handoverType;
1074 NgapUeAmber_t ueAMBR;
1075 CoreAssitInfo_t coreNetAssistInfo;//Optional
1076 UeSecurCapa_t ueSecurityCapability;
1077 SecurityCtx_t securityContext;
1078 NewSecurityCtxInd_e newSecurityContextInd;//Optional
1081 HoRequestPduSessResourceItem_t HoRequestSessResourceItem[NG_MAX_SESSION_NUM];
1082 SliceList_t amfSlice;
1083 TraceActiv_t traceActivation;//Optional
1084 MaskedImeiSv_t maskedImeisv;//Optional
1085 MobiRestrInfo_t mobiRestrictInfo;//Optional
1086 LocationReportRequestType_t locaReportReqType;//Optional
1087 INT64 rrcInactiveTransitionReportRequest;//Optional
1089 INT64 redirectVoiceFb;//Optional
1090 }NgapHandoverRequest_t;
1092 /* Handover Cancel Acknowledge */
1093 typedef struct ngapHandoverCancelAcknowledge
1095 Instance_t instance;
1096 AmfUeNgapId_t amfUeNgapId;
1098 }NgapHandoverCancelAcknowledge_t;
1101 #define PAGING_PAGING_DRX_PRESENT (1 << 0)
1102 #define PAGING_PAGING_PRIORITY_PRESENT (1 << 1)
1103 #define PAGING_UE_RADIO_CAPABILITY_FOR_PAGING_PRESENT (1 << 2)
1104 #define PAGING_PAGING_ORIGIN_PRESENT (1 << 3)
1105 #define PAGING_ASSIST_DATA_FOR_PAGING (1 << 4)
1106 typedef struct ngapPaging
1108 FiveGSTmsi_t fiveGSTmsi;
1109 PagingDRX_e pagingDrx;//Optional
1110 UINT8 taiForPagingNum;
1111 Tai_t taiForPagingItem[ngap_maxnoofTAIforPaging];
1112 PagingPriority_e pagingPriority;//Optional
1113 UeRadioCapaForPag_t ueRadioCapabilityForPaging;//Optional
1114 PagingOrigin_e pagingOrigin;//Optional
1115 AssistDataForPaging_t assistDataForPaging;//Optional
1118 /* Path Switch Request Acknowledge */
1119 #define PATH_SWITCH_REQUEST_ACK_UE_SECURITY_CAPABILITY_PRESENT (1 << 0)
1120 #define PATH_SWITCH_REQUEST_ACK_NEW_SECURITY_CTX_IND_PRESENT (1 << 1)
1121 #define PATH_SWITCH_REQUEST_ACK_CORE_NETWORK_ASSIST_INFO_PRESENT (1 << 2)
1122 #define PATH_SWITCH_REQUEST_ACK_RRC_INACTIVE_TRANSITION_REPORT_REQUEST_PRESENT (1 << 3)
1123 #define PATH_SWITCH_REQUEST_ACK_REDIRECT_VOICE_FB_PRESENT (1 << 4)
1124 typedef struct ngapPathSwitchRequestAcknowledge
1127 Instance_t instance;
1128 AmfUeNgapId_t amfUeNgapId;
1130 UeSecurCapa_t ueSecurityCapability;//optional
1131 SecurityCtx_t securityContext;
1132 NewSecurityCtxInd_e newSecurCtxInd;//optional
1133 UINT8 switchSessNum;
1134 PathSwitchReqAckPduSessItem_t switchPduSessItem[NG_MAX_SESSION_NUM];
1136 PathSwitchRlsPduSessItem_t rlsPduSessItem[NG_MAX_SESSION_NUM];
1138 SNssai_t SNssaiItem[ngap_maxnoofAllowedS_NSSAIs];
1139 CoreAssitInfo_t coreNetworkAssitInfo;//optional
1140 INT64 rrcInactiveTransitionReportRequest;//Optional
1141 INT64 redirectVoiceFb;//Optional
1142 }NgapPathSwitchRequestAcknowledge_t;
1144 /* Path Switch Request Failure */
1145 typedef struct ngapPathSwitchRequestFailure
1147 Instance_t instance;
1148 AmfUeNgapId_t amfUeNgapId;
1151 PathSwitchRlsPduSessItem_t rlsPduSessItem[NG_MAX_SESSION_NUM];
1152 }NgapPathSwitchRequestFailure_t;
1153 /**********************************************************************************
1154 ***********************************************************************************
1155 ***************** CUC <--> E1AP ACCORDING TO STRUCTURE **************
1156 ***********************************************************************************
1157 ***********************************************************************************/
1158 #define MAX_LENGTH_GNBCUCP_NAME 150
1160 typedef struct gnbCucpName
1162 char gnbCucpName[MAX_LENGTH_GNBCUCP_NAME];
1165 #define SECURITY_ALGORITHM_INTERGRITY_PROTECTION_ALGORITHM (1 << 0)
1169 CipAlgorithm_e cipheringAlgorithm;
1170 IpAlgorithm_e integrityProtectionAlgorithm ;/* OPTIONAL */
1176 UINT8 buffer[MAX_SIZE_OF_OCTET_STRING];
1182 UINT8 buffer[MAX_SIZE_OF_OCTET_STRING];
1183 }IntegrityProtectKey_t;
1185 #define USER_PLANE_SECURITY_KEY_INTERGRITYPROTECTIONKEY_PRESENT (1 << 0)
1189 EncrypTionKey_t encryptionKey;
1190 IntegrityProtectKey_t integrityProtectionKey;/* OPTIONAL */
1195 SecuAlgorithm_t secuAlgorithm;
1196 UpSecuritykey_t upSecukey;
1199 #define GBR_QOS_FLOW_INFO_MAX_PACKET_LOSSRATE_DOWNLINK_PRESENT (1 << 0)
1200 #define GBR_QOS_FLOW_INFO_MAX_PACKET_LOSSRATE_UPLINK_PRESENT (1 << 1)
1201 typedef struct gbrQoSFlowInformation
1204 UINT64 maxFlowBitRateDownlink;
1205 UINT64 maxFlowBitRateUplink;
1206 UINT64 guaranteedFlowBitRateDownlink;
1207 UINT64 guaranteedFlowBitRateUplink;
1208 UINT64 maxPacketLossRateDownlink;/* OPTIONAL */
1209 UINT64 maxPacketLossRateUplink;/* OPTIONAL */
1210 } GBRQoSFlowInformation_t;
1212 #define QOS_FLOW_LEVEL_PARA_GBR_QOS_FLOW_INFO_PRESENT (1 << 0)
1213 #define QOS_FLOW_LEVEL_PARA_REFLECTIVE_QOS_ATTRIBUTE_PRESENT (1 << 1)
1214 #define QOS_FLOW_LEVEL_PARA_ADDITIONAL_QOS_FLOW_INFO_PRESENT (1 << 2)
1215 #define QOS_FLOW_LEVEL_PARA_PAGING_POLICY_INDICATOR_PRESENT (1 << 3)
1216 #define QOS_FLOW_LEVEL_PARA_RDI_PRESENT (1 << 4)
1220 /* QoS_Characteristics_PR */
1221 QosCharact_t qosCharacter;
1222 AllocAndRetenPriority_t ngRanAllAndRetentionPriority;
1223 GBRQoSFlowInformation_t gbrQoSFlowInformation;/* OPTIONAL */
1224 /* e_ReflectiveQosAttribute */
1225 ReflectiveQosAttribute_e reflectiveQosAttribute;/* OPTIONAL */
1226 /* e_AdditionalQosFlowInformation */
1227 AddQosFlowInfo_e addiQosFlowInfo;/* OPTIONAL */
1228 INT64 pagingPolicyInd;/* OPTIONAL */
1229 RDI_e rDI;/* OPTIONAL */
1230 }QosFlowLevelQosPar_t;
1232 #define QOS_FLOW_QOS_ITEM_QOS_FLOW_MAP_INDICATION_PRESENT (1 << 0)
1236 INT64 qosFlowIdentifier;
1237 QosFlowLevelQosPar_t qosFlowLevelQosPar;
1238 /* e_QoS_Flow_Mapping_Indication */
1239 QosFlowMapInd_e qosFlowMapInd;/* OPTIONAL */
1242 #define QOS_FLOW_ITEM_QOS_FLOW_MAP_INDICATION_PRESENT (1 << 0)
1243 typedef struct qoSFlowItem
1245 long qosFlowIdentifier;
1248 typedef struct qosFlowList
1250 UINT8 qosFlowItemNum;
1251 QoSFlowItem_t qosFlowItem[e1ap_maxnoofQoSFlows];
1254 typedef struct qosFlowMap
1258 UINT8 qosFlowMapFlag;
1259 /* e_QoS_Flow_Mapping_Indication */
1260 QosFlowMapInd_e qosFlowMapInd;
1263 #define QOS_FLOW_MAP_IND_PRESENT (1 << 0)
1264 typedef struct qosFlowMapItem
1267 UINT8 qosFlowIdentifier;
1268 QosFlowMapInd_e qosFlowMappingInd;/* OPTIONAL */
1271 typedef struct qosFlowMapList
1273 UINT8 qosFlowMapItemNum;
1274 QosFlowMapItem_t qosFlowMapItem[e1ap_maxnoofQoSFlows];
1277 #define DATA_FORWARDIGN_INFO_REQ_QOS_FLOWS_FORWARD_TUNNELS_PRESENT (1 << 0)
1281 /* e_Data_Forwarding_Request */
1282 DataForwardReq_e dataForwardingRequest;
1283 QosFlowMapList_t qosFlowForwardTunnelList;/* OPTIONAL */
1286 #define CELL_GROUP_ITEM_UL_CONFIGURATION_PRESENT (1 << 0)
1287 #define CELL_GROUP_ITEM_DL_TX_STOP_PRESENT (1 << 1)
1288 #define CELL_GROUP_ITEM_RAT_TYPE_PRESENT (1 << 2)
1289 typedef struct cellGroupItem
1293 /* e_UL_Configuration */
1294 UlConfig_e ulConfig;/* OPTIONAL */
1296 DlTXStop_e dlTxStop;/* OPTIONAL */
1298 RatType_e ratType;/* OPTIONAL */
1301 typedef struct cellGroupInformation
1304 CellGroupItem_t cellGroupItem[e1ap_maxnoofCellGroups];
1305 }CellGroupInformation_t;
1307 typedef struct flowMappingInformation
1309 QoSFlowList_t qosFlowList;
1310 }FlowMappingInformation_t;
1312 #define ROHC_CONTINUE_ROHC_PRESENT (1 << 0)
1318 /* e_ROHC__continueROHC */
1319 RohcContinueRohc_e continueRohc;/* OPTIONAL */
1324 /* ROHC_Parameters_PR */
1325 RohcParaPR_e rohcType;
1330 #define PDCP_CONFIGURATION_ROHC_PARA_PRESENT (1 << 0)
1331 #define PDCP_CONFIGURATION_REORDERING_TIMER_PRESENT (1 << 1)
1332 #define PDCP_CONFIGURATION_DISCARD_TIMER_PRESENT (1 << 2)
1333 #define PDCP_CONFIGURATION_UL_DATA_SPLIT_THRESHOLD_PRESENT (1 << 3)
1334 #define PDCP_CONFIGURATION_PDCP_DUPLICATION_PRESENT (1 << 4)
1335 #define PDCP_CONFIGURATION_PDCP_REESTABLISHMENT_PRESENT (1 << 5)
1336 #define PDCP_CONFIGURATION_PDCP_DATA_RECOVERY_PRESENT (1 << 6)
1337 #define PDCP_CONFIGURATION_DUPLICATION_ACTIVATION_PRESENT (1 << 7)
1338 #define PDCP_CONFIGURATION_OUT_OF_ORDER_DELIVERY_PRESENT (1 << 8)
1339 typedef struct pdcpConfiguration
1342 /* e_PDCP_SN_Size */
1343 PdcpSNSize_e pdcpSNSizeUl;
1344 PdcpSNSize_e pdcpSNSizeDl;
1346 CuRlcMode_e rlcMode;
1347 RohcPara_t rohcPara;/* OPTIONAL */
1348 /* e_T_Reordering */
1349 TReordering_e reorderTimer;/* OPTIONAL */
1350 /* e_DiscardTimer */
1351 DiscardTimer_e discadTimer;/* OPTIONAL */
1352 /* e_ULDataSplitThreshold */
1353 UlDataSplitThreshold_e ulDataSplitThreshold;/* OPTIONAL */
1354 /* e_PDCP_Duplication */
1355 PdcpDuplication_e pdcpDuplication;/* OPTIONAL */
1356 /* e_PDCP_Reestablishment */
1357 PdcpReestablishment_e pdcpReestablishment;/* OPTIONAL */
1358 /* e_PDCP_DataRecovery */
1359 PdcpDataRecovery_e pdcpDataRecovery;/* OPTIONAL */
1360 /* e_Duplication_Activation */
1361 DuplicationActivation_e duplicationAct;/* OPTIONAL */
1362 /* e_OutOfOrderDelivery */
1363 OutOfOrderDelivery_e outofOrderDelivery;/* OPTIONAL */
1364 }PDCPConfiguration_t;
1369 DefaultDRB_e defaultDrbInd;
1370 /* e_SDAP_Header_UL */
1371 SdapHeader_e sdapUlHeaderInd;
1372 /* e_SDAP_Header_DL */
1373 SdapHeader_e sdapDlHeaderInd;
1379 QoSFlowQosItem_t qosFlowInfo[e1ap_maxnoofQoSFlows];
1388 #define PDCP_SN_STATUS_INFORMATION_RECEIVE_PDCP_SDU_STATUSPRESENT (1 << 0)
1392 UINT64 receivePdcpSDUBitNum;/* OPTIONAL */
1393 UINT64 receiveStatusofPdcpSDU[2048]; /*Length: 1 - 131072 */
1394 PdcpCount_t ulCountValue;
1395 }PdcpUlStatusInfo_t;
1399 PdcpCount_t dlCountValue;
1400 }PdcpDlStatusInfo_t;
1404 PdcpUlStatusInfo_t pdcpUlStatusInfo;
1405 PdcpDlStatusInfo_t pdcpDlStatusInfo;
1406 }PdcpSNStatusInfo_t;
1408 #define DRB_TO_SETUP_ITEM_DRB_DFI_REQUEST_PRESENT (1 << 0)
1409 #define DRB_TO_SETUP_ITEM_DRB_INACTIVITY_TIMER_PRESENT (1 << 1)
1410 #define DRB_TO_SETUP_ITEM_PDCP_SN_STATUS_INFO_PRESENT (1 << 2)
1411 typedef struct drbToSetupItem
1415 SdapCfg_t sdapConfig;
1416 PDCPConfiguration_t pdcpConfig;
1417 CellGroupInformation_t cellGroupInfo;
1418 QosFlowQosPara_t qosFlowSetup;
1419 DFIRequest_t drbDataForwardInfoReq;/* OPTIONAL */
1420 INT64 inactivityTimer;/* OPTIONAL */
1421 PdcpSNStatusInfo_t pdcpSNStatusInfo;/* OPTIONAL */
1424 typedef struct drbToSetupList
1426 UINT8 drbToSetupListNum;
1427 DRBToSetupItem_t drbToSetupItem[e1ap_maxnoofDRBs];
1430 #define PDU_SESSION_RESOURCE_SETUP_DL_AMBR_PRESENT (1 << 0)
1431 #define PDU_SESSION_RESOURCE_SETUP_DATA_FORWARD_INFORMATION_REQ_PRESENT (1 << 1)
1432 #define PDU_SESSION_RESOURCE_SETUP_INACTIVITY_TIMER_PRESENT (1 << 2)
1433 #define PDU_SESSION_RESOURCE_SETUP_DL_UP_TRANSPORT_LAYER_INFO_PRESENT (1 << 3)
1434 #define PDU_SESSION_RESOURCE_SETUP_NETWORK_INSTANCE_PRESENT (1 << 4)
1435 typedef struct pduSessionResourceToSetupItem
1438 UINT16 pduSessionId;
1439 PduSessType_e pduSessionType;
1441 SecuInd_t securityIndication;
1442 UINT64 pduSessionResourceDlAMBR;/* OPTIONAL */
1443 UpTransLayerInfo_t ulUpTNLInformation;
1444 DFIRequest_t dataForwardInfoReq;/* OPTIONAL */
1445 INT64 inactTimer;/* OPTIONAL */
1446 UpTransLayerInfo_t existAllocateNgDlUpTnlInfo;/* OPTIONAL */
1447 INT64 networkInstance;/* OPTIONAL */
1448 DRBToSetupList_t drbToSetupList;
1449 }PduSessionResourceToSetupItem_t;
1451 typedef struct pduSessionResourceToSetupList
1454 PduSessionResourceToSetupItem_t pduSessionResourceToSetupItem[e1ap_maxnoofPDUSessionResource];
1455 }PduSessionResourceToSetupList_t;
1457 typedef struct upParametersItem
1459 UpTransLayerInfo_t upTransLayerInfo;
1461 } UPParametersItem_t;
1463 typedef struct upParametersList
1466 UPParametersItem_t upParametersItem[e1ap_maxnoofUPParameters];
1467 } UPParametersList_t;
1469 #define DATA_FORWARDIGN_INFO_RSP_UL_DATA_FORWARD_PRESENT (1 << 0)
1470 #define DATA_FORWARDIGN_INFO_RSP_DL_DATA_FORWARD_PRESENT (1 << 1)
1471 typedef struct dFIResponse
1474 UpTransLayerInfo_t ulDataForwarding;/*optional*/
1475 UpTransLayerInfo_t dlDataForwarding;/*optional*/
1478 #define DRB_TO_MODIFY_ITEM_SDAP_CONFIG_PRESENT (1 << 0)
1479 #define DRB_TO_MODIFY_ITEM_PDCP_CONFIG_PRESENT (1 << 1)
1480 #define DRB_TO_MODIFY_ITEM_DRB_DATA_FORWARD_INFO_RSP_PRESENT (1 << 2)
1481 #define DRB_TO_MODIFY_ITEM_PDCP_SN_STATUS_REQ_PRESENT (1 << 3)
1482 #define DRB_TO_MODIFY_ITEM_PDCP_SN_STATUS_INFO_PRESENT (1 << 4)
1483 #define DRB_TO_MODIFY_ITEM_DL_UP_PARA_PRESENT (1 << 5)
1484 #define DRB_TO_MODIFY_ITEM_CELL_GROUP_TO_ADD_PRESENT (1 << 6)
1485 #define DRB_TO_MODIFY_ITEM_CELL_GROUP_TO_MODIFY_PRESENT (1 << 7)
1486 #define DRB_TO_MODIFY_ITEM_CELL_GROUP_TO_REMOVE_PRESENT (1 << 8)
1487 #define DRB_TO_MODIFY_ITEM_FLOW_MAPPING_INFO_PRESENT (1 << 9)
1488 #define DRB_TO_MODIFY_ITEM_DRB_INACTIVITY_TIMER_PRESENT (1 << 10)
1489 typedef struct drbToModifyItem
1493 SdapCfg_t sdapConfig;/* OPTIONAL */
1494 PDCPConfiguration_t pdcpConfig;/* OPTIONAL */
1495 DFIResponse_t drbDataForwardInfoRsp;/* OPTIONAL */
1496 PdcpSNStatusRequest_e pdcpSNStatusReq;/* OPTIONAL */
1497 PdcpSNStatusInfo_t pdcpSNStatusInfo;/* OPTIONAL */
1498 UPParametersList_t dlUPParameters;/* OPTIONAL */
1499 CellGroupInformation_t cellGroupToAdd;/* OPTIONAL */
1500 CellGroupInformation_t cellGroupToModify;/* OPTIONAL */
1501 CellGroupInformation_t cellGroupToRemove;/* OPTIONAL */
1502 QosFlowQosPara_t flowMappingInfo;/* OPTIONAL */
1503 INT64 drbInactTimer;/* OPTIONAL */
1506 typedef struct drbToModifyList
1508 UINT8 drbToModifyItemNum;
1509 DRBToModifyItem_t drbToModifyItem[e1ap_maxnoofDRBs];
1512 typedef struct drbToRemoveItem
1517 typedef struct drbToRemoveList
1519 UINT8 drbToRemovetemNum;
1520 DRBToRemoveItem_t drbToRemoveItem[e1ap_maxnoofDRBs];
1523 #define PDU_SESSION_RESOURCE_TO_MODIFY_SECURITY_INDICATION_PRESENT (1 << 0)
1524 #define PDU_SESSION_RESOURCE_TO_MODIFY_DL_AMBR_PRESENT (1 << 1)
1525 #define PDU_SESSION_RESOURCE_TO_MODIFY_UL_UP_TNL_INFO_PRESENT (1 << 2)
1526 #define PDU_SESSION_RESOURCE_TO_MODIFY_DATA_FORWARD_INFORMATION_REQ_PRESENT (1 << 3)
1527 #define PDU_SESSION_RESOURCE_TO_MODIFY_DATA_FORWARD_INFORMATION_RSP_PRESENT (1 << 4)
1528 #define PDU_SESSION_RESOURCE_TO_MODIFY_INACTIVITY_TIMER_PRESENT (1 << 5)
1529 #define PDU_SESSION_RESOURCE_TO_MODIFY_NETWORK_INSTANCE_PRESENT (1 << 6)
1530 #define PDU_SESSION_RESOURCE_TO_MODIFY_DRB_TO_SETUP_LIST_PRESENT (1 << 7)
1531 #define PDU_SESSION_RESOURCE_TO_MODIFY_DRB_TO_MODIFY_LIST_PRESENT (1 << 8)
1532 #define PDU_SESSION_RESOURCE_TO_MODIFY_DRB_TO_REMOVE_LIST_PRESENT (1 << 9)
1533 typedef struct pduSessionResourceToModifyItem
1537 SecuInd_t secuIndi;/* OPTIONAL */
1538 UINT64 pduSessionResourceDlAMBR;/* OPTIONAL */
1539 UpTransLayerInfo_t ngUlUpTnlInfo;/* OPTIONAL */
1540 DFIRequest_t pduSessionDataForwardInfoReq;/* OPTIONAL */
1541 DFIResponse_t pduSessionDataForwardInfoRsp;/* OPTIONAL */
1542 INT64 pduSessionInactTimer;/* OPTIONAL */
1543 INT64 networkInstance;/* OPTIONAL */
1544 DRBToSetupList_t drbToSetupList;/* OPTIONAL */
1545 DRBToModifyList_t drbToModifyList;/* OPTIONAL */
1546 DRBToRemoveList_t drbToRemoveList;/* OPTIONAL */
1547 }PduSessionResourceToModifyItem_t;
1549 typedef struct pduSessionResourceToModifylist
1551 UINT8 pduSessionResourceToModifyItemNum;
1552 PduSessionResourceToModifyItem_t pduSessionResourceToModifyItem[e1ap_maxnoofPDUSessionResource];
1553 }PduSessionResourceToModifyList_t;
1555 typedef struct cellGroupList
1557 UINT8 numCellGroupItem;
1558 CellGroupItem_t cellGroupItem[e1ap_maxnoofCellGroups];
1561 typedef struct pduSessionResourceToRemoveItem
1563 UINT16 pduSessionID;
1564 }PduSessionResourceToRemoveItem_t;
1566 typedef struct pduSessionResourceToRemoveList
1568 UINT8 pduSessionResourceToRemoveItemNum;
1569 PduSessionResourceToRemoveItem_t pduSessionResourceToRemoveItem[e1ap_maxnoofPDUSessionResource];
1570 }PduSessionResourceToRemoveList_t;
1572 typedef struct ieCriticalityDiagnostics
1574 Criticality_e ieCriticality;
1575 E1apProtocolIeId_e protocolIEId;
1576 ErrorType_e typeOfError;
1577 }E1IECriticalityDiagnostics_t;
1579 #define PROCEDURE_CODE_PRESENT (1 << 0)
1580 #define TRIGGER_MESSAGE_TYPE_PRESENT (1 << 1)
1581 #define PROCDURE_CRITICALITY_PRESENT (1 << 2)
1582 #define TRANSACTION_ID_PRESENT (1 << 3)
1583 #define IE_CRITICALITY_DIAGNOSTICS_PRESENT (1 << 4)
1584 typedef struct criticalitydiagnostics
1587 E1apProcCode_e procedureCode;/* OPTIONAL */
1588 TriggerMsg_e typeOfMessage;/* OPTIONAL */
1589 Criticality_e criticality;/* OPTIONAL */
1590 INT64 transactionID;/* OPTIONAL */
1591 UINT8 IECriticalityDiagnosticsNum;/* OPTIONAL */
1592 E1IECriticalityDiagnostics_t ieCriticalityDiagnostics[e1ap_maxnoofErrors];/* OPTIONAL */
1593 }E1Criticalitydiagnostics_t;
1595 typedef struct e1apCause
1597 E1apCausePr_e present;
1600 E1apCauseRadioNetwork_e e1apRadioNetwork;
1601 E1apCauseTransport_e e1apTransport;
1602 E1apCauseProtocol_e e1apProtocol;
1603 E1apCauseMisc_e e1apMisc;
1607 #define PART_E1_INTERFACE_GNBCUCPUEID_PRESENT (1 << 0)
1608 #define PART_E1_INTERFACE_GNBCUUPUEID_PRESENT (1 << 1)
1610 typedef struct partE1InterfaceItem
1613 UINT32 gnbCucpUeE1apId;/*optional*/
1614 UINT32 gnbCuupUeE1apId;/*optional*/
1615 }PartE1InterfaceItem_t;
1617 typedef struct partE1InterfaceList
1619 UINT8 PartE1InterfaceListNum;
1620 PartE1InterfaceItem_t partE1InterfaceItem[e1ap_maxnoofIndividualE1ConnectionsToReset];
1621 }PartE1InterfaceList_t;
1623 typedef struct e1apResetType
1625 E1apResetPr_e present;
1629 PartE1InterfaceList_t PartE1InterfaceList;
1633 /**********************************************************************************
1634 ***********************************************************************************
1635 ***************** CUC <--> E1AP MESSAGE STRUCTURE ******************
1636 ***********************************************************************************
1637 ***********************************************************************************/
1638 typedef struct ifmCucpE1apReset
1640 UINT64 transactionId;
1642 E1apResetType_t e1apResetType;
1643 } IfmCucpE1apReset_t;
1645 #define CUUPE1APRESETACKPARTE1INTERFACE (1 << 0)
1646 #define CUUPE1APRESETACKCRITICALDIAGNOSTICS (1 << 1)
1648 typedef struct ifmE1apResetAck
1651 UINT64 transactionId;
1652 PartE1InterfaceList_t PartE1InterfaceList;/*optional*/
1653 E1Criticalitydiagnostics_t criticalDiagnostics;/*optional*/
1654 } IfmE1apResetAck_t;
1656 #define CUCP_E1AP_SETUP_REQ_GNB_CUCP_NAME_CHOSEN_PRESENT (1 << 0)
1657 typedef struct ifmCucpE1apSetupReq
1660 UINT64 transactionId;
1661 GnbCucpName_t gnbCucpName;/*optional*/
1662 } IfmCucpE1apSetupReq_t;
1664 #define CUUPE1APSETUPRSPGNBCUCPNAMECHOSEN (1 << 0)
1665 typedef struct ifmCuupE1apSetupRsp
1668 UINT64 transactionId;
1669 GnbCucpName_t gnbCucpName;/*optional*/
1670 } IfmCuupE1apSetupRsp_t;
1672 #define CUUPE1APSETUPFAILURETIMETOWAIT (1 << 0)
1673 #define CUUPE1APSETUPFAILURECRITICALDIAGNOSTICS (1 << 1)
1674 typedef struct ifmCuupE1apSetupFailure
1679 TimeToWait_e timeToWait;/*optional*/
1680 E1Criticalitydiagnostics_t criticalDiagnostics;/*optional*/
1681 } IfmCuupE1apSetupFailure_t;
1683 typedef struct e1apReleaseReq
1685 INT64 transactionId;
1689 #define BEARER_CONTEXT_SETUP_UE_DL_MAX_IPDR_PRESENT (1 << 0)
1690 #define BEARER_CONTEXT_SETUP_UE_INACTIVITY_TIMER_PRESENT (1 << 1)
1691 #define BEARER_CONTEXT_SETUP_BEARER_CONTEXT_STATUS_CHANGE_PRESENT (1 << 2)
1692 typedef struct e1apBearerContextSetupReq
1696 UINT32 cucpUeE1apId;
1697 SecuInfo_t secuInfo;
1699 UINT64 ueDlMaxIPDR;/*optional*/
1700 PlmnId_t servPlmnId;
1701 /* e_ActivityNotificationLevel */
1702 ActNotiLevel_e actNotiLevel;
1703 /* Inactivity_Timer_t */
1704 INT64 inactTimer;/*optional*/
1705 /* e_BearerContextStatusChange */
1706 BearCxtStatusChange_e bearerCxtStatusChg;/*optional*/
1707 PduSessionResourceToSetupList_t pduSessionResourceToSetupList;
1708 } E1apBearerContextSetupReq_t;
1710 #define DRB_TO_SETUP_MOD_ITEM_DRB_DATA_FORWARD_INFO_REQ_PRESENT (1 << 0)
1711 #define DRB_TO_SETUP_MOD_ITEM_DRB_INACTIVITY_TIMER_PRESENT (1 << 1)
1712 #define DRB_TO_SETUP_MOD_ITEM_PDCP_UL_COUNT_PRESENT (1 << 2)
1713 #define DRB_TO_SETUP_MOD_ITEM_PDCP_DL_COUNT_PRESENT (1 << 3)
1714 typedef struct drbToSetupModItem
1718 SdapCfg_t sdapConfig;
1719 PDCPConfiguration_t pdcpConfig;
1720 CellGroupInformation_t cellGroupInfo;
1721 QosFlowQosPara_t flowMappingInfo;
1722 DFIRequest_t drbDataForwardInfoReq;/* OPTIONAL */
1723 INT64 drbInactTimer;/* OPTIONAL */
1724 PdcpCount_t pdcpUlCnt;/* OPTIONAL */
1725 PdcpCount_t pdcpDlCnt;/* OPTIONAL */
1726 }DrbToSetupModItem_t;
1728 typedef struct drbToSetupModList
1730 UINT8 drbToSetupModListNum;
1731 DrbToSetupModItem_t drbToSetupModItem[e1ap_maxnoofDRBs];
1732 }DrbToSetupModList_t;
1734 #define PDU_SESSION_RESOURCE_TO_SETUP_MOD_AMBR_PRESENT (1 << 0)
1735 #define PDU_SESSION_RESOURCE_TO_SETUP_MOD_DATA_FORWARD_INFORMATION_REQ_PRESENT (1 << 1)
1736 #define PDU_SESSION_RESOURCE_TO_SETUP_MOD_INACTIVITY_TIMER_PRESENT (1 << 2)
1737 typedef struct pduSessionResourceToSetupModItem
1741 PduSessType_e pduSessionType;
1744 UINT64 pduSessionResourceAMBR;/* OPTIONAL */
1745 UpTransLayerInfo_t ngUlUpTnlInfo;
1746 DFIRequest_t pduSessionDataForwardInfoReq;/* OPTIONAL */
1747 INT64 pduSessionInactTimer;/* OPTIONAL */
1748 DrbToSetupModList_t drbToSetupModList;
1749 }PduSessionResourceToSetupModItem_t;
1751 typedef struct pduSessionResourceToSetupModList
1753 UINT8 pduSessionResourceToSetupModItemNum;
1754 PduSessionResourceToSetupModItem_t pduSessionResourceToSetupModItem[e1ap_maxnoofPDUSessionResource];
1755 }PduSessionResourceToSetupModList_t;
1757 #define BEARER_CONTEXT_MODIFY_REQ_PDU_SESSION_RESOURCE_TO_SETUP_MOD_LIST_PRESENT (1 << 0)
1758 #define BEARER_CONTEXT_MODIFY_REQ_PDU_SESSION_RESOURCE_TO_MODIFY_LIST_PRESENT (1 << 1)
1759 #define BEARER_CONTEXT_MODIFY_REQ_PDU_SESSION_RESOURCE_TO_REMOVE_LIST_PRESENT (1 << 2)
1760 typedef struct e1apPduSessionResourceToList
1763 PduSessionResourceToSetupModList_t pduSessionResourceToSetupModList; ///< Optional field
1764 PduSessionResourceToModifyList_t pduSessionResourceToModfiyList; ///< Optional field
1765 PduSessionResourceToRemoveList_t pduSessionResourceToRemoveList; ///< Optional field
1766 } PduSessionResourceList_t;
1768 #define BEARER_CONTEXT_MODIFY_REQ_SECURITY_INFORMATION_PRESENT (1 << 0)
1769 #define BEARER_CONTEXT_MODIFY_REQ_UE_DL_AMBR_PRESENT (1 << 1)
1770 #define BEARER_CONTEXT_MODIFY_REQ_UE_DL_MAX_IPDR_PRESENT (1 << 2)
1771 #define BEARER_CONTEXT_MODIFY_REQ_BEARER_CTX_SATAUS_CHANGE_PRESENT (1 << 3)
1772 #define BEARER_CONTEXT_MODIFY_REQ_NEW_UL_TNL_INFO_REQ_PRESENT (1 << 4)
1773 #define BEARER_CONTEXT_MODIFY_REQ_UE_INACTIBITY_TIMER_PRESENT (1 << 5)
1774 #define BEARER_CONTEXT_MODIFY_REQ_DATA_DISCARD_REQUIRED_PRESENT (1 << 6)
1775 #define BEARER_CONTEXT_MODIFY_REQ_PDU_SESSION_RESOURCE (1 << 7)
1776 typedef struct e1apBearerContextModReq
1780 UINT32 gnbCucpUeE1apId;
1781 UINT32 gnbCuupUeE1apId;
1782 SecuInfo_t secuInfo; ///< Optional field
1783 UINT64 ueDlAMBR; ///< Optional field
1784 UINT64 ueDlMaxIPDR; ///< Optional field
1785 BearCxtStatusChange_e bearerCtxStatusChg; ///< Optional field
1786 NewUlTnlInfoRequire_e newUlTnlInfoRequire; ///< Optional field
1787 INT64 ueInactTimer; ///< Optional field
1788 DataDisRequire_e dataDisRequire; ///< Optional field
1789 PduSessionResourceList_t pduSessionResourceList;///< Optional field
1790 } E1apBearerContextModReq_t;
1792 typedef struct e1apBearerContextRelCmd
1794 NrCellId_t cellId;//added artifficially
1795 UINT64 gnbCucpUeE1apId;
1796 UINT64 gnbCuupUeE1apId;
1798 } E1apBearerContextRelCmd_t;
1800 /**********************************************************************************
1801 ** UPC <--> E1AP ACCORDING TO STRUCTURE
1802 ***********************************************************************************/
1803 #define MAX_LENGTH_GNBCUUP_NAME 150
1804 typedef struct gnbCuupName
1806 char gnbCuupName[MAX_LENGTH_GNBCUUP_NAME];
1810 #define DATA_FORWARDING_INFO_UL_DATA_FORWARD_PRESENT (1 << 0)
1811 #define DATA_FORWARDING_INFO_DL_DATA_FORWARD_PRESENT (1 << 1)
1812 typedef struct qosFlowItemIEs
1814 UINT8 qosFlowIndicator;
1817 typedef struct flowFailedlist
1820 QoSFlowItemIEs_t qosFlowItemIEs[e1ap_maxnoofQoSFlows];
1823 #define DRB_SETUP_ITEM_DATA_FORWARD_INFO_RES_PRESENT (1 << 0)
1824 #define DRB_SETUP_ITEM_FLOW_FAILED_LIST_PRESENT (1 << 1)
1825 typedef struct drbSetupItem
1829 DFIResponse_t dataForwardInfoRsp;/*optional*/
1830 UPParametersList_t upPara;
1831 QoSFlowList_t flowSetupList;
1832 FlowFailedlist_t flowFailedlist;/*optional*/
1834 typedef struct drbSetupList
1837 DRBSetupItem_t drbSetupItem[e1ap_maxnoofDRBs];
1846 typedef struct drbFailedList
1849 DRBFailItem_t drbFailItem[e1ap_maxnoofDRBs];
1852 #define PDU_SESSION_RESOURCE_SETUP_SECURITY_RESULT_PRESENT (1 << 0)
1853 #define PDU_SESSION_RESOURCE_SETUP_DATA_FORWARD_INFO_RES_PRESENT (1 << 1)
1854 #define PDU_SESSION_RESOURCE_SETUP_NG_DL_UP_UNCHANGED_PRESENT (1 << 2)
1855 #define PDU_SESSION_RESOURCE_SETUP_DRB_FAILED_LIST_PRESENT (1 << 3)
1857 typedef struct pduSessionResourceSetupItem
1861 SecuResult_t securityResult;/* OPTIONAL */
1862 UpTransLayerInfo_t ngDlUpTransLayerInfo;
1863 DFIResponse_t dataForwardingInformationResponse;/* OPTIONAL */
1864 /* e_PDU_Session_Resource_Setup_Item__nG_DL_UP_Unchanged */
1865 NgDlUpUnchange_e ngDlUpUchange;/* OPTIONAL */
1866 DRBSetupList_t drbSetupList;
1867 DRBFailedList_t drbFailedList;
1868 }PduSessionResourceSetupItem_t;
1870 typedef struct pduSessionResourceSetupList
1872 UINT8 sessionResourceSetupNum;
1873 PduSessionResourceSetupItem_t pduSessionResourceSetupItem[e1ap_maxnoofPDUSessionResource];
1874 }PduSessionResourceSetupList_t;
1876 typedef struct pduSessionResourceFailedItem
1880 }PduSessionResourceFailedItem_t;
1882 typedef struct pduSessionResourceFailedlist
1885 PduSessionResourceFailedItem_t sessFailItem[e1ap_maxnoofPDUSessionResource];
1886 }PduSessionResourceFailedList_t;
1888 #define DRB_MODIFY_ITEM_UL_UP_TRANSPORT_PARA_PRESENT (1 << 0)
1889 #define DRB_MODIFY_ITEM_PDCP_SN_STATUS_INFO_PRESENT (1 << 1)
1890 #define DRB_MODIFY_ITEM_FLOW_SETUP_LIST_PRESENT (1 << 2)
1891 #define DRB_MODIFY_ITEM_FLOW_FAILED_LIST_PRESENT (1 << 3)
1892 typedef struct dRBModifyItem
1896 UPParametersList_t ulUpTransPara;/* OPTIONAL */
1897 PdcpSNStatusInfo_t pdcpSNStatusInfo;/* OPTIONAL */
1898 QoSFlowList_t flowSetupList;/* OPTIONAL */
1899 FlowFailedlist_t flowFailedlist;/* OPTIONAL */
1902 typedef struct dRBModifyList
1904 UINT8 drbModifyItemNum;
1905 DRBModifyItem_t drbModifyItem[e1ap_maxnoofDRBs];
1908 #define PDU_SESSION_RESOURCE_MODIFY_DL_UP_TNL_INFO_PRESENT (1 << 0)
1909 #define PDU_SESSION_RESOURCE_MODIFY_SECURITY_RESULT_PRESENT (1 << 1)
1910 #define PDU_SESSION_RESOURCE_MODIFY_DATA_FORWARD_INFO_RSP_PRESENT (1 << 2)
1911 #define PDU_SESSION_RESOURCE_MODIFY_DRB_SETUP_LIST_PRESENT (1 << 3)
1912 #define PDU_SESSION_RESOURCE_MODIFY_DRB_FAILED_LIST_PRESENT (1 << 4)
1913 #define PDU_SESSION_RESOURCE_MODIFY_DRB_MODIFY_LIST_PRESENT (1 << 5)
1914 #define PDU_SESSION_RESOURCE_MODIFY_DRB_FAILED_TO_MOD_LIST_PRESENT (1 << 6)
1915 typedef struct pduSessionResourceModifyItem
1919 UpTransLayerInfo_t ngDlUpTnlInfo;/* OPTIONAL */
1920 SecuResult_t securityResult;/* OPTIONAL */
1921 DFIResponse_t pduSessionDataForwardInfoRsp;/* OPTIONAL */
1922 DRBSetupList_t drbSetupList;/* OPTIONAL */
1923 DRBFailedList_t drbFailedList;/* OPTIONAL */
1924 DRBModifyList_t drbModifyList;/* OPTIONAL */
1925 DRBFailedList_t drbFailedToModList;/* OPTIONAL */
1926 }PduSessionResourceModifyItem_t;
1928 typedef struct pduSessionResourceModifyList
1930 UINT8 pduSessionResourceModifyItemNum;
1931 PduSessionResourceModifyItem_t pduSessionResourceModifyItem[e1ap_maxnoofPDUSessionResource];
1932 }PduSessionResourceModifyList_t;
1934 typedef struct e1apSliceSupportItem
1937 }E1apsliceSupportItem_t;
1939 typedef struct e1apSliceSupportList
1941 UINT8 SliceSupportItemNum;
1942 E1apsliceSupportItem_t sliceSupportItem[e1ap_maxnoofSliceItems];
1943 }E1apsliceSupportList_t;
1945 typedef struct nrCgiSupportItem
1948 }NrCgiSupportItem_t;
1950 typedef struct nrCgiSupportList
1952 UINT8 NrCgiSupportItemNum;
1953 NrCgiSupportItem_t NrCgiSupportItem[e1ap_maxnoofNRCGI];
1954 }NrCgiSupportList_t;
1956 typedef struct NGRANQoSSupportItem
1958 NonDynamic5QIDescr_t NonDynamic5QIDescr;
1959 }NGRANQoSSupportItem_t;
1961 typedef struct nGRANQoSSupportList
1963 UINT8 NGRANQoSSupportItemNum;
1964 NGRANQoSSupportItem_t NGRANQoSSupportItem[e1ap_maxnoofNGRANQOSParameters];
1965 }NGRANQoSSupportList_t;
1967 typedef struct qosParamtersSupportList
1970 NGRANQoSSupportList_t NGRANQoSSupportList;
1971 }QosParamtersSupportList_t;
1973 typedef struct supportedPLMNsItem_s
1976 E1apsliceSupportList_t sliceSupportList;/*optional*/
1977 NrCgiSupportList_t nrCgiSupportList;/*optional*/
1978 QosParamtersSupportList_t qosParamtersSupportList;/*optional*/
1979 }SupportedPLMNsItem_t;
1981 typedef struct supportedPLMNsList_s
1984 SupportedPLMNsItem_t SupportedPLMNsItem[e1ap_maxnoofSPLMNs];
1985 }SupportedPLMNsList_t;
1987 typedef struct pduSessionToNotifyItem_s
1990 QoSFlowList_t flowSetupList;
1991 }PduSessionToNotifyItem_t;
1993 typedef struct pduSessionToNotifyList_s
1995 UINT8 pduSessionToNotifynum;
1996 PduSessionToNotifyItem_t pduSessionToNotifyItem[e1ap_maxnoofPDUSessionResource];
1997 }PduSessionToNotifyList_t;
1999 typedef struct e1apUpbPlmnCfgInfo_s
2003 CuNrCgi_t cgi[e1ap_maxnoofNRCGI];/*optional*/
2004 E1apsliceSupportList_t sliceSupportList;/*optional*/
2006 NonDynamic5QIDescr_t qosPara[e1ap_maxnoofNGRANQOSParameters];/*optional*/
2007 }E1apUpbPlmnCfgInfo_t;
2009 /**********************************************************************************
2010 ** UPC <--> E1AP MESSAGE STRUCTURE
2011 ***********************************************************************************/
2013 typedef struct e1apRegistergNBReq
2015 Instance_t instance;
2017 GnbCuupName_t gnbCuupName;
2018 }E1apRegistergNBReq_t;
2020 /* ����Ϣ�ṹӦ��Ų�� CUUP/INC Ŀ¼�� TBD */
2021 typedef struct e1apRegistergNBCnf
2023 Instance_t instance;
2025 GnbCucpName_t gnbCucpName;
2027 CellIdList_t successCellList;
2029 CellIdList_t failCellList;
2030 } E1apRegistergNBCnf_t;
2032 /* Deregister Indication */
2033 typedef struct e1apDeregisteredgNBInd
2035 Instance_t instance;
2036 } E1apDeregisteredgNBInd_t;
2038 typedef struct UpbPlmnCfgInfolist
2041 E1apUpbPlmnCfgInfo_t bPlmnCfgInfo[e1ap_maxnoofSPLMNs];
2042 } E1apUpbPlmnCfgInfoList_t;
2044 #define E1AP_REGISTER_REQ_UPNAME_PRESENT (1 << 0)
2045 #define E1AP_REGISTER_REQ_UP_CAPACITY_PRESENT (1 << 1)
2046 typedef struct e1apRegisterCpReq
2049 Instance_t instance;
2050 UINT64 transactionId;
2052 GnbCuupName_t gnbCuupName;/*optional*/
2053 CNSupport_e cnSupport;
2054 E1apUpbPlmnCfgInfoList_t e1apUpbPlmnCfgInfoList;
2055 INT64 upCapacity;/*optional*/
2056 } E1apRegisterCpReq_t;
2057 #define E1AP_SETUP_RSP_UPNAME_PRESENT (1 << 0)
2058 #define E1AP_SETUP_RSP_UP_CAPACITY_PRESENT (1 << 1)
2059 typedef struct e1apSetupRsp
2062 Instance_t instance;
2063 UINT64 transactionId;
2065 GnbCuupName_t gnbCuupName;/*optional*/
2066 CNSupport_e cnSupport;
2067 E1apUpbPlmnCfgInfoList_t e1apUpbPlmnCfgInfoList;
2068 INT64 upCapacity;/*optional*/
2070 typedef struct e1apSetupFail
2075 TimeToWait_e timeToWait;/*optional*/
2076 E1Criticalitydiagnostics_t criticalDiagnostics;/*optional*/
2079 typedef struct e1apReleaseRsp
2081 INT64 transactionId;
2084 #define E1AP_PDU_SESSION_RESOURCE_FAILED_LIST_PRESENT (1 << 0)
2085 typedef struct e1apPduSessionResourceSetuplist
2088 PduSessionResourceSetupList_t pduSessionResourceSetuplist;
2089 PduSessionResourceFailedList_t pduSessionResourceFailedList; //OPTION
2090 } E1apPduSessionResourceSetupList_t;
2092 typedef struct e1apBearerContextSetupRsp
2094 UINT64 gnbCucpUeE1apId;
2095 UINT64 gnbCuupUeE1apId;
2096 E1apPduSessionResourceSetupList_t e1apPduSessionResourceSetuplist;
2097 } E1apBearerContextSetupRsp_t;
2099 #define BEARER_CONTEXT_MOD_FAIL_CRITICAL_DIAGNOSE_PRESENT (1 << 0)
2100 typedef struct e1apBearerContextModFail
2103 UINT32 gnbCucpUeE1apId;
2104 UINT32 gnbCuupUeE1apId;
2106 E1Criticalitydiagnostics_t e1apCriticalDiagnose;
2107 } E1apBearerContextModFail_t;
2109 #define BEARER_CONTEXT_SETUP_FAILURE_CRITICAL_DIAGNOSE_PRESENT (1 << 0)
2110 typedef struct e1apBearerContextSetupFailure
2113 UINT64 gnbCucpUeE1apId;
2114 UINT64 gnbCuupUeE1apId;
2116 E1Criticalitydiagnostics_t criticalDiagnose; /* Optional field*/
2117 } E1apBearerContextSetupFailure_t;
2119 #define DRB_SETUP_MOD_ITEM_DATA_FORWARD_INFO_RSP_PRESENT (1 << 0)
2120 #define DRB_SETUP_MOD_ITEM_FLOW_FAILED_LIST_PRESENT (1 << 1)
2121 typedef struct dRBSetupModItem
2125 DFIResponse_t drbDataForwardInfoRsp;/* OPTIONAL */
2126 UPParametersList_t ulUpTransPara;
2127 QoSFlowList_t flowSetupList;
2128 FlowFailedlist_t flowFailedlist;/* OPTIONAL */
2129 } DRBSetupModItem_t;
2131 typedef struct dRBSetupModList
2133 UINT8 drbSetupModItemNum;
2134 DRBSetupModItem_t drbSetupModItem[e1ap_maxnoofDRBs];
2135 } DRBSetupModList_t;
2137 #define PDU_SESSION_RESOURCE_SETUP_MOD_SECURITY_RESULT_PRESENT (1 << 0)
2138 #define PDU_SESSION_RESOURCE_SETUP_MOD_DATA_FORWARD_INFO_RSP_PRESENT (1 << 1)
2139 #define PDU_SESSION_RESOURCE_SETUP_MOD_DRB_FAILED_LIST_PRESENT (1 << 2)
2140 typedef struct pduSessionResourceSetupModItem
2144 SecuResult_t securityResult;/* OPTIONAL */
2145 UpTransLayerInfo_t ngDlUpTnlInfo;
2146 DFIResponse_t pduSessionDataForwardInfoRsp;/* OPTIONAL */
2147 DRBSetupModList_t drbSetupModList;
2148 DRBFailedList_t drbFailedList;/* OPTIONAL */
2149 }PduSessionResourceSetupModItem_t;
2151 typedef struct pduSessionResourceSetupModList
2153 UINT8 pduSessionResourceSetupModItemNum;
2154 PduSessionResourceSetupModItem_t pduSessionResourceSetupModItem[e1ap_maxnoofPDUSessionResource];
2155 }PduSessionResourceSetupModList_t;
2157 #define BEARER_CONTEXT_MODIFY_RSP_PDU_SESSION_RESOURCE_SETUP_MOD_LIST_PRESENT (1 << 0)
2158 #define BEARER_CONTEXT_MODIFY_RSP_PDU_SESSION_RESOURCE_FAILED_MOD_LIST_PRESENT (1 << 1)
2159 #define BEARER_CONTEXT_MODIFY_RSP_PDU_SESSION_RESOURCE_MODIFY_LIST_PRESENT (1 << 2)
2160 #define BEARER_CONTEXT_MODIFY_RSP_PDU_SESSION_RESOURCE_FAILED_TO_MOD_LIST_PRESENT (1 << 3)
2161 typedef struct e1apBearModPduSessionResource
2164 PduSessionResourceSetupModList_t pduSessionResourceSetupModList;///< Optional field
2165 PduSessionResourceFailedList_t pduSessionResourceFailedModList;///< Optional field
2166 PduSessionResourceModifyList_t pduSessionResourceModfiyList;///< Optional field
2167 PduSessionResourceFailedList_t pduSessionResourceFailedToModList;///< Optional field
2168 } E1apBearModPduSessionResource_t;
2170 #define BEARER_CONTEXT_MODIFY_RSP_PDU_SESSION_RESOURCE_LIST (1 << 0)
2171 typedef struct e1apBearerContextModRsp
2174 UINT64 gnbCucpUeE1apId;
2175 UINT64 gnbCuupUeE1apId;
2176 E1apBearModPduSessionResource_t e1apBearModPduSessionResource;/*optional*/
2177 } E1apBearerContextModRsp_t;
2179 #define BREARE_CONTEXT_RELEASE_COMPLETE_CRITICALITY_DIAGNOSTICS_PRESENT (1 << 0)
2180 typedef struct e1apBearerContextRlsCmp
2183 UINT64 gnbCucpUeE1apId;
2184 UINT64 gnbCuupUeE1apId;
2185 E1Criticalitydiagnostics_t criticalDiagnostics;/*optional*/
2186 }E1apBearerContextRlsCmp_t;
2188 #define E1AP_DL_DATA_NOTIFY_PPI_PRESENCE (1 << 0)
2189 typedef struct e1apDlDataNote
2192 UINT64 gnbCucpUeE1apId;
2193 UINT64 gnbCuupUeE1apId;
2194 INT64 ppi; /*optional*/
2195 }IfmE1apDlDataNotify_t;
2197 typedef struct e1apUlDataNote
2199 UINT64 gnbCucpUeE1apId;
2200 UINT64 gnbCuupUeE1apId;
2201 PduSessionToNotifyList_t pduSessionToNotifyList;
2204 /* Error Indication */
2205 #define ERROR_INDICATION_CU_CP_UE_E1AP_ID_PRESENT (1 << 0)
2206 #define ERROR_INDICATION_CU_UP_UE_E1AP_ID_PRESENT (1 << 1)
2207 #define ERROR_INDICATION_CAUSE_PRESENT (1 << 2)
2208 #define ERROR_INDICATION_CRITICALITYDIAGNOSTICS_PRESENT (1 << 3)
2209 typedef struct E1apErrInd
2213 UINT64 gnbCucpUeE1apId; /* OPTIONAL */
2214 UINT64 gnbCuupUeE1apId; /* OPTIONAL */
2215 E1apCause_t cause; /* OPTIONAL */
2216 E1Criticalitydiagnostics_t critiDiag; /* OPTIONAL */
2219 //RRC_INACTIVE Begin
2220 typedef struct e1apDrbActivityItem_s
2224 }E1apDrbActivityItem_t;
2226 typedef struct e1apDrbActivityList_s
2228 UINT8 numDrbActivityItem;//1~e1ap_maxnoofDRBs
2229 E1apDrbActivityItem_t drbActivityItem[e1ap_maxnoofDRBs];
2230 }E1apDrbActivityList_t;
2233 typedef struct e1apPduSessionActivityItem_s
2237 }E1apPduSessionActivityItem_t;
2238 typedef struct e1apPduSessionActivityList_s
2240 UINT16 numPduSessionActivityItem;//1~e1ap_maxnoofPDUSessionResource
2241 E1apPduSessionActivityItem_t pduSessionActivityItem[e1ap_maxnoofPDUSessionResource];
2242 }E1apPduSessionActivityList_t;
2243 typedef struct e1apUeActivity_s
2248 //UPC_E1AP_BEAR_CTX_INACTIVE_NOTIFY
2249 //E1AP_CUC_BEAR_CTX_INACTIVE_NOTIFY
2250 #define TAG_E1AP_BEAR_INAC_DRB_ACTIVITY_LIST 1
2251 #define TAG_E1AP_BEAR_INAC_PDU_SESSION_ACTIVITY_LIST 2
2252 #define TAG_E1AP_BEAR_INAC_UE_ACTIVITY 3
2253 typedef struct ifmE1apBearCtxInactiveNotify
2256 UINT64 gnbCucpUeE1apId;
2257 UINT64 gnbCuupUeE1apId;
2260 E1apDrbActivityList_t drbActivityList;
2261 E1apPduSessionActivityList_t pduSessionActivityList;
2262 E1apUeActivity_t ueActivity;
2264 } IfmE1apBearCtxInactiveNotify_t;
2270 #endif /* __CUMODULEINTERFACEH__*/