neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/37393?usp=email )
Change subject: support RAB Assignment in cn_ranap_rx_*_msg_co() ......................................................................
support RAB Assignment in cn_ranap_rx_*_msg_co()
Allow decoding all Assignment Request/Response messages.
A RAB Assignment request is - connection oriented - initiatingMessage - procedureCode == RAB_Assignment
A RAB Assignment response is - connection oriented - successfulOutcome or unsuccessfulOutcome - procedureCode == RAB_Assignment
Add decoding the request to cn_ranap_rx_initiating_msg_co(). Add decoding the unsuccessful response to cn_ranap_rx_unsuccessful_msg_co();
Decoding the successful response is already present in cn_ranap_rx_successful_msg_co().
osmo-gsm-shark uses this to connect a voice call's signalling with RTP.
Change-Id: Ifec566a98cb6141d27b9e5e33d5a78f8b1530658 --- M src/ranap_common_cn.c 1 file changed, 42 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/93/37393/1
diff --git a/src/ranap_common_cn.c b/src/ranap_common_cn.c index 72698a4..1a01bb0 100644 --- a/src/ranap_common_cn.c +++ b/src/ranap_common_cn.c @@ -48,6 +48,9 @@ case RANAP_ProcedureCode_id_DirectTransfer: rc = ranap_decode_directtransferies(&message->msg.directTransferIEs, &imsg->value); break; + case RANAP_ProcedureCode_id_RAB_Assignment: + rc = ranap_decode_rab_assignmentrequesties(&message->msg.raB_AssignmentRequestIEs, &imsg->value); + break; case RANAP_ProcedureCode_id_RAB_ReleaseRequest: /* RNC requests the release of RAB */ rc = ranap_decode_rab_releaserequesties(&message->msg.raB_ReleaseRequestIEs, &imsg->value); @@ -106,6 +109,9 @@ case RANAP_ProcedureCode_id_DirectTransfer: ranap_free_directtransferies(&message->msg.directTransferIEs); break; + case RANAP_ProcedureCode_id_RAB_Assignment: + ranap_free_rab_assignmentrequesties(&message->msg.raB_AssignmentRequestIEs); + break; case RANAP_ProcedureCode_id_RAB_ReleaseRequest: /* RNC requests the release of RAB */ ranap_free_rab_releaserequesties(&message->msg.raB_ReleaseRequestIEs); @@ -293,6 +299,9 @@ case RANAP_ProcedureCode_id_LocationRelatedData: rc = ranap_decode_locationrelateddatafailureies(&message->msg.locationRelatedDataFailureIEs, &imsg->value); break; + case RANAP_ProcedureCode_id_RAB_Assignment: + rc = ranap_decode_rab_assignmentresponseies(&message->msg.raB_AssignmentResponseIEs, &imsg->value); + break; default: LOGP(DRANAP, LOGL_NOTICE, "Received unsupported RANAP " "unsuccessful outcome procedure %s (CO) from RNC, ignoring\n", @@ -316,6 +325,9 @@ case RANAP_ProcedureCode_id_LocationRelatedData: ranap_free_locationrelateddatafailureies(&message->msg.locationRelatedDataFailureIEs); break; + case RANAP_ProcedureCode_id_RAB_Assignment: + ranap_free_rab_assignmentresponseies(&message->msg.raB_AssignmentResponseIEs); + break; default: LOGP(DRANAP, LOGL_INFO, "Freeing RANAP unsuccessful outcome procedure %s (CO) from RNC " "not implemented\n", get_value_string(ranap_procedure_code_vals, message->procedureCode));