diff options
Diffstat (limited to 'epan/dissectors/asn1/sabp/sabp.cnf')
-rw-r--r-- | epan/dissectors/asn1/sabp/sabp.cnf | 216 |
1 files changed, 216 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/sabp/sabp.cnf b/epan/dissectors/asn1/sabp/sabp.cnf new file mode 100644 index 00000000..2630514e --- /dev/null +++ b/epan/dissectors/asn1/sabp/sabp.cnf @@ -0,0 +1,216 @@ +# sabp.cnf +# sabp conformation file +# Copyright 2007 Tomas Kukosa + +#.OPT +PER +ALIGNED +#.END + +#.NO_EMIT + +#.PDU +SABP-PDU + +#.MAKE_ENUM +ProcedureCode +ProtocolIE-ID + +#.USE_VALS_EXT +ProcedureCode +ProtocolIE-ID +Cause + +#.OMIT_ASSIGNMENT +Presence +ProtocolIE-ContainerList +#.END + +#.TF_RENAME +ProtocolIE-Field/value ProtocolIE_Field_value +InitiatingMessage/value InitiatingMessage_value +SuccessfulOutcome/value SuccessfulOutcome_value +UnsuccessfulOutcome/value UnsuccessfulOutcome_value +#.END + +#.FIELD_RENAME +ProtocolExtensionField/id ext_id +MessageStructure/_item/repetitionNumber repetitionNumber1 +#.END + + +#.FN_PARS ProtocolIE-ID VAL_PTR=&ProtocolIE_ID +#.FN_FTR ProtocolIE-ID + if (tree) { + proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &sabp_ProtocolIE_ID_vals_ext, "unknown (%d)")); + } +#.END + + +#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue + +#.FN_PARS ProtocolExtensionID VAL_PTR=&ProtocolExtensionID +#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue + +#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode +#.FN_FTR ProcedureCode + col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ", + val_to_str_ext(ProcedureCode, &sabp_ProcedureCode_vals_ext, + "unknown message")); +#.END + +#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue + +#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue + +#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue + + +#.ASSIGN_VALUE_TO_TYPE # SABP does not have constants assigned to types, they are pure INTEGER +# ProcedureCode +id-Write-Replace ProcedureCode +id-Kill ProcedureCode +id-Load-Status-Enquiry ProcedureCode +id-Message-Status-Query ProcedureCode +id-Restart-Indication ProcedureCode +id-Reset ProcedureCode +id-Failure-Indication ProcedureCode +id-Error-Indication ProcedureCode + +# ProtocolIE-ID +id-Broadcast-Message-Content ProtocolIE-ID +id-Category ProtocolIE-ID +id-Cause ProtocolIE-ID +id-Criticality-Diagnostics ProtocolIE-ID +id-Data-Coding-Scheme ProtocolIE-ID +id-Failure-List ProtocolIE-ID +id-Message-Identifier ProtocolIE-ID +id-New-Serial-Number ProtocolIE-ID +id-Number-of-Broadcasts-Completed-List ProtocolIE-ID +id-Number-of-Broadcasts-Requested ProtocolIE-ID +id-Old-Serial-Number ProtocolIE-ID +id-Radio-Resource-Loading-List ProtocolIE-ID +id-Recovery-Indication ProtocolIE-ID +id-Repetition-Period ProtocolIE-ID +id-Serial-Number ProtocolIE-ID +id-Service-Areas-List ProtocolIE-ID +id-MessageStructure ProtocolIE-ID +id-TypeOfError ProtocolIE-ID +id-Paging-ETWS-Indicator ProtocolIE-ID +id-Warning-Type ProtocolIE-ID +id-WarningSecurityInfo ProtocolIE-ID +id-Broadcast-Message-Content-Validity-Indicator ProtocolIE-ID + +#.END + +#.REGISTER + +#SABP-PROTOCOL-IES +Message-Identifier N sabp.ies id-Message-Identifier +New-Serial-Number N sabp.ies id-New-Serial-Number +Old-Serial-Number N sabp.ies id-Old-Serial-Number +Service-Areas-List N sabp.ies id-Service-Areas-List +Category N sabp.ies id-Category +Repetition-Period N sabp.ies id-Repetition-Period +Number-of-Broadcasts-Requested N sabp.ies id-Number-of-Broadcasts-Requested +Data-Coding-Scheme N sabp.ies id-Data-Coding-Scheme +Broadcast-Message-Content N sabp.ies id-Broadcast-Message-Content +Number-of-Broadcasts-Completed-List N sabp.ies id-Number-of-Broadcasts-Completed-List +Criticality-Diagnostics N sabp.ies id-Criticality-Diagnostics +Failure-List N sabp.ies id-Failure-List +Radio-Resource-Loading-List N sabp.ies id-Radio-Resource-Loading-List +Recovery-Indication N sabp.ies id-Recovery-Indication +Serial-Number N sabp.ies id-Serial-Number +Cause N sabp.ies id-Cause + +#SABP-PROTOCOL-EXTENSION +MessageStructure N sabp.extension id-MessageStructure +TypeOfError N sabp.extension id-TypeOfError +Paging-ETWS-Indicator N sabp.extension id-Paging-ETWS-Indicator +Warning-Type N sabp.extension id-Warning-Type +WarningSecurityInfo N sabp.extension id-WarningSecurityInfo +Broadcast-Message-Content-Validity-Indicator N sabp.extension id-Broadcast-Message-Content-Validity-Indicator + +#SABP-ELEMENTARY-PROCEDURE +Write-Replace N sabp.proc.imsg id-Write-Replace +Write-Replace-Complete N sabp.proc.sout id-Write-Replace +Write-Replace-Failure N sabp.proc.uout id-Write-Replace +Kill N sabp.proc.imsg id-Kill +Kill-Complete N sabp.proc.sout id-Kill +Kill-Failure N sabp.proc.uout id-Kill +Load-Query N sabp.proc.imsg id-Load-Status-Enquiry +Load-Query-Complete N sabp.proc.sout id-Load-Status-Enquiry +Load-Query-Failure N sabp.proc.uout id-Load-Status-Enquiry +Message-Status-Query N sabp.proc.imsg id-Message-Status-Query +Message-Status-Query-Complete N sabp.proc.sout id-Message-Status-Query +Message-Status-Query-Failure N sabp.proc.uout id-Message-Status-Query +Reset N sabp.proc.imsg id-Reset +Reset-Complete N sabp.proc.sout id-Reset +Reset-Failure N sabp.proc.uout id-Reset +Restart N sabp.proc.imsg id-Restart-Indication +Failure N sabp.proc.imsg id-Failure-Indication +Error-Indication N sabp.proc.imsg id-Error-Indication + +# following construction is not supported by asn2wrs +# PLMNidentity ::= TBCD-STRING (SIZE (3)) +# TBCD-STRING ::= OCTET STRING + +#.FN_BODY Service-Area-Identifier/pLMNidentity VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb=NULL; + proto_tree *subtree; + + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 3, 3, FALSE, ¶meter_tvb); + + if (!parameter_tvb) + return offset; + subtree = proto_item_add_subtree(actx->created_item, ett_sabp_e212); + dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_SAI, FALSE); + +#.FN_BODY Data-Coding-Scheme VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb=NULL; + proto_tree *subtree; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + subtree = proto_item_add_subtree(actx->created_item, ett_sabp_cbs_data_coding); + sms_encoding = dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree, 0); + +#.FN_BODY Message-Identifier VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb=NULL; + +%(DEFAULT_BODY)s + if (!parameter_tvb) + return offset; + dissect_cbs_message_identifier(parameter_tvb, tree, 0); + +#.FN_BODY Serial-Number VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb=NULL; + proto_tree *subtree; + +%(DEFAULT_BODY)s + if (!parameter_tvb) + return offset; + subtree = proto_item_add_subtree(actx->created_item, ett_sabp_cbs_serial_number); + dissect_cbs_serial_number(parameter_tvb, subtree, 0); + +#.FN_BODY New-Serial-Number VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb=NULL; + proto_tree *subtree; + +%(DEFAULT_BODY)s + if (!parameter_tvb) + return offset; + subtree = proto_item_add_subtree(actx->created_item, ett_sabp_cbs_new_serial_number); + dissect_cbs_serial_number(parameter_tvb, subtree, 0); + +#.FN_BODY Broadcast-Message-Content VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb=NULL; + +%(DEFAULT_BODY)s + if (!parameter_tvb) + return offset; + dissect_sabp_cb_data(parameter_tvb, actx->pinfo, tree); +# dissect_umts_cell_broadcast_message(parameter_tvb, actx->pinfo, proto_tree_get_root(tree)); |