From Mike Morrin:
Dissection of BSSMAP IEs: Old BSS to New BSS Info and New BSS to Old BSS Info https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4712 svn path=/trunk/; revision=32606
This commit is contained in:
parent
3f9d9a766e
commit
447faa6082
|
@ -43,6 +43,7 @@
|
|||
#include "packet-ranap.h"
|
||||
#include "packet-e212.h"
|
||||
#include "packet-sccp.h"
|
||||
#include "packet-gsm_a_common.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
|
||||
|
|
|
@ -230,6 +230,29 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
|
|||
|
||||
#.END
|
||||
|
||||
#.FN_BODY OldBSS-ToNewBSS-Information VAL_PTR = &bss_info_tvb
|
||||
tvbuff_t *bss_info_tvb=NULL;
|
||||
|
||||
%(DEFAULT_BODY)s
|
||||
if (bss_info_tvb)
|
||||
bssmap_old_bss_to_new_bss_info(bss_info_tvb, tree, actx->pinfo);
|
||||
#.END
|
||||
|
||||
#.FN_BODY NewBSS-To-OldBSS-Information VAL_PTR = &bss_info_tvb
|
||||
tvbuff_t *bss_info_tvb=NULL;
|
||||
|
||||
%(DEFAULT_BODY)s
|
||||
if (bss_info_tvb)
|
||||
bssmap_new_bss_to_old_bss_info(bss_info_tvb, tree, actx->pinfo);
|
||||
#.END
|
||||
|
||||
#.FN_BODY L3-Information VAL_PTR = &l3_info_tvb
|
||||
tvbuff_t *l3_info_tvb=NULL;
|
||||
|
||||
%(DEFAULT_BODY)s
|
||||
if (l3_info_tvb)
|
||||
dissector_try_port(nas_pdu_dissector_table, 0x1, l3_info_tvb, %(ACTX)s->pinfo, proto_tree_get_root(tree));
|
||||
#.END
|
||||
|
||||
# following construction is not supported by asn2wrs
|
||||
# PLMNidentity ::= TBCD-STRING (SIZE (3))
|
||||
|
|
|
@ -13,6 +13,7 @@ InterRATHandoverInfo
|
|||
InterRATHandoverInfo_PDU
|
||||
ToTargetRNC-Container_PDU
|
||||
TargetRNC-ToSourceRNC-Container_PDU
|
||||
HandoverToUTRANCommand_PDU
|
||||
#.OMIT_ASSIGNMENT
|
||||
UE-RadioAccessCapability-v890ext
|
||||
UL-PhysChCapabilityFDD-r6
|
||||
|
|
|
@ -4882,7 +4882,7 @@ decode_pdu_suspend(build_info_t *bi) {
|
|||
decode_pdu_general(ies, 2, bi);
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
decode_pdu_suspend_ack(build_info_t *bi) {
|
||||
bssgp_ie_t ies[] = {
|
||||
{ BSSGP_IEI_TLLI, NULL,
|
||||
|
|
|
@ -49,5 +49,8 @@ typedef struct {
|
|||
|
||||
extern const value_string tab_cause[];
|
||||
|
||||
|
||||
void decode_pdu_suspend_ack(build_info_t *bi);
|
||||
|
||||
#endif /* __PACKET_BSSGP_H__ */
|
||||
|
||||
|
|
|
@ -48,10 +48,12 @@
|
|||
#include <epan/asn1.h>
|
||||
|
||||
#include "packet-bssap.h"
|
||||
#include "packet-bssgp.h"
|
||||
#include "packet-sccp.h"
|
||||
#include "packet-gsm_a_common.h"
|
||||
#include "packet-e212.h"
|
||||
#include "packet-ranap.h"
|
||||
#include "packet-rrc.h"
|
||||
|
||||
/* PROTOTYPES/FORWARDS */
|
||||
|
||||
|
@ -263,26 +265,29 @@ const value_string gsm_bssmap_elem_strings[] = {
|
|||
{ 0, NULL }
|
||||
};
|
||||
|
||||
#if 0
|
||||
/* 3.2.3 Signalling Field Element Coding */
|
||||
static const value_string bssap_sig_field_values[] = {
|
||||
static const value_string bssmap_field_element_ids[] = {
|
||||
|
||||
{ 0x1, "Extra information" }, /* 3.2.3.1 */
|
||||
{ 0x2, "Current Channel Type 2" }, /* 3.2.2.2 */
|
||||
{ 0x3, "Target cell radio information" }, /* 3.2.3.3 */
|
||||
{ 0x4, "GPRS Suspend information" }, /* 3.2.3.4 */
|
||||
{ 0x5, "MultiRate configuration information" }, /* 3.2.3.5 */
|
||||
{ 0x6, "Dual Transfer Mode information" }, /* 3.2.3.6 */
|
||||
{ 0x7, "Inter RAT Handover Info" }, /* 3.2.3.7 */
|
||||
{ 0x1, "BSSMAP Field Element: Extra information" }, /* 3.2.3.1 */
|
||||
{ 0x2, "BSSMAP Field Element: Current Channel Type 2" }, /* 3.2.2.2 */
|
||||
{ 0x3, "BSSMAP Field Element: Target cell radio information" }, /* 3.2.3.3 */
|
||||
{ 0x4, "BSSMAP Field Element: GPRS Suspend information" }, /* 3.2.3.4 */
|
||||
{ 0x5, "BSSMAP Field Element: MultiRate configuration information" }, /* 3.2.3.5 */
|
||||
{ 0x6, "BSSMAP Field Element: Dual Transfer Mode information" }, /* 3.2.3.6 */
|
||||
{ 0x7, "BSSMAP Field Element: Inter RAT Handover Info" }, /* 3.2.3.7 */
|
||||
/*{ 0x7, "UE Capability information" },*/ /* 3.2.3.7 */
|
||||
{ 0x8, "cdma2000 Capability Information" }, /* 3.2.3.8 */
|
||||
{ 0x9, "Downlink Cell Load Information" }, /* 3.2.3.9 */
|
||||
{ 0xa, "Uplink Cell Load Information" }, /* 3.2.3.10 */
|
||||
{ 0xb, "Cell Load Information Group" }, /* 3.2.3.11 */
|
||||
{ 0xc, "Cell Load Information" }, /* 3.2.3.12 */
|
||||
{ 0x8, "BSSMAP Field Element: cdma2000 Capability Information" }, /* 3.2.3.8 */
|
||||
{ 0x9, "BSSMAP Field Element: Downlink Cell Load Information" }, /* 3.2.3.9 */
|
||||
{ 0xa, "BSSMAP Field Element: Uplink Cell Load Information" }, /* 3.2.3.10 */
|
||||
{ 0xb, "BSSMAP Field Element: Cell Load Information Group" }, /* 3.2.3.11 */
|
||||
{ 0xc, "BSSMAP Field Element: Cell Load Information" }, /* 3.2.3.12 */
|
||||
{ 0x0d, "BSSMAP Field Element: PS Indication" }, /* 3.2.3.13 */
|
||||
{ 0x0e, "BSSMAP Field Element: DTM Handover Command Indication" }, /* 3.2.3.14 */
|
||||
{ 0x6f, "VGCS talker mode" }, /* although technically not a Field Element,
|
||||
this IE can appear in Old BSS to New BSS information */
|
||||
{ 0, NULL }
|
||||
};
|
||||
#endif
|
||||
|
||||
static const value_string bssap_cc_values[] = {
|
||||
{ 0x00, "not further specified" },
|
||||
{ 0x80, "FACCH or SDCCH" },
|
||||
|
@ -377,12 +382,40 @@ static const true_false_string bssmap_cause_extension_value = {
|
|||
"One Octet"
|
||||
};
|
||||
|
||||
/* Current Channel Type */
|
||||
static const value_string chan_mode_vals[] = {
|
||||
{ 0, "signalling only" },
|
||||
{ 1, "speech (full rate or half rate)" },
|
||||
{ 6, "data, 14.5 kbit/s radio interface rate" },
|
||||
{ 3, "data, 12.0 kbit/s radio interface rate" },
|
||||
{ 4, "data, 6.0 kbit/s radio interface rate" },
|
||||
{ 5, "data, 3.6 kbit/s radio interface rate" },
|
||||
{ 0x0f, "reserved" },
|
||||
{ 0, NULL}
|
||||
};
|
||||
|
||||
static const value_string fe_cur_chan_type2_chan_field_vals[] = {
|
||||
{ 1, "SDCCH" },
|
||||
{ 8, "1 Full rate TCH" },
|
||||
{ 9, "1 Half rate TCH" },
|
||||
{ 10, "2 Full Rate TCHs" },
|
||||
{ 11, "3 Full Rate TCHs" },
|
||||
{ 12, "4 Full Rate TCHs" },
|
||||
{ 13, "5 Full Rate TCHs" },
|
||||
{ 14, "6 Full Rate TCHs" },
|
||||
{ 15, "7 Full Rate TCHs" },
|
||||
{ 4, "8 Full Rate TCHs" },
|
||||
{ 0, "reserved" },
|
||||
{ 0, NULL}
|
||||
};
|
||||
|
||||
/* Initialize the protocol and registered fields */
|
||||
static int proto_a_bssmap = -1;
|
||||
|
||||
static int hf_gsm_a_bssmap_msg_type = -1;
|
||||
int hf_gsm_a_length = -1;
|
||||
int hf_gsm_a_bssmap_elem_id = -1;
|
||||
static int hf_gsm_a_bssmap_field_elem_id = -1;
|
||||
int hf_gsm_a_bssmap_cell_ci = -1;
|
||||
static int hf_gsm_a_bssmap_cell_lac = -1;
|
||||
static int hf_gsm_a_bssmap_sac = -1;
|
||||
|
@ -400,6 +433,7 @@ static int hf_gsm_a_bssmap_seq_no = -1;
|
|||
static int hf_gsm_a_bssap_cell_id_list_seg_cell_id_disc = -1;
|
||||
static int hf_gsm_a_bssap_res_ind_method = -1;
|
||||
static int hf_gsm_a_bssmap_ch_mode = -1;
|
||||
static int hf_gsm_a_bssmap_cur_ch_mode = -1;
|
||||
static int hf_gsm_a_bssmap_channel = -1;
|
||||
static int hf_gsm_a_bssmap_trace_trigger_id = -1;
|
||||
static int hf_gsm_a_bssmap_trace_priority_indication = -1;
|
||||
|
@ -452,20 +486,47 @@ static int hf_gsm_a_bssmap_location_type_location_information = -1;
|
|||
static int hf_gsm_a_bssmap_location_type_positioning_method = -1;
|
||||
static int hf_gsm_a_bssmap_chan_type_extension = -1;
|
||||
static int hf_gsm_a_bssmap_cause_extension = -1;
|
||||
static int hf_fe_extra_info_prec = -1;
|
||||
static int hf_fe_extra_info_lcs = -1;
|
||||
static int hf_fe_extra_info_ue_prob = -1;
|
||||
static int hf_fe_extra_info_spare = -1;
|
||||
static int hf_fe_cur_chan_type2_chan_mode = -1;
|
||||
static int hf_fe_cur_chan_type2_chan_mode_spare = -1;
|
||||
static int hf_fe_cur_chan_type2_chan_field = -1;
|
||||
static int hf_fe_cur_chan_type2_chan_field_spare = -1;
|
||||
static int hf_fe_target_radio_cell_info_rxlev_ncell = -1;
|
||||
static int hf_fe_target_radio_cell_info_rxlev_ncell_spare = -1;
|
||||
static int hf_fe_dtm_info_dtm_ind = -1;
|
||||
static int hf_fe_dtm_info_sto_ind = -1;
|
||||
static int hf_fe_dtm_info_egprs_ind = -1;
|
||||
static int hf_fe_dtm_info_spare_bits = -1;
|
||||
static int hf_fe_cell_load_info_cell_capacity_class = -1;
|
||||
static int hf_fe_cell_load_info_load_value = -1;
|
||||
static int hf_fe_cell_load_info_rt_load_value = -1;
|
||||
static int hf_fe_cell_load_info_nrt_load_information_value = -1;
|
||||
static int hf_fe_ps_indication = -1;
|
||||
static int hf_fe_dtm_ho_command_ind_spare = -1;
|
||||
|
||||
/* Initialize the subtree pointers */
|
||||
static gint ett_bssmap_msg = -1;
|
||||
static gint ett_cell_list = -1;
|
||||
static gint ett_dlci = -1;
|
||||
static gint ett_codec_lst = -1;
|
||||
static gint ett_bss_to_bss_info = -1;
|
||||
|
||||
static char a_bigbuf[1024];
|
||||
|
||||
static dissector_handle_t gsm_bsslap_handle = NULL;
|
||||
static dissector_handle_t dtap_handle;
|
||||
static dissector_handle_t bssgp_handle;
|
||||
static dissector_handle_t rrc_handle;
|
||||
|
||||
static packet_info *g_pinfo;
|
||||
static proto_tree *g_tree;
|
||||
static guint8 cell_discriminator = 0x0f; /* tracks whether handover is to UMTS */
|
||||
|
||||
static guint16
|
||||
be_field_element_dissect(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
|
||||
|
||||
/*
|
||||
This enum has been moved to packet-gsm_a_common to
|
||||
|
@ -1617,6 +1678,7 @@ be_cell_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
|
|||
proto_tree_add_bits_item(tree, hf_gsm_a_bssmap_spare_bits, tvb, curr_offset<<3, 4, FALSE);
|
||||
proto_tree_add_item(tree, hf_gsm_a_bssmap_be_cell_id_disc, tvb, curr_offset, 1, FALSE);
|
||||
disc = oct&0x0f;
|
||||
cell_discriminator = disc; /* may be required later */
|
||||
curr_offset++;
|
||||
|
||||
NO_MORE_DATA_CHECK(len);
|
||||
|
@ -1781,12 +1843,33 @@ be_l3_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
|
|||
*/
|
||||
l3_tvb = tvb_new_subset(tvb, curr_offset, len, len);
|
||||
|
||||
call_dissector(dtap_handle, l3_tvb, g_pinfo, g_tree);
|
||||
/* This information element carries a radio interface message.
|
||||
In the case of an Intersystem handover to UMTS,
|
||||
this information element contains a HANDOVER TO UTRAN COMMAND message
|
||||
as defined in 3GPP TS 25.331.
|
||||
In the case of an Inter BSC handover,
|
||||
it contains an RR HANDOVER COMMAND message as defined in 3GPP TS 44.018.
|
||||
In the case of an Intersystem handover to cdma2000,
|
||||
this information element contains the HANDOVER TO CDMA2000 COMMAND message,
|
||||
as defined in 3GPP TS 44.018. */
|
||||
|
||||
/* note that we can't (from this PDU alone) determine whether a handover is to UMTS or cdma2000
|
||||
for now we will always assume (GSM or) UMTS.
|
||||
Maybe if cdma2000 support is added later, a preference option would select dissection of cdma2000 or UMTS. */
|
||||
if (cell_discriminator < 8) {
|
||||
/* GSM */
|
||||
call_dissector(dtap_handle, l3_tvb, g_pinfo, g_tree);
|
||||
}
|
||||
else if (cell_discriminator < 13) {
|
||||
dissect_rrc_HandoverToUTRANCommand_PDU(l3_tvb, g_pinfo, g_tree);
|
||||
}
|
||||
|
||||
curr_offset += len;
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
|
||||
|
||||
cell_discriminator = 0x0f;
|
||||
|
||||
return(curr_offset - offset);
|
||||
}
|
||||
|
||||
|
@ -2513,7 +2596,7 @@ be_curr_chan_1(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
|
|||
oct = tvb_get_guint8(tvb, curr_offset);
|
||||
|
||||
/* Channel mode */
|
||||
proto_tree_add_item(tree, hf_gsm_a_bssmap_ch_mode, tvb, curr_offset, 1, FALSE);
|
||||
proto_tree_add_item(tree, hf_gsm_a_bssmap_cur_ch_mode, tvb, curr_offset, 1, FALSE);
|
||||
/* Channel */
|
||||
proto_tree_add_item(tree, hf_gsm_a_bssmap_channel, tvb, curr_offset, 1, FALSE);
|
||||
|
||||
|
@ -2679,20 +2762,24 @@ be_conf_evo_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
|
|||
/*
|
||||
* 3.2.2.58 Old BSS to New BSS information
|
||||
*/
|
||||
static guint16
|
||||
be_old_bss_to_new_bss_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
/* This function is only called from other protocols (e.g. RANAP),
|
||||
internally, the Field Element dissector is called directly */
|
||||
void
|
||||
bssmap_old_bss_to_new_bss_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
guint16 len;
|
||||
if (!tree) {
|
||||
return;
|
||||
}
|
||||
|
||||
curr_offset = offset;
|
||||
g_pinfo = pinfo;
|
||||
g_tree = tree;
|
||||
|
||||
if (len == 0)
|
||||
return len;
|
||||
len = tvb_length(tvb);
|
||||
be_field_element_dissect(tvb, tree, 0, len, NULL, 0);
|
||||
|
||||
proto_tree_add_text(tree, tvb, curr_offset, len , "Not decoded yet");
|
||||
|
||||
|
||||
return(len);
|
||||
g_pinfo = NULL;
|
||||
g_tree = NULL;
|
||||
}
|
||||
/*
|
||||
* 3.2.2.59 (void)
|
||||
|
@ -3046,9 +3133,6 @@ be_geran_cls_m(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
|
|||
curr_offset = offset;
|
||||
|
||||
proto_tree_add_text(tree, tvb, curr_offset, len , "Not decoded yet");
|
||||
/* The Source RNC to Target RNC transparent Information value (structure and encoding)
|
||||
* for cdma2000 is defined in relevant specifications.
|
||||
*/
|
||||
|
||||
return(len);
|
||||
}
|
||||
|
@ -3059,17 +3143,27 @@ be_geran_cls_m(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
|
|||
/*
|
||||
* 3.2.2.80 New BSS to Old BSS Information
|
||||
*/
|
||||
static guint16
|
||||
be_new_bss_to_old_bss_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
/* This function is only called from other protocols (e.g. RANAP),
|
||||
internally, the Field Element dissector is called directly */
|
||||
void
|
||||
bssmap_new_bss_to_old_bss_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
guint16 len;
|
||||
if (!tree) {
|
||||
return;
|
||||
}
|
||||
|
||||
curr_offset = offset;
|
||||
g_pinfo = pinfo;
|
||||
g_tree = tree;
|
||||
|
||||
proto_tree_add_text(tree, tvb, curr_offset, len , "Not decoded yet");
|
||||
len = tvb_length(tvb);
|
||||
be_field_element_dissect(tvb, tree, 0, len, NULL, 0);
|
||||
|
||||
return(len);
|
||||
g_pinfo = NULL;
|
||||
g_tree = NULL;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 3.2.2.81 Inter-System Information
|
||||
*/
|
||||
|
@ -3696,7 +3790,7 @@ guint16 (*bssmap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gu
|
|||
de_d_gb_call_ref, /* Group Call Reference */
|
||||
NULL, /* eMLPP Priority */
|
||||
be_conf_evo_ind, /* Configuration Evolution Indication */
|
||||
be_old_bss_to_new_bss_inf, /* Old BSS to New BSS Information */
|
||||
be_field_element_dissect, /* Old BSS to New BSS Information */
|
||||
be_lsa_id, /* LSA Identifier */
|
||||
be_lsa_id_list, /* LSA Identifier List */
|
||||
be_lsa_info, /* LSA Information */
|
||||
|
@ -3720,7 +3814,7 @@ guint16 (*bssmap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gu
|
|||
be_src_rnc_to_tar_rnc_cdma, /* Source RNC to target RNC transparent information (cdma2000) */
|
||||
be_geran_cls_m, /* GERAN Classmark */
|
||||
NULL, /* GERAN BSC Container */
|
||||
be_new_bss_to_old_bss_inf, /* New BSS to Old BSS Information */
|
||||
be_field_element_dissect, /* New BSS to Old BSS Information */
|
||||
be_inter_sys_inf, /* Inter-System Information */
|
||||
be_sna_acc_inf, /* SNA Access Information */
|
||||
NULL, /* VSTK_RAND Information */
|
||||
|
@ -3755,7 +3849,289 @@ guint16 (*bssmap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gu
|
|||
|
||||
NULL, /* NONE */
|
||||
};
|
||||
/* 3.2.3 Signalling Field Element Coding */
|
||||
/* 3.2.3.1 Extra information */
|
||||
static const value_string fe_extra_info_prec_vals[] = {
|
||||
{ 0, "The old BSS recommends that this allocation request should not cause a pre-emption an existing connection" },
|
||||
{ 1, "The old BSS recommends that this allocation request is allowed to preempt an existing connection based on the information supplied in the Priority information element, if available" },
|
||||
{ 0, NULL}
|
||||
};
|
||||
|
||||
static const value_string fe_extra_info_lcs_vals[] = {
|
||||
{ 0, "No ongoing LCS procedure" },
|
||||
{ 1, "An ongoing LCS procedure was interrupted by handover. The new BSS may notify the SMLC when the handover is completed" },
|
||||
{ 0, NULL}
|
||||
};
|
||||
|
||||
static const value_string fe_extra_info_ue_prob_vals[] = {
|
||||
{ 0, "This MS supports handover to UMTS" },
|
||||
{ 1, "This MS does not support handover to UMTS" },
|
||||
{ 0, NULL}
|
||||
};
|
||||
|
||||
static guint16
|
||||
be_fe_extra_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
proto_tree_add_item(tree, hf_fe_extra_info_prec, tvb, curr_offset, 1, FALSE);
|
||||
proto_tree_add_item(tree, hf_fe_extra_info_lcs, tvb, curr_offset, 1, FALSE);
|
||||
proto_tree_add_item(tree, hf_fe_extra_info_ue_prob, tvb, curr_offset, 1, FALSE);
|
||||
proto_tree_add_item(tree, hf_fe_extra_info_spare, tvb, curr_offset, 1, FALSE);
|
||||
curr_offset++;
|
||||
|
||||
return(curr_offset - offset);
|
||||
}
|
||||
|
||||
/* 3.2.3.2 Current Channel type 2 */
|
||||
static guint16
|
||||
be_fe_cur_chan_type2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
proto_tree_add_item(tree, hf_fe_cur_chan_type2_chan_mode, tvb, curr_offset, 1, FALSE);
|
||||
proto_tree_add_item(tree, hf_fe_cur_chan_type2_chan_mode_spare, tvb, curr_offset, 1, FALSE);
|
||||
curr_offset++;
|
||||
proto_tree_add_item(tree, hf_fe_cur_chan_type2_chan_field, tvb, curr_offset, 1, FALSE);
|
||||
proto_tree_add_item(tree, hf_fe_cur_chan_type2_chan_field_spare, tvb, curr_offset, 1, FALSE);
|
||||
curr_offset++;
|
||||
|
||||
return(curr_offset - offset);
|
||||
}
|
||||
|
||||
/* 3.2.3.3 Target cell radio information */
|
||||
static guint16
|
||||
be_fe_target_radio_cell_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
proto_tree_add_item(tree, hf_fe_target_radio_cell_info_rxlev_ncell, tvb, curr_offset, 1, FALSE);
|
||||
proto_tree_add_item(tree, hf_fe_target_radio_cell_info_rxlev_ncell_spare, tvb, curr_offset, 1, FALSE);
|
||||
curr_offset++;
|
||||
|
||||
return(curr_offset - offset);
|
||||
}
|
||||
|
||||
/* 3.2.3.4 GPRS Suspend Information */
|
||||
static guint16
|
||||
be_fe_gprs_suspend_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset = offset;
|
||||
build_info_t bi;
|
||||
|
||||
/* This Field Element contains the contents of the Gb interface SUSPEND ACK PDU,
|
||||
Call the BSSGP dissector here, assuming that the encoding is per 48.018 */
|
||||
|
||||
bi.tvb = tvb;
|
||||
bi.offset = offset;
|
||||
bi.pinfo = g_pinfo;
|
||||
bi.bssgp_tree = tree;
|
||||
bi.parent_tree = g_tree;
|
||||
bi.dl_data = TRUE;
|
||||
bi.ul_data = FALSE;
|
||||
bi.pdutype = 0x0c; /* BSSGP_PDU_SUSPEND_ACK */
|
||||
|
||||
decode_pdu_suspend_ack(&bi);
|
||||
curr_offset += len;
|
||||
|
||||
return(curr_offset - offset);
|
||||
}
|
||||
|
||||
/* 3.2.3.5 MultiRate configuration Information */
|
||||
|
||||
/* 3.2.3.6 Dual Transfer Mode information */
|
||||
static const value_string gsm_a_bssmap_dtm_info_dtm_ind_vals[] = {
|
||||
{ 0, "The MS has resources allocated exclusively for the CS domain in the old cell" },
|
||||
{ 1, "The MS has resources allocated for both the CS and PS domains in the old cell" },
|
||||
{ 0, NULL },
|
||||
};
|
||||
|
||||
static const value_string gsm_a_bssmap_dtm_info_sto_ind_vals[] = {
|
||||
{ 0, "The MS is in multislot operation in the old cell" },
|
||||
{ 1, "The MS is in single timeslot operation in the old cell" },
|
||||
{ 0, NULL },
|
||||
};
|
||||
|
||||
static const value_string gsm_a_bssmap_dtm_info_egprs_ind_vals[] = {
|
||||
{ 0, "The MS has no TBF using E-GPRS in the old cell" },
|
||||
{ 1, "The MS has a TBF using E-GPRS in the old cell" },
|
||||
{ 0, NULL },
|
||||
};
|
||||
|
||||
static guint16
|
||||
be_fe_dual_transfer_mode_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
proto_tree_add_item(tree, hf_fe_dtm_info_dtm_ind, tvb, curr_offset, 1, FALSE);
|
||||
proto_tree_add_item(tree, hf_fe_dtm_info_sto_ind, tvb, curr_offset, 1, FALSE);
|
||||
proto_tree_add_item(tree, hf_fe_dtm_info_egprs_ind, tvb, curr_offset, 1, FALSE);
|
||||
proto_tree_add_item(tree, hf_fe_dtm_info_spare_bits, tvb, curr_offset, 1, FALSE);
|
||||
curr_offset++;
|
||||
|
||||
return(curr_offset - offset);
|
||||
}
|
||||
|
||||
/* 3.2.3.7 Inter RAT Handover Info */
|
||||
static guint16
|
||||
be_fe_inter_rat_handover_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
tvbuff_t *container_tvb;
|
||||
|
||||
/* Octets 3-n are encoded as Inter RAT Handover Info as defined in 3GPP TS 25.331 */
|
||||
container_tvb = tvb_new_subset(tvb, offset, len, len);
|
||||
dissect_rrc_InterRATHandoverInfo_PDU(container_tvb, g_pinfo , tree);
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
/* 3.2.3.8 cdma2000 Capability Information */
|
||||
|
||||
/* 3.2.3.9 Downlink Cell Load Information */
|
||||
|
||||
/* 3.2.3.10 Uplink Cell Load Information */
|
||||
|
||||
|
||||
static const value_string gsm_a_bssmap_cell_load_nrt_vals[] = {
|
||||
{ 0, "NRT Load is low" },
|
||||
{ 1, "NRT load is medium" },
|
||||
{ 2, "NRT load is high. (Probability to admit a new user is low.)" },
|
||||
{ 3, "NRT overload. (Probability to admit a new user is low, packets are discarded and the source is recommended to reduce the data flow.)" },
|
||||
{ 0, NULL },
|
||||
};
|
||||
|
||||
/* 3.2.3.11 Cell Load Information Group */
|
||||
static guint16
|
||||
be_fe_cell_load_info_group(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
curr_offset += be_cell_id(tvb, tree, curr_offset, len, NULL, 0);
|
||||
curr_offset += be_field_element_dissect(tvb, tree, curr_offset, len + offset - curr_offset, NULL, 0);
|
||||
|
||||
return(curr_offset - offset);
|
||||
}
|
||||
|
||||
/* 3.2.3.12 Cell Load Information */
|
||||
static guint16
|
||||
be_fe_cell_load_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
proto_tree_add_item(tree, hf_fe_cell_load_info_cell_capacity_class, tvb, curr_offset, 1, FALSE);
|
||||
curr_offset++;
|
||||
proto_tree_add_item(tree, hf_fe_cell_load_info_load_value, tvb, curr_offset, 1, FALSE);
|
||||
curr_offset++;
|
||||
proto_tree_add_item(tree, hf_fe_cell_load_info_rt_load_value, tvb, curr_offset, 1, FALSE);
|
||||
curr_offset++;
|
||||
proto_tree_add_item(tree, hf_fe_cell_load_info_nrt_load_information_value, tvb, curr_offset, 1, FALSE);
|
||||
curr_offset++;
|
||||
|
||||
return(curr_offset - offset);
|
||||
}
|
||||
|
||||
/* 3.2.3.13 PS Indication */
|
||||
static guint16
|
||||
be_fe_ps_indication(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
proto_tree_add_item(tree, hf_fe_ps_indication, tvb, curr_offset, 1, FALSE);
|
||||
curr_offset++;
|
||||
|
||||
return(curr_offset - offset);
|
||||
}
|
||||
|
||||
/* 3.2.3.14 DTM Handover Command Indication */
|
||||
static guint16
|
||||
be_fe_dtm_ho_command_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
proto_tree_add_item(tree, hf_fe_dtm_ho_command_ind_spare, tvb, curr_offset, 1, FALSE);
|
||||
curr_offset++;
|
||||
|
||||
return(curr_offset - offset);
|
||||
}
|
||||
|
||||
static guint16 (*bssmap_bss_to_bss_element_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_) = {
|
||||
be_fe_extra_info, /* { 0x01, "Extra information" }, */
|
||||
be_fe_cur_chan_type2, /* { 0x02, "Current Channel Type 2" }, */
|
||||
be_fe_target_radio_cell_info, /* { 0x03, "Target cell radio information" }, */
|
||||
be_fe_gprs_suspend_info, /* { 0x04, "GPRS Suspend information" }, */
|
||||
de_rr_multirate_conf, /* { 0x05, "MultiRate configuration information" }, */
|
||||
be_fe_dual_transfer_mode_info, /* { 0x06, "Dual Transfer Mode Information" }, */
|
||||
be_fe_inter_rat_handover_info, /* { 0x07, "Inter RAT Handover Info" }, */
|
||||
NULL, /* { 0x08, "cdma2000 Capability Information" }, */
|
||||
be_fe_cell_load_info, /* { 0x09, "Downlink Cell Load Information" }, */
|
||||
be_fe_cell_load_info, /* { 0x0a, "Uplink Cell Load Information" }, */
|
||||
be_fe_cell_load_info_group, /* { 0x0b, "Cell Load Information Group" }, */
|
||||
be_fe_cell_load_info, /* { 0x0c, "Cell Load Information" }, */
|
||||
be_fe_ps_indication, /* { 0x0d, "PS Indication" }, */
|
||||
be_fe_dtm_ho_command_ind, /* { 0x0e, "DTM Handover Command Indication" }, */
|
||||
be_vgcs_talker_mode, /* { 0x6f, "VGCS talker mode" }, */ /* not really a field element
|
||||
but does appear in old bss to new bss info */
|
||||
NULL, /* NONE */
|
||||
};
|
||||
|
||||
static guint16
|
||||
be_field_element_dissect(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset, ie_len, idx, fe_start_offset;
|
||||
const gchar *str;
|
||||
proto_item *item = NULL;
|
||||
proto_tree * bss_to_bss_tree = NULL;
|
||||
|
||||
curr_offset = offset;
|
||||
|
||||
|
||||
while (curr_offset - offset + 2 < len) {
|
||||
guint8 oct;
|
||||
/*
|
||||
* add name
|
||||
*/
|
||||
oct = tvb_get_guint8(tvb, curr_offset++);
|
||||
|
||||
str = match_strval_idx((guint32) oct, bssmap_field_element_ids, &idx);
|
||||
ie_len = tvb_get_guint8(tvb, curr_offset++);
|
||||
|
||||
/*
|
||||
* add Field Element name
|
||||
*/
|
||||
item = proto_tree_add_uint_format(tree, hf_gsm_a_bssmap_field_elem_id,
|
||||
tvb, curr_offset - 2, ie_len + 2, oct, "%s (%X)", str, oct);
|
||||
|
||||
bss_to_bss_tree = proto_item_add_subtree(item, ett_bss_to_bss_info);
|
||||
fe_start_offset = curr_offset;
|
||||
|
||||
/*
|
||||
* decode field element
|
||||
*/
|
||||
if ((str == NULL) || (bssmap_bss_to_bss_element_fcn[idx] == NULL))
|
||||
{
|
||||
proto_tree_add_text(bss_to_bss_tree,
|
||||
tvb, curr_offset, ie_len,
|
||||
"Field Element not decoded");
|
||||
curr_offset += ie_len;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* dissect the field element */
|
||||
curr_offset += (*bssmap_bss_to_bss_element_fcn[idx])(tvb, bss_to_bss_tree, curr_offset, ie_len, NULL, 0);
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(ie_len, curr_offset - fe_start_offset);
|
||||
}
|
||||
}
|
||||
return len;
|
||||
}
|
||||
/* MESSAGE FUNCTIONS */
|
||||
|
||||
/*
|
||||
|
@ -5914,6 +6290,8 @@ dissect_bssmap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
{
|
||||
(*bssmap_msg_fcn[idx])(tvb, bssmap_tree, offset, len - offset);
|
||||
}
|
||||
g_pinfo = NULL;
|
||||
g_tree = NULL;
|
||||
}
|
||||
|
||||
/* Register the protocol with Wireshark */
|
||||
|
@ -5937,6 +6315,11 @@ proto_register_gsm_a_bssmap(void)
|
|||
FT_UINT8, BASE_DEC, NULL, 0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_bssmap_field_elem_id,
|
||||
{ "Field Element ID", "gsm_a_bssmap.field_elem_id",
|
||||
FT_UINT8, BASE_HEX, VALS(bssmap_field_element_ids), 0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_length,
|
||||
{ "Length", "gsm_a.len",
|
||||
FT_UINT16, BASE_DEC, NULL, 0,
|
||||
|
@ -6027,6 +6410,11 @@ proto_register_gsm_a_bssmap(void)
|
|||
FT_UINT8,BASE_DEC, VALS(gsm_a_bssmap_ch_mode_vals), 0xf0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_bssmap_cur_ch_mode,
|
||||
{ "Channel Mode", "fe_cur_chan_type2.chan_mode",
|
||||
FT_UINT8, BASE_HEX, VALS(chan_mode_vals), 0xf0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_bssmap_channel,
|
||||
{ "Channel","gsm_a_bssmap.channel",
|
||||
FT_UINT8,BASE_DEC, VALS(gsm_a_bssmap_channel_vals), 0x0f,
|
||||
|
@ -6271,27 +6659,127 @@ proto_register_gsm_a_bssmap(void)
|
|||
{ &hf_gsm_a_bssmap_location_type_location_information,
|
||||
{ "Location Information", "gsm_a_bssmap.locationType.locationInformation",
|
||||
FT_UINT8, BASE_HEX, VALS(bssmap_location_information_vals), 0x0,
|
||||
NULL, HFILL}
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_bssmap_location_type_positioning_method,
|
||||
{ "Positioning Method", "gsm_a_bssmap.locationType.positioningMethod",
|
||||
FT_UINT8, BASE_HEX, VALS(bssmap_positioning_method_vals), 0x0,
|
||||
NULL, HFILL}
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_bssmap_chan_type_extension,
|
||||
{ "Extension", "gsm_a_bssmap.chanType.permittedIndicator.extension",
|
||||
FT_BOOLEAN, 8, TFS(&bssmap_chan_type_extension_value), 0x80,
|
||||
NULL, HFILL}
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_bssmap_cause_extension,
|
||||
{ "Extension", "gsm_a_bssmap.causeType.extension",
|
||||
FT_BOOLEAN, 8, TFS(&bssmap_cause_extension_value), 0x80,
|
||||
NULL, HFILL}
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_extra_info_prec,
|
||||
{ "Pre-emption Recommendation", "fe_extra_info.prec",
|
||||
FT_UINT8, BASE_DEC, VALS(fe_extra_info_prec_vals), 0x01,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_extra_info_lcs,
|
||||
{ "LCS Information", "fe_extra_info.lcs",
|
||||
FT_UINT8, BASE_DEC, VALS(fe_extra_info_lcs_vals), 0x02,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_extra_info_ue_prob,
|
||||
{ "UE support of UMTS", "fe_extra_info.ue_prob",
|
||||
FT_UINT8, BASE_DEC, VALS(fe_extra_info_ue_prob_vals), 0x04,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_extra_info_spare,
|
||||
{ "Extra Information Spare bits", "fe_extra_info.spare",
|
||||
FT_UINT8, BASE_HEX, NULL, 0xf8,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_cur_chan_type2_chan_mode,
|
||||
{ "Channel Mode", "fe_cur_chan_type2.chan_mode",
|
||||
FT_UINT8, BASE_HEX, VALS(chan_mode_vals), 0x0f,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_cur_chan_type2_chan_mode_spare,
|
||||
{ "Channel Mode Spare bits", "fe_cur_chan_type2_chan_mode.spare",
|
||||
FT_UINT8, BASE_HEX, NULL, 0xf0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_cur_chan_type2_chan_field,
|
||||
{ "Channel Field", "fe_cur_chan_type2.chan_field",
|
||||
FT_UINT8, BASE_HEX, VALS(fe_cur_chan_type2_chan_field_vals),0x0f,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_cur_chan_type2_chan_field_spare,
|
||||
{ "Channel field Spare bits", "fe_cur_chan_type2_chan_field.spare",
|
||||
FT_UINT8, BASE_HEX, NULL, 0xf0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_target_radio_cell_info_rxlev_ncell,
|
||||
{ "RXLEV-NCELL", "fe_target_radio_cell_info.rxlev_ncell",
|
||||
FT_UINT8, BASE_HEX, VALS(gsm_a_rr_rxlev_vals), 0x3f,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_target_radio_cell_info_rxlev_ncell_spare,
|
||||
{ "RXLEV-NCELL Spare bits", "fe_target_radio_cell_info.rxlev_ncell_spare",
|
||||
FT_UINT8, BASE_HEX, NULL, 0xc0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_dtm_info_dtm_ind,
|
||||
{ "DTM indicator", "fe_dtm_info.dtm_ind",
|
||||
FT_UINT8, BASE_HEX, VALS(gsm_a_bssmap_dtm_info_dtm_ind_vals), 0x01,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_dtm_info_sto_ind,
|
||||
{ "Time Slot Operation indicator", "fe_dtm_info.sto_ind",
|
||||
FT_UINT8, BASE_HEX, VALS(gsm_a_bssmap_dtm_info_sto_ind_vals), 0x02,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_dtm_info_egprs_ind,
|
||||
{ "EGPRS indicator", "fe_dtm_info.egprs_ind",
|
||||
FT_UINT8, BASE_HEX, VALS(gsm_a_bssmap_dtm_info_egprs_ind_vals), 0x04,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_dtm_info_spare_bits,
|
||||
{ "DTM Info Spare bits", "fe_dtm_info.spare_bits",
|
||||
FT_UINT8, BASE_HEX, NULL, 0xf8,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_cell_load_info_cell_capacity_class,
|
||||
{ "Cell capacity class", "fe_cell_load_info.cell_capacity_class",
|
||||
FT_UINT8, BASE_DEC, NULL, 0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_cell_load_info_load_value,
|
||||
{ "Load value", "fe_cell_load_info.load_info",
|
||||
FT_UINT8, BASE_DEC, NULL, 0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_cell_load_info_rt_load_value,
|
||||
{ "Realtime load value", "fe_cell_load_info.rt_load_value",
|
||||
FT_UINT8, BASE_DEC, NULL, 0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_cell_load_info_nrt_load_information_value,
|
||||
{ "Non-Realtime load information value", "fe_cell_load_info.nrt_load_info_value",
|
||||
FT_UINT8, BASE_HEX, VALS(gsm_a_bssmap_cell_load_nrt_vals), 0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_ps_indication,
|
||||
{ "PS Indication", "fe_ps_indication.value",
|
||||
FT_UINT8, BASE_HEX, NULL, 0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_fe_dtm_ho_command_ind_spare,
|
||||
{ "Spare octet", "fe_dtm_ho_command_ind.spare",
|
||||
FT_UINT8, BASE_HEX, NULL, 0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
};
|
||||
|
||||
/* Setup protocol subtree array */
|
||||
#define NUM_INDIVIDUAL_ELEMS 4
|
||||
#define NUM_INDIVIDUAL_ELEMS 5
|
||||
gint *ett[NUM_INDIVIDUAL_ELEMS + NUM_GSM_BSSMAP_MSG +
|
||||
NUM_GSM_BSSMAP_ELEM];
|
||||
|
||||
|
@ -6299,6 +6787,7 @@ proto_register_gsm_a_bssmap(void)
|
|||
ett[1] = &ett_cell_list;
|
||||
ett[2] = &ett_dlci;
|
||||
ett[3] = &ett_codec_lst,
|
||||
ett[4] = &ett_bss_to_bss_info,
|
||||
|
||||
last_offset = NUM_INDIVIDUAL_ELEMS;
|
||||
|
||||
|
@ -6337,5 +6826,7 @@ proto_reg_handoff_gsm_a_bssmap(void)
|
|||
|
||||
dtap_handle = find_dissector("gsm_a_dtap");
|
||||
gsm_bsslap_handle = find_dissector("gsm_bsslap");
|
||||
bssgp_handle = find_dissector ("bssgp");
|
||||
rrc_handle = find_dissector ("rrc");
|
||||
}
|
||||
|
||||
|
|
|
@ -460,6 +460,74 @@ static const value_string e_utra_meas_and_report_support_vals[] = {
|
|||
{ 0, NULL}
|
||||
};
|
||||
|
||||
const value_string gsm_a_rr_rxlev_vals [] = {
|
||||
{ 0, "< -110 dBm"},
|
||||
{ 1, "-110 <= x < -109 dBm"},
|
||||
{ 2, "-109 <= x < -108 dBm"},
|
||||
{ 3, "-108 <= x < -107 dBm"},
|
||||
{ 4, "-107 <= x < -106 dBm"},
|
||||
{ 5, "-106 <= x < -105 dBm"},
|
||||
{ 6, "-105 <= x < -104 dBm"},
|
||||
{ 7, "-104 <= x < -103 dBm"},
|
||||
{ 8, "-103 <= x < -102 dBm"},
|
||||
{ 9, "-102 <= x < -101 dBm"},
|
||||
{10, "-101 <= x < -100 dBm"},
|
||||
{11, "-100 <= x < -99 dBm"},
|
||||
{12, "-99 <= x < -98 dBm"},
|
||||
{13, "-98 <= x < -97 dBm"},
|
||||
{14, "-97 <= x < -96 dBm"},
|
||||
{15, "-96 <= x < -95 dBm"},
|
||||
{16, "-95 <= x < -94 dBm"},
|
||||
{17, "-94 <= x < -93 dBm"},
|
||||
{18, "-93 <= x < -92 dBm"},
|
||||
{19, "-92 <= x < -91 dBm"},
|
||||
{20, "-91 <= x < -90 dBm"},
|
||||
{21, "-90 <= x < -89 dBm"},
|
||||
{22, "-89 <= x < -88 dBm"},
|
||||
{23, "-88 <= x < -87 dBm"},
|
||||
{24, "-87 <= x < -86 dBm"},
|
||||
{25, "-86 <= x < -85 dBm"},
|
||||
{26, "-85 <= x < -84 dBm"},
|
||||
{27, "-84 <= x < -83 dBm"},
|
||||
{28, "-83 <= x < -82 dBm"},
|
||||
{29, "-82 <= x < -81 dBm"},
|
||||
{30, "-81 <= x < -80 dBm"},
|
||||
{31, "-80 <= x < -79 dBm"},
|
||||
{32, "-79 <= x < -78 dBm"},
|
||||
{33, "-78 <= x < -77 dBm"},
|
||||
{34, "-77 <= x < -76 dBm"},
|
||||
{35, "-76 <= x < -75 dBm"},
|
||||
{36, "-75 <= x < -74 dBm"},
|
||||
{37, "-74 <= x < -73 dBm"},
|
||||
{38, "-73 <= x < -72 dBm"},
|
||||
{39, "-72 <= x < -71 dBm"},
|
||||
{40, "-71 <= x < -70 dBm"},
|
||||
{41, "-70 <= x < -69 dBm"},
|
||||
{42, "-69 <= x < -68 dBm"},
|
||||
{43, "-68 <= x < -67 dBm"},
|
||||
{44, "-67 <= x < -66 dBm"},
|
||||
{45, "-66 <= x < -65 dBm"},
|
||||
{46, "-65 <= x < -64 dBm"},
|
||||
{47, "-64 <= x < -63 dBm"},
|
||||
{48, "-63 <= x < -62 dBm"},
|
||||
{49, "-62 <= x < -61 dBm"},
|
||||
{50, "-61 <= x < -60 dBm"},
|
||||
{51, "-60 <= x < -59 dBm"},
|
||||
{52, "-59 <= x < -58 dBm"},
|
||||
{53, "-58 <= x < -57 dBm"},
|
||||
{54, "-57 <= x < -56 dBm"},
|
||||
{55, "-56 <= x < -55 dBm"},
|
||||
{56, "-55 <= x < -54 dBm"},
|
||||
{57, "-54 <= x < -53 dBm"},
|
||||
{58, "-53 <= x < -52 dBm"},
|
||||
{59, "-52 <= x < -51 dBm"},
|
||||
{60, "-51 <= x < -50 dBm"},
|
||||
{61, "-50 <= x < -49 dBm"},
|
||||
{62, "-49 <= x < -48 dBm"},
|
||||
{63, ">= -48 dBm"},
|
||||
{ 0, NULL}
|
||||
};
|
||||
|
||||
/* Initialize the protocol and registered fields */
|
||||
static int proto_a_common = -1;
|
||||
|
||||
|
@ -593,6 +661,7 @@ static int hf_gsm_a_additional_positioning_caps = -1;
|
|||
static int hf_gsm_a_e_utra_fdd_support = -1;
|
||||
static int hf_gsm_a_e_utra_tdd_support = -1;
|
||||
static int hf_gsm_a_e_utra_meas_and_report_support = -1;
|
||||
static int hf_gsm_a_rxlev_ncell = -1;
|
||||
|
||||
static int hf_gsm_a_geo_loc_type_of_shape = -1;
|
||||
static int hf_gsm_a_geo_loc_sign_of_lat = -1;
|
||||
|
|
|
@ -566,6 +566,9 @@ void dissect_bssmap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
|
|||
|
||||
void dissect_bssmap_le(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
|
||||
|
||||
void bssmap_old_bss_to_new_bss_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo);
|
||||
void bssmap_new_bss_to_old_bss_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo);
|
||||
|
||||
void dtap_mm_mm_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len);
|
||||
|
||||
guint16 be_cell_id_aux(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len, guint8 disc);
|
||||
|
@ -644,6 +647,7 @@ extern const value_string gsm_a_qos_traff_hdl_pri_vals[];
|
|||
extern const value_string gsm_a_type_of_number_values[];
|
||||
extern const value_string gsm_a_numbering_plan_id_values[];
|
||||
extern const value_string gsm_a_sms_vals[];
|
||||
extern const value_string gsm_a_rr_rxlev_vals [];
|
||||
|
||||
typedef enum
|
||||
{
|
||||
|
|
|
@ -2587,73 +2587,6 @@ static const true_false_string gsm_a_rr_dtx_vals = {
|
|||
"DTX was not used"
|
||||
};
|
||||
|
||||
static const value_string gsm_a_rr_rxlev_vals [] = {
|
||||
{ 0, "< -110 dBm"},
|
||||
{ 1, "-110 <= x < -109 dBm"},
|
||||
{ 2, "-109 <= x < -108 dBm"},
|
||||
{ 3, "-108 <= x < -107 dBm"},
|
||||
{ 4, "-107 <= x < -106 dBm"},
|
||||
{ 5, "-106 <= x < -105 dBm"},
|
||||
{ 6, "-105 <= x < -104 dBm"},
|
||||
{ 7, "-104 <= x < -103 dBm"},
|
||||
{ 8, "-103 <= x < -102 dBm"},
|
||||
{ 9, "-102 <= x < -101 dBm"},
|
||||
{10, "-101 <= x < -100 dBm"},
|
||||
{11, "-100 <= x < -99 dBm"},
|
||||
{12, "-99 <= x < -98 dBm"},
|
||||
{13, "-98 <= x < -97 dBm"},
|
||||
{14, "-97 <= x < -96 dBm"},
|
||||
{15, "-96 <= x < -95 dBm"},
|
||||
{16, "-95 <= x < -94 dBm"},
|
||||
{17, "-94 <= x < -93 dBm"},
|
||||
{18, "-93 <= x < -92 dBm"},
|
||||
{19, "-92 <= x < -91 dBm"},
|
||||
{20, "-91 <= x < -90 dBm"},
|
||||
{21, "-90 <= x < -89 dBm"},
|
||||
{22, "-89 <= x < -88 dBm"},
|
||||
{23, "-88 <= x < -87 dBm"},
|
||||
{24, "-87 <= x < -86 dBm"},
|
||||
{25, "-86 <= x < -85 dBm"},
|
||||
{26, "-85 <= x < -84 dBm"},
|
||||
{27, "-84 <= x < -83 dBm"},
|
||||
{28, "-83 <= x < -82 dBm"},
|
||||
{29, "-82 <= x < -81 dBm"},
|
||||
{30, "-81 <= x < -80 dBm"},
|
||||
{31, "-80 <= x < -79 dBm"},
|
||||
{32, "-79 <= x < -78 dBm"},
|
||||
{33, "-78 <= x < -77 dBm"},
|
||||
{34, "-77 <= x < -76 dBm"},
|
||||
{35, "-76 <= x < -75 dBm"},
|
||||
{36, "-75 <= x < -74 dBm"},
|
||||
{37, "-74 <= x < -73 dBm"},
|
||||
{38, "-73 <= x < -72 dBm"},
|
||||
{39, "-72 <= x < -71 dBm"},
|
||||
{40, "-71 <= x < -70 dBm"},
|
||||
{41, "-70 <= x < -69 dBm"},
|
||||
{42, "-69 <= x < -68 dBm"},
|
||||
{43, "-68 <= x < -67 dBm"},
|
||||
{44, "-67 <= x < -66 dBm"},
|
||||
{45, "-66 <= x < -65 dBm"},
|
||||
{46, "-65 <= x < -64 dBm"},
|
||||
{47, "-64 <= x < -63 dBm"},
|
||||
{48, "-63 <= x < -62 dBm"},
|
||||
{49, "-62 <= x < -61 dBm"},
|
||||
{50, "-61 <= x < -60 dBm"},
|
||||
{51, "-60 <= x < -59 dBm"},
|
||||
{52, "-59 <= x < -58 dBm"},
|
||||
{53, "-58 <= x < -57 dBm"},
|
||||
{54, "-57 <= x < -56 dBm"},
|
||||
{55, "-56 <= x < -55 dBm"},
|
||||
{56, "-55 <= x < -54 dBm"},
|
||||
{57, "-54 <= x < -53 dBm"},
|
||||
{58, "-53 <= x < -52 dBm"},
|
||||
{59, "-52 <= x < -51 dBm"},
|
||||
{60, "-51 <= x < -50 dBm"},
|
||||
{61, "-50 <= x < -49 dBm"},
|
||||
{62, "-49 <= x < -48 dBm"},
|
||||
{63, ">= -48 dBm"},
|
||||
{ 0, NULL}
|
||||
};
|
||||
|
||||
static const true_false_string gsm_a_rr_mv_vals = {
|
||||
"The measurement results are not valid",
|
||||
|
|
|
@ -51,6 +51,7 @@
|
|||
#include "packet-ranap.h"
|
||||
#include "packet-e212.h"
|
||||
#include "packet-sccp.h"
|
||||
#include "packet-gsm_a_common.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
|
||||
|
@ -382,7 +383,7 @@ typedef enum _ProtocolIE_ID_enum {
|
|||
} ProtocolIE_ID_enum;
|
||||
|
||||
/*--- End of included file: packet-ranap-val.h ---*/
|
||||
#line 62 "packet-ranap-template.c"
|
||||
#line 63 "packet-ranap-template.c"
|
||||
|
||||
/* Initialize the protocol and registered fields */
|
||||
static int proto_ranap = -1;
|
||||
|
@ -1033,7 +1034,7 @@ static int hf_ranap_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_valu
|
|||
static int hf_ranap_value = -1; /* T_value */
|
||||
|
||||
/*--- End of included file: packet-ranap-hf.c ---*/
|
||||
#line 75 "packet-ranap-template.c"
|
||||
#line 76 "packet-ranap-template.c"
|
||||
|
||||
/* Initialize the subtree pointers */
|
||||
static int ett_ranap = -1;
|
||||
|
@ -1338,7 +1339,7 @@ static gint ett_ranap_UnsuccessfulOutcome = -1;
|
|||
static gint ett_ranap_Outcome = -1;
|
||||
|
||||
/*--- End of included file: packet-ranap-ett.c ---*/
|
||||
#line 81 "packet-ranap-template.c"
|
||||
#line 82 "packet-ranap-template.c"
|
||||
|
||||
/* Global variables */
|
||||
static guint32 ProcedureCode;
|
||||
|
@ -2485,7 +2486,7 @@ dissect_ranap_APN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto
|
|||
|
||||
static int
|
||||
dissect_ranap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 239 "ranap.cnf"
|
||||
#line 262 "ranap.cnf"
|
||||
tvbuff_t *parameter_tvb=NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -4271,7 +4272,7 @@ dissect_ranap_GlobalRNC_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
|
|||
|
||||
static int
|
||||
dissect_ranap_GTP_TEI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 280 "ranap.cnf"
|
||||
#line 303 "ranap.cnf"
|
||||
tvbuff_t *parameter_tvb=NULL;
|
||||
int saved_hf;
|
||||
|
||||
|
@ -4968,8 +4969,15 @@ dissect_ranap_LocationRelatedDataRequestTypeSpecificToGERANIuMode(tvbuff_t *tvb
|
|||
|
||||
static int
|
||||
dissect_ranap_L3_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 250 "ranap.cnf"
|
||||
tvbuff_t *l3_info_tvb=NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
NO_BOUND, NO_BOUND, FALSE, NULL);
|
||||
NO_BOUND, NO_BOUND, FALSE, &l3_info_tvb);
|
||||
|
||||
if (l3_info_tvb)
|
||||
dissector_try_port(nas_pdu_dissector_table, 0x1, l3_info_tvb, actx->pinfo, proto_tree_get_root(tree));
|
||||
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
@ -5171,8 +5179,15 @@ dissect_ranap_NAS_SynchronisationIndicator(tvbuff_t *tvb _U_, int offset _U_, as
|
|||
|
||||
static int
|
||||
dissect_ranap_NewBSS_To_OldBSS_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 242 "ranap.cnf"
|
||||
tvbuff_t *bss_info_tvb=NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
NO_BOUND, NO_BOUND, FALSE, NULL);
|
||||
NO_BOUND, NO_BOUND, FALSE, &bss_info_tvb);
|
||||
|
||||
if (bss_info_tvb)
|
||||
bssmap_new_bss_to_old_bss_info(bss_info_tvb, tree, actx->pinfo);
|
||||
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
@ -5217,8 +5232,15 @@ dissect_ranap_NumberOfSteps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
|
|||
|
||||
static int
|
||||
dissect_ranap_OldBSS_ToNewBSS_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 234 "ranap.cnf"
|
||||
tvbuff_t *bss_info_tvb=NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
NO_BOUND, NO_BOUND, FALSE, NULL);
|
||||
NO_BOUND, NO_BOUND, FALSE, &bss_info_tvb);
|
||||
|
||||
if (bss_info_tvb)
|
||||
bssmap_old_bss_to_new_bss_info(bss_info_tvb, tree, actx->pinfo);
|
||||
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
@ -6301,7 +6323,7 @@ dissect_ranap_Service_Handover(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
|
|||
|
||||
static int
|
||||
dissect_ranap_Source_ToTarget_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 306 "ranap.cnf"
|
||||
#line 329 "ranap.cnf"
|
||||
|
||||
dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU );
|
||||
|
||||
|
@ -6378,7 +6400,7 @@ static const per_sequence_t SourceRNC_ToTargetRNC_TransparentContainer_sequence[
|
|||
|
||||
static int
|
||||
dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 292 "ranap.cnf"
|
||||
#line 315 "ranap.cnf"
|
||||
/* If SourceRNC-ToTargetRNC-TransparentContainer is called trough
|
||||
dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU
|
||||
ProtocolIE_ID may be unset
|
||||
|
@ -6504,7 +6526,7 @@ dissect_ranap_SRVCC_Operation_Possible(tvbuff_t *tvb _U_, int offset _U_, asn1_c
|
|||
|
||||
static int
|
||||
dissect_ranap_Target_ToSource_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 316 "ranap.cnf"
|
||||
#line 339 "ranap.cnf"
|
||||
|
||||
dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_TargetRNC_ToSourceRNC_TransparentContainer_PDU );
|
||||
|
||||
|
@ -6689,7 +6711,7 @@ dissect_ranap_UnsuccessfullyTransmittedDataVolume(tvbuff_t *tvb _U_, int offset
|
|||
|
||||
static int
|
||||
dissect_ranap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 258 "ranap.cnf"
|
||||
#line 281 "ranap.cnf"
|
||||
tvbuff_t *parameter_tvb=NULL;
|
||||
proto_tree *subtree;
|
||||
gint tvb_len;
|
||||
|
@ -11783,7 +11805,7 @@ static int dissect_RANAP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, prot
|
|||
|
||||
|
||||
/*--- End of included file: packet-ranap-fn.c ---*/
|
||||
#line 141 "packet-ranap-template.c"
|
||||
#line 142 "packet-ranap-template.c"
|
||||
|
||||
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
|
@ -14477,7 +14499,7 @@ void proto_register_ranap(void) {
|
|||
"ranap.T_value", HFILL }},
|
||||
|
||||
/*--- End of included file: packet-ranap-hfarr.c ---*/
|
||||
#line 298 "packet-ranap-template.c"
|
||||
#line 299 "packet-ranap-template.c"
|
||||
};
|
||||
|
||||
/* List of subtrees */
|
||||
|
@ -14783,7 +14805,7 @@ void proto_register_ranap(void) {
|
|||
&ett_ranap_Outcome,
|
||||
|
||||
/*--- End of included file: packet-ranap-ettarr.c ---*/
|
||||
#line 305 "packet-ranap-template.c"
|
||||
#line 306 "packet-ranap-template.c"
|
||||
};
|
||||
|
||||
|
||||
|
@ -15144,7 +15166,7 @@ proto_reg_handoff_ranap(void)
|
|||
|
||||
|
||||
/*--- End of included file: packet-ranap-dis-tab.c ---*/
|
||||
#line 350 "packet-ranap-template.c"
|
||||
#line 351 "packet-ranap-template.c"
|
||||
} else {
|
||||
dissector_delete("sccp.ssn", local_ranap_sccp_ssn, ranap_handle);
|
||||
}
|
||||
|
|
|
@ -246,7 +246,7 @@ static int hf_rrc_BCCH_FACH_Message_PDU = -1; /* BCCH_FACH_Message */
|
|||
static int hf_rrc_BCCH_BCH_Message_PDU = -1; /* BCCH_BCH_Message */
|
||||
static int hf_rrc_MCCH_Message_PDU = -1; /* MCCH_Message */
|
||||
static int hf_rrc_MSCH_Message_PDU = -1; /* MSCH_Message */
|
||||
static int hf_rrc_HandoverToUTRANCommand_PDU = -1; /* HandoverToUTRANCommand */
|
||||
static int hf_rrc_rrc_HandoverToUTRANCommand_PDU = -1; /* HandoverToUTRANCommand */
|
||||
static int hf_rrc_rrc_InterRATHandoverInfo_PDU = -1; /* InterRATHandoverInfo */
|
||||
static int hf_rrc_SystemInformation_BCH_PDU = -1; /* SystemInformation_BCH */
|
||||
static int hf_rrc_UE_RadioAccessCapabilityInfo_PDU = -1; /* UE_RadioAccessCapabilityInfo */
|
||||
|
@ -23881,7 +23881,7 @@ static const per_choice_t ActiveSetUpdate_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_ActiveSetUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 121 "rrc.cnf"
|
||||
#line 122 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "ActiveSetUpdate");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_ActiveSetUpdate, ActiveSetUpdate_choice,
|
||||
|
@ -28206,7 +28206,7 @@ static const per_choice_t AssistanceDataDelivery_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_AssistanceDataDelivery(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 133 "rrc.cnf"
|
||||
#line 134 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "AssistanceDataDelivery");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_AssistanceDataDelivery, AssistanceDataDelivery_choice,
|
||||
|
@ -28604,7 +28604,7 @@ static const per_choice_t CellChangeOrderFromUTRAN_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_CellChangeOrderFromUTRAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 137 "rrc.cnf"
|
||||
#line 138 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "CellChangeOrderFromUTRAN");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_CellChangeOrderFromUTRAN, CellChangeOrderFromUTRAN_choice,
|
||||
|
@ -47501,7 +47501,7 @@ static const per_choice_t CellUpdateConfirm_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_CellUpdateConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 153 "rrc.cnf"
|
||||
#line 154 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "CellUpdateConfirm");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_CellUpdateConfirm, CellUpdateConfirm_choice,
|
||||
|
@ -47654,7 +47654,7 @@ static const per_choice_t CounterCheck_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_CounterCheck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 157 "rrc.cnf"
|
||||
#line 158 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheck");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_CounterCheck, CounterCheck_choice,
|
||||
|
@ -47670,7 +47670,7 @@ dissect_rrc_CounterCheck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
|
|||
|
||||
static int
|
||||
dissect_rrc_NAS_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 103 "rrc.cnf"
|
||||
#line 104 "rrc.cnf"
|
||||
tvbuff_t *nas_message_tvb=NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -47787,7 +47787,7 @@ static const per_choice_t DownlinkDirectTransfer_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_DownlinkDirectTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 165 "rrc.cnf"
|
||||
#line 166 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "DownlinkDirectTransfer");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_DownlinkDirectTransfer, DownlinkDirectTransfer_choice,
|
||||
|
@ -47806,7 +47806,7 @@ static const per_sequence_t T_single_GSM_Message_r3_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_T_single_GSM_Message_r3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 453 "rrc.cnf"
|
||||
#line 454 "rrc.cnf"
|
||||
tvbuff_t *gsm_message_tvb=NULL;
|
||||
guint bits_remaining, whole_octets_remaining;
|
||||
|
||||
|
@ -47831,7 +47831,7 @@ dissect_rrc_T_single_GSM_Message_r3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
|
|||
|
||||
static int
|
||||
dissect_rrc_GSM_MessageList_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 445 "rrc.cnf"
|
||||
#line 446 "rrc.cnf"
|
||||
tvbuff_t *gsm_messagelist_tvb=NULL;
|
||||
|
||||
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -48115,7 +48115,7 @@ static const per_sequence_t T_single_GSM_Message_r6_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_T_single_GSM_Message_r6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 467 "rrc.cnf"
|
||||
#line 468 "rrc.cnf"
|
||||
tvbuff_t *gsm_message_tvb=NULL;
|
||||
guint bits_remaining, whole_octets_remaining;
|
||||
|
||||
|
@ -48321,7 +48321,7 @@ static const per_choice_t HandoverFromUTRANCommand_GSM_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_HandoverFromUTRANCommand_GSM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 177 "rrc.cnf"
|
||||
#line 178 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANCommand-GSM");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_HandoverFromUTRANCommand_GSM, HandoverFromUTRANCommand_GSM_choice,
|
||||
|
@ -48475,7 +48475,7 @@ static const per_choice_t HandoverFromUTRANCommand_CDMA2000_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_HandoverFromUTRANCommand_CDMA2000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 181 "rrc.cnf"
|
||||
#line 182 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANCommand-CDMA2000");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_HandoverFromUTRANCommand_CDMA2000, HandoverFromUTRANCommand_CDMA2000_choice,
|
||||
|
@ -57221,7 +57221,7 @@ static const per_choice_t MeasurementControl_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_MeasurementControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 233 "rrc.cnf"
|
||||
#line 234 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "MeasurementControl");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_MeasurementControl, MeasurementControl_choice,
|
||||
|
@ -57313,7 +57313,7 @@ static const per_sequence_t PagingType2_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_PagingType2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 249 "rrc.cnf"
|
||||
#line 250 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "PagingType2");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_PagingType2, PagingType2_sequence);
|
||||
|
@ -58689,7 +58689,7 @@ static const per_choice_t PhysicalChannelReconfiguration_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_PhysicalChannelReconfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 253 "rrc.cnf"
|
||||
#line 254 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "PhysicalChannelReconfiguration");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_PhysicalChannelReconfiguration, PhysicalChannelReconfiguration_choice,
|
||||
|
@ -59993,7 +59993,7 @@ static const per_choice_t PhysicalSharedChannelAllocation_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_PhysicalSharedChannelAllocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 265 "rrc.cnf"
|
||||
#line 266 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "PhysicalSharedChannelAllocation");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_PhysicalSharedChannelAllocation, PhysicalSharedChannelAllocation_choice,
|
||||
|
@ -62198,7 +62198,7 @@ static const per_choice_t RadioBearerReconfiguration_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_RadioBearerReconfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 273 "rrc.cnf"
|
||||
#line 274 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReconfiguration");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_RadioBearerReconfiguration, RadioBearerReconfiguration_choice,
|
||||
|
@ -63610,7 +63610,7 @@ static const per_choice_t RadioBearerRelease_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_RadioBearerRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 285 "rrc.cnf"
|
||||
#line 286 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerRelease");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_RadioBearerRelease, RadioBearerRelease_choice,
|
||||
|
@ -65788,7 +65788,7 @@ static const per_choice_t RadioBearerSetup_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_RadioBearerSetup(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 297 "rrc.cnf"
|
||||
#line 298 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerSetup");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_RadioBearerSetup, RadioBearerSetup_choice,
|
||||
|
@ -66438,7 +66438,7 @@ static const per_choice_t RRCConnectionRelease_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_RRCConnectionRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 313 "rrc.cnf"
|
||||
#line 314 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRelease");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_RRCConnectionRelease, RRCConnectionRelease_choice,
|
||||
|
@ -66717,7 +66717,7 @@ static const per_choice_t SecurityModeCommand_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_SecurityModeCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 341 "rrc.cnf"
|
||||
#line 342 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeCommand");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_SecurityModeCommand, SecurityModeCommand_choice,
|
||||
|
@ -66830,7 +66830,7 @@ static const per_choice_t SignallingConnectionRelease_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_SignallingConnectionRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 353 "rrc.cnf"
|
||||
#line 354 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "SignallingConnectionRelease");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_SignallingConnectionRelease, SignallingConnectionRelease_choice,
|
||||
|
@ -68244,7 +68244,7 @@ static const per_choice_t TransportChannelReconfiguration_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_TransportChannelReconfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 373 "rrc.cnf"
|
||||
#line 374 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportChannelReconfiguration");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_TransportChannelReconfiguration, TransportChannelReconfiguration_choice,
|
||||
|
@ -68389,7 +68389,7 @@ static const per_sequence_t TransportFormatCombinationControl_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_TransportFormatCombinationControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 385 "rrc.cnf"
|
||||
#line 386 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportFormatCombinationControl");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_TransportFormatCombinationControl, TransportFormatCombinationControl_sequence);
|
||||
|
@ -68755,7 +68755,7 @@ static const per_choice_t UECapabilityEnquiry_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_UECapabilityEnquiry(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 393 "rrc.cnf"
|
||||
#line 394 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityEnquiry");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_UECapabilityEnquiry, UECapabilityEnquiry_choice,
|
||||
|
@ -68913,7 +68913,7 @@ static const per_choice_t UECapabilityInformationConfirm_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_UECapabilityInformationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 401 "rrc.cnf"
|
||||
#line 402 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityInformationConfirm");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_UECapabilityInformationConfirm, UECapabilityInformationConfirm_choice,
|
||||
|
@ -69677,7 +69677,7 @@ static const per_choice_t UplinkPhysicalChannelControl_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_UplinkPhysicalChannelControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 409 "rrc.cnf"
|
||||
#line 410 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "UplinkPhysicalChannelControl");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_UplinkPhysicalChannelControl, UplinkPhysicalChannelControl_choice,
|
||||
|
@ -70020,7 +70020,7 @@ static const per_choice_t URAUpdateConfirm_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_URAUpdateConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 417 "rrc.cnf"
|
||||
#line 418 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "URAUpdateConfirm");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_URAUpdateConfirm, URAUpdateConfirm_choice,
|
||||
|
@ -71473,7 +71473,7 @@ static const per_choice_t UTRANMobilityInformation_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_UTRANMobilityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 425 "rrc.cnf"
|
||||
#line 426 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "UTRANMobilityInformation");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_UTRANMobilityInformation, UTRANMobilityInformation_choice,
|
||||
|
@ -71660,7 +71660,7 @@ static const per_sequence_t HandoverFromUTRANCommand_GERANIu_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_HandoverFromUTRANCommand_GERANIu(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 173 "rrc.cnf"
|
||||
#line 174 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANCommand-GERANIu");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_HandoverFromUTRANCommand_GERANIu, HandoverFromUTRANCommand_GERANIu_sequence);
|
||||
|
@ -72098,7 +72098,7 @@ static const per_sequence_t MBMSModifiedServicesInformation_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_MBMSModifiedServicesInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 217 "rrc.cnf"
|
||||
#line 218 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSModifiedServicesInformation");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_MBMSModifiedServicesInformation, MBMSModifiedServicesInformation_sequence);
|
||||
|
@ -72480,7 +72480,7 @@ static const per_sequence_t ActiveSetUpdateComplete_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_ActiveSetUpdateComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 125 "rrc.cnf"
|
||||
#line 126 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "ActiveSetUpdateComplete");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_ActiveSetUpdateComplete, ActiveSetUpdateComplete_sequence);
|
||||
|
@ -72651,7 +72651,7 @@ static const per_sequence_t ActiveSetUpdateFailure_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_ActiveSetUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 129 "rrc.cnf"
|
||||
#line 130 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "ActiveSetUpdateFailure");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_ActiveSetUpdateFailure, ActiveSetUpdateFailure_sequence);
|
||||
|
@ -72798,7 +72798,7 @@ static const per_choice_t CellChangeOrderFromUTRANFailure_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_CellChangeOrderFromUTRANFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 141 "rrc.cnf"
|
||||
#line 142 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "CellChangeOrderFromUTRANFailure");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_CellChangeOrderFromUTRANFailure, CellChangeOrderFromUTRANFailure_choice,
|
||||
|
@ -72888,7 +72888,7 @@ static const per_sequence_t CounterCheckResponse_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_CounterCheckResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 161 "rrc.cnf"
|
||||
#line 162 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheckResponse");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_CounterCheckResponse, CounterCheckResponse_sequence);
|
||||
|
@ -72937,7 +72937,7 @@ static const per_sequence_t HandoverToUTRANComplete_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_HandoverToUTRANComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 169 "rrc.cnf"
|
||||
#line 170 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverToUTRANComplete");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_HandoverToUTRANComplete, HandoverToUTRANComplete_sequence);
|
||||
|
@ -73854,7 +73854,7 @@ static const per_sequence_t InitialDirectTransfer_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_InitialDirectTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 189 "rrc.cnf"
|
||||
#line 190 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "InitialDirectTransfer");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_InitialDirectTransfer, InitialDirectTransfer_sequence);
|
||||
|
@ -74062,7 +74062,7 @@ static const per_sequence_t HandoverFromUTRANFailure_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_HandoverFromUTRANFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 185 "rrc.cnf"
|
||||
#line 186 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromUTRANFailure");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_HandoverFromUTRANFailure, HandoverFromUTRANFailure_sequence);
|
||||
|
@ -74140,7 +74140,7 @@ static const per_sequence_t MeasurementControlFailure_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_MeasurementControlFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 237 "rrc.cnf"
|
||||
#line 238 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "MeasurementControlFailure");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_MeasurementControlFailure, MeasurementControlFailure_sequence);
|
||||
|
@ -78376,7 +78376,7 @@ static const per_sequence_t MeasurementReport_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_MeasurementReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 241 "rrc.cnf"
|
||||
#line 242 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "MeasurementReport");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_MeasurementReport, MeasurementReport_sequence);
|
||||
|
@ -78474,7 +78474,7 @@ static const per_sequence_t PhysicalChannelReconfigurationComplete_sequence[] =
|
|||
|
||||
static int
|
||||
dissect_rrc_PhysicalChannelReconfigurationComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 257 "rrc.cnf"
|
||||
#line 258 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "PhysicalChannelReconfigurationComplete");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_PhysicalChannelReconfigurationComplete, PhysicalChannelReconfigurationComplete_sequence);
|
||||
|
@ -78523,7 +78523,7 @@ static const per_sequence_t PhysicalChannelReconfigurationFailure_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_PhysicalChannelReconfigurationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 261 "rrc.cnf"
|
||||
#line 262 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "PhysicalChannelReconfigurationFailure");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_PhysicalChannelReconfigurationFailure, PhysicalChannelReconfigurationFailure_sequence);
|
||||
|
@ -78621,7 +78621,7 @@ static const per_sequence_t RadioBearerReconfigurationComplete_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_RadioBearerReconfigurationComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 277 "rrc.cnf"
|
||||
#line 278 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReconfigurationComplete");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_RadioBearerReconfigurationComplete, RadioBearerReconfigurationComplete_sequence);
|
||||
|
@ -78685,7 +78685,7 @@ static const per_sequence_t RadioBearerReconfigurationFailure_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_RadioBearerReconfigurationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 281 "rrc.cnf"
|
||||
#line 282 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReconfigurationFailure");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_RadioBearerReconfigurationFailure, RadioBearerReconfigurationFailure_sequence);
|
||||
|
@ -78783,7 +78783,7 @@ static const per_sequence_t RadioBearerReleaseComplete_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_RadioBearerReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 289 "rrc.cnf"
|
||||
#line 290 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReleaseComplete");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_RadioBearerReleaseComplete, RadioBearerReleaseComplete_sequence);
|
||||
|
@ -78833,7 +78833,7 @@ static const per_sequence_t RadioBearerReleaseFailure_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_RadioBearerReleaseFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 293 "rrc.cnf"
|
||||
#line 294 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReleaseFailure");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_RadioBearerReleaseFailure, RadioBearerReleaseFailure_sequence);
|
||||
|
@ -78932,7 +78932,7 @@ static const per_sequence_t RadioBearerSetupComplete_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_RadioBearerSetupComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 301 "rrc.cnf"
|
||||
#line 302 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerSetupComplete");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_RadioBearerSetupComplete, RadioBearerSetupComplete_sequence);
|
||||
|
@ -78982,7 +78982,7 @@ static const per_sequence_t RadioBearerSetupFailure_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_RadioBearerSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 305 "rrc.cnf"
|
||||
#line 306 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerSetupFailure");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_RadioBearerSetupFailure, RadioBearerSetupFailure_sequence);
|
||||
|
@ -79031,7 +79031,7 @@ static const per_sequence_t RRCConnectionReleaseComplete_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_RRCConnectionReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 321 "rrc.cnf"
|
||||
#line 322 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReleaseComplete");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_RRCConnectionReleaseComplete, RRCConnectionReleaseComplete_sequence);
|
||||
|
@ -80046,7 +80046,7 @@ dissect_rrc_UE_RadioAccessCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
|
|||
|
||||
static int
|
||||
dissect_rrc_GSM_Classmark2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 481 "rrc.cnf"
|
||||
#line 482 "rrc.cnf"
|
||||
tvbuff_t *parameter_tvb=NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -80065,7 +80065,7 @@ tvbuff_t *parameter_tvb=NULL;
|
|||
|
||||
static int
|
||||
dissect_rrc_GSM_Classmark3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 489 "rrc.cnf"
|
||||
#line 490 "rrc.cnf"
|
||||
tvbuff_t *parameter_tvb=NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -81474,7 +81474,7 @@ static const per_sequence_t RRCConnectionSetupComplete_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_RRCConnectionSetupComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 333 "rrc.cnf"
|
||||
#line 334 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetupComplete");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_RRCConnectionSetupComplete, RRCConnectionSetupComplete_sequence);
|
||||
|
@ -81653,7 +81653,7 @@ static const per_sequence_t RRCStatus_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_RRCStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 337 "rrc.cnf"
|
||||
#line 338 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCStatus");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_RRCStatus, RRCStatus_sequence);
|
||||
|
@ -81703,7 +81703,7 @@ static const per_sequence_t SecurityModeComplete_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_SecurityModeComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 345 "rrc.cnf"
|
||||
#line 346 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeComplete");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_SecurityModeComplete, SecurityModeComplete_sequence);
|
||||
|
@ -81752,7 +81752,7 @@ static const per_sequence_t SecurityModeFailure_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_SecurityModeFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 349 "rrc.cnf"
|
||||
#line 350 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeFailure");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_SecurityModeFailure, SecurityModeFailure_sequence);
|
||||
|
@ -81845,7 +81845,7 @@ static const per_sequence_t SignallingConnectionReleaseIndication_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_SignallingConnectionReleaseIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 357 "rrc.cnf"
|
||||
#line 358 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "SignallingConnectionReleaseIndication");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_SignallingConnectionReleaseIndication, SignallingConnectionReleaseIndication_sequence);
|
||||
|
@ -81943,7 +81943,7 @@ static const per_sequence_t TransportChannelReconfigurationComplete_sequence[] =
|
|||
|
||||
static int
|
||||
dissect_rrc_TransportChannelReconfigurationComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 377 "rrc.cnf"
|
||||
#line 378 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportChannelReconfigurationComplete");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_TransportChannelReconfigurationComplete, TransportChannelReconfigurationComplete_sequence);
|
||||
|
@ -81992,7 +81992,7 @@ static const per_sequence_t TransportChannelReconfigurationFailure_sequence[] =
|
|||
|
||||
static int
|
||||
dissect_rrc_TransportChannelReconfigurationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 381 "rrc.cnf"
|
||||
#line 382 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportChannelReconfigurationFailure");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_TransportChannelReconfigurationFailure, TransportChannelReconfigurationFailure_sequence);
|
||||
|
@ -82041,7 +82041,7 @@ static const per_sequence_t TransportFormatCombinationControlFailure_sequence[]
|
|||
|
||||
static int
|
||||
dissect_rrc_TransportFormatCombinationControlFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 389 "rrc.cnf"
|
||||
#line 390 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportFormatCombinationControlFailure");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_TransportFormatCombinationControlFailure, TransportFormatCombinationControlFailure_sequence);
|
||||
|
@ -82317,7 +82317,7 @@ static const per_sequence_t UECapabilityInformation_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_UECapabilityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 397 "rrc.cnf"
|
||||
#line 398 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityInformation");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_UECapabilityInformation, UECapabilityInformation_sequence);
|
||||
|
@ -82396,7 +82396,7 @@ static const per_sequence_t UplinkDirectTransfer_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_UplinkDirectTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 405 "rrc.cnf"
|
||||
#line 406 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "UplinkDirectTransfer");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_UplinkDirectTransfer, UplinkDirectTransfer_sequence);
|
||||
|
@ -82492,7 +82492,7 @@ static const per_sequence_t UTRANMobilityInformationConfirm_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_UTRANMobilityInformationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 429 "rrc.cnf"
|
||||
#line 430 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "UTRANMobilityInformationConfirm");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_UTRANMobilityInformationConfirm, UTRANMobilityInformationConfirm_sequence);
|
||||
|
@ -82541,7 +82541,7 @@ static const per_sequence_t UTRANMobilityInformationFailure_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_UTRANMobilityInformationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 433 "rrc.cnf"
|
||||
#line 434 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "UTRANMobilityInformationFailure");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_UTRANMobilityInformationFailure, UTRANMobilityInformationFailure_sequence);
|
||||
|
@ -82698,7 +82698,7 @@ static const per_sequence_t MBMSModificationRequest_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_MBMSModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 213 "rrc.cnf"
|
||||
#line 214 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSModificationRequest");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_MBMSModificationRequest, MBMSModificationRequest_sequence);
|
||||
|
@ -83434,7 +83434,7 @@ static const per_choice_t CellUpdateConfirm_CCCH_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_CellUpdateConfirm_CCCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 149 "rrc.cnf"
|
||||
#line 150 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "CellUpdateConfirm-CCCH");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_CellUpdateConfirm_CCCH, CellUpdateConfirm_CCCH_choice,
|
||||
|
@ -83888,7 +83888,7 @@ static const per_choice_t RRCConnectionReject_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_RRCConnectionReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 309 "rrc.cnf"
|
||||
#line 310 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReject");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_RRCConnectionReject, RRCConnectionReject_choice,
|
||||
|
@ -84384,7 +84384,7 @@ static const per_choice_t RRCConnectionRelease_CCCH_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_RRCConnectionRelease_CCCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 317 "rrc.cnf"
|
||||
#line 318 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRelease-CCCH");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_RRCConnectionRelease_CCCH, RRCConnectionRelease_CCCH_choice,
|
||||
|
@ -85992,7 +85992,7 @@ static const per_choice_t RRCConnectionSetup_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_RRCConnectionSetup(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 329 "rrc.cnf"
|
||||
#line 330 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetup");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_RRCConnectionSetup, RRCConnectionSetup_choice,
|
||||
|
@ -86136,7 +86136,7 @@ static const per_choice_t URAUpdateConfirm_CCCH_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_URAUpdateConfirm_CCCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 421 "rrc.cnf"
|
||||
#line 422 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "URAUpdateConfirm-CCCH");
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_URAUpdateConfirm_CCCH, URAUpdateConfirm_CCCH_choice,
|
||||
|
@ -86668,7 +86668,7 @@ static const per_sequence_t CellUpdate_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_CellUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 145 "rrc.cnf"
|
||||
#line 146 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "CellUpdate");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_CellUpdate, CellUpdate_sequence);
|
||||
|
@ -87308,7 +87308,7 @@ static const per_sequence_t RRCConnectionRequest_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_RRCConnectionRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 325 "rrc.cnf"
|
||||
#line 326 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRequest");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_RRCConnectionRequest, RRCConnectionRequest_sequence);
|
||||
|
@ -87559,7 +87559,7 @@ static const per_sequence_t URAUpdate_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_URAUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 413 "rrc.cnf"
|
||||
#line 414 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "URAUpdate");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_URAUpdate, URAUpdate_sequence);
|
||||
|
@ -87982,7 +87982,7 @@ static const per_sequence_t PagingType1_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_PagingType1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 245 "rrc.cnf"
|
||||
#line 246 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "PagingType1");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_PagingType1, PagingType1_sequence);
|
||||
|
@ -88187,7 +88187,7 @@ static const per_sequence_t PUSCHCapacityRequest_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_PUSCHCapacityRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 269 "rrc.cnf"
|
||||
#line 270 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "PUSCHCapacityRequest");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_PUSCHCapacityRequest, PUSCHCapacityRequest_sequence);
|
||||
|
@ -88563,7 +88563,7 @@ static const per_sequence_t SystemInformation_FACH_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_SystemInformation_FACH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 365 "rrc.cnf"
|
||||
#line 366 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformation-FACH");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_SystemInformation_FACH, SystemInformation_FACH_sequence);
|
||||
|
@ -88640,7 +88640,7 @@ static const per_sequence_t SystemInformationChangeIndication_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_SystemInformationChangeIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 369 "rrc.cnf"
|
||||
#line 370 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformationChangeIndication");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_SystemInformationChangeIndication, SystemInformationChangeIndication_sequence);
|
||||
|
@ -88821,7 +88821,7 @@ static const per_sequence_t SystemInformation_BCH_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_SystemInformation_BCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 361 "rrc.cnf"
|
||||
#line 362 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformation-BCH");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_SystemInformation_BCH, SystemInformation_BCH_sequence);
|
||||
|
@ -88961,7 +88961,7 @@ static const per_sequence_t MBMSAccessInformation_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_MBMSAccessInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 193 "rrc.cnf"
|
||||
#line 194 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSAccessInformation");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_MBMSAccessInformation, MBMSAccessInformation_sequence);
|
||||
|
@ -89830,7 +89830,7 @@ static const per_sequence_t MBMSCommonPTMRBInformation_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_MBMSCommonPTMRBInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 197 "rrc.cnf"
|
||||
#line 198 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSCommonPTMRBInformation");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_MBMSCommonPTMRBInformation, MBMSCommonPTMRBInformation_sequence);
|
||||
|
@ -90218,7 +90218,7 @@ static const per_sequence_t MBMSCurrentCellPTMRBInformation_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_MBMSCurrentCellPTMRBInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 201 "rrc.cnf"
|
||||
#line 202 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSCurrentCellPTMRBInformation");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_MBMSCurrentCellPTMRBInformation, MBMSCurrentCellPTMRBInformation_sequence);
|
||||
|
@ -90996,7 +90996,7 @@ static const per_sequence_t MBMSGeneralInformation_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_MBMSGeneralInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 209 "rrc.cnf"
|
||||
#line 210 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSGeneralInformation");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_MBMSGeneralInformation, MBMSGeneralInformation_sequence);
|
||||
|
@ -91670,7 +91670,7 @@ static const per_sequence_t MBMSNeighbouringCellPTMRBInformation_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_MBMSNeighbouringCellPTMRBInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 221 "rrc.cnf"
|
||||
#line 222 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSNeighbouringCellPTMRBInformation");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_MBMSNeighbouringCellPTMRBInformation, MBMSNeighbouringCellPTMRBInformation_sequence);
|
||||
|
@ -91807,7 +91807,7 @@ static const per_sequence_t MBMSUnmodifiedServicesInformation_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_MBMSUnmodifiedServicesInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 229 "rrc.cnf"
|
||||
#line 230 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSUnmodifiedServicesInformation");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_MBMSUnmodifiedServicesInformation, MBMSUnmodifiedServicesInformation_sequence);
|
||||
|
@ -91963,7 +91963,7 @@ static const per_sequence_t MBMSSchedulingInformation_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_rrc_MBMSSchedulingInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 225 "rrc.cnf"
|
||||
#line 226 "rrc.cnf"
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSSchedulingInformation");
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_rrc_MBMSSchedulingInformation, MBMSSchedulingInformation_sequence);
|
||||
|
@ -94849,7 +94849,7 @@ dissect_rrc_T_uE_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
|
|||
|
||||
static int
|
||||
dissect_rrc_T_present(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 111 "rrc.cnf"
|
||||
#line 112 "rrc.cnf"
|
||||
tvbuff_t *ue_radio_access_cap_info_tvb=NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -113425,7 +113425,7 @@ dissect_rrc_UE_HistoryInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
|
|||
|
||||
static int
|
||||
dissect_rrc_T_interRATHandoverInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 496 "rrc.cnf"
|
||||
#line 497 "rrc.cnf"
|
||||
tvbuff_t *parameter_tvb=NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -117788,7 +117788,7 @@ dissect_rrc_ToTargetRNC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
|
|||
|
||||
static int
|
||||
dissect_rrc_T_dL_DCCHmessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 437 "rrc.cnf"
|
||||
#line 438 "rrc.cnf"
|
||||
tvbuff_t *dl_dcch_message_tvb=NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -118008,10 +118008,10 @@ static void dissect_MSCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_,
|
|||
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
|
||||
dissect_rrc_MSCH_Message(tvb, 0, &asn1_ctx, tree, hf_rrc_MSCH_Message_PDU);
|
||||
}
|
||||
static void dissect_HandoverToUTRANCommand_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
|
||||
void dissect_rrc_HandoverToUTRANCommand_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
|
||||
asn1_ctx_t asn1_ctx;
|
||||
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
|
||||
dissect_rrc_HandoverToUTRANCommand(tvb, 0, &asn1_ctx, tree, hf_rrc_HandoverToUTRANCommand_PDU);
|
||||
dissect_rrc_HandoverToUTRANCommand(tvb, 0, &asn1_ctx, tree, hf_rrc_rrc_HandoverToUTRANCommand_PDU);
|
||||
}
|
||||
void dissect_rrc_InterRATHandoverInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
|
||||
asn1_ctx_t asn1_ctx;
|
||||
|
@ -118446,7 +118446,7 @@ void proto_register_rrc(void) {
|
|||
{ "MSCH-Message", "rrc.MSCH_Message",
|
||||
FT_NONE, BASE_NONE, NULL, 0,
|
||||
"rrc.MSCH_Message", HFILL }},
|
||||
{ &hf_rrc_HandoverToUTRANCommand_PDU,
|
||||
{ &hf_rrc_rrc_HandoverToUTRANCommand_PDU,
|
||||
{ "HandoverToUTRANCommand", "rrc.HandoverToUTRANCommand",
|
||||
FT_UINT32, BASE_DEC, VALS(rrc_HandoverToUTRANCommand_vals), 0,
|
||||
"rrc.HandoverToUTRANCommand", HFILL }},
|
||||
|
@ -156123,7 +156123,7 @@ void proto_register_rrc(void) {
|
|||
register_dissector("rrc.bcch.bch", dissect_BCCH_BCH_Message_PDU, proto_rrc);
|
||||
register_dissector("rrc.mcch", dissect_MCCH_Message_PDU, proto_rrc);
|
||||
register_dissector("rrc.msch", dissect_MSCH_Message_PDU, proto_rrc);
|
||||
register_dissector("rrc.irat.ho_to_utran_cmd", dissect_HandoverToUTRANCommand_PDU, proto_rrc);
|
||||
register_dissector("rrc.irat.ho_to_utran_cmd", dissect_rrc_HandoverToUTRANCommand_PDU, proto_rrc);
|
||||
register_dissector("rrc.irat.irat_ho_info", dissect_rrc_InterRATHandoverInfo_PDU, proto_rrc);
|
||||
register_dissector("rrc.sysinfo", dissect_SystemInformation_BCH_PDU, proto_rrc);
|
||||
register_dissector("rrc.ue_radio_access_cap_info", dissect_UE_RadioAccessCapabilityInfo_PDU, proto_rrc);
|
||||
|
|
|
@ -38,6 +38,7 @@ extern int proto_rrc;
|
|||
/*--- Included file: packet-rrc-exp.h ---*/
|
||||
#line 1 "packet-rrc-exp.h"
|
||||
int dissect_rrc_InterRATHandoverInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
|
||||
void dissect_rrc_HandoverToUTRANCommand_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);
|
||||
void dissect_rrc_InterRATHandoverInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);
|
||||
void dissect_rrc_ToTargetRNC_Container_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);
|
||||
void dissect_rrc_TargetRNC_ToSourceRNC_Container_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);
|
||||
|
|
Loading…
Reference in New Issue