diff options
Diffstat (limited to 'epan/dissectors/asn1/rrc/rrc.cnf')
-rw-r--r-- | epan/dissectors/asn1/rrc/rrc.cnf | 951 |
1 files changed, 951 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/rrc/rrc.cnf b/epan/dissectors/asn1/rrc/rrc.cnf new file mode 100644 index 0000000000..0a29d8662d --- /dev/null +++ b/epan/dissectors/asn1/rrc/rrc.cnf @@ -0,0 +1,951 @@ +# rrc.cnf +# rrc conformation file +# Copyright 2006 Anders Broman + +#.OPT +PER +UNALIGNED +#.END + +#.USE_VALS_EXT +AverageRLC-BufferPayload +DL-DCCH-MessageType +DL-TS-ChannelisationCode-VHCR +EstablishmentCause +E-DCH-MAC-d-FlowRetransTimer +HARQMemorySize +CommonEDCHSystemInfo/modeSpecificInfo/tdd/tdd128/ccch-transmission-Info/harq-retransmission-timer +MBMS-AccessProbabilityFactor +PNBSCH-Allocation-r4/numberOfRepetitionsPerSFNPeriod +RadioFrequencyBandFDD3 +E-PUCH-Info/modeSpecificInfo/tdd128/retransTimerForSchedInfo +E-PUCH-Info-TDD128/retransTimerForSchedInfo +ReceivedMessageType +RLC-BuffersPayload +SCCPCH-ChannelisationCode-VHCR +SFN-SFN-Drift +SIBSb-TypeAndTag +SIB-Type +SIB-TypeAndTag +TDD768-PICH-CCode +TDD-PRACH-CCode-LCR-r4 +TimerPoll +TimerPollProhibit +TimerStatusProhibit +TrafficVolumeThreshold +U-RNTI-Group +UL-DCCH-MessageType +UL-TS-ChannelisationCode +UL-TS-ChannelisationCode-VHCR +MinimumTEBS-threshold +UE-DTX-Cycle2-2ms-Secondary +SIB-Type2 +WLANThreshBackhaulRate + +#.EXPORTS +InterRATHandoverInfo +InterRATHandoverInfo_PDU +ToTargetRNC-Container_PDU +TargetRNC-ToSourceRNC-Container_PDU +HandoverToUTRANCommand_PDU +SysInfoType1_PDU +SysInfoType2_PDU +SysInfoType3_PDU +SysInfoType7_PDU +SysInfoType12_PDU +MasterInformationBlock_PDU + +#.OMIT_ASSIGNMENT +# Omit System-Information-Container for now it messes up the +# MasterInformationBlock @si.mib +# : +# for some reason +UE-RadioAccessCapability-v890ext +UE-RadioAccessCapability-va60ext +UL-PhysChCapabilityFDD-r6 +GSMCellGroupingList +UE-Positioning-GANSS-Data +GANSSDecipheringKeys +GSM-CellID +RRCConnectionRelease-CCCH-va40ext-IEs +#.END + +#.PDU + +DL-DCCH-Message @dl.dcch +UL-DCCH-Message @ul.dcch +DL-CCCH-Message @dl.ccch +UL-CCCH-Message @ul.ccch +PCCH-Message @pcch +DL-SHCCH-Message @dl.shcch +UL-SHCCH-Message @ul.shcch +BCCH-FACH-Message @bcch.fach +BCCH-BCH-Message @bcch.bch +BCCH-BCH2-Message @bcch.bch2 +MCCH-Message @mcch +MSCH-Message @msch +SystemInformation-BCH @sysinfo +SystemInformation2-BCH @sysinfo2 +System-Information-Container @sysinfo.cont +MasterInformationBlock @si.mib +SysInfoType1 @si.sib1 +SysInfoType2 @si.sib2 +SysInfoType3 @si.sib3 +SysInfoType4 @si.sib4 +SysInfoType5 @si.sib5 +SysInfoType5bis @si.sib5bis +SysInfoType6 @si.sib6 +SysInfoType7 @si.sib7 +SysInfoType8 @si.sib8 +SysInfoType9 @si.sib9 +SysInfoType10 @si.sib10 +SysInfoType11 @si.sib11 +SysInfoType11bis @si.sib11bis +SysInfoType11ter @si.sib11ter +SysInfoType12 @si.sib12 +SysInfoType13 @si.sib13 +SysInfoType13-1 @si.sib13-1 +SysInfoType13-2 @si.sib13-2 +SysInfoType13-3 @si.sib13-3 +SysInfoType13-4 @si.sib13-4 +SysInfoType14 @si.sib14 +SysInfoType15 @si.sib15 +SysInfoType15bis @si.sib15bis +SysInfoType15-1 @si.sib15-1 +SysInfoType15-1bis @si.sib15-1bis +SysInfoType15-1ter @si.sib15-1ter +SysInfoType15-2 @si.sib15-2 +SysInfoType15-2bis @si.sib15-2bis +SysInfoType15-2ter @si.sib15-2ter +SysInfoType15-3 @si.sib15-3 +SysInfoType15-3bis @si.sib15-3bis +SysInfoType15-4 @si.sib15-4 +SysInfoType15-5 @si.sib15-5 +SysInfoType15-6 @si.sib15-6 +SysInfoType15-7 @si.sib15-7 +SysInfoType15-8 @si.sib15-8 +SysInfoType16 @si.sib16 +SysInfoType17 @si.sib17 +SysInfoType18 @si.sib18 +SysInfoType19 @si.sib19 +SysInfoType20 @si.sib20 +SysInfoType21 @si.sib21 +SysInfoType22 @si.sib22 +SysInfoType23 @si.sib23 +SysInfoType24 @si.sib24 +SysInfoType25 @si.sib25 +SysInfoTypeSB1 @si.sb1 +SysInfoTypeSB2 @si.sb2 +SysInfoTypeSB3 @si.sb3 +HandoverToUTRANCommand @irat.ho_to_utran_cmd +InterRATHandoverInfo @irat.irat_ho_info +UE-RadioAccessCapabilityInfo @ue_radio_access_cap_info +ToTargetRNC-Container @s_to_trnc_cont +TargetRNC-ToSourceRNC-Container @t_to_srnc_cont + +#.FIELD_RENAME +HandoverFromUTRANCommand-GSM-r3-IEs/gsm-message/gsm-MessageList gsm-MessageList-r3 +HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/gsm-MessageList gsm-MessageList-r6 +HandoverFromUTRANFailure/interRATMessage/gsm/gsm-MessageList gsm-MessageList-gsm + +HandoverFromUTRANCommand-GSM-r3-IEs/gsm-message/single-GSM-Message single-GSM-Message-r3 +HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Message-r6 + +#.END + +#.FN_BODY NAS-Message VAL_PTR = &nas_message_tvb + tvbuff_t *nas_message_tvb=NULL; + +%(DEFAULT_BODY)s + + if (nas_message_tvb) + call_dissector(gsm_a_dtap_handle,nas_message_tvb,%(ACTX)s->pinfo, tree); + +#.FN_BODY InterRATHandoverInfo/ue-CapabilityContainer/present VAL_PTR = &ue_radio_access_cap_info_tvb + tvbuff_t *ue_radio_access_cap_info_tvb=NULL; + +%(DEFAULT_BODY)s + + if (ue_radio_access_cap_info_tvb) + call_dissector(rrc_ue_radio_access_cap_info_handle,ue_radio_access_cap_info_tvb,%(ACTX)s->pinfo, tree); + +#.END + +#.FN_BODY ActiveSetUpdate + col_append_str(actx->pinfo->cinfo, COL_INFO, "ActiveSetUpdate"); +%(DEFAULT_BODY)s + +#.FN_BODY ActiveSetUpdateComplete + col_append_str(actx->pinfo->cinfo, COL_INFO, "ActiveSetUpdateComplete"); +%(DEFAULT_BODY)s + +#.FN_BODY ActiveSetUpdateFailure + col_append_str(actx->pinfo->cinfo, COL_INFO, "ActiveSetUpdateFailure"); +%(DEFAULT_BODY)s + +#.FN_BODY AssistanceDataDelivery + col_append_str(actx->pinfo->cinfo, COL_INFO, "AssistanceDataDelivery"); +%(DEFAULT_BODY)s + +#.FN_BODY CellChangeOrderFromUTRAN + col_append_str(actx->pinfo->cinfo, COL_INFO, "CellChangeOrderFromUTRAN"); +%(DEFAULT_BODY)s + +#.FN_BODY CellChangeOrderFromUTRANFailure + col_append_str(actx->pinfo->cinfo, COL_INFO, "CellChangeOrderFromUTRANFailure"); +%(DEFAULT_BODY)s + +#.FN_BODY CellUpdate + col_append_str(actx->pinfo->cinfo, COL_INFO, "CellUpdate"); +%(DEFAULT_BODY)s + +#.FN_BODY CellUpdateFDD-r11 + col_append_str(actx->pinfo->cinfo, COL_INFO, "CellUpdateFDD-r11"); +%(DEFAULT_BODY)s + +#.FN_BODY CellUpdateConfirm-CCCH + col_append_str(actx->pinfo->cinfo, COL_INFO, "CellUpdateConfirm-CCCH"); +%(DEFAULT_BODY)s + +#.FN_BODY CellUpdateConfirm + col_append_str(actx->pinfo->cinfo, COL_INFO, "CellUpdateConfirm"); +%(DEFAULT_BODY)s + +#.FN_BODY CounterCheck + col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheck"); +%(DEFAULT_BODY)s + +#.FN_BODY CounterCheckResponse + col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheckResponse"); +%(DEFAULT_BODY)s + +#.FN_BODY DownlinkDirectTransfer + col_append_str(actx->pinfo->cinfo, COL_INFO, "DownlinkDirectTransfer"); +%(DEFAULT_BODY)s + +#.FN_BODY ETWSPrimaryNotificationWithSecurity + col_append_str(actx->pinfo->cinfo, COL_INFO, "ETWSPrimaryNotificationWithSecurity"); +%(DEFAULT_BODY)s + +#.FN_BODY HandoverToUTRANComplete + col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverToUTRANComplete"); +%(DEFAULT_BODY)s + +#.FN_BODY InitialDirectTransfer + col_append_str(actx->pinfo->cinfo, COL_INFO, "InitialDirectTransfer"); +%(DEFAULT_BODY)s + +#.FN_BODY HandoverFromUTRANCommand-EUTRA + col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANCommand-EUTRA"); +%(DEFAULT_BODY)s + +#.FN_BODY HandoverFromUTRANCommand-GERANIu + col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANCommand-GERANIu"); +%(DEFAULT_BODY)s + +#.FN_BODY HandoverFromUTRANCommand-GSM + col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANCommand-GSM"); +%(DEFAULT_BODY)s + +#.FN_BODY HandoverFromUTRANCommand-CDMA2000 + col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANCommand-CDMA2000"); +%(DEFAULT_BODY)s + +#.FN_BODY HandoverFromUTRANFailure + col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANFailure"); +%(DEFAULT_BODY)s + +#.FN_BODY LoggingMeasurementConfiguration + col_append_str(actx->pinfo->cinfo, COL_INFO, "LoggingMeasurementConfiguration"); +%(DEFAULT_BODY)s + +#.FN_BODY MBMSAccessInformation + col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSAccessInformation"); +%(DEFAULT_BODY)s + +#.FN_BODY MBMSCommonPTMRBInformation + col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSCommonPTMRBInformation"); +%(DEFAULT_BODY)s + +#.FN_BODY MBMSCurrentCellPTMRBInformation + col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSCurrentCellPTMRBInformation"); +%(DEFAULT_BODY)s + +#.FN_BODY MBMSGeneralInformation + col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSGeneralInformation"); +%(DEFAULT_BODY)s + +#.FN_BODY MBMSModificationRequest + col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSModificationRequest"); +%(DEFAULT_BODY)s + +#.FN_BODY MBMSModifiedServicesInformation + col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSModifiedServicesInformation"); +%(DEFAULT_BODY)s + +#.FN_BODY MBMSNeighbouringCellPTMRBInformation + col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSNeighbouringCellPTMRBInformation"); +%(DEFAULT_BODY)s + +#.FN_BODY MBMSSchedulingInformation + col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSSchedulingInformation"); +%(DEFAULT_BODY)s + +#.FN_BODY MBMSUnmodifiedServicesInformation + col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSUnmodifiedServicesInformation"); +%(DEFAULT_BODY)s + +#.FN_BODY MeasurementControl + col_append_str(actx->pinfo->cinfo, COL_INFO, "MeasurementControl"); +%(DEFAULT_BODY)s + +#.FN_BODY MeasurementControlFailure + col_append_str(actx->pinfo->cinfo, COL_INFO, "MeasurementControlFailure"); +%(DEFAULT_BODY)s + +#.FN_BODY MeasurementReport + col_append_str(actx->pinfo->cinfo, COL_INFO, "MeasurementReport"); +%(DEFAULT_BODY)s + +#.FN_BODY PagingType1 + col_append_str(actx->pinfo->cinfo, COL_INFO, "PagingType1"); +%(DEFAULT_BODY)s + +#.FN_BODY PagingType2 + col_append_str(actx->pinfo->cinfo, COL_INFO, "PagingType2"); +%(DEFAULT_BODY)s + +#.FN_BODY PhysicalChannelReconfiguration + col_append_str(actx->pinfo->cinfo, COL_INFO, "PhysicalChannelReconfiguration"); +%(DEFAULT_BODY)s + +#.FN_BODY PhysicalChannelReconfigurationComplete + col_append_str(actx->pinfo->cinfo, COL_INFO, "PhysicalChannelReconfigurationComplete"); +%(DEFAULT_BODY)s + +#.FN_BODY PhysicalChannelReconfigurationFailure + col_append_str(actx->pinfo->cinfo, COL_INFO, "PhysicalChannelReconfigurationFailure"); +%(DEFAULT_BODY)s + +#.FN_BODY PhysicalSharedChannelAllocation + col_append_str(actx->pinfo->cinfo, COL_INFO, "PhysicalSharedChannelAllocation"); +%(DEFAULT_BODY)s + +#.FN_BODY PUSCHCapacityRequest + col_append_str(actx->pinfo->cinfo, COL_INFO, "PUSCHCapacityRequest"); +%(DEFAULT_BODY)s + +#.FN_BODY RadioBearerReconfiguration + col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReconfiguration"); +%(DEFAULT_BODY)s + +#.FN_BODY RadioBearerReconfigurationComplete + col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReconfigurationComplete"); +%(DEFAULT_BODY)s + +#.FN_BODY RadioBearerReconfigurationFailure + col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReconfigurationFailure"); +%(DEFAULT_BODY)s + +#.FN_BODY RadioBearerRelease + col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerRelease"); +%(DEFAULT_BODY)s + +#.FN_BODY RadioBearerReleaseComplete + col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReleaseComplete"); +%(DEFAULT_BODY)s + +#.FN_BODY RadioBearerReleaseFailure + col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReleaseFailure"); +%(DEFAULT_BODY)s + +#.FN_BODY RadioBearerSetup + col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerSetup"); +%(DEFAULT_BODY)s + +#.FN_BODY RadioBearerSetupComplete + col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerSetupComplete"); +%(DEFAULT_BODY)s + +#.FN_BODY RadioBearerSetupFailure + col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerSetupFailure"); +%(DEFAULT_BODY)s + +#.FN_BODY RRCConnectionReject + col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReject"); +%(DEFAULT_BODY)s + +#.FN_BODY RRCConnectionRelease + col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRelease"); +%(DEFAULT_BODY)s + +#.FN_BODY RRCConnectionRelease-CCCH + col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRelease-CCCH"); +%(DEFAULT_BODY)s + +#.FN_BODY RRCConnectionReleaseComplete + col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReleaseComplete"); +%(DEFAULT_BODY)s + +#.FN_BODY RRCConnectionRequest + col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRequest"); +%(DEFAULT_BODY)s + +#.FN_BODY RRCConnectionSetup + col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetup"); +%(DEFAULT_BODY)s + +#.FN_BODY RRCConnectionSetupComplete + col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetupComplete"); +%(DEFAULT_BODY)s + +#.FN_BODY RRCStatus + col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCStatus"); +%(DEFAULT_BODY)s + +#.FN_BODY SecurityModeCommand + col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeCommand"); +%(DEFAULT_BODY)s + +#.FN_BODY SecurityModeComplete +rrc_ciphering_info * c_inf ; +fp_info *fpinf ; + + col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeComplete"); + +%(DEFAULT_BODY)s + + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0); + if(fpinf && ((c_inf = (rrc_ciphering_info *)g_tree_lookup(rrc_ciph_inf, GINT_TO_POINTER(fpinf->com_context_id))) != NULL) ){ + c_inf->setup_frame = actx->pinfo->num; + } + + +#.FN_BODY SecurityModeFailure + col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeFailure"); +%(DEFAULT_BODY)s + +#.FN_BODY SignallingConnectionRelease + col_append_str(actx->pinfo->cinfo, COL_INFO, "SignallingConnectionRelease"); +%(DEFAULT_BODY)s + +#.FN_BODY SignallingConnectionReleaseIndication + col_append_str(actx->pinfo->cinfo, COL_INFO, "SignallingConnectionReleaseIndication"); +%(DEFAULT_BODY)s + +#.FN_BODY SystemInformation-BCH + col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformation-BCH"); +%(DEFAULT_BODY)s + +#.FN_BODY SystemInformation-FACH + col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformation-FACH"); +%(DEFAULT_BODY)s + +#.FN_BODY SystemInformationChangeIndication + col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformationChangeIndication"); +%(DEFAULT_BODY)s + +#.FN_BODY TransportChannelReconfiguration + col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportChannelReconfiguration"); +%(DEFAULT_BODY)s + +#.FN_BODY TransportChannelReconfigurationComplete + col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportChannelReconfigurationComplete"); +%(DEFAULT_BODY)s + +#.FN_BODY TransportChannelReconfigurationFailure + col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportChannelReconfigurationFailure"); +%(DEFAULT_BODY)s + +#.FN_BODY TransportFormatCombinationControl + col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportFormatCombinationControl"); +%(DEFAULT_BODY)s + +#.FN_BODY TransportFormatCombinationControlFailure + col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportFormatCombinationControlFailure"); +%(DEFAULT_BODY)s + +#.FN_BODY UECapabilityEnquiry + col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityEnquiry"); +%(DEFAULT_BODY)s + +#.FN_BODY UECapabilityInformation + col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityInformation"); +%(DEFAULT_BODY)s + +#.FN_BODY UECapabilityInformationConfirm + col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityInformationConfirm"); +%(DEFAULT_BODY)s + +#.FN_BODY UEInformationRequest + col_append_str(actx->pinfo->cinfo, COL_INFO, "UEInformationRequest"); +%(DEFAULT_BODY)s + +#.FN_BODY UEInformationResponse + col_append_str(actx->pinfo->cinfo, COL_INFO, "UEInformationResponse"); +%(DEFAULT_BODY)s + +#.FN_BODY UplinkDirectTransfer + col_append_str(actx->pinfo->cinfo, COL_INFO, "UplinkDirectTransfer"); +%(DEFAULT_BODY)s + +#.FN_BODY UplinkPhysicalChannelControl + col_append_str(actx->pinfo->cinfo, COL_INFO, "UplinkPhysicalChannelControl"); +%(DEFAULT_BODY)s + +#.FN_BODY URAUpdate + col_append_str(actx->pinfo->cinfo, COL_INFO, "URAUpdate"); +%(DEFAULT_BODY)s + +#.FN_BODY URAUpdateConfirm + col_append_str(actx->pinfo->cinfo, COL_INFO, "URAUpdateConfirm"); +%(DEFAULT_BODY)s + +#.FN_BODY URAUpdateConfirm-CCCH + col_append_str(actx->pinfo->cinfo, COL_INFO, "URAUpdateConfirm-CCCH"); +%(DEFAULT_BODY)s + +#.FN_BODY UTRANMobilityInformation + col_append_str(actx->pinfo->cinfo, COL_INFO, "UTRANMobilityInformation"); +%(DEFAULT_BODY)s + +#.FN_BODY UTRANMobilityInformationConfirm + col_append_str(actx->pinfo->cinfo, COL_INFO, "UTRANMobilityInformationConfirm"); +%(DEFAULT_BODY)s + +#.FN_BODY UTRANMobilityInformationFailure + col_append_str(actx->pinfo->cinfo, COL_INFO, "UTRANMobilityInformationFailure"); +%(DEFAULT_BODY)s + +#.FN_BODY TargetRNC-ToSourceRNC-Container/dL-DCCHmessage VAL_PTR = &dl_dcch_message_tvb + tvbuff_t *dl_dcch_message_tvb=NULL; + +%(DEFAULT_BODY)s + + if (dl_dcch_message_tvb) + call_dissector(rrc_dl_dcch_handle,dl_dcch_message_tvb,%(ACTX)s->pinfo, proto_tree_get_root(tree)); + +#.FN_BODY GSM-MessageList/_item VAL_PTR = &gsm_messagelist_tvb + tvbuff_t *gsm_messagelist_tvb=NULL; + +%(DEFAULT_BODY)s + + if (gsm_messagelist_tvb) + call_dissector(gsm_a_dtap_handle,gsm_messagelist_tvb,actx->pinfo, tree); + +#.FN_BODY HandoverFromUTRANCommand-GSM-r3-IEs/gsm-message/single-GSM-Message single-GSM-Message-r3 + tvbuff_t *gsm_message_tvb=NULL; + guint bits_remaining, whole_octets_remaining; + +%(DEFAULT_BODY)s + + bits_remaining = 8*tvb_reported_length(tvb) - offset; + whole_octets_remaining = bits_remaining / 8; + + gsm_message_tvb = tvb_new_octet_aligned(tvb, offset, 8*whole_octets_remaining); + + if (gsm_message_tvb) { + add_new_data_source(actx->pinfo,gsm_message_tvb,"GSM Message(aligned)"); + call_dissector(gsm_a_dtap_handle,gsm_message_tvb,actx->pinfo, tree); + } +#.FN_BODY HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Message-r6 + tvbuff_t *gsm_message_tvb=NULL; + guint bits_remaining, whole_octets_remaining; + +%(DEFAULT_BODY)s + + bits_remaining = 8*tvb_reported_length(tvb) - offset; + whole_octets_remaining = bits_remaining / 8; + + gsm_message_tvb = tvb_new_octet_aligned(tvb, offset, 8*whole_octets_remaining); + + if (gsm_message_tvb) { + add_new_data_source(actx->pinfo,gsm_message_tvb,"GSM Message(aligned)"); + call_dissector(gsm_a_dtap_handle,gsm_message_tvb,actx->pinfo, tree); + } + +#.FN_BODY GERAN-SystemInfoBlock VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb=NULL; + +%(DEFAULT_BODY)s + if (parameter_tvb){ + guint8 byte = tvb_get_guint8(parameter_tvb, 0); + if (byte == 0x06) { + if (gsm_a_dtap_handle) { + call_dissector(gsm_a_dtap_handle, parameter_tvb, actx->pinfo, tree); + } + } else { + if (gsm_rlcmac_dl_handle) { + call_dissector(gsm_rlcmac_dl_handle, parameter_tvb, actx->pinfo, tree); + } + } + } + +#.FN_BODY GSM-Classmark2 VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb=NULL; + +%(DEFAULT_BODY)s + if (parameter_tvb){ + de_ms_cm_2(parameter_tvb, tree, actx->pinfo, 2, tvb_get_guint8(parameter_tvb,1), NULL, 0); + } + +#.FN_BODY GSM-Classmark3 VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb=NULL; + +%(DEFAULT_BODY)s + if (parameter_tvb){ + de_ms_cm_3(parameter_tvb, tree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0); + } + +#.FN_BODY GSM-MS-RadioAccessCapability VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb=NULL; + +%(DEFAULT_BODY)s + if (parameter_tvb){ + de_gmm_ms_radio_acc_cap(parameter_tvb, tree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0); + } + +#.FN_BODY InterRATHandoverInfoWithInterRATCapabilities-r3-IEs/interRATHandoverInfo VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb=NULL; + +%(DEFAULT_BODY)s + if (parameter_tvb){ + dissect_rrc_InterRATHandoverInfo_PDU(parameter_tvb, actx->pinfo, tree, NULL); + } + +#.FN_BODY EUTRA-RadioAccessCapability/ue-EUTRA-Capability VAL_PTR = &ue_eutra_cap_tvb + tvbuff_t *ue_eutra_cap_tvb = NULL; +%(DEFAULT_BODY)s + if (ue_eutra_cap_tvb && lte_rrc_ue_eutra_cap_handle) + call_dissector(lte_rrc_ue_eutra_cap_handle, ue_eutra_cap_tvb, actx->pinfo, tree); + +#.FN_BODY HandoverFromUTRANCommand-EUTRA-r8-IEs/eutra-Message VAL_PTR = &eutra_message_tvb + tvbuff_t *eutra_message_tvb = NULL; +%(DEFAULT_BODY)s + if (eutra_message_tvb && lte_rrc_dl_dcch_handle) + call_dissector(lte_rrc_dl_dcch_handle, eutra_message_tvb, actx->pinfo, tree); + +#.FN_BODY HandoverFromUTRANCommand-EUTRA-r11-IEs/eutra-Message VAL_PTR = &eutra_message_tvb + tvbuff_t *eutra_message_tvb = NULL; +%(DEFAULT_BODY)s + if (eutra_message_tvb && lte_rrc_dl_dcch_handle) + call_dissector(lte_rrc_dl_dcch_handle, eutra_message_tvb, actx->pinfo, tree); + +#.FN_BODY HandoverFromUtranFailure-v860ext-IEs/eutra-Message VAL_PTR = &eutra_message_tvb + tvbuff_t *eutra_message_tvb = NULL; +%(DEFAULT_BODY)s + if (eutra_message_tvb && lte_rrc_dl_dcch_handle) + call_dissector(lte_rrc_dl_dcch_handle, eutra_message_tvb, actx->pinfo, tree); + +#.FN_BODY MultiModeRAT-Capability-v860ext/eutraFeatureGroupIndicators VAL_PTR = &eutraFeatureGroupIndicators_tvb + tvbuff_t *eutraFeatureGroupIndicators_tvb=NULL; +%(DEFAULT_BODY)s + if(eutraFeatureGroupIndicators_tvb){ + /* Dissect eutraFeatureGroupIndicators */ + proto_tree *subtree; + gint curr_bit_offset = 0; + subtree = proto_item_add_subtree(actx->created_item, ett_rrc_eutraFeatureGroupIndicators); + proto_tree_add_bits_item(subtree, hf_rrc_eutra_feat_group_ind_1, eutraFeatureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN); + curr_bit_offset++; + proto_tree_add_bits_item(subtree, hf_rrc_eutra_feat_group_ind_2, eutraFeatureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN); + curr_bit_offset++; + proto_tree_add_bits_item(subtree, hf_rrc_eutra_feat_group_ind_3, eutraFeatureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN); + curr_bit_offset++; + proto_tree_add_bits_item(subtree, hf_rrc_eutra_feat_group_ind_4, eutraFeatureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN); + curr_bit_offset++; +} + +#.FN_BODY RSR-VCC-Info/ims-Information VAL_PTR = &imsInformation_tvb + tvbuff_t *imsInformation_tvb=NULL; +%(DEFAULT_BODY)s + if(imsInformation_tvb){ + /* Dissect ims-Information + Decoding specified in TS 124 237 V11.4.0 Annex D.5.3.3 ATGW transfer details + */ + proto_tree *subtree; + gint curr_offset = 0; + guint32 atgw_trans_det_cont; + subtree = proto_item_add_subtree(actx->created_item, ett_rrc_ims_info); + proto_tree_add_item_ret_uint(subtree, hf_rrc_ims_info_atgw_trans_det_cont_type, imsInformation_tvb, curr_offset, 1, ENC_BIG_ENDIAN, &atgw_trans_det_cont); + curr_offset++; + switch (atgw_trans_det_cont & 0x03) { + case 0: + proto_tree_add_item(subtree, hf_rrc_ims_info_atgw_udp_port, imsInformation_tvb, curr_offset, 2, ENC_BIG_ENDIAN); + curr_offset+=2; + proto_tree_add_item(subtree, hf_rrc_ims_info_atgw_ipv4, imsInformation_tvb, curr_offset, 4, ENC_BIG_ENDIAN); + break; + case 1: + proto_tree_add_item(subtree, hf_rrc_ims_info_atgw_udp_port, imsInformation_tvb, curr_offset, 2, ENC_BIG_ENDIAN); + curr_offset+=2; + proto_tree_add_item(subtree, hf_rrc_ims_info_atgw_ipv6, imsInformation_tvb, curr_offset, 16, ENC_NA); + break; + default: + break; + } +} + +#.TYPE_ATTR +HNBName TYPE=FT_STRING DISPLAY=STR_UNICODE + +#.FN_BODY HNBName VAL_PTR = &hnbname_tvb HF_INDEX = -1 + tvbuff_t *hnbname_tvb = NULL; + +%(DEFAULT_BODY)s + actx->created_item = proto_tree_add_item(tree, hf_index, hnbname_tvb, 0, -1, ENC_UTF_8|ENC_NA); + +#.FN_BODY CN-DomainIdentity VAL_PTR = &nas_sys_info_gsm_map + guint32 nas_sys_info_gsm_map; +%(DEFAULT_BODY)s + col_append_fstr(actx->pinfo->cinfo, COL_INFO, "(%%s)", val_to_str_const(nas_sys_info_gsm_map,rrc_CN_DomainIdentity_vals,"Unknown")); + actx->private_data = GUINT_TO_POINTER(nas_sys_info_gsm_map+1); + +#.FN_BODY CN-InformationInfo/cn-CommonGSM-MAP-NAS-SysInfo + actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_CN_COMMON+1); +%(DEFAULT_BODY)s + +#.FN_BODY CN-InformationInfo-r6/cn-CommonGSM-MAP-NAS-SysInfo + actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_CN_COMMON+1); +%(DEFAULT_BODY)s + +#.FN_BODY CN-InformationInfoFull/cn-CommonGSM-MAP-NAS-SysInfo + actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_CN_COMMON+1); +%(DEFAULT_BODY)s + +#.FN_BODY SysInfoType1/cn-CommonGSM-MAP-NAS-SysInfo + actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_CN_COMMON+1); +%(DEFAULT_BODY)s + +#.FN_BODY NAS-SystemInformationGSM-MAP VAL_PTR = &nas_sys_info_gsm_map_tvb + tvbuff_t *nas_sys_info_gsm_map_tvb = NULL; + guint32 length; + proto_tree *subtree; + +%(DEFAULT_BODY)s + length = tvb_reported_length(nas_sys_info_gsm_map_tvb); + if (length) { + if (actx->private_data) { + switch (GPOINTER_TO_UINT(actx->private_data)-1) { + case RRC_NAS_SYS_INFO_CN_COMMON: + subtree = proto_tree_add_subtree(tree, nas_sys_info_gsm_map_tvb, 0, length, + ett_rrc_cn_CommonGSM_MAP_NAS_SysInfo, NULL, "CN Common GSM-MAP NAS system information"); + de_cn_common_gsm_map_nas_sys_info(nas_sys_info_gsm_map_tvb, subtree, actx->pinfo, 0, length, NULL, 0); + break; + case RRC_NAS_SYS_INFO_CS: + subtree = proto_tree_add_subtree(tree, nas_sys_info_gsm_map_tvb, 0, length, + ett_rrc_cn_CommonGSM_MAP_NAS_SysInfo, NULL, "CS domain specific system information"); + de_cs_domain_spec_sys_info(nas_sys_info_gsm_map_tvb, subtree, actx->pinfo, 0, length, NULL, 0); + break; + case RRC_NAS_SYS_INFO_PS: + subtree = proto_tree_add_subtree(tree, nas_sys_info_gsm_map_tvb, 0, length, + ett_rrc_cn_CommonGSM_MAP_NAS_SysInfo, NULL, "PS domain specific system information"); + de_ps_domain_spec_sys_info(nas_sys_info_gsm_map_tvb, subtree, actx->pinfo, 0, length, NULL, 0); + break; + default: + break; + } + actx->private_data = NULL; + } + } + +/*Here we try to figure out which HS-DSCH channels are multiplexed*/ +#.FN_BODY DL-TransportChannelType-r5 VAL_PTR = &type + + guint *flowd_p; + guint *cur_val=NULL; + struct rrc_info *rrcinf; + + %(DEFAULT_BODY)s + + /*TODO: This should probably be done better*/ + if(type == 4){ /*If this is type HS-DSCH*/ + num_chans_per_flow[flowd]++; + + if(num_chans_per_flow[flowd] > 1 ){ + rrcinf = (rrc_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rrc, 0); + if((rrcinf == NULL) || (rrcinf->hrnti[actx->pinfo->fd->subnum] == 0)){ + expert_add_info(actx->pinfo, actx->created_item, &ei_rrc_no_hrnti); + } + else{ + /*If it doesn't exists, insert it*/ + if( (cur_val=(gint *)g_tree_lookup(hsdsch_muxed_flows, GUINT_TO_POINTER((guint)rrcinf->hrnti[actx->pinfo->fd->subnum]))) == NULL ){ + + flowd_p = (guint*)g_malloc0(sizeof(gint)); + *flowd_p = (1U<<flowd); /*Set the bit to mark it as true*/ + g_tree_insert(hsdsch_muxed_flows, GUINT_TO_POINTER((guint)rrcinf->hrnti[actx->pinfo->fd->subnum]), flowd_p); + + }else{ + *cur_val = (1U<<flowd) | *cur_val; + + } + } + + } + + } +/*Here we try to figure out which HS-DSCH channels are multiplexed*/ +#.FN_BODY DL-TransportChannelType-r7 VAL_PTR = &type + + guint *flowd_p; + guint *cur_val=NULL; + struct rrc_info *rrcinf; + + %(DEFAULT_BODY)s + + /*TODO: This should probably be done better*/ + if(type == 4){ /*If this is type HS-DSCH*/ + num_chans_per_flow[flowd]++; + + + if(num_chans_per_flow[flowd] > 1 ){ + rrcinf = (rrc_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rrc, 0); + if((rrcinf == NULL) || (rrcinf->hrnti[actx->pinfo->fd->subnum] == 0)){ + expert_add_info(actx->pinfo, actx->created_item, &ei_rrc_no_hrnti); + } + else{ + /*If it doesn't exists, insert it*/ + if( (cur_val=(gint *)g_tree_lookup(hsdsch_muxed_flows, GUINT_TO_POINTER((guint)rrcinf->hrnti[actx->pinfo->fd->subnum]))) == NULL ){ + + flowd_p = (guint*)g_malloc0(sizeof(gint)); + *flowd_p = (1U<<flowd); /* Set the bit to mark it as true*/ + g_tree_insert(hsdsch_muxed_flows, GUINT_TO_POINTER((guint)rrcinf->hrnti[actx->pinfo->fd->subnum]), flowd_p); + + }else{ + *cur_val = (1U<<flowd) | *cur_val; + + } + } + + } + + } + +#.FN_BODY MAC-d-FlowIdentity VAL_PTR = &flowd +%(DEFAULT_BODY)s + +#.FN_BODY H-RNTI VAL_PTR = &hrnti_tvb + tvbuff_t *hrnti_tvb; + struct rrc_info *rrcinf; +%(DEFAULT_BODY)s + +#.FN_FTR H-RNTI + rrcinf = (struct rrc_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rrc, 0); + if (!rrcinf) { + rrcinf = wmem_new0(wmem_file_scope(), struct rrc_info); + p_add_proto_data(wmem_file_scope(), actx->pinfo, proto_rrc, 0, rrcinf); + } + rrcinf->hrnti[actx->pinfo->fd->subnum] = tvb_get_ntohs(hrnti_tvb, 0); + +#.FN_BODY START-Value VAL_PTR = &start_val + tvbuff_t * start_val; + fp_info *fpinf; + rrc_ciphering_info * c_inf; + int i; + guint32 * start; + +%(DEFAULT_BODY)s + + /*We base this map on communication context from fp*/ + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0); + + /*If no info found, skip all this*/ + if(fpinf == NULL){ + return offset; + } + /*Retrieve the start value for the two ciphering domains*/ + if (actx->private_data) { + switch(GPOINTER_TO_UINT(actx->private_data)-1){ + case RRC_NAS_SYS_INFO_CS: + /* + g_warning("Not implemented"); + */ + break; + case RRC_NAS_SYS_INFO_PS: + + /*Find the entry for the communication context (taken from FP)*/ + if( (c_inf =(rrc_ciphering_info *)g_tree_lookup(rrc_ciph_inf, GINT_TO_POINTER(fpinf->com_context_id))) == NULL ){ + c_inf = g_new0(rrc_ciphering_info,1); + + /*Initiate tree with START_PS values.*/ + if(!c_inf->start_ps) + c_inf->start_ps = g_tree_new_full(rrc_key_cmp, + NULL,rrc_free_key,rrc_free_value); + + /*Clear and initialize seq_no matrix*/ + for(i = 0; i< 31; i++){ + c_inf->seq_no[i][0] = -1; + c_inf->seq_no[i][1] = -1; + } + g_tree_insert(rrc_ciph_inf, GINT_TO_POINTER(fpinf->com_context_id), c_inf); + } + + /*Retrieve and store the value*/ + start = g_new(guint32,1); + *start = tvb_get_bits32(start_val,0,20,ENC_BIG_ENDIAN); + if(c_inf && c_inf->start_ps) + /*Insert the value based on current frame num since this might vary over time*/ + g_tree_insert(c_inf->start_ps, GUINT_TO_POINTER(actx->pinfo->num), start); + + break; + default: + break; + } + actx->private_data = NULL; + } + +#.FN_BODY RB-ActivationTimeInfo + fp_info *fpinf; + rrc_ciphering_info * c_inf; + + + + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0); + +%(DEFAULT_BODY)s + + /*If no info found, skip all this*/ + if(fpinf == NULL){ + return offset; + } + /*This should not happen*/ + if( (c_inf = (rrc_ciphering_info *)g_tree_lookup(rrc_ciph_inf, GINT_TO_POINTER(fpinf->com_context_id))) == NULL ){ + return offset; + } + /*Set the ciphering activation frame information*/ + c_inf->seq_no[rbid][fpinf->is_uplink] = activation_frame; + + +#.FN_BODY RB-Identity VAL_PTR = &rbid + +%(DEFAULT_BODY)s + + + +#.FN_BODY RLC-SequenceNumber VAL_PTR = &activation_frame + +%(DEFAULT_BODY)s + +#.FN_BODY DL-DCCH-MessageType VAL_PTR = &msg_type +%(DEFAULT_BODY)s + +#.FN_BODY DL-DCCH-Message +%(DEFAULT_BODY)s + +#.FN_BODY HandoverToUTRANCommand +%(DEFAULT_BODY)s + +#.FN_BODY UE-SecurityInformation + actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_CS+1); +%(DEFAULT_BODY)s + +#.FN_BODY UE-SecurityInformation2 + actx->private_data = GUINT_TO_POINTER(RRC_NAS_SYS_INFO_PS+1); +%(DEFAULT_BODY)s + +#.FN_BODY ReleaseCause VAL_PTR=&value + guint32 value; +%(DEFAULT_BODY)s + col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [cause=%%s]", + val_to_str(value, rrc_ReleaseCause_vals, "Unknown")); + +#.END + |