- RICcontrolRequest_IEs_t *ies_indtyp = &IE_array[ie_index];
- ies_indtyp->criticality = Criticality_reject;
- ies_indtyp->id = ProtocolIE_ID_id_RICcontrolAckRequest;
- ies_indtyp->value.present = RICcontrolRequest_IEs__value_PR_RICcontrolAckRequest;
- RICcontrolAckRequest_t *ricackreq_ie = &ies_indtyp->value.choice.RICcontrolAckRequest;
- *ricackreq_ie = dinput.control_ack;
+ if (dinput.control_ack >= 0){
+ E2N_RICcontrolRequest_IEs_t *ies_indtyp = &IE_array[ie_index];
+ ies_indtyp->criticality = E2N_Criticality_reject;
+ ies_indtyp->id = E2N_ProtocolIE_ID_id_RICcontrolAckRequest;
+ ies_indtyp->value.present = E2N_RICcontrolRequest_IEs__value_PR_RICcontrolAckRequest;
+ E2N_RICcontrolAckRequest_t *ricackreq_ie = &ies_indtyp->value.choice.RICcontrolAckRequest;
+ *ricackreq_ie = dinput.control_ack;
+ ASN_SEQUENCE_ADD(&(ric_control_request->protocolIEs), &(IE_array[ie_index]));
+ }
+
+ // Optional IE
+ ie_index = 5;
+ if(dinput.call_process_id_size > 0){
+ E2N_RICcontrolRequest_IEs_t *ies_callprocid = &IE_array[ie_index];
+ ies_callprocid->criticality = E2N_Criticality_reject;
+ ies_callprocid->id = E2N_ProtocolIE_ID_id_RICcallProcessID;
+ ies_callprocid->value.present = E2N_RICcontrolRequest_IEs__value_PR_RICcallProcessID;
+ E2N_RICcallProcessID_t *riccallprocessid_ie = &ies_callprocid->value.choice.RICcallProcessID;
+ riccallprocessid_ie->buf = dinput.call_process_id;
+ riccallprocessid_ie->size = dinput.call_process_id_size;
+ ASN_SEQUENCE_ADD(&(ric_control_request->protocolIEs), &(IE_array[ie_index]));