-bool ric_control_response::set_fields(E2N_UnsuccessfulOutcome_t *unsuccessMsg, ric_control_helper &dinput){
- unsigned int ie_index;
-
- if (unsuccessMsg == 0){
- error_string = "Invalid reference for E2AP Control Failure in set_fields";
- return false;
- }
-
- // for(i = 0; i < NUM_CONTROL_FAILURE_IES;i++){
- // memset(&(IE_failure_array[i]), 0, sizeof(RICcontrolFailure_IEs_t));
- // }
-
- //E2N_RICcontrolFailure_t * ric_failure = &(unsuccessMsg->value.choice.RICcontrolFailure);
- //ric_failure->protocolIEs.list.count = 0;
-
- ie_index = 0;
- E2N_RICcontrolFailure_IEs_t *ies_ricreq = &IE_failure_array[ie_index];
- ies_ricreq->criticality = E2N_Criticality_reject;
- ies_ricreq->id = E2N_ProtocolIE_ID_id_RICrequestID;
- ies_ricreq->value.present = E2N_RICcontrolFailure_IEs__value_PR_RICrequestID;
- E2N_RICrequestID_t *ricrequest_ie = &(ies_ricreq->value.choice.RICrequestID);
- ricrequest_ie->ricRequestorID = dinput.req_id;
- ricrequest_ie->ricRequestSequenceNumber = dinput.req_seq_no;
- //ASN_SEQUENCE_ADD(&(ric_failure->protocolIEs), ies_ricreq);
-
- ie_index = 1;
- E2N_RICcontrolFailure_IEs_t *ies_ranfunc = &IE_failure_array[ie_index];
- ies_ranfunc->criticality = E2N_Criticality_reject;
- ies_ranfunc->id = E2N_ProtocolIE_ID_id_RANfunctionID;
- ies_ranfunc->value.present = E2N_RICcontrolFailure_IEs__value_PR_RANfunctionID;
- E2N_RANfunctionID_t *ranfunction_ie = &(ies_ranfunc->value.choice.RANfunctionID);
- *ranfunction_ie = dinput.func_id;
- //ASN_SEQUENCE_ADD(&(ric_failure->protocolIEs), ies_ranfunc);
-
- // ie_index = 2;
- // E2N_RICcontrolFailure_IEs_t *ies_riccallprocessid = &IE_failure_array[i];
- // ies_riccallprocessid->criticality = E2N_Criticality_reject;
- // ies_riccallprocessid->id = E2N_ProtocolIE_ID_id_RICcallProcessID;
- // ies_riccallprocessid->value.present = E2N_RICcontrolFailure_IEs__value_PR_RICcallProcessID;
- // RICcallProcessID_t *riccallprocessid_ie = &(ies_riccallprocessid->value.choice.RICcallProcessID);
- // riccallprocessid_ie->buf = dinput.call_process_id;
- // riccallprocessid_ie->size = dinput.call_process_id_size;
- // ASN_SEQUENCE_ADD(&(ric_failure->protocolIEs), ies_riccallprocessid);
-
- ie_index = 2;
- E2N_RICcontrolFailure_IEs_t *ies_ric_cause = &IE_failure_array[ie_index];
- ies_ric_cause->criticality = E2N_Criticality_ignore;
- ies_ric_cause->id = E2N_ProtocolIE_ID_id_RICcause;
- ies_ric_cause->value.present = E2N_RICcontrolFailure_IEs__value_PR_RICcause;
- E2N_RICcause_t * ric_cause = &(ies_ric_cause->value.choice.RICcause);
- ric_cause->present = (E2N_RICcause_PR)dinput.cause;
-
- switch(dinput.cause){
- case E2N_RICcause_PR_radioNetwork:
- ric_cause->choice.radioNetwork = dinput.sub_cause;
- break;
- case E2N_RICcause_PR_transport:
- ric_cause->choice.transport = dinput.sub_cause;
- break;
- case E2N_RICcause_PR_protocol:
- ric_cause->choice.protocol= dinput.sub_cause;
- break;
- case E2N_RICcause_PR_misc:
- ric_cause->choice.misc = dinput.sub_cause;
- break;
- case E2N_RICcause_PR_ric:
- ric_cause->choice.ric = dinput.sub_cause;
- break;
- default:
- std::cout <<"Error ! Illegal cause enum" << dinput.cause << std::endl;
- return false;
- }
-
- //ASN_SEQUENCE_ADD(&(ric_failure->protocolIEs), ies_ric_cause);
- return true;
+bool ric_control_response::set_fields(UnsuccessfulOutcome_t *unsuccessMsg, ric_control_helper &dinput){
+ unsigned int ie_index;
+
+ if (unsuccessMsg == 0){
+ error_string = "Invalid reference for E2AP Control Failure in set_fields";
+ return false;
+ }
+
+ // for(i = 0; i < NUM_CONTROL_FAILURE_IES;i++){
+ // memset(&(IE_failure_array[i]), 0, sizeof(RICcontrolFailure_IEs_t));
+ // }
+
+ //RICcontrolFailure_t * ric_failure = &(unsuccessMsg->value.choice.RICcontrolFailure);
+ //ric_failure->protocolIEs.list.count = 0;
+
+ ie_index = 0;
+ RICcontrolFailure_IEs_t *ies_ricreq = &IE_failure_array[ie_index];
+ ies_ricreq->criticality = Criticality_reject;
+ ies_ricreq->id = ProtocolIE_ID_id_RICrequestID;
+ ies_ricreq->value.present = RICcontrolFailure_IEs__value_PR_RICrequestID;
+ RICrequestID_t *ricrequest_ie = &(ies_ricreq->value.choice.RICrequestID);
+ ricrequest_ie->ricRequestorID = dinput.req_id;
+ //ricrequest_ie->ricRequestSequenceNumber = dinput.req_seq_no;
+ //ASN_SEQUENCE_ADD(&(ric_failure->protocolIEs), ies_ricreq);
+
+ ie_index = 1;
+ RICcontrolFailure_IEs_t *ies_ranfunc = &IE_failure_array[ie_index];
+ ies_ranfunc->criticality = Criticality_reject;
+ ies_ranfunc->id = ProtocolIE_ID_id_RANfunctionID;
+ ies_ranfunc->value.present = RICcontrolFailure_IEs__value_PR_RANfunctionID;
+ RANfunctionID_t *ranfunction_ie = &(ies_ranfunc->value.choice.RANfunctionID);
+ *ranfunction_ie = dinput.func_id;
+ //ASN_SEQUENCE_ADD(&(ric_failure->protocolIEs), ies_ranfunc);
+
+ // ie_index = 2;
+ // RICcontrolFailure_IEs_t *ies_riccallprocessid = &IE_failure_array[i];
+ // ies_riccallprocessid->criticality = Criticality_reject;
+ // ies_riccallprocessid->id = ProtocolIE_ID_id_RICcallProcessID;
+ // ies_riccallprocessid->value.present = RICcontrolFailure_IEs__value_PR_RICcallProcessID;
+ // RICcallProcessID_t *riccallprocessid_ie = &(ies_riccallprocessid->value.choice.RICcallProcessID);
+ // riccallprocessid_ie->buf = dinput.call_process_id;
+ // riccallprocessid_ie->size = dinput.call_process_id_size;
+ // ASN_SEQUENCE_ADD(&(ric_failure->protocolIEs), ies_riccallprocessid);
+
+ ie_index = 2;
+ RICcontrolFailure_IEs_t *ies_ric_cause = &IE_failure_array[ie_index];
+ ies_ric_cause->criticality = Criticality_ignore;
+ ies_ric_cause->id = ProtocolIE_ID_id_Cause;
+ ies_ric_cause->value.present = RICcontrolFailure_IEs__value_PR_Cause;
+ Cause_t * ric_cause = &(ies_ric_cause->value.choice.Cause);
+ ric_cause->present = (Cause_PR)dinput.cause;
+
+ switch(dinput.cause){
+ case Cause_PR_ricService:
+ ric_cause->choice.ricService = dinput.sub_cause;
+ break;
+ case Cause_PR_transport:
+ ric_cause->choice.transport = dinput.sub_cause;
+ break;
+ case Cause_PR_protocol:
+ ric_cause->choice.protocol= dinput.sub_cause;
+ break;
+ case Cause_PR_misc:
+ ric_cause->choice.misc = dinput.sub_cause;
+ break;
+ case Cause_PR_ricRequest:
+ ric_cause->choice.ricRequest = dinput.sub_cause;
+ break;
+ default:
+ std::cout <<"Error ! Illegal cause enum" << dinput.cause << std::endl;
+ return false;
+ }
+
+ //ASN_SEQUENCE_ADD(&(ric_failure->protocolIEs), ies_ric_cause);
+ return true;