# sbc-ap.cnf # sbc-ap conformation file #.OPT PER ALIGNED #.END #.EXPORTS #.PDU SBC-AP-PDU #.MAKE_ENUM ProcedureCode ProtocolIE-ID #.NO_EMIT TBCD-STRING #.END #.OMIT_ASSIGNMENT # Get rid of unused code warnings ProtocolIE-ContainerList Presence Unknown-Tracking-Area-List NgENB-ID List-of-5GS-Cells-for-Failure #.TYPE_RENAME InitiatingMessage/value InitiatingMessage_value SuccessfulOutcome/value SuccessfulOutcome_value UnsuccessfulOutcome/value UnsuccessfulOutcome_value #.FIELD_RENAME InitiatingMessage/value initiatingMessagevalue UnsuccessfulOutcome/value unsuccessfulOutcome_value SuccessfulOutcome/value successfulOutcome_value ProtocolExtensionField/id ext_id ProtocolIE-Field/value ie_field_value #.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(ProtocolIE_ID, VALS(sbc_ap_ProtocolIE_ID_vals), "unknown (%d)")); } #.END #.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue # Currently not used # FN_PARS ProtocolIE-FieldPair/firstValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairFirstValue # FN_PARS ProtocolIE-FieldPair/secondValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairSecondValue #.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 #.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 #--- Parameterization is not supported in asn2wrs --- #ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, SBC-AP-PROTOCOL-IES : IEsSetParam} ::= # SEQUENCE (SIZE (lowerBound..upperBound)) OF # ProtocolIE-Container {{IEsSetParam}} # FN_PARS ProtocolIE-ContainerList #MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound") #MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound") # FN_HDR ProtocolIE-ContainerList # static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = { # { "lowerBound", ASN1_PAR_INTEGER }, # { "upperBound", ASN1_PAR_INTEGER }, # { NULL, 0 } # }; # asn1_stack_frame_check(actx, "ProtocolIE-ContainerList", ProtocolIE_ContainerList_pars); #.END #ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, SBC-AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= # SEQUENCE (SIZE (lowerBound..upperBound)) OF # ProtocolIE-ContainerPair {{IEsSetParam}} # following construction is not supported by asn2wrs # PLMNidentity ::= TBCD-STRING (SIZE (3)) # TBCD-STRING ::= OCTET STRING #.FN_BODY PLMNidentity VAL_PTR = parameter_tvb tvbuff_t *parameter_tvb=NULL; struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo); e212_number_type_t number_type = sbc_ap_data->number_type; sbc_ap_data->number_type = E212_NONE; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 3, 3, FALSE, ¶meter_tvb); if(tvb_reported_length(tvb)==0) return offset; if (!parameter_tvb) return offset; dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, number_type, FALSE); #.END #.TYPE_ATTR ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(sbc_ap_ProtocolIE_ID_vals) #.FN_BODY EUTRAN-CGI struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo); sbc_ap_data->number_type = E212_ECGI; %(DEFAULT_BODY)s #.FN_BODY NR-CGI struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo); sbc_ap_data->number_type = E212_NRCGI; %(DEFAULT_BODY)s #.FN_BODY TAI struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo); sbc_ap_data->number_type = E212_TAI; %(DEFAULT_BODY)s #.TYPE_ATTR TAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX #.FN_BODY TAC VAL_PTR = ¶meter_tvb HF_INDEX = -1 tvbuff_t *parameter_tvb = NULL; %(DEFAULT_BODY)s if (parameter_tvb) { actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN); } #.FN_BODY TAI-5GS struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo); sbc_ap_data->number_type = E212_5GSTAI; %(DEFAULT_BODY)s #.TYPE_ATTR TAC-5GS TYPE = FT_UINT24 DISPLAY = BASE_DEC_HEX #.FN_BODY TAC-5GS VAL_PTR = ¶meter_tvb HF_INDEX = -1 tvbuff_t *parameter_tvb = NULL; %(DEFAULT_BODY)s if (parameter_tvb) { actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 3, ENC_BIG_ENDIAN); } #.ASSIGN_VALUE_TO_TYPE # SBC-AP does not have constants assigned to types, they are pure INTEGER # ProcedureCode id-Write-Replace-Warning ProcedureCode id-Stop-Warning ProcedureCode id-Error-Indication ProcedureCode id-Write-Replace-Warning-Indication ProcedureCode id-Stop-Warning-Indication ProcedureCode id-PWS-Restart-Indication ProcedureCode id-PWS-Failure-Indication ProcedureCode # ProtocolIE-ID id-Broadcast-Message-Content 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-Number-of-Broadcasts-Completed-List ProtocolIE-ID id-Number-of-Broadcasts-Requested 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-TypeOfError ProtocolIE-ID id-List-of-TAIs ProtocolIE-ID id-Warning-Area-List ProtocolIE-ID id-Warning-Message-Content ProtocolIE-ID id-Warning-Security-Information ProtocolIE-ID id-Warning-Type ProtocolIE-ID id-Omc-Id ProtocolIE-ID id-Concurrent-Warning-Message-Indicator ProtocolIE-ID id-Extended-Repetition-Period ProtocolIE-ID id-Unknown-Tracking-Area-List ProtocolIE-ID id-Broadcast-Scheduled-Area-List ProtocolIE-ID id-Send-Write-Replace-Warning-Indication ProtocolIE-ID id-Broadcast-Cancelled-Area-List ProtocolIE-ID id-Send-Stop-Warning-Indication ProtocolIE-ID id-Stop-All-Indicator ProtocolIE-ID id-Global-ENB-ID ProtocolIE-ID id-Broadcast-Empty-Area-List ProtocolIE-ID id-Restarted-Cell-List ProtocolIE-ID id-List-of-TAIs-Restart ProtocolIE-ID id-List-of-EAIs-Restart ProtocolIE-ID id-Failed-Cell-List ProtocolIE-ID id-List-of-5GS-TAIs ProtocolIE-ID id-Warning-Area-List-5GS ProtocolIE-ID id-Global-RAN-Node-ID ProtocolIE-ID id-Global-GNB-ID ProtocolIE-ID id-RAT-Selector-5GS ProtocolIE-ID id-Unknown-5GS-Tracking-Area-List ProtocolIE-ID id-Broadcast-Scheduled-Area-List-5GS ProtocolIE-ID id-Broadcast-Cancelled-Area-List-5GS ProtocolIE-ID id-Broadcast-Empty-Area-List-5GS ProtocolIE-ID id-Restarted-Cell-List-NR ProtocolIE-ID id-Failed-Cell-List-NR ProtocolIE-ID id-List-of-5GS-TAI-for-Restart ProtocolIE-ID id-Warning-Area-Coordinates ProtocolIE-ID #.REGISTER #SBC-AP-PROTOCOL-IES # N sbc_ap.ies id-Broadcast-Message-Content Cause N sbc_ap.ies id-Cause Criticality-Diagnostics N sbc_ap.ies id-Criticality-Diagnostics Data-Coding-Scheme N sbc_ap.ies id-Data-Coding-Scheme # N sbc_ap.ies id-Failure-List Message-Identifier N sbc_ap.ies id-Message-Identifier # id-Number-of-Broadcasts-Completed-List Number-of-Broadcasts-Requested N sbc_ap.ies id-Number-of-Broadcasts-Requested # not used ? N sbc_ap.ies id-Radio-Resource-Loading-List # not used N sbc_ap.ies id-Recovery-Indication Repetition-Period N sbc_ap.ies id-Repetition-Period Serial-Number N sbc_ap.ies id-Serial-Number # id-Service-Areas-List # id-TypeOfError List-of-TAIs N sbc_ap.ies id-List-of-TAIs Warning-Area-List N sbc_ap.ies id-Warning-Area-List Warning-Message-Content N sbc_ap.ies id-Warning-Message-Content Warning-Security-Information N sbc_ap.ies id-Warning-Security-Information Warning-Type N sbc_ap.ies id-Warning-Type Omc-Id N sbc_ap.ies id-Omc-Id Concurrent-Warning-Message-Indicator N sbc_ap.ies id-Concurrent-Warning-Message-Indicator Extended-Repetition-Period N sbc_ap.ies id-Extended-Repetition-Period List-of-TAIs N sbc_ap.ies id-Unknown-Tracking-Area-List Broadcast-Scheduled-Area-List N sbc_ap.ies id-Broadcast-Scheduled-Area-List Send-Write-Replace-Warning-Indication N sbc_ap.ies id-Send-Write-Replace-Warning-Indication Broadcast-Cancelled-Area-List N sbc_ap.ies id-Broadcast-Cancelled-Area-List Send-Stop-Warning-Indication N sbc_ap.ies id-Send-Stop-Warning-Indication Stop-All-Indicator N sbc_ap.ies id-Stop-All-Indicator Global-ENB-ID N sbc_ap.ies id-Global-ENB-ID Broadcast-Empty-Area-List N sbc_ap.ies id-Broadcast-Empty-Area-List Restarted-Cell-List N sbc_ap.ies id-Restarted-Cell-List List-of-TAIs-Restart N sbc_ap.ies id-List-of-TAIs-Restart List-of-EAIs-Restart N sbc_ap.ies id-List-of-EAIs-Restart Failed-Cell-List N sbc_ap.ies id-Failed-Cell-List List-of-5GS-TAIs N sbc_ap.extension id-List-of-5GS-TAIs Warning-Area-List-5GS N sbc_ap.extension id-Warning-Area-List-5GS Global-RAN-Node-ID N sbc_ap.extension id-Global-RAN-Node-ID Global-GNB-ID N sbc_ap.extension id-Global-GNB-ID RAT-Selector-5GS N sbc_ap.extension id-RAT-Selector-5GS Unknown-5GS-Tracking-Area-List N sbc_ap.extension id-Unknown-5GS-Tracking-Area-List Broadcast-Scheduled-Area-List-5GS N sbc_ap.extension id-Broadcast-Scheduled-Area-List-5GS Broadcast-Cancelled-Area-List-5GS N sbc_ap.extension id-Broadcast-Cancelled-Area-List-5GS Broadcast-Empty-Area-List-5GS N sbc_ap.extension id-Broadcast-Empty-Area-List-5GS Restarted-Cell-List-NR N sbc_ap.extension id-Restarted-Cell-List-NR Failed-Cell-List-NR N sbc_ap.extension id-Failed-Cell-List-NR List-of-5GS-TAI-for-Restart N sbc_ap.extension id-List-of-5GS-TAI-for-Restart Warning-Area-Coordinates N sbc_ap.ies id-Warning-Area-Coordinates #SBC-AP-ELEMENTARY-PROCEDURE Write-Replace-Warning-Request N sbc_ap.proc.imsg id-Write-Replace-Warning Write-Replace-Warning-Response N sbc_ap.proc.sout id-Write-Replace-Warning Stop-Warning-Request N sbc_ap.proc.imsg id-Stop-Warning Stop-Warning-Response N sbc_ap.proc.sout id-Stop-Warning Error-Indication N sbc_ap.proc.imsg id-Error-Indication Write-Replace-Warning-Indication N sbc_ap.proc.imsg id-Write-Replace-Warning-Indication Stop-Warning-Indication N sbc_ap.proc.imsg id-Stop-Warning-Indication PWS-Restart-Indication N sbc_ap.proc.imsg id-PWS-Restart-Indication PWS-Failure-Indication N sbc_ap.proc.imsg id-PWS-Failure-Indication #.END #.TYPE_ATTR Message-Identifier TYPE = FT_UINT16 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = <e_rrc_messageIdentifier_vals_ext #.FN_HDR Write-Replace-Warning-Request col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Write-Replace-Warning-Request"); #.FN_HDR Write-Replace-Warning-Response col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Write-Replace-Warning-Response"); #.FN_HDR Stop-Warning-Request col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Stop-Warning-Request"); #.FN_HDR Stop-Warning-Response col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Stop-Warning-Response"); #.FN_HDR Error-Indication col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Error-Indication"); #.FN_HDR Write-Replace-Warning-Indication col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Write-Replace-Warning-Indication"); #.FN_HDR Stop-Warning-Indication col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Stop-Warning-Indication"); #.FN_HDR PWS-Restart-Indication col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWS-Restart-Indication"); #.FN_HDR PWS-Failure-Indication col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWS-Failure-Indication"); #.FN_BODY Message-Identifier VAL_PTR = ¶meter_tvb HF_INDEX = -1 tvbuff_t *parameter_tvb = NULL; %(DEFAULT_BODY)s if (parameter_tvb) { actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN); } #.FN_BODY Serial-Number VAL_PTR = ¶meter_tvb tvbuff_t *parameter_tvb = NULL; %(DEFAULT_BODY)s if (parameter_tvb) { proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_sbc_ap_Serial_Number); proto_tree_add_item(subtree, hf_sbc_ap_Serial_Number_gs, parameter_tvb, 0, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_sbc_ap_Serial_Number_msg_code, parameter_tvb, 0, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_sbc_ap_Serial_Number_upd_nb, parameter_tvb, 0, 2, ENC_BIG_ENDIAN); } #.TYPE_ATTR Repetition-Period DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds #.TYPE_ATTR Extended-Repetition-Period DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds #.FN_BODY Warning-Type VAL_PTR = ¶meter_tvb tvbuff_t *parameter_tvb = NULL; %(DEFAULT_BODY)s if (parameter_tvb) { proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_sbc_ap_Warning_Type); proto_tree_add_item(subtree, hf_sbc_ap_Warning_Type_value, parameter_tvb, 0, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_sbc_ap_Warning_Type_emergency_user_alert, parameter_tvb, 0, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_sbc_ap_Warning_Type_popup, parameter_tvb, 0, 2, ENC_BIG_ENDIAN); } #.FN_BODY Data-Coding-Scheme VAL_PTR = ¶meter_tvb tvbuff_t *parameter_tvb = NULL; %(DEFAULT_BODY)s if (parameter_tvb) { struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo); proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_sbc_ap_Data_Coding_Scheme); sbc_ap_data->data_coding_scheme = dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree, 0); } #.FN_BODY Warning-Message-Content VAL_PTR = ¶meter_tvb tvbuff_t *parameter_tvb = NULL; %(DEFAULT_BODY)s if (parameter_tvb) { struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo); proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_sbc_ap_Warning_Message_Contents); dissect_s1ap_warningMessageContents(parameter_tvb, subtree, actx->pinfo, sbc_ap_data->data_coding_scheme, hf_sbc_ap_Warning_Message_Contents_nb_pages, hf_sbc_ap_Warning_Message_Contents_decoded_page); } # # Editor modelines - https://www.wireshark.org/tools/modelines.html # # Local variables: # c-basic-offset: 2 # tab-width: 8 # indent-tabs-mode: nil # End: # # vi: set shiftwidth=2 tabstop=8 expandtab: # :indentSize=2:tabSize=8:noTabs=true: #