ranap_common_cn: Handle non-terminal 'outcome' for RAB-ASS.resp

This commit is contained in:
Harald Welte 2015-12-28 14:44:49 +01:00
parent a31e63ab39
commit 7bccc98cf8
1 changed files with 30 additions and 0 deletions

View File

@ -109,6 +109,33 @@ static int cn_ranap_rx_successful_msg_co(void *ctx, RANAP_SuccessfulOutcome_t *i
return rc;
}
static int cn_ranap_rx_outcome_msg_co(void *ctx, RANAP_Outcome_t *imsg,
ranap_message *message)
{
int rc = 0;
message->procedureCode = imsg->procedureCode;
message->criticality = imsg->criticality;
DEBUGP(DRANAP, "Rx CO O (%s)\n",
get_value_string(ranap_procedure_code_vals, imsg->procedureCode));
switch (imsg->procedureCode) {
case RANAP_ProcedureCode_id_RAB_Assignment:
/* RAB assignment response */
rc = ranap_decode_rab_assignmentresponseies(&message->msg.raB_AssignmentResponseIEs, &imsg->value);
break;
default:
LOGP(DRANAP, LOGL_NOTICE, "Received suspicious RANAP "
"Procedure %s (O) from RNC, ignoring\n",
get_value_string(ranap_procedure_code_vals, imsg->procedureCode));
rc = -1;
break;
}
return rc;
}
static int _cn_ranap_rx_co(void *ctx, RANAP_RANAP_PDU_t *pdu, ranap_message *message)
{
int rc = 0;
@ -127,6 +154,9 @@ static int _cn_ranap_rx_co(void *ctx, RANAP_RANAP_PDU_t *pdu, ranap_message *mes
pdu->choice.unsuccessfulOutcome.procedureCode));
rc = -1;
break;
case RANAP_RANAP_PDU_PR_outcome:
rc = cn_ranap_rx_outcome_msg_co(ctx, &pdu->choice.successfulOutcome, message);
break;
default:
LOGP(DRANAP, LOGL_NOTICE, "Received suspicious RANAP "
"presence %s (CO) from RNC, ignoring\n",