wireshark/asn1/lte-rrc/lte-rrc.cnf

1070 lines
51 KiB
Plaintext
Raw Normal View History

# lte-rrc.cnf
# lte-rrc conformation file
# Copyright 2008 Vincent Helfre
# $Id$
#.OPT
PER
UNALIGNED
#.END
#.USE_VALS_EXT
BandclassCDMA2000
DRX-Config/setup/drx-InactivityTimer
Q-OffsetRange
RRM-Config/ue-InactiveTime
SupportedBandUTRA-FDD
T-PollRetransmit
T-Reordering
T-StatusProhibit
#.EXPORTS
HandoverCommand
HandoverCommand_PDU
HandoverPreparationInformation
HandoverPreparationInformation_PDU
UERadioAccessCapabilityInformation
UERadioAccessCapabilityInformation_PDU
UE-EUTRA-Capability
UE-EUTRA-Capability_PDU
#UEInformationResponse
#.END
#.PDU_NEW
HandoverCommand
HandoverPreparationInformation
UERadioAccessCapabilityInformation
BCCH-BCH-Message @bcch.bch
BCCH-DL-SCH-Message @bcch.dl.sch
MCCH-Message @mcch
PCCH-Message @pcch
DL-CCCH-Message @dl.ccch
DL-DCCH-Message @dl.dcch
UL-CCCH-Message @ul.ccch
UL-DCCH-Message @ul.dcch
UECapabilityInformation @ue_cap_info
UE-EUTRA-Capability @ue_eutra_cap
#.END
#.OMIT_ASSIGNMENT
# Get rid of unused code warnings
VarShortMAC-Input
VarMeasConfig
VarMeasReportList
VarMeasReport
CellsTriggeredList
VarLogMeasConfig-r10
VarLogMeasReport-r10
LogMeasInfoList2-r10
VarRLF-Report-r10
#.FN_HDR UL-DCCH-Message
actx->pinfo->link_dir = P2P_DIR_UL;
#.FN_HDR DL-DCCH-Message
actx->pinfo->link_dir = P2P_DIR_DL;
#.FN_BODY DedicatedInfoNAS VAL_PTR = &nas_eps_tvb
tvbuff_t *nas_eps_tvb=NULL;
%(DEFAULT_BODY)s
if ((nas_eps_tvb)&&(nas_eps_handle))
call_dissector(nas_eps_handle,nas_eps_tvb,actx->pinfo, tree);
#.FN_BODY UE-CapabilityRAT-Container
lte_rrc_rat_type_value = -1;
%(DEFAULT_BODY)s
#.FN_BODY RAT-Type VAL_PTR = &lte_rrc_rat_type_value
%(DEFAULT_BODY)s
#RAT-Type ::= ENUMERATED {
# eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT,
# spare3, spare2, spare1, ...}
# ueCapabilityRAT-Container
# Container for the UE capabilities of the indicated RAT. The encoding is defined in the specification of each RAT:
# For E-UTRA: the encoding of UE capabilities is defined in IE UE-EUTRA-Capability.
# For UTRA: the octet string contains the INTER RAT HANDOVER INFO message defined in TS 25.331 [19].
# For GERAN CS: the octet string contains the concatenated string of the Mobile Station Classmark 2 and Mobile
# Station Classmark 3. The first 5 octets correspond to Mobile Station Classmark 2 and the following octets correspond
# to Mobile Station Classmark 3. The Mobile Station Classmark 2 is formatted as 'TLV' and is coded in the same way as
# the Mobile Station Classmark 2 information element in TS 24.008 [49]. The first octet is the Mobile station classmark 2
# IEI and its value shall be set to 33H. The second octet is the Length of mobile station classmark 2 and its value shall
# be set to 3. The octet 3 contains the first octet of the value part of the Mobile Station Classmark 2 information element,
# the octet 4 contains the second octet of the value part of the Mobile Station Classmark 2 information element and so
# on. For each of these octets, the first/ leftmost/ most significant bit of the octet contains b8 of the corresponding octet
# of the Mobile Station Classmark 2. The Mobile Station Classmark 3 is formatted as 'V' and is coded in the same way
# as the value part in the Mobile station classmark 3 information element in TS 24.008 [49]. The sixth octet of this octet
# string contains octet 1 of the value part of Mobile station classmark 3, the seventh of octet of this octet string contains
# octet 2 of the value part of Mobile station classmark 3 and so on. Note.
# For GERAN PS: the encoding of UE capabilities is formatted as 'V' and is coded in the same way as the value part in
# the MS Radio Access Capability information element in TS 24.008 [49].
# For CDMA2000-1XRTT: the octet string contains the A21 Mobile Subscription Information and the encoding of this is
# defined in A.S0008 [33]. The A21 Mobile Subscription Information contains the supported CDMA2000 1xRTT band
# class and band sub-class information.
#.FN_BODY UE-CapabilityRAT-Container/ueCapabilityRAT-Container VAL_PTR = &ue_eutra_cap_tvb
tvbuff_t *ue_eutra_cap_tvb=NULL;
%(DEFAULT_BODY)s
#.FN_FTR UE-CapabilityRAT-Container/ueCapabilityRAT-Container
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);
break;
case 1:
/* utra */
dissect_rrc_InterRATHandoverInfo_PDU(ue_eutra_cap_tvb, actx->pinfo, tree);
break;
case 2:
/* geran-cs */
/* 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 */
/* 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 */
/* dissection of "A21 Mobile Subscription Information" could be added to packet-ansi_a.c */
break;
default:
break;
}
}
#.FN_BODY UE-EUTRA-Capability/featureGroupIndicators VAL_PTR = &featureGroupIndicators_tvb
tvbuff_t *featureGroupIndicators_tvb=NULL;
%(DEFAULT_BODY)s
if(featureGroupIndicators_tvb){
/* Dissect featureGroupIndicators */
proto_tree *subtree;
gint curr_bit_offset = 0;
subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_featureGroupIndicators);
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_1, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_2, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_3, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_4, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_5, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_6, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_7, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_8, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_9, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_10, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_11, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_12, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_13, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_14, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_15, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_16, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_17, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_18, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_19, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_20, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_21, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_22, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_23, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_24, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_25, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_26, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_27, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_28, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_29, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_30, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_31, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_32, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
}
#.FN_BODY UE-EUTRA-Capability-v1020-IEs/featureGroupIndRel10-r10 VAL_PTR = &featureGroupIndRel10_tvb
tvbuff_t *featureGroupIndRel10_tvb=NULL;
%(DEFAULT_BODY)s
if(featureGroupIndRel10_tvb){
/* Dissect featureGroupIndicators-v1020 */
proto_tree *subtree;
gint curr_bit_offset = 0;
subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_featureGroupIndRel10);
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_101, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_102, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_103, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_104, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_105, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_106, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_107, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_108, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_109, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_110, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_111, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_112, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_113, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_114, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_115, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_116, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_117, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_118, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_119, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_120, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_121, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_122, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_123, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_124, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_125, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_126, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_127, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_128, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_129, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_130, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_131, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_132, featureGroupIndRel10_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
}
#.FN_BODY UE-EUTRA-Capability-v9a0-IEs/featureGroupIndRel9Add-r9 VAL_PTR = &featureGroupIndRel9Add_tvb
tvbuff_t *featureGroupIndRel9Add_tvb=NULL;
%(DEFAULT_BODY)s
if(featureGroupIndRel9Add_tvb){
/* Dissect featureGroupIndicators */
proto_tree *subtree;
gint curr_bit_offset = 0;
subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_featureGroupIndRel9Add);
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_33, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_34, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_35, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_36, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_37, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_38, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_39, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_40, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_41, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_42, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_43, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_44, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_45, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_46, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_47, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_48, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_49, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_50, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_51, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_52, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_53, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_54, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_55, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_56, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_57, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_58, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_59, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_60, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_61, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_62, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_63, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_64, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
}
#.FN_BODY UE-EUTRA-CapabilityAddXDD-Mode-r9/featureGroupIndicators-r9 VAL_PTR = &featureGroupIndicators_tvb
tvbuff_t *featureGroupIndicators_tvb=NULL;
%(DEFAULT_BODY)s
if(featureGroupIndicators_tvb){
/* Dissect featureGroupIndicators */
proto_tree *subtree;
gint curr_bit_offset = 0;
subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_featureGroupIndicators);
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_1, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_2, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_3, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_4, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_5, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_6, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_7, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_8, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_9, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_10, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_11, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_12, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_13, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_14, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_15, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_16, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_17, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_18, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_19, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_20, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_21, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_22, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_23, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_24, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_25, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_26, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_27, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_28, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_29, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_30, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_31, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_32, featureGroupIndicators_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
}
#.FN_BODY UE-EUTRA-CapabilityAddXDD-Mode-r9/featureGroupIndRel9Add-r9 VAL_PTR = &featureGroupIndRel9Add_tvb
tvbuff_t *featureGroupIndRel9Add_tvb=NULL;
%(DEFAULT_BODY)s
if(featureGroupIndRel9Add_tvb){
/* Dissect featureGroupIndicators */
proto_tree *subtree;
gint curr_bit_offset = 0;
subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_featureGroupIndRel9Add);
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_33, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_34, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_35, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_36, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_37, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_38, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_39, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_40, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_41, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_42, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_43, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_44, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_45, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_46, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_47, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_48, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_49, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_50, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_51, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_52, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_53, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_54, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_55, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_56, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_57, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_58, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_59, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_60, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_61, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_62, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_63, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
proto_tree_add_bits_item(subtree, hf_lte_rrc_eutra_cap_feat_group_ind_64, featureGroupIndRel9Add_tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN);
curr_bit_offset++;
}
#.FN_BODY Handover
lte_rrc_ho_target_rat_type_value = -1;
%(DEFAULT_BODY)s
#.FN_BODY Handover/targetRAT-Type VAL_PTR = &lte_rrc_ho_target_rat_type_value
%(DEFAULT_BODY)s
#.FN_BODY Handover/targetRAT-MessageContainer VAL_PTR = &target_rat_msg_cont_tvb
tvbuff_t *target_rat_msg_cont_tvb = NULL;
%(DEFAULT_BODY)s
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;
}
}
#.FN_BODY Handover/nas-SecurityParamFromEUTRA VAL_PTR = &nas_sec_param_from_eutra_tvb
tvbuff_t *nas_sec_param_from_eutra_tvb = NULL;
guint32 length;
proto_item *item;
proto_tree *subtree;
%(DEFAULT_BODY)s
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, ett_lte_rrc_nas_SecurityParam);
de_emm_sec_par_from_eutra(nas_sec_param_from_eutra_tvb, subtree, actx->pinfo, 0, length, NULL, 0);
#.FN_BODY SecurityConfigHO/handoverType/interRAT/nas-SecurityParamToEUTRA VAL_PTR = &nas_sec_param_to_eutra_tvb
tvbuff_t *nas_sec_param_to_eutra_tvb = NULL;
guint32 length;
proto_item *item;
proto_tree *subtree;
%(DEFAULT_BODY)s
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, ett_lte_rrc_nas_SecurityParam);
de_emm_sec_par_to_eutra(nas_sec_param_to_eutra_tvb, subtree, actx->pinfo, 0, length, NULL, 0);
#.FN_BODY SI-OrPSI-GERAN VAL_PTR = &lte_rrc_si_or_psi_geran_val
%(DEFAULT_BODY)s
#.FN_BODY CellInfoGERAN-r9
lte_rrc_si_or_psi_geran_val = 0; /* SI message */
%(DEFAULT_BODY)s
#.FN_BODY SystemInfoListGERAN/_item VAL_PTR = &sys_info_list_tvb
tvbuff_t *sys_info_list_tvb = NULL;
%(DEFAULT_BODY)s
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;
}
}
#.FN_BODY CellInfoUTRA-FDD-r9/utra-BCCH-Container-r9 VAL_PTR = &utra_bcch_cont_tvb
tvbuff_t *utra_bcch_cont_tvb = NULL;
%(DEFAULT_BODY)s
if (utra_bcch_cont_tvb && rrc_sys_info_cont_handle)
call_dissector(rrc_sys_info_cont_handle, utra_bcch_cont_tvb, actx->pinfo, tree);
#.FN_BODY CellInfoUTRA-TDD-r9/utra-BCCH-Container-r9 VAL_PTR = &utra_bcch_cont_tvb
tvbuff_t *utra_bcch_cont_tvb = NULL;
%(DEFAULT_BODY)s
if (utra_bcch_cont_tvb && rrc_sys_info_cont_handle)
call_dissector(rrc_sys_info_cont_handle, utra_bcch_cont_tvb, actx->pinfo, tree);
#.FN_BODY NeighCellConfig VAL_PTR = &neigh_cell_config_tvb
tvbuff_t *neigh_cell_config_tvb = NULL;
%(DEFAULT_BODY)s
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;
}
}
#.FN_BODY LocationInfo-r10/locationCoordinates-r10/ellipsoid-Point-r10 VAL_PTR = &ellipsoid_point_tvb
tvbuff_t *ellipsoid_point_tvb = NULL;
%(DEFAULT_BODY)s
if (ellipsoid_point_tvb) {
dissect_lpp_Ellipsoid_Point_PDU(ellipsoid_point_tvb, actx->pinfo, tree);
}
#.FN_BODY LocationInfo-r10/locationCoordinates-r10/ellipsoidPointWithAltitude-r10 VAL_PTR = &ellipsoid_point_with_alt_tvb
tvbuff_t *ellipsoid_point_with_alt_tvb = NULL;
%(DEFAULT_BODY)s
if (ellipsoid_point_with_alt_tvb) {
dissect_lpp_EllipsoidPointWithAltitude_PDU(ellipsoid_point_with_alt_tvb, actx->pinfo, tree);
}
#.FN_BODY LocationInfo-r10/horizontalVelocity-r10 VAL_PTR = &horizontal_velocity_tvb
tvbuff_t *horizontal_velocity_tvb = NULL;
%(DEFAULT_BODY)s
if (horizontal_velocity_tvb) {
dissect_lpp_HorizontalVelocity_PDU(horizontal_velocity_tvb, actx->pinfo, tree);
}
#.FN_BODY LocationInfo-r10/gnss-TOD-msec-r10 VAL_PTR = &gnss_tod_msec_tvb
tvbuff_t *gnss_tod_msec_tvb = NULL;
%(DEFAULT_BODY)s
if (gnss_tod_msec_tvb) {
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, actx->pinfo);
dissect_per_constrained_integer(gnss_tod_msec_tvb, 0, &asn1_ctx, tree, hf_index, 0U, 3599999U, NULL, FALSE);
}
#.FN_BODY AbsoluteTimeInfo-r10 VAL_PTR = &abs_time_info_tvb
tvbuff_t *abs_time_info_tvb = NULL;
%(DEFAULT_BODY)s
#.FN_FTR AbsoluteTimeInfo-r10
if (abs_time_info_tvb) {
const gchar *str;
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_neighCellConfig);
str = tvb_bcd_dig_to_ep_str(abs_time_info_tvb, 0, 6, NULL, FALSE);
proto_tree_add_text(subtree, abs_time_info_tvb, 0, 6, "%c%c-%c%c-%c%c %c%c:%c%c:%c%c", str[0], str[1],
str[2], str[3], str[4], str[5], str[6], str[7], str[8], str[9], str[10], str[11]);
}
#.TYPE_ATTR
SystemInformationBlockType9/hnb-Name TYPE=FT_STRING DISPLAY=BASE_NONE
#.FN_BODY RRCConnectionReject-r8-IEs/waitTime
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "s");
#.FN_BODY RRCConnectionReject-v1020-IEs/extendedWaitTime-r10
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "s");
#.FN_BODY RRCConnectionRelease-v1020-IEs/extendedWaitTime-r10
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "s");
#.TYPE_ATTR
SystemInformationBlockType1/cellSelectionInfo/q-RxLevMinOffset STRINGS=VALS(lte_rrc_q_RxLevMinOffset_vals)
#.FN_BODY CellSelectionInfo-v920/q-QualMinOffset-r9
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
#.FN_BODY RLF-Report-r9/eag_1/timeConnFailure-r10 VAL_PTR=&timeConnFailure_val
guint32 timeConnFailure_val;
%(DEFAULT_BODY)s
#.FN_FTR RLF-Report-r9/eag_1/timeConnFailure-r10
proto_item_append_text(actx->created_item, " (%dms)", 100*timeConnFailure_val);
#.TYPE_ATTR
CarrierFreqUTRA-FDD/q-RxLevMin DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_utra_q_RxLevMin_vals_ext
#.TYPE_ATTR
CarrierFreqUTRA-TDD/q-RxLevMin DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_utra_q_RxLevMin_vals_ext
#.FN_BODY CarrierFreqUTRA-FDD/p-MaxUTRA
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dBm");
#.FN_BODY CarrierFreqUTRA-TDD/p-MaxUTRA
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dBm");
#.FN_BODY CarrierFreqUTRA-FDD/q-QualMin
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
#.TYPE_ATTR
CarrierFreqsInfoGERAN/commonInfo/q-RxLevMin DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_geran_q_RxLevMin_vals_ext
#.FN_BODY CarrierFreqsInfoGERAN/commonInfo/p-MaxGERAN
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dBm");
#.TYPE_ATTR
CQI-ReportConfig/nomPDSCH-RS-EPRE-Offset STRINGS=VALS(lte_rrc_nomPDSCH_RS_EPRE_Offset_vals)
#.TYPE_ATTR
CQI-ReportConfig-r10/nomPDSCH-RS-EPRE-Offset STRINGS=VALS(lte_rrc_nomPDSCH_RS_EPRE_Offset_vals)
#.TYPE_ATTR
CQI-ReportConfigSCell-r10/nomPDSCH-RS-EPRE-Offset-r10 STRINGS=VALS(lte_rrc_nomPDSCH_RS_EPRE_Offset_vals)
#.FN_BODY MAC-MainConfig/eag_1/sr-ProhibitTimer-r9
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, " (number of SR periods)");
#.FN_BODY DRX-Config/setup/shortDRX/drxShortCycleTimer
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, " (multiples of shortDRX-Cycle)");
#.FN_BODY PDSCH-ConfigCommon/referenceSignalPower
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dBm");
#.FN_BODY P-Max
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dBm");
#.FN_BODY SPS-ConfigUL/setup/p0-Persistent/p0-NominalPUSCH-Persistent
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dBm");
#.FN_BODY SPS-ConfigUL/setup/p0-Persistent/p0-UE-PUSCH-Persistent
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
#.TYPE_ATTR
UplinkPowerControlCommon/deltaPreambleMsg3 STRINGS=VALS(lte_rrc_deltaPreambleMsg3_vals)
#.FN_BODY UplinkPowerControlCommon/p0-NominalPUSCH
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dBm");
#.FN_BODY UplinkPowerControlCommon/p0-NominalPUCCH
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dBm");
#.FN_BODY UplinkPowerControlCommonSCell-r10/p0-NominalPUSCH-r10
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dBm");
#.FN_BODY UplinkPowerControlDedicated/p0-UE-PUSCH
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
#.FN_BODY UplinkPowerControlDedicated/p0-UE-PUCCH
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
#.FN_BODY UplinkPowerControlDedicatedSCell-r10/p0-UE-PUSCH-r10
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
#.FN_BODY Q-QualMin-r9
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
#.TYPE_ATTR
Q-RxLevMin DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_q_RxLevMin_vals_ext
#.FN_BODY Q-OffsetRangeInterRAT
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
#.TYPE_ATTR
ReselectionThreshold DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_ReselectionThreshold_vals_ext
#.FN_BODY ReselectionThresholdQ-r9
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "dB");
#.FN_BODY T-Reselection
%(DEFAULT_BODY)s
proto_item_append_text(actx->created_item, "s");
#.TYPE_ATTR
Hysteresis DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_Hysteresis_vals_ext
#.TYPE_RENAME
MeasConfig/s-Measure S_Measure
#.TYPE_ATTR
MeasConfig/s-Measure DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_s_Measure_vals_ext
#.TYPE_ATTR
MeasResultGERAN/measResult/rssi DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&gsm_a_rr_rxlev_vals_ext
#.TYPE_ATTR
MeasResultUTRA/measResult/utra-EcN0 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_utra_EcN0_vals_ext
#.TYPE_ATTR
MeasResultUTRA/measResult/utra-RSCP DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_utra_RSCP_vals_ext
#.TYPE_ATTR
ReportConfigEUTRA/triggerType/event/eventId/eventA3/a3-Offset DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_a3_a6_Offset_vals_ext
#.TYPE_ATTR
ReportConfigEUTRA/triggerType/event/eventId/eventA6-r10/a6-Offset-r10 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_a3_a6_Offset_vals_ext
#.TYPE_RENAME
ThresholdEUTRA/threshold-RSRP Threshold_RSRP_Range
#.TYPE_ATTR
ThresholdEUTRA/threshold-RSRP DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_threshold_RSRP_vals_ext
#.TYPE_RENAME
ThresholdEUTRA/threshold-RSRQ Threshold_RSRQ_Range
#.TYPE_ATTR
ThresholdEUTRA/threshold-RSRQ DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_threshold_RSRQ_vals_ext
#.TYPE_ATTR
ThresholdGERAN DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_thresholdGERAN_vals_ext
#.TYPE_RENAME
ThresholdUTRA/utra-RSCP Threshold_utra_RSRP
#.TYPE_ATTR
ThresholdUTRA/utra-RSCP DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_thresholdUTRA_RSCP_vals_ext
#.TYPE_RENAME
ThresholdUTRA/utra-EcN0 Threshold_utra_EcN0
#.TYPE_ATTR
ThresholdUTRA/utra-EcN0 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_thresholdUTRA_EcN0_vals_ext
#.TYPE_ATTR
RSRP-Range DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_RSRP_Range_vals_ext
#.TYPE_ATTR
RSRQ-Range DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_RSRQ_Range_vals_ext
#.FN_BODY SoundingRS-UL-ConfigDedicated/setup/duration
actx->created_item = proto_tree_add_bits_item(tree, hf_index, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
#.TYPE_ATTR
SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
#.FN_HDR MasterInformationBlock
col_append_str(actx->pinfo->cinfo, COL_INFO, "MasterInformationBlock ");
#.FN_HDR SystemInformation
col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformation ");
#.FN_HDR SystemInformationBlockType1
col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformationBlockType1 ");
#.FN_HDR MBSFNAreaConfiguration-r9
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBSFNAreaConfiguration-r9 ");
#.FN_HDR MBMSCountingRequest-r10
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSCountingRequest-r10 ");
#.FN_HDR Paging
col_append_str(actx->pinfo->cinfo, COL_INFO, "Paging ");
#.FN_HDR RRCConnectionReestablishment
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishment ");
#.FN_HDR RRCConnectionReestablishmentReject
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentReject ");
#.FN_HDR RRCConnectionReject
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReject ");
#.FN_HDR RRCConnectionSetup
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetup ");
#.FN_HDR CSFBParametersResponseCDMA2000
col_append_str(actx->pinfo->cinfo, COL_INFO, "CSFBParametersResponseCDMA2000 ");
#.FN_HDR DLInformationTransfer
col_append_str(actx->pinfo->cinfo, COL_INFO, "DLInformationTransfer ");
#.FN_HDR HandoverFromEUTRAPreparationRequest
col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromEUTRAPreparationRequest ");
#.FN_HDR MobilityFromEUTRACommand
col_append_str(actx->pinfo->cinfo, COL_INFO, "MobilityFromEUTRACommand ");
#.FN_HDR RRCConnectionReconfiguration
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReconfiguration ");
#.FN_HDR RRCConnectionRelease
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRelease ");
#.FN_HDR SecurityModeCommand
col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeCommand ");
#.FN_HDR UECapabilityEnquiry
col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityEnquiry ");
#.FN_HDR CounterCheck
col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheck ");
#.FN_HDR UEInformationRequest-r9
col_append_str(actx->pinfo->cinfo, COL_INFO, "UEInformationRequest-r9 ");
#.FN_HDR LoggedMeasurementConfiguration-r10
col_append_str(actx->pinfo->cinfo, COL_INFO, "LoggedMeasurementConfiguration-r10 ");
#.FN_HDR RNReconfiguration-r10
col_append_str(actx->pinfo->cinfo, COL_INFO, "RNReconfiguration-r10 ");
#.FN_HDR RRCConnectionReestablishmentRequest
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentRequest ");
#.FN_HDR RRCConnectionRequest
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRequest ");
#.FN_HDR CSFBParametersRequestCDMA2000
col_append_str(actx->pinfo->cinfo, COL_INFO, "CSFBParametersRequestCDMA2000 ");
#.FN_HDR MeasurementReport
col_append_str(actx->pinfo->cinfo, COL_INFO, "MeasurementReport ");
#.FN_HDR RRCConnectionReconfigurationComplete
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReconfigurationComplete ");
#.FN_HDR RRCConnectionReestablishmentComplete
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentComplete ");
#.FN_HDR RRCConnectionSetupComplete
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetupComplete ");
#.FN_HDR SecurityModeComplete
col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeComplete ");
#.FN_HDR SecurityModeFailure
col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeFailure ");
#.FN_HDR UECapabilityInformation
col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityInformation ");
#.FN_HDR ULHandoverPreparationTransfer
col_append_str(actx->pinfo->cinfo, COL_INFO, "ULHandoverPreparationTransfer ");
#.FN_HDR ULInformationTransfer
col_append_str(actx->pinfo->cinfo, COL_INFO, "ULInformationTransfer ");
#.FN_HDR CounterCheckResponse
col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheckResponse ");
#.FN_HDR UEInformationResponse-r9
col_append_str(actx->pinfo->cinfo, COL_INFO, "UEInformationResponse-r9 ");
#.FN_HDR ProximityIndication-r9
col_append_str(actx->pinfo->cinfo, COL_INFO, "ProximityIndication-r9 ");
#.FN_HDR RNReconfigurationComplete-r10
col_append_str(actx->pinfo->cinfo, COL_INFO, "RNReconfigurationComplete-r10 ");
#.FN_HDR MBMSCountingResponse-r10
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSCountingResponse-r10 ");
#.FN_HDR InterFreqRSTDMeasurementIndication-r10
col_append_str(actx->pinfo->cinfo, COL_INFO, "InterFreqRSTDMeasurementIndication-r10 ");