2 ==================================================================================
3 Copyright (c) 2019 AT&T Intellectual Property.
4 Copyright (c) 2019 Nokia
6 Licensed under the Apache License, Version 2.0 (the "License");
7 you may not use this file except in compliance with the License.
8 You may obtain a copy of the License at
10 http://www.apache.org/licenses/LICENSE-2.0
12 Unless required by applicable law or agreed to in writing, software
13 distributed under the License is distributed on an "AS IS" BASIS,
14 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 See the License for the specific language governing permissions and
16 limitations under the License.
17 ==================================================================================
28 const size_t cDataBufferSize = 2048;
35 //////////////////////////////////////////////////////////////////////
36 bool TestRICSubscriptionRequest() {
37 RICSubscriptionRequest_t ricSubscriptionRequest;
38 ricSubscriptionRequest.ricRequestID.ricRequestorID = 1;
39 ricSubscriptionRequest.ricRequestID.ricRequestSequenceNumber = 22;
40 ricSubscriptionRequest.ranFunctionID = 33;
42 ricSubscriptionRequest.ricSubscription.ricEventTriggerDefinition.octetString.contentLength = 0;
44 ricSubscriptionRequest.ricSubscription.ricEventTriggerDefinition.interfaceID.globalENBIDPresent = true;
45 ricSubscriptionRequest.ricSubscription.ricEventTriggerDefinition.interfaceID.globalGNBIDPresent = false;
46 ricSubscriptionRequest.ricSubscription.ricEventTriggerDefinition.interfaceID.globalENBID.pLMNIdentity.contentLength = 3;
47 ricSubscriptionRequest.ricSubscription.ricEventTriggerDefinition.interfaceID.globalENBID.pLMNIdentity.pLMNIdentityVal[0] = 1;
48 ricSubscriptionRequest.ricSubscription.ricEventTriggerDefinition.interfaceID.globalENBID.pLMNIdentity.pLMNIdentityVal[1] = 2;
49 ricSubscriptionRequest.ricSubscription.ricEventTriggerDefinition.interfaceID.globalENBID.pLMNIdentity.pLMNIdentityVal[2] = 3;
51 // ricSubscriptionRequest.ricSubscription.ricEventTriggerDefinition.interfaceID.globalENBID.eNBID.bits = cMacroENBIDP_20Bits;
52 // ricSubscriptionRequest.ricSubscription.ricEventTriggerDefinition.interfaceID.globalENBID.eNBID.bits = cHomeENBID_28Bits;
53 // ricSubscriptionRequest.ricSubscription.ricEventTriggerDefinition.interfaceID.globalENBID.eNBID.bits = cShortMacroENBID_18Bits;
54 ricSubscriptionRequest.ricSubscription.ricEventTriggerDefinition.interfaceID.globalENBID.nodeID.bits = clongMacroENBIDP_21Bits;
56 IdOctects_t eNBOctects;
57 memset(eNBOctects.octets, 0, sizeof(eNBOctects));
58 eNBOctects.octets[0] = 11;
59 eNBOctects.octets[1] = 22;
60 eNBOctects.octets[2] = 31;
61 eNBOctects.octets[3] = 1;
62 ricSubscriptionRequest.ricSubscription.ricEventTriggerDefinition.interfaceID.globalENBID.nodeID.nodeID = eNBOctects.nodeID;
63 printf("eNBOctects.nodeID = %u\n\n",eNBOctects.nodeID);
65 ricSubscriptionRequest.ricSubscription.ricEventTriggerDefinition.interfaceDirection = InterfaceDirection__incoming;
66 ricSubscriptionRequest.ricSubscription.ricEventTriggerDefinition.interfaceMessageType.procedureCode = 35; // id-rRCTransfer
67 ricSubscriptionRequest.ricSubscription.ricEventTriggerDefinition.interfaceMessageType.typeOfMessage = cE2InitiatingMessage;
69 ricSubscriptionRequest.ricSubscription.ricActionToBeSetupItemIEs.contentLength = 1;
71 while (index < ricSubscriptionRequest.ricSubscription.ricActionToBeSetupItemIEs.contentLength) {
72 ricSubscriptionRequest.ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionID = 255; //index;
73 ricSubscriptionRequest.ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionType = RICActionType_insert;
75 // ricActionDefinition, OPTIONAL. Not used in RIC
76 ricSubscriptionRequest.ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionDefinitionPresent = false; //true;
77 ricSubscriptionRequest.ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionDefinition.styleID = 255;
78 ricSubscriptionRequest.ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionDefinition.sequenceOfActionParameters.parameterID = 222;
80 // ricSubsequentActionPresent, OPTIONAL
81 ricSubscriptionRequest.ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricSubsequentActionPresent = true;
82 ricSubscriptionRequest.ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricSubsequentAction.ricSubsequentActionType = RICSubsequentActionType_Continue;
83 ricSubscriptionRequest.ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricSubsequentAction.ricTimeToWait = RICTimeToWait_w100ms;
87 printRICSubscriptionRequest(&ricSubscriptionRequest);
89 uint64_t logBufferSize = 1024;
90 char logBuffer[logBufferSize];
91 uint64_t dataBufferSize = cDataBufferSize;
92 byte dataBuffer[dataBufferSize];
93 if (packRICSubscriptionRequest(&dataBufferSize, dataBuffer, logBuffer, &ricSubscriptionRequest) == e2err_OK)
95 memset(&ricSubscriptionRequest,0, sizeof ricSubscriptionRequest);
97 E2MessageInfo_t messageInfo;
98 e2ap_pdu_ptr_t* pE2AP_PDU = unpackE2AP_pdu(dataBufferSize, dataBuffer, logBuffer, &messageInfo);
100 if (messageInfo.messageType == cE2InitiatingMessage) {
101 if (messageInfo.messageId == cRICSubscriptionRequest) {
102 if ((returnCode = getRICSubscriptionRequestData(pE2AP_PDU, &ricSubscriptionRequest)) == e2err_OK) {
103 printRICSubscriptionRequest(&ricSubscriptionRequest);
107 printf("Error in getRICSubscriptionRequestData. ReturnCode = %s",getE2ErrorString(returnCode));
110 printf("Not RICSubscriptionRequest\n");
113 printf("Not InitiatingMessage\n");
116 printf("%s",logBuffer);
119 printf("%s",logBuffer);
123 //////////////////////////////////////////////////////////////////////
124 bool TestRICSubscriptionResponse() {
125 // Test RICSubscribeResponse
126 RICSubscriptionResponse_t ricSubscriptionResponse;
127 ricSubscriptionResponse.ricRequestID.ricRequestorID = 1;
128 ricSubscriptionResponse.ricRequestID.ricRequestSequenceNumber = 22;
129 ricSubscriptionResponse.ranFunctionID = 33;
130 ricSubscriptionResponse.ricActionAdmittedList.contentLength = 16;
132 while (index < ricSubscriptionResponse.ricActionAdmittedList.contentLength) {
133 ricSubscriptionResponse.ricActionAdmittedList.ricActionID[index] = index;
136 ricSubscriptionResponse.ricActionNotAdmittedListPresent = true;
137 ricSubscriptionResponse.ricActionNotAdmittedList.contentLength = 16;
139 while (index < ricSubscriptionResponse.ricActionNotAdmittedList.contentLength) {
140 ricSubscriptionResponse.ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricActionID = index;
141 ricSubscriptionResponse.ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricCause.content = cRICCauseRadioNetwork;
142 ricSubscriptionResponse.ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricCause.cause = index;
146 printRICSubscriptionResponse(&ricSubscriptionResponse);
148 uint64_t logBufferSize = 1024;
149 char logBuffer[logBufferSize];
150 uint64_t dataBufferSize = cDataBufferSize;
151 byte dataBuffer[dataBufferSize];
152 if (packRICSubscriptionResponse(&dataBufferSize, dataBuffer, logBuffer, &ricSubscriptionResponse) == e2err_OK)
154 memset(&ricSubscriptionResponse,0, sizeof ricSubscriptionResponse);
156 E2MessageInfo_t messageInfo;
157 e2ap_pdu_ptr_t* pE2AP_PDU = unpackE2AP_pdu(dataBufferSize, dataBuffer, logBuffer, &messageInfo);
158 if (pE2AP_PDU != 0) {
159 if (messageInfo.messageType == cE2SuccessfulOutcome) {
160 if (messageInfo.messageId == cRICSubscriptionResponse) {
161 if ((returnCode = getRICSubscriptionResponseData(pE2AP_PDU, &ricSubscriptionResponse)) == e2err_OK) {
162 printRICSubscriptionResponse(&ricSubscriptionResponse);
166 printf("Error in getRICSubscriptionResponseData. ReturnCode = %s",getE2ErrorString(returnCode));
169 printf("Not RICSubscriptionResponse\n");
172 printf("Not SuccessfulOutcome\n");
175 printf("%s",logBuffer);
178 printf("%s",logBuffer);
182 //////////////////////////////////////////////////////////////////////
183 bool TestRICSubscriptionFailure() {
184 // Test RICSubscribeFailure
185 RICSubscriptionFailure_t ricSubscriptionFailure;
186 ricSubscriptionFailure.ricRequestID.ricRequestorID = 1;
187 ricSubscriptionFailure.ricRequestID.ricRequestSequenceNumber = 22;
188 ricSubscriptionFailure.ranFunctionID = 33;
189 ricSubscriptionFailure.ricActionNotAdmittedList.contentLength = 16;
191 while (index < ricSubscriptionFailure.ricActionNotAdmittedList.contentLength) {
192 ricSubscriptionFailure.ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricActionID = index;
193 ricSubscriptionFailure.ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricCause.content = cRICCauseRadioNetwork;
194 ricSubscriptionFailure.ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricCause.cause = index;
197 // CriticalityDiagnostics, OPTIONAL. Not used in RIC
198 ricSubscriptionFailure.criticalityDiagnosticsPresent = false;
199 ricSubscriptionFailure.criticalityDiagnostics.procedureCodePresent = true;
200 ricSubscriptionFailure.criticalityDiagnostics.procedureCode = 1;
201 ricSubscriptionFailure.criticalityDiagnostics.triggeringMessagePresent = true;
202 ricSubscriptionFailure.criticalityDiagnostics.triggeringMessage = TriggeringMessage__initiating_message;
203 ricSubscriptionFailure.criticalityDiagnostics.procedureCriticalityPresent = true;
204 ricSubscriptionFailure.criticalityDiagnostics.procedureCriticality = Criticality__reject;
206 ricSubscriptionFailure.criticalityDiagnostics.iEsCriticalityDiagnosticsPresent = false;
207 ricSubscriptionFailure.criticalityDiagnostics.criticalityDiagnosticsIELength = 256;
209 while (index2 < ricSubscriptionFailure.criticalityDiagnostics.criticalityDiagnosticsIELength) {
210 ricSubscriptionFailure.criticalityDiagnostics.criticalityDiagnosticsIEListItem[index2].iECriticality = Criticality__reject;
211 ricSubscriptionFailure.criticalityDiagnostics.criticalityDiagnosticsIEListItem[index2].iE_ID = index2;
212 ricSubscriptionFailure.criticalityDiagnostics.criticalityDiagnosticsIEListItem[index2].typeOfError = TypeOfError_missing;
216 printRICSubscriptionFailure(&ricSubscriptionFailure);
218 uint64_t logBufferSize = 1024;
219 char logBuffer[logBufferSize];
220 uint64_t dataBufferSize = cDataBufferSize;
221 byte dataBuffer[dataBufferSize];
222 if (packRICSubscriptionFailure(&dataBufferSize, dataBuffer, logBuffer, &ricSubscriptionFailure) == e2err_OK)
224 memset(&ricSubscriptionFailure,0, sizeof ricSubscriptionFailure);
226 E2MessageInfo_t messageInfo;
227 e2ap_pdu_ptr_t* pE2AP_PDU = unpackE2AP_pdu(dataBufferSize, dataBuffer, logBuffer, &messageInfo);
228 if (pE2AP_PDU != 0) {
229 if (messageInfo.messageType == cE2UnsuccessfulOutcome) {
230 if (messageInfo.messageId == cRICSubscriptionFailure) {
231 if ((returnCode = getRICSubscriptionFailureData(pE2AP_PDU, &ricSubscriptionFailure)) == e2err_OK) {
232 printRICSubscriptionFailure(&ricSubscriptionFailure);
236 printf("Error in getRICSubscriptionFailureData. ReturnCode = %s",getE2ErrorString(returnCode));
239 printf("Not RICSubscriptionFailure\n");
242 printf("Not UnuccessfulOutcome\n");
245 printf("%s",logBuffer);
248 printf("%s",logBuffer);
252 //////////////////////////////////////////////////////////////////////
253 bool TestRICSubscriptionDeleteRequest() {
255 RICSubscriptionDeleteRequest_t ricSubscriptionDeleteRequest;
256 ricSubscriptionDeleteRequest.ricRequestID.ricRequestorID = 1;
257 ricSubscriptionDeleteRequest.ricRequestID.ricRequestSequenceNumber = 22;
258 ricSubscriptionDeleteRequest.ranFunctionID = 33;
260 printRICSubscriptionDeleteRequest(&ricSubscriptionDeleteRequest);
262 uint64_t logBufferSize = 1024;
263 char logBuffer[logBufferSize];
264 uint64_t dataBufferSize = cDataBufferSize;
265 byte dataBuffer[cDataBufferSize];
266 if ((packRICSubscriptionDeleteRequest(&dataBufferSize, dataBuffer, logBuffer, &ricSubscriptionDeleteRequest)) == e2err_OK)
268 memset(&ricSubscriptionDeleteRequest,0, sizeof ricSubscriptionDeleteRequest);
270 E2MessageInfo_t messageInfo;
271 e2ap_pdu_ptr_t* pE2AP_PDU = unpackE2AP_pdu(dataBufferSize, dataBuffer, logBuffer, &messageInfo);
272 if (pE2AP_PDU != 0) {
273 if (messageInfo.messageType == cE2InitiatingMessage) {
274 if (messageInfo.messageId == cRICSubscriptionDeleteRequest) {
275 if ((returnCode = getRICSubscriptionDeleteRequestData(pE2AP_PDU, &ricSubscriptionDeleteRequest)) == e2err_OK) {
276 printRICSubscriptionDeleteRequest(&ricSubscriptionDeleteRequest);
280 printf("Error in getRICSubscriptionDeleteRequestData. ReturnCode = %s",getE2ErrorString(returnCode));
283 printf("Not RICSubscriptionDeleteRequest\n");
286 printf("Not InitiatingMessage\n");
289 printf("%s",logBuffer);
292 printf("%s",logBuffer);
296 //////////////////////////////////////////////////////////////////////
297 bool TestRICSubscriptionDeleteResponse() {
299 RICSubscriptionDeleteResponse_t ricSubscriptionDeleteResponse;
300 ricSubscriptionDeleteResponse.ricRequestID.ricRequestorID = 1;
301 ricSubscriptionDeleteResponse.ricRequestID.ricRequestSequenceNumber = 22;
302 ricSubscriptionDeleteResponse.ranFunctionID = 33;
304 printRICSubscriptionDeleteResponse(&ricSubscriptionDeleteResponse);
306 uint64_t logBufferSize = 1024;
307 char logBuffer[logBufferSize];
308 uint64_t dataBufferSize = cDataBufferSize;
309 byte dataBuffer[dataBufferSize];
310 if ((packRICSubscriptionDeleteResponse(&dataBufferSize, dataBuffer, logBuffer, &ricSubscriptionDeleteResponse)) == e2err_OK)
312 memset(&ricSubscriptionDeleteResponse,0, sizeof ricSubscriptionDeleteResponse);
314 E2MessageInfo_t messageInfo;
315 e2ap_pdu_ptr_t* pE2AP_PDU = unpackE2AP_pdu(dataBufferSize, dataBuffer, logBuffer, &messageInfo);
316 if (pE2AP_PDU != 0) {
317 if (messageInfo.messageType == cE2SuccessfulOutcome) {
318 if (messageInfo.messageId == cRICsubscriptionDeleteResponse) {
319 if ((returnCode = getRICSubscriptionDeleteResponseData(pE2AP_PDU, &ricSubscriptionDeleteResponse)) == e2err_OK) {
320 printRICSubscriptionDeleteResponse(&ricSubscriptionDeleteResponse);
324 printf("Error in getRICSubscriptionDeleteResponseData. ReturnCode = %s",getE2ErrorString(returnCode));
327 printf("Not RICSubscriptionDeleteResponse\n");
330 printf("Not SuccessfulOutcome\n");
333 printf("%s",logBuffer);
336 printf("%s",logBuffer);
340 //////////////////////////////////////////////////////////////////////
341 bool TestRICSubscriptionDeleteFailure() {
343 RICSubscriptionDeleteFailure_t ricSubscriptionDeleteFailure;
344 ricSubscriptionDeleteFailure.ricRequestID.ricRequestorID = 1;
345 ricSubscriptionDeleteFailure.ricRequestID.ricRequestSequenceNumber = 22;
346 ricSubscriptionDeleteFailure.ranFunctionID = 33;
347 ricSubscriptionDeleteFailure.ricCause.content = cRICCauseRadioNetwork;
348 ricSubscriptionDeleteFailure.ricCause.cause = 3;
350 printRICSubscriptionDeleteFailure(&ricSubscriptionDeleteFailure);
352 uint64_t logBufferSize = 1024;
353 char logBuffer[logBufferSize];
354 uint64_t dataBufferSize = cDataBufferSize;
355 byte dataBuffer[dataBufferSize];
356 if ((packRICSubscriptionDeleteFailure(&dataBufferSize, dataBuffer, logBuffer, &ricSubscriptionDeleteFailure)) == e2err_OK)
358 memset(&ricSubscriptionDeleteFailure,0, sizeof ricSubscriptionDeleteFailure);
360 E2MessageInfo_t messageInfo;
361 e2ap_pdu_ptr_t* pE2AP_PDU = unpackE2AP_pdu(dataBufferSize, dataBuffer, logBuffer, &messageInfo);
362 if (pE2AP_PDU != 0) {
363 if (messageInfo.messageType == cE2UnsuccessfulOutcome) {
364 if (messageInfo.messageId == cRICsubscriptionDeleteFailure) {
365 if ((returnCode = getRICSubscriptionDeleteFailureData(pE2AP_PDU, &ricSubscriptionDeleteFailure)) == e2err_OK) {
366 printRICSubscriptionDeleteFailure(&ricSubscriptionDeleteFailure);
370 printf("Error in getRICSubscriptionDeleteFailureData. ReturnCode = %s",getE2ErrorString(returnCode));
373 printf("Not RICSubscriptionDeleteFailure\n");
376 printf("Not UnuccessfulOutcome\n");
379 printf("%s",logBuffer);
382 printf("%s",logBuffer);
386 //////////////////////////////////////////////////////////////////////
387 void printDataBuffer(const size_t byteCount, const uint8_t* pData) {
390 while (index < byteCount) {
391 if (index % 50 == 0) {
394 printf("%u ",pData[index]);
399 //////////////////////////////////////////////////////////////////////
400 void printRICSubscriptionRequest(const RICSubscriptionRequest_t* pRICSubscriptionRequest) {
401 printf("pRICSubscriptionRequest->ricRequestID.ricRequestorID = %u\n", pRICSubscriptionRequest->ricRequestID.ricRequestorID);
402 printf("pRICSubscriptionRequest->ricRequestID.ricRequestSequenceNumber = %u\n", pRICSubscriptionRequest->ricRequestID.ricRequestSequenceNumber);
403 printf("pRICSubscriptionRequest->ranFunctionID = %u\n",pRICSubscriptionRequest->ranFunctionID);
405 printf("pRICSubscriptionRequest->ricSubscription.ricEventTriggerDefinition.interfaceID.globalENBID.nodeIDbits = %u\n",
406 (unsigned)pRICSubscriptionRequest->ricSubscription.ricEventTriggerDefinition.interfaceID.globalENBID.nodeID.bits);
407 printf("pRICSubscriptionRequest->ricSubscription.ricEventTriggerDefinition.interfaceID.globalENBID.nodeID.nodeID = %u\n",
408 (unsigned)pRICSubscriptionRequest->ricSubscription.ricEventTriggerDefinition.interfaceID.globalENBID.nodeID.nodeID);
409 printf("pRICSubscriptionRequest->ricSubscription.ricEventTriggerDefinition.interfaceDirection = %u\n",
410 (unsigned)pRICSubscriptionRequest->ricSubscription.ricEventTriggerDefinition.interfaceDirection);
411 printf("pRICSubscriptionRequest->ricSubscription.ricEventTriggerDefinition.interfaceMessageType.procedureCode = %u\n",
412 (unsigned)pRICSubscriptionRequest->ricSubscription.ricEventTriggerDefinition.interfaceMessageType.procedureCode);
413 printf("pRICSubscriptionRequest->ricSubscription.ricEventTriggerDefinition.interfaceMessageType.typeOfMessage = %u\n",
414 (unsigned)pRICSubscriptionRequest->ricSubscription.ricEventTriggerDefinition.interfaceMessageType.typeOfMessage);
415 printf("pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.contentLength = %u\n",
416 (unsigned)pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.contentLength);
419 while (index < pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.contentLength) {
420 printf("pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionID = %li\n",
421 pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionID);
422 printf("pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionType = %li\n",
423 pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionType);
424 printf("pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionDefinitionPresent = %i\n",
425 pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionDefinitionPresent);
426 if(pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionDefinitionPresent)
428 printf("pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionDefinition.styleID = %li\n",
429 pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionDefinition.styleID);
430 printf("pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionDefinition.sequenceOfActionParameters.parameterID = %i\n",
431 pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionDefinition.sequenceOfActionParameters.parameterID);
433 printf("pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricSubsequentActionPresent = %i\n",
434 pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricSubsequentActionPresent);
435 if(pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricSubsequentActionPresent)
437 printf("pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricSubsequentAction.ricSubsequentActionType = %li\n",
438 pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricSubsequentAction.ricSubsequentActionType);
439 printf("pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricSubsequentAction.ricTimeToWait = %li\n",
440 pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricSubsequentAction.ricTimeToWait);
448 //////////////////////////////////////////////////////////////////////
449 void printRICSubscriptionResponse(const RICSubscriptionResponse_t* pRICSubscriptionResponse) {
451 printf("pRICSubscriptionResponse->ricRequestID.ricRequestorID = %u\n",pRICSubscriptionResponse->ricRequestID.ricRequestorID);
452 printf("pRICSubscriptionResponse->ricRequestID.ricRequestSequenceNumber = %u\n", pRICSubscriptionResponse->ricRequestID.ricRequestSequenceNumber);
453 printf("pRICSubscriptionResponse->ranFunctionID = %u\n",pRICSubscriptionResponse->ranFunctionID);
454 printf("pRICSubscriptionResponse->ricActionAdmittedList.contentLength = %u\n",(unsigned)pRICSubscriptionResponse->ricActionAdmittedList.contentLength);
456 while (index < pRICSubscriptionResponse->ricActionAdmittedList.contentLength) {
457 printf("pRICSubscriptionResponse->ricActionAdmittedList.ricActionID[index] = %lu\n",pRICSubscriptionResponse->ricActionAdmittedList.ricActionID[index]);
460 printf("pRICSubscriptionResponse->ricActionNotAdmittedListPresent = %u\n",pRICSubscriptionResponse->ricActionNotAdmittedListPresent);
461 printf("pRICSubscriptionResponse->ricActionNotAdmittedList.contentLength = %u\n",(unsigned)pRICSubscriptionResponse->ricActionNotAdmittedList.contentLength);
463 while (index < pRICSubscriptionResponse->ricActionNotAdmittedList.contentLength) {
464 printf("pRICSubscriptionResponse->ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricActionID = %lu\n",
465 pRICSubscriptionResponse->ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricActionID);
466 printf("pRICSubscriptionResponse->ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricCause.content = %u\n",
467 (unsigned)pRICSubscriptionResponse->ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricCause.content);
468 printf("pRICSubscriptionResponse->ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricCause.cause = %u\n",
469 (unsigned)pRICSubscriptionResponse->ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricCause.cause);
475 //////////////////////////////////////////////////////////////////////
476 void printRICSubscriptionFailure(const RICSubscriptionFailure_t* pRICSubscriptionFailure) {
478 printf("pRICSubscriptionFailure->ricRequestID.ricRequestorID = %u\n",pRICSubscriptionFailure->ricRequestID.ricRequestorID);
479 printf("pRICSubscriptionFailure->ricRequestID.ricRequestSequenceNumber = %u\n",pRICSubscriptionFailure->ricRequestID.ricRequestSequenceNumber);
480 printf("pRICSubscriptionFailure->ranFunctionID = %i\n",pRICSubscriptionFailure->ranFunctionID);
481 printf("pRICSubscriptionFailure->ricActionNotAdmittedList.contentLength = %u\n",(unsigned)pRICSubscriptionFailure->ricActionNotAdmittedList.contentLength);
483 while (index < pRICSubscriptionFailure->ricActionNotAdmittedList.contentLength) {
484 printf("pRICSubscriptionFailure->ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricActionID = %lu\n",
485 pRICSubscriptionFailure->ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricActionID);
486 printf("pRICSubscriptionFailure->ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricCause.content = %u\n",
487 (unsigned)pRICSubscriptionFailure->ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricCause.content);
488 printf("pRICSubscriptionFailure->ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricCause.cause = %u\n",
489 (unsigned)pRICSubscriptionFailure->ricActionNotAdmittedList.RICActionNotAdmittedItem[index].ricCause.cause);
492 if (pRICSubscriptionFailure->criticalityDiagnosticsPresent) {
493 printf("pRICSubscriptionFailure->criticalityDiagnosticsPresent = %u\n",pRICSubscriptionFailure->criticalityDiagnosticsPresent);
494 printf("pRICSubscriptionFailure->criticalityDiagnostics.procedureCodePresent = %u\n",pRICSubscriptionFailure->criticalityDiagnostics.procedureCodePresent);
495 printf("pRICSubscriptionFailure->criticalityDiagnostics.procedureCode = %u\n",(unsigned)pRICSubscriptionFailure->criticalityDiagnostics.procedureCode);
496 printf("pRICSubscriptionFailure->criticalityDiagnostics.triggeringMessagePresent = %u\n",pRICSubscriptionFailure->criticalityDiagnostics.triggeringMessagePresent);
497 printf("pRICSubscriptionFailure->criticalityDiagnostics.triggeringMessage = %u\n",(unsigned)pRICSubscriptionFailure->criticalityDiagnostics.triggeringMessage);
498 printf("pRICSubscriptionFailure->criticalityDiagnostics.procedureCriticalityPresent = %u\n",pRICSubscriptionFailure->criticalityDiagnostics.procedureCriticalityPresent);
499 printf("pRICSubscriptionFailure->criticalityDiagnostics.procedureCriticality = %u\n",(unsigned)pRICSubscriptionFailure->criticalityDiagnostics.procedureCriticality);
500 printf("pRICSubscriptionFailure->criticalityDiagnostics.iEsCriticalityDiagnosticsPresent = %u\n",pRICSubscriptionFailure->criticalityDiagnostics.iEsCriticalityDiagnosticsPresent);
501 printf("pRICSubscriptionFailure->criticalityDiagnostics.criticalityDiagnosticsIELength = %u\n",pRICSubscriptionFailure->criticalityDiagnostics.criticalityDiagnosticsIELength);
503 while (index < pRICSubscriptionFailure->criticalityDiagnostics.criticalityDiagnosticsIELength) {
504 printf("pRICSubscriptionFailure->criticalityDiagnostics.criticalityDiagnosticsIEListItem[index].iECriticality = %u\n",
505 (unsigned)pRICSubscriptionFailure->criticalityDiagnostics.criticalityDiagnosticsIEListItem[index].iECriticality);
506 printf("pRICSubscriptionFailure->criticalityDiagnostics.criticalityDiagnosticsIEListItem[index].iE_ID = %u\n",
507 pRICSubscriptionFailure->criticalityDiagnostics.criticalityDiagnosticsIEListItem[index].iE_ID);
508 printf("pRICSubscriptionFailure->criticalityDiagnostics.criticalityDiagnosticsIEListItem[index].typeOfError = %u\n",
509 (unsigned)pRICSubscriptionFailure->criticalityDiagnostics.criticalityDiagnosticsIEListItem[index].typeOfError);
516 void printRICSubscriptionDeleteRequest(const RICSubscriptionDeleteRequest_t* pRICSubscriptionDeleteRequest) {
518 printf("\npRICSubscriptionDeleteRequest->ricRequestID.ricRequestorID = %u\n",pRICSubscriptionDeleteRequest->ricRequestID.ricRequestorID);
519 printf("pRICSubscriptionDeleteRequest->ricRequestID.ricRequestSequenceNumber = %u\n",pRICSubscriptionDeleteRequest->ricRequestID.ricRequestSequenceNumber);
520 printf("pRICSubscriptionDeleteRequest->ranFunctionID = %i\n",pRICSubscriptionDeleteRequest->ranFunctionID);
524 void printRICSubscriptionDeleteResponse(const RICSubscriptionDeleteResponse_t* pRICSubscriptionDeleteResponse) {
526 printf("\npRICSubscriptionDeleteResponse->ricRequestID.ricRequestorID = %u\n",pRICSubscriptionDeleteResponse->ricRequestID.ricRequestorID);
527 printf("pRICSubscriptionDeleteResponse->ricRequestID.ricRequestSequenceNumber = %u\n",pRICSubscriptionDeleteResponse->ricRequestID.ricRequestSequenceNumber);
528 printf("pRICSubscriptionDeleteResponse->ranFunctionID = %i\n",pRICSubscriptionDeleteResponse->ranFunctionID);
532 void printRICSubscriptionDeleteFailure(const RICSubscriptionDeleteFailure_t* pRICSubscriptionDeleteFailure) {
534 printf("\npRICSubscriptionDeleteFailure->ricRequestID.ricRequestorID = %u\n",pRICSubscriptionDeleteFailure->ricRequestID.ricRequestorID);
535 printf("pRICSubscriptionDeleteFailure->ricRequestID.ricRequestSequenceNumber = %u\n",pRICSubscriptionDeleteFailure->ricRequestID.ricRequestSequenceNumber);
536 printf("pRICSubscriptionDeleteFailure->ranFunctionID = %i\n",pRICSubscriptionDeleteFailure->ranFunctionID);
537 printf("pRICSubscriptionDeleteFailure->ricCause.content = %i\n",pRICSubscriptionDeleteFailure->ricCause.content);
538 printf("pRICSubscriptionDeleteFailure->ricCause.cause = %i\n",pRICSubscriptionDeleteFailure->ricCause.cause);