/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-lte-rrc.c */
-/* ../../tools/asn2wrs.py -e -L -p lte-rrc -c ./lte-rrc.cnf -s ./packet-lte-rrc-template -D . EUTRA-RRC-Definitions.asn EUTRA-UE-Variables.asn EUTRA-InterNodeDefinitions.asn */
+/* ../../tools/asn2wrs.py -L -p lte-rrc -c ./lte-rrc.cnf -s ./packet-lte-rrc-template -D . -O ../../epan/dissectors EUTRA-RRC-Definitions.asn EUTRA-UE-Variables.asn EUTRA-InterNodeDefinitions.asn */
/* Input file: packet-lte-rrc-template.c */
-#line 1 "packet-lte-rrc-template.c"
+#line 1 "../../asn1/lte-rrc/packet-lte-rrc-template.c"
/* packet-lte-rrc-template.c
* Routines for Evolved Universal Terrestrial Radio Access (E-UTRA);
* Radio Resource Control (RRC) protocol specification
- * (3GPP TS 36.331 V9.6.0 Release 9) packet dissection
+ * (3GPP TS 36.331 V9.7.0 Release 9) packet dissection
* Copyright 2008, Vincent Helfre
*
* $Id$
#include <glib.h>
#include <epan/packet.h>
#include <epan/asn1.h>
+#include <epan/expert.h>
#include "packet-ber.h"
#include "packet-per.h"
#define PFNAME "lte_rrc"
static dissector_handle_t nas_eps_handle = NULL;
+static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle = NULL;
+static dissector_handle_t rrc_sys_info_cont_handle = NULL;
+static dissector_handle_t gsm_a_dtap_handle = NULL;
+static dissector_handle_t gsm_rlcmac_dl_handle = NULL;
static guint32 lte_rrc_rat_type_value = -1;
+static guint32 lte_rrc_ho_target_rat_type_value = -1;
+static gint lte_rrc_si_or_psi_geran_val = -1;
/* Include constants */
/*--- Included file: packet-lte-rrc-val.h ---*/
-#line 1 "packet-lte-rrc-val.h"
+#line 1 "../../asn1/lte-rrc/packet-lte-rrc-val.h"
#define maxBands 64
#define maxCDMA_BandClass 32
#define maxCellBlack 16
#define maxReestabInfo 32
/*--- End of included file: packet-lte-rrc-val.h ---*/
-#line 52 "packet-lte-rrc-template.c"
+#line 59 "../../asn1/lte-rrc/packet-lte-rrc-template.c"
/* Initialize the protocol and registered fields */
static int proto_lte_rrc = -1;
/*--- Included file: packet-lte-rrc-hf.c ---*/
-#line 1 "packet-lte-rrc-hf.c"
+#line 1 "../../asn1/lte-rrc/packet-lte-rrc-hf.c"
static int hf_lte_rrc_BCCH_BCH_Message_PDU = -1; /* BCCH_BCH_Message */
static int hf_lte_rrc_BCCH_DL_SCH_Message_PDU = -1; /* BCCH_DL_SCH_Message */
static int hf_lte_rrc_MCCH_Message_PDU = -1; /* MCCH_Message */
static int hf_lte_rrc_nonCriticalExtension_21 = -1; /* MobilityFromEUTRACommand_v960_IEs */
static int hf_lte_rrc_nonCriticalExtension_22 = -1; /* T_nonCriticalExtension_09 */
static int hf_lte_rrc_targetRAT_Type = -1; /* T_targetRAT_Type */
-static int hf_lte_rrc_targetRAT_MessageContainer = -1; /* OCTET_STRING */
-static int hf_lte_rrc_nas_SecurityParamFromEUTRA = -1; /* OCTET_STRING_SIZE_1 */
+static int hf_lte_rrc_targetRAT_MessageContainer = -1; /* T_targetRAT_MessageContainer */
+static int hf_lte_rrc_nas_SecurityParamFromEUTRA = -1; /* T_nas_SecurityParamFromEUTRA */
static int hf_lte_rrc_systemInformation_01 = -1; /* SI_OrPSI_GERAN */
static int hf_lte_rrc_t304 = -1; /* T_t304 */
static int hf_lte_rrc_targetRAT_Type_01 = -1; /* T_targetRAT_Type_01 */
static int hf_lte_rrc_keyChangeIndicator = -1; /* BOOLEAN */
static int hf_lte_rrc_nextHopChainingCount = -1; /* NextHopChainingCount */
static int hf_lte_rrc_interRAT = -1; /* T_interRAT */
-static int hf_lte_rrc_nas_SecurityParamToEUTRA = -1; /* OCTET_STRING_SIZE_6 */
+static int hf_lte_rrc_nas_SecurityParamToEUTRA = -1; /* T_nas_SecurityParamToEUTRA */
static int hf_lte_rrc_criticalExtensions_10 = -1; /* T_criticalExtensions_10 */
static int hf_lte_rrc_rrcConnectionReconfigurationComplete_r8 = -1; /* RRCConnectionReconfigurationComplete_r8_IEs */
static int hf_lte_rrc_criticalExtensionsFuture_10 = -1; /* T_criticalExtensionsFuture_10 */
static int hf_lte_rrc_systemInformation_r9 = -1; /* SystemInfoListGERAN */
static int hf_lte_rrc_CellInfoListUTRA_FDD_r9_item = -1; /* CellInfoUTRA_FDD_r9 */
static int hf_lte_rrc_physCellId_r9_01 = -1; /* PhysCellIdUTRA_FDD */
-static int hf_lte_rrc_utra_BCCH_Container_r9 = -1; /* OCTET_STRING */
+static int hf_lte_rrc_utra_BCCH_Container_r9 = -1; /* T_utra_BCCH_Container_r9 */
static int hf_lte_rrc_CellInfoListUTRA_TDD_r9_item = -1; /* CellInfoUTRA_TDD_r9 */
static int hf_lte_rrc_physCellId_r9_02 = -1; /* PhysCellIdUTRA_TDD */
+static int hf_lte_rrc_utra_BCCH_Container_r9_01 = -1; /* T_utra_BCCH_Container_r9_01 */
static int hf_lte_rrc_criticalExtensions_17 = -1; /* T_criticalExtensions_17 */
static int hf_lte_rrc_rrcConnectionRequest_r8 = -1; /* RRCConnectionRequest_r8_IEs */
static int hf_lte_rrc_criticalExtensionsFuture_17 = -1; /* T_criticalExtensionsFuture_17 */
static int hf_lte_rrc_SecondaryPreRegistrationZoneIdListHRPD_item = -1; /* PreRegistrationZoneIdHRPD */
static int hf_lte_rrc_sf_Medium_01 = -1; /* T_sf_Medium_01 */
static int hf_lte_rrc_sf_High_01 = -1; /* T_sf_High_01 */
-static int hf_lte_rrc_SystemInfoListGERAN_item = -1; /* OCTET_STRING_SIZE_1_23 */
+static int hf_lte_rrc_SystemInfoListGERAN_item = -1; /* SystemInfoListGERAN_item */
static int hf_lte_rrc_cdma_EUTRA_Synchronisation = -1; /* BOOLEAN */
static int hf_lte_rrc_cdma_SystemTime = -1; /* T_cdma_SystemTime */
static int hf_lte_rrc_synchronousSystemTime = -1; /* BIT_STRING_SIZE_39 */
static int hf_lte_rrc_AdditionalReestabInfoList_item = -1; /* AdditionalReestabInfo */
static int hf_lte_rrc_key_eNodeB_Star = -1; /* Key_eNodeB_Star */
static int hf_lte_rrc_ue_InactiveTime = -1; /* T_ue_InactiveTime */
+static int hf_lte_rrc_dummy_eag_field = -1; /* never registered */
/*--- End of included file: packet-lte-rrc-hf.c ---*/
-#line 57 "packet-lte-rrc-template.c"
+#line 64 "../../asn1/lte-rrc/packet-lte-rrc-template.c"
static int hf_lte_rrc_eutra_cap_feat_group_ind_1 = -1;
static int hf_lte_rrc_eutra_cap_feat_group_ind_2 = -1;
/*--- Included file: packet-lte-rrc-ett.c ---*/
-#line 1 "packet-lte-rrc-ett.c"
+#line 1 "../../asn1/lte-rrc/packet-lte-rrc-ett.c"
static gint ett_lte_rrc_BCCH_BCH_Message = -1;
static gint ett_lte_rrc_BCCH_DL_SCH_Message = -1;
static gint ett_lte_rrc_BCCH_DL_SCH_MessageType = -1;
static gint ett_lte_rrc_RRM_Config = -1;
/*--- End of included file: packet-lte-rrc-ett.c ---*/
-#line 95 "packet-lte-rrc-template.c"
+#line 102 "../../asn1/lte-rrc/packet-lte-rrc-template.c"
static gint ett_lte_rrc_featureGroupIndicators = -1;
+static gint ett_lte_rrc_neighCellConfig = -1;
/* Forward declarations */
static int dissect_DL_DCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);
"Semi-Persistent Scheduling - Not supported"
};
static const true_false_string lte_rrc_eutra_cap_feat_group_ind_30_val = {
- "Undefined - Supported",
- "Undefined - Not supported"
+ "Handover between FDD and TDD - Supported",
+ "Handover between FDD and TDD - Not supported"
};
static const true_false_string lte_rrc_eutra_cap_feat_group_ind_31_val = {
"Undefined - Supported",
};
/*--- Included file: packet-lte-rrc-fn.c ---*/
-#line 1 "packet-lte-rrc-fn.c"
+#line 1 "../../asn1/lte-rrc/packet-lte-rrc-fn.c"
/*--- PDUs declarations ---*/
static int dissect_SystemInformationBlockType1_v890_IEs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);
}
+static const per_sequence_t SystemInformationBlockType2_eag_1_sequence[] = {
+ { &hf_lte_rrc_ssac_BarringForMMTEL_Voice_r9, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_AC_BarringConfig },
+ { &hf_lte_rrc_ssac_BarringForMMTEL_Video_r9, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_AC_BarringConfig },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_SystemInformationBlockType2_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, SystemInformationBlockType2_eag_1_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t SystemInformationBlockType2_sequence[] = {
{ &hf_lte_rrc_ac_BarringInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_T_ac_BarringInfo },
{ &hf_lte_rrc_radioResourceConfigCommon, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RadioResourceConfigCommonSIB },
{ &hf_lte_rrc_mbsfn_SubframeConfigList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_MBSFN_SubframeConfigList },
{ &hf_lte_rrc_timeAlignmentTimerCommon, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_TimeAlignmentTimer },
{ &hf_lte_rrc_lateNonCriticalExtension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_ssac_BarringForMMTEL_Voice_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_AC_BarringConfig },
- { &hf_lte_rrc_ssac_BarringForMMTEL_Video_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_AC_BarringConfig },
+ { &hf_lte_rrc_dummy_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lte_rrc_SystemInformationBlockType2_eag_1 },
{ NULL, 0, 0, NULL }
};
static int
dissect_lte_rrc_NeighCellConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ tvbuff_t *neigh_cell_config_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
- 2, 2, FALSE, NULL);
+ 2, 2, FALSE, &neigh_cell_config_tvb);
+
+ if (neigh_cell_config_tvb) {
+ guint8 bits;
+ proto_tree *subtree;
+ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_neighCellConfig);
+ bits = tvb_get_bits8(neigh_cell_config_tvb, 0, 2);
+ switch (bits) {
+ case 0:
+ proto_tree_add_text(subtree, neigh_cell_config_tvb, 0, 1, "Not all neighbour cells have the same MBSFN subframe allocation as serving cell");
+ break;
+ case 1:
+ proto_tree_add_text(subtree, neigh_cell_config_tvb, 0, 1, "No MBSFN subframes are present in all neighbour cells");
+ break;
+ case 2:
+ proto_tree_add_text(subtree, neigh_cell_config_tvb, 0, 1, "The MBSFN subframe allocations of all neighbour cells are identical to or subsets of that in the serving cell");
+ break;
+ case 3:
+ proto_tree_add_text(subtree, neigh_cell_config_tvb, 0, 1, "Different UL/DL allocation in neighbouring cells for TDD compared to the serving cell");
+ break;
+ default:
+ break;
+ }
+ }
+
return offset;
}
}
+static const per_sequence_t SystemInformationBlockType3_eag_1_sequence[] = {
+ { &hf_lte_rrc_s_IntraSearch_v920, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_s_IntraSearch_v920 },
+ { &hf_lte_rrc_s_NonIntraSearch_v920, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_s_NonIntraSearch_v920 },
+ { &hf_lte_rrc_q_QualMin_r9, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_Q_QualMin_r9 },
+ { &hf_lte_rrc_threshServingLowQ_r9, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_ReselectionThresholdQ_r9 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_SystemInformationBlockType3_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, SystemInformationBlockType3_eag_1_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t SystemInformationBlockType3_sequence[] = {
{ &hf_lte_rrc_cellReselectionInfoCommon, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_cellReselectionInfoCommon },
{ &hf_lte_rrc_cellReselectionServingFreqInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_cellReselectionServingFreqInfo },
{ &hf_lte_rrc_intraFreqCellReselectionInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_intraFreqCellReselectionInfo },
{ &hf_lte_rrc_lateNonCriticalExtension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_s_IntraSearch_v920, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_T_s_IntraSearch_v920 },
- { &hf_lte_rrc_s_NonIntraSearch_v920, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_T_s_NonIntraSearch_v920 },
- { &hf_lte_rrc_q_QualMin_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_Q_QualMin_r9 },
- { &hf_lte_rrc_threshServingLowQ_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_ReselectionThresholdQ_r9 },
+ { &hf_lte_rrc_dummy_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lte_rrc_SystemInformationBlockType3_eag_1 },
{ NULL, 0, 0, NULL }
};
}
+static const per_sequence_t InterFreqCarrierFreqInfo_eag_1_sequence[] = {
+ { &hf_lte_rrc_q_QualMin_r9, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_Q_QualMin_r9 },
+ { &hf_lte_rrc_threshX_Q_r9, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_threshX_Q_r9 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_InterFreqCarrierFreqInfo_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, InterFreqCarrierFreqInfo_eag_1_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t InterFreqCarrierFreqInfo_sequence[] = {
{ &hf_lte_rrc_dl_CarrierFreq, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_ARFCN_ValueEUTRA },
{ &hf_lte_rrc_q_RxLevMin , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_Q_RxLevMin },
{ &hf_lte_rrc_q_OffsetFreq, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_Q_OffsetRange },
{ &hf_lte_rrc_interFreqNeighCellList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_InterFreqNeighCellList },
{ &hf_lte_rrc_interFreqBlackCellList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_InterFreqBlackCellList },
- { &hf_lte_rrc_q_QualMin_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_Q_QualMin_r9 },
- { &hf_lte_rrc_threshX_Q_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_T_threshX_Q_r9 },
+ { &hf_lte_rrc_dummy_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lte_rrc_InterFreqCarrierFreqInfo_eag_1 },
{ NULL, 0, 0, NULL }
};
}
+static const per_sequence_t CarrierFreqUTRA_FDD_eag_1_sequence[] = {
+ { &hf_lte_rrc_threshX_Q_r9_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_threshX_Q_r9_01 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_CarrierFreqUTRA_FDD_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, CarrierFreqUTRA_FDD_eag_1_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t CarrierFreqUTRA_FDD_sequence[] = {
{ &hf_lte_rrc_carrierFreq_02, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_ARFCN_ValueUTRA },
{ &hf_lte_rrc_cellReselectionPriority, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_CellReselectionPriority },
{ &hf_lte_rrc_q_RxLevMin_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_INTEGER_M60_M13 },
{ &hf_lte_rrc_p_MaxUTRA , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_INTEGER_M50_33 },
{ &hf_lte_rrc_q_QualMin , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_INTEGER_M24_0 },
- { &hf_lte_rrc_threshX_Q_r9_01, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_T_threshX_Q_r9_01 },
+ { &hf_lte_rrc_dummy_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lte_rrc_CarrierFreqUTRA_FDD_eag_1 },
{ NULL, 0, 0, NULL }
};
}
+static const per_sequence_t SystemInformationBlockType8_eag_1_sequence[] = {
+ { &hf_lte_rrc_csfb_SupportForDualRxUEs_r9, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_BOOLEAN },
+ { &hf_lte_rrc_cellReselectionParametersHRPD_v920, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_CellReselectionParametersCDMA2000_v920 },
+ { &hf_lte_rrc_cellReselectionParameters1XRTT_v920, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_CellReselectionParametersCDMA2000_v920 },
+ { &hf_lte_rrc_csfb_RegistrationParam1XRTT_v920, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_CSFB_RegistrationParam1XRTT_v920 },
+ { &hf_lte_rrc_ac_BarringConfig1XRTT_r9, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_AC_BarringConfig1XRTT_r9 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_SystemInformationBlockType8_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, SystemInformationBlockType8_eag_1_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t SystemInformationBlockType8_sequence[] = {
{ &hf_lte_rrc_systemTimeInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_SystemTimeInfoCDMA2000 },
{ &hf_lte_rrc_searchWindowSize, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_INTEGER_0_15 },
{ &hf_lte_rrc_parametersHRPD, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_T_parametersHRPD },
{ &hf_lte_rrc_parameters1XRTT, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_T_parameters1XRTT },
{ &hf_lte_rrc_lateNonCriticalExtension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_csfb_SupportForDualRxUEs_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_BOOLEAN },
- { &hf_lte_rrc_cellReselectionParametersHRPD_v920, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_CellReselectionParametersCDMA2000_v920 },
- { &hf_lte_rrc_cellReselectionParameters1XRTT_v920, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_CellReselectionParametersCDMA2000_v920 },
- { &hf_lte_rrc_csfb_RegistrationParam1XRTT_v920, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_CSFB_RegistrationParam1XRTT_v920 },
- { &hf_lte_rrc_ac_BarringConfig1XRTT_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_AC_BarringConfig1XRTT_r9 },
+ { &hf_lte_rrc_dummy_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lte_rrc_SystemInformationBlockType8_eag_1 },
{ NULL, 0, 0, NULL }
};
}
+static const per_sequence_t LogicalChannelConfig_eag_1_sequence[] = {
+ { &hf_lte_rrc_logicalChannelSR_Mask_r9, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_logicalChannelSR_Mask_r9 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_LogicalChannelConfig_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, LogicalChannelConfig_eag_1_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t LogicalChannelConfig_sequence[] = {
{ &hf_lte_rrc_ul_SpecificParameters, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_T_ul_SpecificParameters },
- { &hf_lte_rrc_logicalChannelSR_Mask_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_T_logicalChannelSR_Mask_r9 },
+ { &hf_lte_rrc_dummy_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lte_rrc_LogicalChannelConfig_eag_1 },
{ NULL, 0, 0, NULL }
};
}
+static const per_sequence_t MAC_MainConfig_eag_1_sequence[] = {
+ { &hf_lte_rrc_sr_ProhibitTimer_r9, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_INTEGER_0_7 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_MAC_MainConfig_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, MAC_MainConfig_eag_1_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t MAC_MainConfig_sequence[] = {
{ &hf_lte_rrc_ul_SCH_Config, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_T_ul_SCH_Config },
{ &hf_lte_rrc_drx_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_DRX_Config },
{ &hf_lte_rrc_timeAlignmentTimerDedicated, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_TimeAlignmentTimer },
{ &hf_lte_rrc_phr_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_T_phr_Config },
- { &hf_lte_rrc_sr_ProhibitTimer_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_INTEGER_0_7 },
+ { &hf_lte_rrc_dummy_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lte_rrc_MAC_MainConfig_eag_1 },
{ NULL, 0, 0, NULL }
};
}
+static const per_sequence_t PhysicalConfigDedicated_eag_1_sequence[] = {
+ { &hf_lte_rrc_cqi_ReportConfig_v920, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_CQI_ReportConfig_v920 },
+ { &hf_lte_rrc_antennaInfo_v920, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_AntennaInfoDedicated_v920 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_PhysicalConfigDedicated_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, PhysicalConfigDedicated_eag_1_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t PhysicalConfigDedicated_sequence[] = {
{ &hf_lte_rrc_pdsch_ConfigDedicated, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_PDSCH_ConfigDedicated },
{ &hf_lte_rrc_pucch_ConfigDedicated, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_PUCCH_ConfigDedicated },
{ &hf_lte_rrc_soundingRS_UL_ConfigDedicated, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_SoundingRS_UL_ConfigDedicated },
{ &hf_lte_rrc_antennaInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_T_antennaInfo },
{ &hf_lte_rrc_schedulingRequestConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_SchedulingRequestConfig },
- { &hf_lte_rrc_cqi_ReportConfig_v920, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_CQI_ReportConfig_v920 },
- { &hf_lte_rrc_antennaInfo_v920, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_AntennaInfoDedicated_v920 },
+ { &hf_lte_rrc_dummy_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lte_rrc_PhysicalConfigDedicated_eag_1 },
{ NULL, 0, 0, NULL }
};
}
+static const per_sequence_t RadioResourceConfigDedicated_eag_1_sequence[] = {
+ { &hf_lte_rrc_rlf_TimersAndConstants_r9, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RLF_TimersAndConstants_r9 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_RadioResourceConfigDedicated_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, RadioResourceConfigDedicated_eag_1_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t RadioResourceConfigDedicated_sequence[] = {
{ &hf_lte_rrc_srb_ToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_SRB_ToAddModList },
{ &hf_lte_rrc_drb_ToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_DRB_ToAddModList },
{ &hf_lte_rrc_mac_MainConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_T_mac_MainConfig },
{ &hf_lte_rrc_sps_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_SPS_Config },
{ &hf_lte_rrc_physicalConfigDedicated, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_PhysicalConfigDedicated },
- { &hf_lte_rrc_rlf_TimersAndConstants_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_RLF_TimersAndConstants_r9 },
+ { &hf_lte_rrc_dummy_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lte_rrc_RadioResourceConfigDedicated_eag_1 },
{ NULL, 0, 0, NULL }
};
static int
dissect_lte_rrc_T_targetRAT_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
- 8, NULL, TRUE, 0, NULL);
+ 8, <e_rrc_ho_target_rat_type_value, TRUE, 0, NULL);
+
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_lte_rrc_T_targetRAT_MessageContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ tvbuff_t *target_rat_msg_cont_tvb = NULL;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ NO_BOUND, NO_BOUND, FALSE, &target_rat_msg_cont_tvb);
+
+ if(target_rat_msg_cont_tvb){
+ guint8 byte;
+ switch(lte_rrc_ho_target_rat_type_value){
+ case 0:
+ /* utra */
+ if (rrc_irat_ho_to_utran_cmd_handle)
+ call_dissector(rrc_irat_ho_to_utran_cmd_handle, target_rat_msg_cont_tvb, actx->pinfo, tree);
+ break;
+ case 1:
+ /* geran */
+ byte = tvb_get_guint8(target_rat_msg_cont_tvb, 0);
+ if (byte == 0x06) {
+ if (gsm_a_dtap_handle) {
+ call_dissector(gsm_a_dtap_handle, target_rat_msg_cont_tvb, actx->pinfo, tree);
+ }
+ } else {
+ if (gsm_rlcmac_dl_handle) {
+ call_dissector(gsm_rlcmac_dl_handle, target_rat_msg_cont_tvb, actx->pinfo, tree);
+ }
+ }
+ break;
+ case 2:
+ /* cdma2000-1XRTT */
+ break;
+ case 3:
+ /* cdma2000-HRPD */
+ break;
+ default:
+ break;
+ }
+ }
+
return offset;
}
static int
-dissect_lte_rrc_OCTET_STRING_SIZE_1_23(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_lte_rrc_T_nas_SecurityParamFromEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ tvbuff_t *nas_sec_param_from_eutra_tvb = NULL;
+ guint32 length;
+ proto_item *item;
+ proto_tree *subtree;
+
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 23, FALSE, NULL);
+ 1, 1, FALSE, &nas_sec_param_from_eutra_tvb);
+
+ length = tvb_length(nas_sec_param_from_eutra_tvb);
+ item = proto_tree_add_text(tree, nas_sec_param_from_eutra_tvb, 0, length, "NAS security parameters from E-UTRA");
+ subtree = proto_item_add_subtree(item, hf_lte_rrc_nas_SecurityParamFromEUTRA);
+ de_emm_sec_par_from_eutra(nas_sec_param_from_eutra_tvb, subtree, actx->pinfo, 0, length, NULL, 0);
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_lte_rrc_SystemInfoListGERAN_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ tvbuff_t *sys_info_list_tvb = NULL;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 1, 23, FALSE, &sys_info_list_tvb);
+
+ if (sys_info_list_tvb) {
+ switch (lte_rrc_si_or_psi_geran_val) {
+ case 0:
+ /* SI message */
+ if (gsm_a_dtap_handle) {
+ call_dissector(gsm_a_dtap_handle, sys_info_list_tvb ,actx->pinfo, tree);
+ }
+ break;
+ case 1:
+ /* PSI message */
+ if (gsm_rlcmac_dl_handle) {
+ call_dissector(gsm_rlcmac_dl_handle, sys_info_list_tvb ,actx->pinfo, tree);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
return offset;
}
static const per_sequence_t SystemInfoListGERAN_sequence_of[1] = {
- { &hf_lte_rrc_SystemInfoListGERAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_OCTET_STRING_SIZE_1_23 },
+ { &hf_lte_rrc_SystemInfoListGERAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_SystemInfoListGERAN_item },
};
static int
dissect_lte_rrc_SI_OrPSI_GERAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_SI_OrPSI_GERAN, SI_OrPSI_GERAN_choice,
- NULL);
+ <e_rrc_si_or_psi_geran_val);
+
+
return offset;
}
static const per_sequence_t Handover_sequence[] = {
{ &hf_lte_rrc_targetRAT_Type, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_targetRAT_Type },
- { &hf_lte_rrc_targetRAT_MessageContainer, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nas_SecurityParamFromEUTRA, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING_SIZE_1 },
+ { &hf_lte_rrc_targetRAT_MessageContainer, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_targetRAT_MessageContainer },
+ { &hf_lte_rrc_nas_SecurityParamFromEUTRA, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nas_SecurityParamFromEUTRA },
{ &hf_lte_rrc_systemInformation_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SI_OrPSI_GERAN },
{ NULL, 0, 0, NULL }
};
static int
dissect_lte_rrc_Handover(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ lte_rrc_ho_target_rat_type_value = -1;
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_Handover, Handover_sequence);
+
+
return offset;
}
}
+static const per_sequence_t MeasObjectUTRA_eag_1_sequence[] = {
+ { &hf_lte_rrc_csg_allowedReportingCells_v930, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_CSG_AllowedReportingCells_r9 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_MeasObjectUTRA_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, MeasObjectUTRA_eag_1_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t MeasObjectUTRA_sequence[] = {
{ &hf_lte_rrc_carrierFreq_02, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_ARFCN_ValueUTRA },
{ &hf_lte_rrc_offsetFreq , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_Q_OffsetRangeInterRAT },
{ &hf_lte_rrc_cellsToRemoveList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_CellIndexList },
{ &hf_lte_rrc_cellsToAddModList_02, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_T_cellsToAddModList },
{ &hf_lte_rrc_cellForWhichToReportCGI_03, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_T_cellForWhichToReportCGI },
- { &hf_lte_rrc_csg_allowedReportingCells_v930, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_CSG_AllowedReportingCells_r9 },
+ { &hf_lte_rrc_dummy_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lte_rrc_MeasObjectUTRA_eag_1 },
{ NULL, 0, 0, NULL }
};
}
+static const per_sequence_t ReportConfigEUTRA_eag_1_sequence[] = {
+ { &hf_lte_rrc_si_RequestForHO_r9, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_si_RequestForHO_r9 },
+ { &hf_lte_rrc_ue_RxTxTimeDiffPeriodical_r9, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_ue_RxTxTimeDiffPeriodical_r9 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_ReportConfigEUTRA_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, ReportConfigEUTRA_eag_1_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t ReportConfigEUTRA_sequence[] = {
{ &hf_lte_rrc_triggerType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_triggerType },
{ &hf_lte_rrc_triggerQuantity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_triggerQuantity },
{ &hf_lte_rrc_maxReportCells, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_INTEGER_1_maxCellReport },
{ &hf_lte_rrc_reportInterval, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_ReportInterval },
{ &hf_lte_rrc_reportAmount, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_reportAmount },
- { &hf_lte_rrc_si_RequestForHO_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_T_si_RequestForHO_r9 },
- { &hf_lte_rrc_ue_RxTxTimeDiffPeriodical_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_T_ue_RxTxTimeDiffPeriodical_r9 },
+ { &hf_lte_rrc_dummy_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lte_rrc_ReportConfigEUTRA_eag_1 },
{ NULL, 0, 0, NULL }
};
}
+static const per_sequence_t ReportConfigInterRAT_eag_1_sequence[] = {
+ { &hf_lte_rrc_si_RequestForHO_r9_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_si_RequestForHO_r9_01 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_ReportConfigInterRAT_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, ReportConfigInterRAT_eag_1_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t ReportConfigInterRAT_sequence[] = {
{ &hf_lte_rrc_triggerType_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_triggerType_01 },
{ &hf_lte_rrc_maxReportCells, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_INTEGER_1_maxCellReport },
{ &hf_lte_rrc_reportInterval, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_ReportInterval },
{ &hf_lte_rrc_reportAmount_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_reportAmount_01 },
- { &hf_lte_rrc_si_RequestForHO_r9_01, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_T_si_RequestForHO_r9_01 },
+ { &hf_lte_rrc_dummy_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lte_rrc_ReportConfigInterRAT_eag_1 },
{ NULL, 0, 0, NULL }
};
static int
-dissect_lte_rrc_OCTET_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_lte_rrc_T_nas_SecurityParamToEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ tvbuff_t *nas_sec_param_to_eutra_tvb = NULL;
+ guint32 length;
+ proto_item *item;
+ proto_tree *subtree;
+
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 6, 6, FALSE, NULL);
+ 6, 6, FALSE, &nas_sec_param_to_eutra_tvb);
+
+ length = tvb_length(nas_sec_param_to_eutra_tvb);
+ item = proto_tree_add_text(tree, nas_sec_param_to_eutra_tvb, 0, length, "NAS security parameters to E-UTRA");
+ subtree = proto_item_add_subtree(item, hf_lte_rrc_nas_SecurityParamToEUTRA);
+ de_emm_sec_par_to_eutra(nas_sec_param_to_eutra_tvb, subtree, actx->pinfo, 0, length, NULL, 0);
+
return offset;
}
static const per_sequence_t T_interRAT_sequence[] = {
{ &hf_lte_rrc_securityAlgorithmConfig, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_SecurityAlgorithmConfig },
- { &hf_lte_rrc_nas_SecurityParamToEUTRA, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_OCTET_STRING_SIZE_6 },
+ { &hf_lte_rrc_nas_SecurityParamToEUTRA, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_nas_SecurityParamToEUTRA },
{ NULL, 0, 0, NULL }
};
static int
dissect_lte_rrc_CellInfoGERAN_r9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ lte_rrc_si_or_psi_geran_val = 0; /* SI message */
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_CellInfoGERAN_r9, CellInfoGERAN_r9_sequence);
+
+
return offset;
}
}
+
+static int
+dissect_lte_rrc_T_utra_BCCH_Container_r9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ tvbuff_t *utra_bcch_cont_tvb = NULL;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ NO_BOUND, NO_BOUND, FALSE, &utra_bcch_cont_tvb);
+
+ if (utra_bcch_cont_tvb && rrc_sys_info_cont_handle)
+ call_dissector(rrc_sys_info_cont_handle, utra_bcch_cont_tvb, actx->pinfo, tree);
+
+
+ return offset;
+}
+
+
static const per_sequence_t CellInfoUTRA_FDD_r9_sequence[] = {
{ &hf_lte_rrc_physCellId_r9_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_PhysCellIdUTRA_FDD },
- { &hf_lte_rrc_utra_BCCH_Container_r9, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_OCTET_STRING },
+ { &hf_lte_rrc_utra_BCCH_Container_r9, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_utra_BCCH_Container_r9 },
{ NULL, 0, 0, NULL }
};
}
+
+static int
+dissect_lte_rrc_T_utra_BCCH_Container_r9_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ tvbuff_t *utra_bcch_cont_tvb = NULL;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ NO_BOUND, NO_BOUND, FALSE, &utra_bcch_cont_tvb);
+
+ if (utra_bcch_cont_tvb && rrc_sys_info_cont_handle)
+ call_dissector(rrc_sys_info_cont_handle, utra_bcch_cont_tvb, actx->pinfo, tree);
+
+
+ return offset;
+}
+
+
static const per_sequence_t CellInfoUTRA_TDD_r9_sequence[] = {
{ &hf_lte_rrc_physCellId_r9_02, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_PhysCellIdUTRA_TDD },
- { &hf_lte_rrc_utra_BCCH_Container_r9, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_OCTET_STRING },
+ { &hf_lte_rrc_utra_BCCH_Container_r9_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_utra_BCCH_Container_r9_01 },
{ NULL, 0, 0, NULL }
};
static int
dissect_lte_rrc_CounterCheck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
+col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheck ");
+
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_CounterCheck, CounterCheck_sequence);
static int
dissect_lte_rrc_UEInformationRequest_r9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
+col_append_str(actx->pinfo->cinfo, COL_INFO, "UEInformationRequest-r9 ");
+
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_UEInformationRequest_r9, UEInformationRequest_r9_sequence);
}
+static const per_sequence_t T_eag_1_sequence[] = {
+ { &hf_lte_rrc_additionalSI_Info_r9, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_AdditionalSI_Info_r9 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_T_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, T_eag_1_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t T_measResult_sequence[] = {
{ &hf_lte_rrc_rsrpResult , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_RSRP_Range },
{ &hf_lte_rrc_rsrqResult , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_RSRQ_Range },
- { &hf_lte_rrc_additionalSI_Info_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_AdditionalSI_Info_r9 },
+ { &hf_lte_rrc_dummy_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_eag_1 },
{ NULL, 0, 0, NULL }
};
}
+static const per_sequence_t T_eag_1_01_sequence[] = {
+ { &hf_lte_rrc_additionalSI_Info_r9, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_AdditionalSI_Info_r9 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_T_eag_1_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, T_eag_1_01_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t T_measResult_01_sequence[] = {
{ &hf_lte_rrc_utra_RSCP , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_INTEGER_M5_91 },
{ &hf_lte_rrc_utra_EcN0 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_INTEGER_0_49 },
- { &hf_lte_rrc_additionalSI_Info_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_AdditionalSI_Info_r9 },
+ { &hf_lte_rrc_dummy_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_eag_1_01 },
{ NULL, 0, 0, NULL }
};
}
+static const per_sequence_t MeasResults_eag_1_sequence[] = {
+ { &hf_lte_rrc_measResultForECID_r9, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_MeasResultForECID_r9 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_MeasResults_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, MeasResults_eag_1_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t MeasResults_sequence[] = {
{ &hf_lte_rrc_measId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_MeasId },
{ &hf_lte_rrc_measResultServCell, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_measResultServCell },
{ &hf_lte_rrc_measResultNeighCells, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lte_rrc_T_measResultNeighCells },
- { &hf_lte_rrc_measResultForECID_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_MeasResultForECID_r9 },
+ { &hf_lte_rrc_dummy_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lte_rrc_MeasResults_eag_1 },
{ NULL, 0, 0, NULL }
};
NO_BOUND, NO_BOUND, FALSE, &ue_eutra_cap_tvb);
+
if(ue_eutra_cap_tvb){
+ guint32 length;
+ proto_item *item;
+ proto_tree *subtree;
+ guint8 byte;
switch(lte_rrc_rat_type_value){
case 0:
/* eutra */
- dissect_lte_rrc_UE_EUTRA_Capability_PDU(ue_eutra_cap_tvb,actx->pinfo, tree);
+ dissect_lte_rrc_UE_EUTRA_Capability_PDU(ue_eutra_cap_tvb, actx->pinfo, tree);
break;
case 1:
/* utra */
break;
case 2:
/* geran-cs */
- de_ms_cm_2(ue_eutra_cap_tvb, tree, actx->pinfo, 0, 5, NULL, 0);
- de_ms_cm_3(ue_eutra_cap_tvb, tree, actx->pinfo, 5, tvb_length(ue_eutra_cap_tvb)-5, NULL, 0);
+ /* Mobile Station Classmark 2 is formatted as TLV with the two first bytes set to 0x33 0x03 */
+ item = proto_tree_add_text(tree, ue_eutra_cap_tvb, 0, 5, "Mobile Station Classmark 2");
+ subtree = proto_item_add_subtree(item, ett_lte_rrc_UE_CapabilityRAT_Container);
+ byte = tvb_get_guint8(ue_eutra_cap_tvb, 0);
+ if (byte != 0x33) {
+ expert_add_info_format(actx->pinfo, item, PI_MALFORMED, PI_ERROR,
+ "Unexpected type value (found 0x%02X)", byte);
+ }
+ byte = tvb_get_guint8(ue_eutra_cap_tvb, 1);
+ if (byte != 0x03) {
+ expert_add_info_format(actx->pinfo, item, PI_MALFORMED, PI_ERROR,
+ "Unexpected length value (found %d)", byte);
+ }
+ de_ms_cm_2(ue_eutra_cap_tvb, subtree, actx->pinfo, 2, 3, NULL, 0);
+ /* Mobile Station Classmark 3 is formatted as V */
+ length = tvb_length(ue_eutra_cap_tvb)-5;
+ item = proto_tree_add_text(tree, ue_eutra_cap_tvb, 5, length, "Mobile Station Classmark 3");
+ subtree = proto_item_add_subtree(item, ett_lte_rrc_UE_CapabilityRAT_Container);
+ de_ms_cm_3(ue_eutra_cap_tvb, subtree, actx->pinfo, 5, length, NULL, 0);
break;
case 3:
/* geran-ps */
- de_gmm_ms_radio_acc_cap(ue_eutra_cap_tvb, tree, actx->pinfo, 0, tvb_length(ue_eutra_cap_tvb), NULL, 0);
+ /* MS Radio Access Capability is formatted as V */
+ length = tvb_length(ue_eutra_cap_tvb);
+ item = proto_tree_add_text(tree, ue_eutra_cap_tvb, 0, length, "MS Radio Access Capability");
+ subtree = proto_item_add_subtree(item, ett_lte_rrc_UE_CapabilityRAT_Container);
+ de_gmm_ms_radio_acc_cap(ue_eutra_cap_tvb, subtree, actx->pinfo, 0, length, NULL, 0);
break;
case 4:
/* cdma2000-1XRTT */
default:
break;
}
-
}
return offset;
dissect_lte_rrc_CounterCheckResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheckResponse ");
+
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_CounterCheckResponse, CounterCheckResponse_sequence);
static int
dissect_lte_rrc_UEInformationResponse_r9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
+col_append_str(actx->pinfo->cinfo, COL_INFO, "UEInformationResponse-r9 ");
+
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_UEInformationResponse_r9, UEInformationResponse_r9_sequence);
static int
dissect_lte_rrc_ProximityIndication_r9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
+col_append_str(actx->pinfo->cinfo, COL_INFO, "ProximityIndication-r9 ");
+
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_lte_rrc_ProximityIndication_r9, ProximityIndication_r9_sequence);
}
+static const per_sequence_t AS_Config_eag_1_sequence[] = {
+ { &hf_lte_rrc_sourceSystemInformationBlockType1Ext, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_sourceSystemInformationBlockType1Ext },
+ { &hf_lte_rrc_sourceOtherConfig_r9, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_OtherConfig_r9 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_AS_Config_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, AS_Config_eag_1_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t AS_Config_sequence[] = {
{ &hf_lte_rrc_sourceMeasConfig, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_MeasConfig },
{ &hf_lte_rrc_sourceRadioResourceConfig, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RadioResourceConfigDedicated },
{ &hf_lte_rrc_sourceSystemInformationBlockType2, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_SystemInformationBlockType2 },
{ &hf_lte_rrc_antennaInfoCommon, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_AntennaInfoCommon },
{ &hf_lte_rrc_sourceDl_CarrierFreq, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lte_rrc_ARFCN_ValueEUTRA },
- { &hf_lte_rrc_sourceSystemInformationBlockType1Ext, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lte_rrc_T_sourceSystemInformationBlockType1Ext },
- { &hf_lte_rrc_sourceOtherConfig_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lte_rrc_OtherConfig_r9 },
+ { &hf_lte_rrc_dummy_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lte_rrc_AS_Config_eag_1 },
{ NULL, 0, 0, NULL }
};
/*--- End of included file: packet-lte-rrc-fn.c ---*/
-#line 232 "packet-lte-rrc-template.c"
+#line 240 "../../asn1/lte-rrc/packet-lte-rrc-template.c"
static void
dissect_lte_rrc_DL_CCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
col_clear(pinfo->cinfo, COL_INFO);
if (tree) {
- ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, FALSE);
+ ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
dissect_DL_CCCH_Message_PDU(tvb, pinfo, lte_rrc_tree);
}
col_clear(pinfo->cinfo, COL_INFO);
if (tree) {
- ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, FALSE);
+ ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
dissect_DL_DCCH_Message_PDU(tvb, pinfo, lte_rrc_tree);
}
col_clear(pinfo->cinfo, COL_INFO);
if (tree) {
- ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, FALSE);
+ ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
dissect_UL_CCCH_Message_PDU(tvb, pinfo, lte_rrc_tree);
}
col_clear(pinfo->cinfo, COL_INFO);
if (tree) {
- ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, FALSE);
+ ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
dissect_UL_DCCH_Message_PDU(tvb, pinfo, lte_rrc_tree);
}
}
+static void
+dissect_lte_rrc_BCCH_BCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ proto_item *ti;
+ proto_tree *lte_rrc_tree;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC BCCH_BCH");
+ col_clear(pinfo->cinfo, COL_INFO);
+ if (tree) {
+
+ ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
+ lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
+ dissect_BCCH_BCH_Message_PDU(tvb, pinfo, lte_rrc_tree);
+ }
+}
+static void
+dissect_lte_rrc_BCCH_DL_SCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ proto_item *ti;
+ proto_tree *lte_rrc_tree;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC DL_SCH");
+ col_clear(pinfo->cinfo, COL_INFO);
+ if (tree) {
+
+ ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
+ lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
+ dissect_BCCH_DL_SCH_Message_PDU(tvb, pinfo, lte_rrc_tree);
+ }
+}
/*--- proto_register_rrc -------------------------------------------*/
void proto_register_lte_rrc(void) {
/*--- Included file: packet-lte-rrc-hfarr.c ---*/
-#line 1 "packet-lte-rrc-hfarr.c"
+#line 1 "../../asn1/lte-rrc/packet-lte-rrc-hfarr.c"
{ &hf_lte_rrc_BCCH_BCH_Message_PDU,
{ "BCCH-BCH-Message", "lte-rrc.BCCH_BCH_Message",
FT_NONE, BASE_NONE, NULL, 0,
{ &hf_lte_rrc_targetRAT_MessageContainer,
{ "targetRAT-MessageContainer", "lte-rrc.targetRAT_MessageContainer",
FT_BYTES, BASE_NONE, NULL, 0,
- "OCTET_STRING", HFILL }},
+ "T_targetRAT_MessageContainer", HFILL }},
{ &hf_lte_rrc_nas_SecurityParamFromEUTRA,
{ "nas-SecurityParamFromEUTRA", "lte-rrc.nas_SecurityParamFromEUTRA",
FT_BYTES, BASE_NONE, NULL, 0,
- "OCTET_STRING_SIZE_1", HFILL }},
+ NULL, HFILL }},
{ &hf_lte_rrc_systemInformation_01,
{ "systemInformation", "lte-rrc.systemInformation",
FT_UINT32, BASE_DEC, VALS(lte_rrc_SI_OrPSI_GERAN_vals), 0,
{ &hf_lte_rrc_nas_SecurityParamToEUTRA,
{ "nas-SecurityParamToEUTRA", "lte-rrc.nas_SecurityParamToEUTRA",
FT_BYTES, BASE_NONE, NULL, 0,
- "OCTET_STRING_SIZE_6", HFILL }},
+ NULL, HFILL }},
{ &hf_lte_rrc_criticalExtensions_10,
{ "criticalExtensions", "lte-rrc.criticalExtensions",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_10_vals), 0,
{ &hf_lte_rrc_utra_BCCH_Container_r9,
{ "utra-BCCH-Container-r9", "lte-rrc.utra_BCCH_Container_r9",
FT_BYTES, BASE_NONE, NULL, 0,
- "OCTET_STRING", HFILL }},
+ NULL, HFILL }},
{ &hf_lte_rrc_CellInfoListUTRA_TDD_r9_item,
{ "CellInfoUTRA-TDD-r9", "lte-rrc.CellInfoUTRA_TDD_r9",
FT_NONE, BASE_NONE, NULL, 0,
{ "physCellId-r9", "lte-rrc.physCellId_r9",
FT_UINT32, BASE_DEC, NULL, 0,
"PhysCellIdUTRA_TDD", HFILL }},
+ { &hf_lte_rrc_utra_BCCH_Container_r9_01,
+ { "utra-BCCH-Container-r9", "lte-rrc.utra_BCCH_Container_r9",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "T_utra_BCCH_Container_r9_01", HFILL }},
{ &hf_lte_rrc_criticalExtensions_17,
{ "criticalExtensions", "lte-rrc.criticalExtensions",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_17_vals), 0,
{ &hf_lte_rrc_SystemInfoListGERAN_item,
{ "SystemInfoListGERAN item", "lte-rrc.SystemInfoListGERAN_item",
FT_BYTES, BASE_NONE, NULL, 0,
- "OCTET_STRING_SIZE_1_23", HFILL }},
+ NULL, HFILL }},
{ &hf_lte_rrc_cdma_EUTRA_Synchronisation,
{ "cdma-EUTRA-Synchronisation", "lte-rrc.cdma_EUTRA_Synchronisation",
FT_BOOLEAN, BASE_NONE, NULL, 0,
NULL, HFILL }},
/*--- End of included file: packet-lte-rrc-hfarr.c ---*/
-#line 307 "packet-lte-rrc-template.c"
+#line 345 "../../asn1/lte-rrc/packet-lte-rrc-template.c"
{ &hf_lte_rrc_eutra_cap_feat_group_ind_1,
{ "Indicator 1", "lte-rrc.eutra_cap_feat_group_ind_1",
&ett_lte_rrc,
/*--- Included file: packet-lte-rrc-ettarr.c ---*/
-#line 1 "packet-lte-rrc-ettarr.c"
+#line 1 "../../asn1/lte-rrc/packet-lte-rrc-ettarr.c"
&ett_lte_rrc_BCCH_BCH_Message,
&ett_lte_rrc_BCCH_DL_SCH_Message,
&ett_lte_rrc_BCCH_DL_SCH_MessageType,
&ett_lte_rrc_RRM_Config,
/*--- End of included file: packet-lte-rrc-ettarr.c ---*/
-#line 442 "packet-lte-rrc-template.c"
+#line 480 "../../asn1/lte-rrc/packet-lte-rrc-template.c"
&ett_lte_rrc_featureGroupIndicators,
+ &ett_lte_rrc_neighCellConfig,
};
register_dissector("lte_rrc.dl_dcch", dissect_lte_rrc_DL_DCCH, proto_lte_rrc);
register_dissector("lte_rrc.ul_ccch", dissect_lte_rrc_UL_CCCH, proto_lte_rrc);
register_dissector("lte_rrc.ul_dcch", dissect_lte_rrc_UL_DCCH, proto_lte_rrc);
+ register_dissector("lte_rrc.bcch_bch", dissect_lte_rrc_BCCH_BCH, proto_lte_rrc);
+ register_dissector("lte_rrc.bcch_dl_sch", dissect_lte_rrc_BCCH_DL_SCH, proto_lte_rrc);
/* Register fields and subtrees */
proto_register_field_array(proto_lte_rrc, hf, array_length(hf));
/* Register the dissectors defined in lte-rrc.conf */
/*--- Included file: packet-lte-rrc-dis-reg.c ---*/
-#line 1 "packet-lte-rrc-dis-reg.c"
+#line 1 "../../asn1/lte-rrc/packet-lte-rrc-dis-reg.c"
new_register_dissector("lte-rrc.bcch.bch", dissect_BCCH_BCH_Message_PDU, proto_lte_rrc);
new_register_dissector("lte-rrc.bcch.dl.sch", dissect_BCCH_DL_SCH_Message_PDU, proto_lte_rrc);
new_register_dissector("lte-rrc.mcch", dissect_MCCH_Message_PDU, proto_lte_rrc);
/*--- End of included file: packet-lte-rrc-dis-reg.c ---*/
-#line 462 "packet-lte-rrc-template.c"
+#line 503 "../../asn1/lte-rrc/packet-lte-rrc-template.c"
}
lte_rrc_dl_ccch_handle = find_dissector("lte_rrc.dl_ccch");
dissector_add_handle("udp.port", lte_rrc_dl_ccch_handle);
nas_eps_handle = find_dissector("nas-eps");
+ rrc_irat_ho_to_utran_cmd_handle = find_dissector("rrc.irat.ho_to_utran_cmd");
+ rrc_sys_info_cont_handle = find_dissector("rrc.sysinfo.cont");
+ gsm_a_dtap_handle = find_dissector("gsm_a_dtap");
+ gsm_rlcmac_dl_handle = find_dissector("gsm_rlcmac_dl");
}