diff options
author | Harald Welte <laforge@gnumonks.org> | 2015-12-16 20:30:11 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2015-12-16 20:30:11 +0100 |
commit | c16117a22cff56ba794fae71f3e948cc5446342c (patch) | |
tree | da5a864f2916113996f5110f24eac0181d0fe33c /src | |
parent | 8dacb07bafad4e2b2966453f9eb97696c0747124 (diff) |
Add ranap_generate_outcome() function
Ranap has not only successsful and unsuccessful outcome, but also
an unqualified general 'outcome'.
Diffstat (limited to 'src')
-rw-r--r-- | src/ranap_common.c | 30 | ||||
-rw-r--r-- | src/ranap_common.h | 6 |
2 files changed, 33 insertions, 3 deletions
diff --git a/src/ranap_common.c b/src/ranap_common.c index 0e2ef6a..8c212d3 100644 --- a/src/ranap_common.c +++ b/src/ranap_common.c @@ -112,9 +112,32 @@ struct msgb *ranap_generate_unsuccessful_outcome( memset(&pdu, 0, sizeof(pdu)); pdu.present = RANAP_RANAP_PDU_PR_unsuccessfulOutcome; - pdu.choice.successfulOutcome.procedureCode = procedureCode; - pdu.choice.successfulOutcome.criticality = criticality; - rc = ANY_fromType_aper(&pdu.choice.successfulOutcome.value, td, sptr); + pdu.choice.unsuccessfulOutcome.procedureCode = procedureCode; + pdu.choice.unsuccessfulOutcome.criticality = criticality; + rc = ANY_fromType_aper(&pdu.choice.unsuccessfulOutcome.value, td, sptr); + if (rc < 0) { + LOGP(DMAIN, LOGL_ERROR, "Error in ANY_fromType_aper\n"); + return NULL; + } + + return _ranap_gen_msg(&pdu); +} + +struct msgb *ranap_generate_outcome( + e_RANAP_ProcedureCode procedureCode, + RANAP_Criticality_t criticality, + asn_TYPE_descriptor_t * td, + void *sptr) +{ + RANAP_RANAP_PDU_t pdu; + int rc; + + memset(&pdu, 0, sizeof(pdu)); + + pdu.present = RANAP_RANAP_PDU_PR_outcome; + pdu.choice.outcome.procedureCode = procedureCode; + pdu.choice.outcome.criticality = criticality; + rc = ANY_fromType_aper(&pdu.choice.outcome.value, td, sptr); if (rc < 0) { LOGP(DMAIN, LOGL_ERROR, "Error in ANY_fromType_aper\n"); return NULL; @@ -123,6 +146,7 @@ struct msgb *ranap_generate_unsuccessful_outcome( return _ranap_gen_msg(&pdu); } + RANAP_IE_t *ranap_new_ie(RANAP_ProtocolIE_ID_t id, RANAP_Criticality_t criticality, asn_TYPE_descriptor_t * type, void *sptr) diff --git a/src/ranap_common.h b/src/ranap_common.h index 84b4976..32a4436 100644 --- a/src/ranap_common.h +++ b/src/ranap_common.h @@ -607,6 +607,12 @@ struct msgb *ranap_generate_unsuccessful_outcome( asn_TYPE_descriptor_t * td, void *sptr); +struct msgb *ranap_generate_outcome( + e_RANAP_ProcedureCode procedureCode, + RANAP_Criticality_t criticality, + asn_TYPE_descriptor_t * td, + void *sptr); + RANAP_IE_t *ranap_new_ie(RANAP_ProtocolIE_ID_t id, RANAP_Criticality_t criticality, asn_TYPE_descriptor_t *type, void *sptr); |