diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2016-09-15 11:37:07 +0200 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2016-09-15 12:31:02 +0000 |
commit | c5a477e72aafa76331c3d13d97c39059ffa99605 (patch) | |
tree | ab4b3c0a276d7e0d5e73a07b0cca322b9e39cffa | |
parent | f2e79776a78ad245c3fa0e079601f5ea7b9cce2f (diff) | |
download | wireshark-c5a477e72aafa76331c3d13d97c39059ffa99605.tar.gz |
S1AP: add dissection of NB-IoT transparent containers
To do so, memorize whether a given eNB UE S1AP ID belongs to a NB-IoT
TAI or not.
Also add a preference allowing to force dissection as legacy LTE or
NB-IoT if automatic mode fails.
While we are at it, let's remove the global variables and introduce
a S1AP private data info stored in pinfo.
Change-Id: I7e30b3d59d909684e5cfe13510293ed38ad52574
Reviewed-on: https://code.wireshark.org/review/17709
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
-rw-r--r-- | epan/dissectors/asn1/lte-rrc/lte-rrc.cnf | 10 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/packet-s1ap-template.c | 146 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/s1ap.cnf | 175 | ||||
-rw-r--r-- | epan/dissectors/packet-lte-rrc.c | 1750 | ||||
-rw-r--r-- | epan/dissectors/packet-lte-rrc.h | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-s1ap.c | 660 |
6 files changed, 1771 insertions, 972 deletions
diff --git a/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf b/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf index c29359555e..2aac177816 100644 --- a/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf +++ b/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf @@ -28,11 +28,13 @@ HandoverPreparationInformation-NB_PDU RLF-Report-r9_PDU RLF-Report-v9e0_PDU SCG-ConfigInfo-r12_PDU +UEPagingCoverageInformation_PDU +UEPagingCoverageInformation-NB_PDU UERadioAccessCapabilityInformation_PDU UERadioAccessCapabilityInformation-NB_PDU UE-EUTRA-Capability_PDU -UEPagingCoverageInformation_PDU UERadioPagingInformation_PDU +UERadioPagingInformation-NB_PDU VisitedCellInfoList-r12_PDU #.END @@ -44,9 +46,11 @@ RLF-Report-r9 RLF-Report-v9e0 SCG-ConfigInfo-r12 UEPagingCoverageInformation +UEPagingCoverageInformation-NB UERadioAccessCapabilityInformation UERadioAccessCapabilityInformation-NB UERadioPagingInformation +UERadioPagingInformation-NB VisitedCellInfoList-r12 BCCH-BCH-Message @bcch.bch BCCH-DL-SCH-Message @bcch.dl.sch @@ -88,10 +92,6 @@ SL-PreconfigRelay-r13 SL-PreconfigSync-r12 SL-Preconfiguration-r12 SL-TxPoolIdentity-r13 -UEPagingCoverageInformation-NB -UEPagingCoverageInformation-NB-IEs -UERadioPagingInformation-NB -UERadioPagingInformation-NB-IEs VarConnEstFailReport-r11 VarLogMeasConfig-r10 VarLogMeasConfig-r11 diff --git a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c index fd9f068223..9c059803f8 100644 --- a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c +++ b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c @@ -34,6 +34,8 @@ #include <epan/prefs.h> #include <epan/sctpppids.h> #include <epan/expert.h> +#include <epan/conversation.h> +#include <epan/proto_data.h> #include "packet-ber.h" #include "packet-per.h" @@ -144,21 +146,56 @@ enum{ UNSUCCESSFUL_OUTCOME }; +struct s1ap_conv_info { + wmem_map_t *nbiot_ta; + wmem_tree_t *nbiot_enb_ue_s1ap_id; +}; + +struct s1ap_supported_ta { + guint16 tac; + wmem_array_t *plmn; +}; + +struct s1ap_tai { + guint32 plmn; + guint16 tac; +}; + +struct s1ap_private_data { + struct s1ap_conv_info *s1ap_conv; + guint32 procedure_code; + guint32 protocol_ie_id; + guint32 protocol_extension_id; + guint32 handover_type_value; + guint32 message_type; + guint8 data_coding_scheme; + struct s1ap_supported_ta *supported_ta; + const char *obj_id; + struct s1ap_tai *tai; + guint16 enb_ue_s1ap_id; +}; + +enum { + S1AP_LTE_CONTAINER_AUTOMATIC, + S1AP_LTE_CONTAINER_LEGACY, + S1AP_LTE_CONTAINER_NBIOT +}; + +static const enum_val_t s1ap_lte_container_vals[] = { + {"automatic", "Automatic", S1AP_LTE_CONTAINER_AUTOMATIC}, + {"legacy", "Legacy LTE", S1AP_LTE_CONTAINER_LEGACY}, + {"nb-iot","NB-IoT", S1AP_LTE_CONTAINER_NBIOT}, + {NULL, NULL, -1} +}; + /* Global variables */ -static guint32 ProcedureCode; -static guint32 ProtocolIE_ID; -static guint32 ProtocolExtensionID; static guint gbl_s1apSctpPort=SCTP_PORT_S1AP; -static guint32 handover_type_value; -static guint32 message_type; static gboolean g_s1ap_dissect_container = TRUE; -static const char *obj_id = NULL; -static guint8 dataCodingScheme = SMS_ENCODING_NOT_SET; +static gint g_s1ap_dissect_lte_container_as = S1AP_LTE_CONTAINER_AUTOMATIC; static dissector_handle_t gcsna_handle = NULL; static dissector_handle_t s1ap_handle; - /* Dissector tables */ static dissector_table_t s1ap_ies_dissector_table; static dissector_table_t s1ap_ies_p1_dissector_table; @@ -268,56 +305,103 @@ static const true_false_string s1ap_tfs_activate_do_not_activate = { "Do not activate" }; +static struct s1ap_private_data* +s1ap_get_private_data(packet_info *pinfo) +{ + struct s1ap_private_data *s1ap_data = (struct s1ap_private_data*)p_get_proto_data(pinfo->pool, pinfo, proto_s1ap, 0); + if (!s1ap_data) { + s1ap_data = wmem_new0(pinfo->pool, struct s1ap_private_data); + p_add_proto_data(pinfo->pool, pinfo, proto_s1ap, 0, s1ap_data); + } + return s1ap_data; +} + +static gboolean +s1ap_is_nbiot_ue(packet_info *pinfo) +{ + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo); + + if (s1ap_data->s1ap_conv) { + wmem_tree_key_t tree_key[3]; + guint32 *id; + guint32 enb_ue_s1ap_id = s1ap_data->enb_ue_s1ap_id; + + tree_key[0].length = 1; + tree_key[0].key = &enb_ue_s1ap_id; + tree_key[1].length = 1; + tree_key[1].key = &pinfo->num; + tree_key[2].length = 0; + tree_key[2].key = NULL; + id = (guint32*)wmem_tree_lookup32_array_le(s1ap_data->s1ap_conv->nbiot_enb_ue_s1ap_id, tree_key); + if (id && (*id == enb_ue_s1ap_id)) { + return TRUE; + } + } + return FALSE; +} + #include "packet-s1ap-fn.c" static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) { s1ap_ctx_t s1ap_ctx; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo); - s1ap_ctx.message_type = message_type; - s1ap_ctx.ProcedureCode = ProcedureCode; - s1ap_ctx.ProtocolIE_ID = ProtocolIE_ID; - s1ap_ctx.ProtocolExtensionID = ProtocolExtensionID; + s1ap_ctx.message_type = s1ap_data->message_type; + s1ap_ctx.ProcedureCode = s1ap_data->procedure_code; + s1ap_ctx.ProtocolIE_ID = s1ap_data->protocol_ie_id; + s1ap_ctx.ProtocolExtensionID = s1ap_data->protocol_extension_id; - return (dissector_try_uint_new(s1ap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, TRUE, &s1ap_ctx)) ? tvb_captured_length(tvb) : 0; + return (dissector_try_uint_new(s1ap_ies_dissector_table, s1ap_data->protocol_ie_id, tvb, pinfo, tree, TRUE, &s1ap_ctx)) ? tvb_captured_length(tvb) : 0; } /* Currently not used static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - return (dissector_try_uint(s1ap_ies_p1_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo); + + return (dissector_try_uint(s1ap_ies_p1_dissector_table, s1ap_data->protocol_ie_id, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0; } static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - return (dissector_try_uint(s1ap_ies_p2_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo); + + return (dissector_try_uint(s1ap_ies_p2_dissector_table, s1ap_data->protocol_ie_id, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0; } */ static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) { s1ap_ctx_t s1ap_ctx; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo); - s1ap_ctx.message_type = message_type; - s1ap_ctx.ProcedureCode = ProcedureCode; - s1ap_ctx.ProtocolIE_ID = ProtocolIE_ID; - s1ap_ctx.ProtocolExtensionID = ProtocolExtensionID; + s1ap_ctx.message_type = s1ap_data->message_type; + s1ap_ctx.ProcedureCode = s1ap_data->procedure_code; + s1ap_ctx.ProtocolIE_ID = s1ap_data->protocol_ie_id; + s1ap_ctx.ProtocolExtensionID = s1ap_data->protocol_extension_id; - return (dissector_try_uint_new(s1ap_extension_dissector_table, ProtocolExtensionID, tvb, pinfo, tree, TRUE, &s1ap_ctx)) ? tvb_captured_length(tvb) : 0; + return (dissector_try_uint_new(s1ap_extension_dissector_table, s1ap_data->protocol_extension_id, tvb, pinfo, tree, TRUE, &s1ap_ctx)) ? tvb_captured_length(tvb) : 0; } static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) { - return (dissector_try_uint_new(s1ap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo); + + return (dissector_try_uint_new(s1ap_proc_imsg_dissector_table, s1ap_data->procedure_code, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0; } static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) { - return (dissector_try_uint_new(s1ap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo); + + return (dissector_try_uint_new(s1ap_proc_sout_dissector_table, s1ap_data->procedure_code, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0; } static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) { - return (dissector_try_uint_new(s1ap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo); + + return (dissector_try_uint_new(s1ap_proc_uout_dissector_table, s1ap_data->procedure_code, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0; } @@ -326,6 +410,8 @@ dissect_s1ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_ { proto_item *s1ap_item = NULL; proto_tree *s1ap_tree = NULL; + conversation_t *conversation; + struct s1ap_private_data* s1ap_data; /* make entry in the Protocol column on summary display */ col_set_str(pinfo->cinfo, COL_PROTOCOL, "S1AP"); @@ -336,6 +422,16 @@ dissect_s1ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_ s1ap_item = proto_tree_add_item(tree, proto_s1ap, tvb, 0, -1, ENC_NA); s1ap_tree = proto_item_add_subtree(s1ap_item, ett_s1ap); + s1ap_data = s1ap_get_private_data(pinfo); + conversation = find_or_create_conversation(pinfo); + s1ap_data->s1ap_conv = (struct s1ap_conv_info *)conversation_get_proto_data(conversation, proto_s1ap); + if (!s1ap_data->s1ap_conv) { + s1ap_data->s1ap_conv = wmem_new(wmem_file_scope(), struct s1ap_conv_info); + s1ap_data->s1ap_conv->nbiot_ta = wmem_map_new(wmem_file_scope(), wmem_int64_hash, g_int64_equal); + s1ap_data->s1ap_conv->nbiot_enb_ue_s1ap_id = wmem_tree_new(wmem_file_scope()); + conversation_add_proto_data(conversation, proto_s1ap, s1ap_data->s1ap_conv); + } + dissect_S1AP_PDU_PDU(tvb, pinfo, s1ap_tree, NULL); return tvb_captured_length(tvb); } @@ -588,7 +684,9 @@ void proto_register_s1ap(void) { 10, &gbl_s1apSctpPort); prefs_register_bool_preference(s1ap_module, "dissect_container", "Dissect TransparentContainer", "Dissect TransparentContainers that are opaque to S1AP", &g_s1ap_dissect_container); - + prefs_register_enum_preference(s1ap_module, "dissect_lte_container_as", "Dissect LTE TransparentContainer as", + "Select whether LTE TransparentContainer should be dissected as NB-IOT or legacy LTE", + &g_s1ap_dissect_lte_container_as, s1ap_lte_container_vals, FALSE); } /* diff --git a/epan/dissectors/asn1/s1ap/s1ap.cnf b/epan/dissectors/asn1/s1ap/s1ap.cnf index 9c14d05bb0..caf56ece52 100644 --- a/epan/dissectors/asn1/s1ap/s1ap.cnf +++ b/epan/dissectors/asn1/s1ap/s1ap.cnf @@ -44,6 +44,7 @@ UE-HistoryInformation #.MAKE_ENUM ProcedureCode ProtocolIE-ID +RAT-Type #.NO_EMIT TBCD-STRING @@ -86,10 +87,14 @@ ProtocolExtensionField/id ext_id #PrivateIE-Field/value private_value ProtocolIE-Field/value ie_field_value -#.FN_PARS ProtocolIE-ID VAL_PTR=&ProtocolIE_ID +#.FN_BODY ProtocolIE-ID VAL_PTR=&s1ap_data->protocol_ie_id + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); +%(DEFAULT_BODY)s + #.FN_FTR ProtocolIE-ID if (tree) { - proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &s1ap_ProtocolIE_ID_vals_ext, "unknown (%d)")); + proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", + val_to_str_ext(s1ap_data->protocol_ie_id, &s1ap_ProtocolIE_ID_vals_ext, "unknown (%d)")); } #.END @@ -100,21 +105,29 @@ ProtocolIE-Field/value ie_field_value # FN_PARS ProtocolIE-FieldPair/firstValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairFirstValue # FN_PARS ProtocolIE-FieldPair/secondValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairSecondValue -#.FN_PARS ProtocolExtensionID VAL_PTR=&ProtocolExtensionID +#.FN_BODY ProtocolExtensionID VAL_PTR=&s1ap_data->protocol_extension_id + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); +%(DEFAULT_BODY)s + #.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue -#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode +#.FN_BODY ProcedureCode VAL_PTR = &s1ap_data->procedure_code + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); +%(DEFAULT_BODY)s #.END #.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue #.FN_HDR InitiatingMessage/value - message_type = INITIATING_MESSAGE; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + s1ap_data->message_type = INITIATING_MESSAGE; #.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue #.FN_HDR SuccessfulOutcome/value - message_type = SUCCESSFUL_OUTCOME; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + s1ap_data->message_type = SUCCESSFUL_OUTCOME; #.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue #.FN_HDR UnsuccessfulOutcome/value - message_type = UNSUCCESSFUL_OUTCOME; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + s1ap_data->message_type = UNSUCCESSFUL_OUTCOME; #--- Parameterization is not supported in asn2wrs --- @@ -181,15 +194,18 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound") # END #.FN_HDR PrivateIE-ID -obj_id = NULL; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + s1ap_data->obj_id = NULL; -#.FN_PARS PrivateIE-ID/global FN_VARIANT = _str VAL_PTR = &obj_id +#.FN_BODY PrivateIE-ID/global FN_VARIANT = _str VAL_PTR = &s1ap_data->obj_id + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); +%(DEFAULT_BODY)s #.FN_BODY PrivateIE-Field/value - - if (obj_id){ - offset=call_per_oid_callback(obj_id, tvb, actx->pinfo, tree, offset, actx, hf_index); - }else{ + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + if (s1ap_data->obj_id) { + offset = call_per_oid_callback(s1ap_data->obj_id, tvb, actx->pinfo, tree, offset, actx, hf_index); + } else { %(DEFAULT_BODY)s } @@ -200,6 +216,7 @@ obj_id = NULL; #.FN_BODY PLMNidentity VAL_PTR = parameter_tvb tvbuff_t *parameter_tvb=NULL; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 3, 3, FALSE, ¶meter_tvb); @@ -209,6 +226,12 @@ obj_id = NULL; if (!parameter_tvb) return offset; dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, E212_NONE, FALSE); + if (s1ap_data->supported_ta) { + guint32 plmn = tvb_get_ntoh24(parameter_tvb, 0); + wmem_array_append_one(s1ap_data->supported_ta->plmn, plmn); + } else if (s1ap_data->tai) { + s1ap_data->tai->plmn = tvb_get_ntoh24(parameter_tvb, 0); + } #.END #.FN_BODY ENBname VAL_PTR = parameter_tvb @@ -328,19 +351,23 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_UL; -#.FN_BODY HandoverType VAL_PTR = &handover_type_value - +#.FN_BODY HandoverType VAL_PTR = &s1ap_data->handover_type_value + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); %(DEFAULT_BODY)s #Zero the value before use #.FN_HDR HandoverRequired - handover_type_value = 0; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + s1ap_data->handover_type_value = 0; #.FN_HDR HandoverCommand - handover_type_value = 0; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + s1ap_data->handover_type_value = 0; #.FN_HDR HandoverRequest - handover_type_value = 0; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + s1ap_data->handover_type_value = 0; #.FN_HDR HandoverRequestAcknowledge - handover_type_value = 0; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + s1ap_data->handover_type_value = 0; #.FN_BODY Source-ToTarget-TransparentContainer VAL_PTR = ¶meter_tvb # I think the message is "directly encoded" into the octet string(no "double encoding") @@ -356,11 +383,12 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC %(DEFAULT_BODY)s if (g_s1ap_dissect_container) { + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); /* Don't want elements inside container to write to info column */ col_set_writable(actx->pinfo->cinfo, COL_INFO, FALSE); subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_ToTargetTransparentContainer); - switch(handover_type_value){ + switch(s1ap_data->handover_type_value){ /* HandoverType ::= ENUMERATED { intralte, @@ -414,9 +442,10 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC %(DEFAULT_BODY)s if (g_s1ap_dissect_container) { + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_ToSourceTransparentContainer); - switch(handover_type_value){ + switch(s1ap_data->handover_type_value){ /* HandoverType ::= ENUMERATED { intralte, @@ -505,12 +534,18 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC return offset; if (g_s1ap_dissect_container) { + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_RRCContainer); - switch(message_type){ + switch(s1ap_data->message_type){ case INITIATING_MESSAGE: /* 9.2.1.7 Source eNB to Target eNB Transparent Container */ - dissect_lte_rrc_HandoverPreparationInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + if ((s1ap_is_nbiot_ue(actx->pinfo) && (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_AUTOMATIC)) || + (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_NBIOT)) { + dissect_lte_rrc_HandoverPreparationInformation_NB_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } else { + dissect_lte_rrc_HandoverPreparationInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } break; case SUCCESSFUL_OUTCOME: /* 9.2.1.8 Target eNB to Source eNB Transparent Container */ @@ -544,7 +579,12 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC if (g_s1ap_dissect_container) { subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_UERadioCapability); - dissect_lte_rrc_UERadioAccessCapabilityInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + if ((s1ap_is_nbiot_ue(actx->pinfo) && (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_AUTOMATIC)) || + (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_NBIOT)) { + dissect_lte_rrc_UERadioAccessCapabilityInformation_NB_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } else { + dissect_lte_rrc_UERadioAccessCapabilityInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } } #.TYPE_ATTR @@ -617,7 +657,12 @@ if (gcsna_handle) { if (g_s1ap_dissect_container) { subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_UERadioPagingInformation); - dissect_lte_rrc_UERadioPagingInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + if ((s1ap_is_nbiot_ue(actx->pinfo) && (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_AUTOMATIC)) || + (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_NBIOT)) { + dissect_lte_rrc_UERadioPagingInformation_NB_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } else { + dissect_lte_rrc_UERadioPagingInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } } #.FN_BODY CELevel VAL_PTR = ¶meter_tvb @@ -631,7 +676,12 @@ if (gcsna_handle) { if (g_s1ap_dissect_container) { subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_CELevel); - dissect_lte_rrc_UEPagingCoverageInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + if ((s1ap_is_nbiot_ue(actx->pinfo) && (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_AUTOMATIC)) || + (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_NBIOT)) { + dissect_lte_rrc_UEPagingCoverageInformation_NB_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } else { + dissect_lte_rrc_UEPagingCoverageInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } } #.FN_BODY UE-RLF-Report-Container VAL_PTR = ¶meter_tvb @@ -821,18 +871,20 @@ MessageIdentifier TYPE = FT_UINT16 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = tvbuff_t *parameter_tvb = NULL; %(DEFAULT_BODY)s if (parameter_tvb) { + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_DataCodingScheme); - dataCodingScheme = dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree, 0); + s1ap_data->data_coding_scheme = dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree, 0); } #.FN_BODY WarningMessageContents VAL_PTR = ¶meter_tvb tvbuff_t *parameter_tvb = NULL; %(DEFAULT_BODY)s if (parameter_tvb) { + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_WarningMessageContents); - dissect_s1ap_warningMessageContents(parameter_tvb, subtree, actx->pinfo, dataCodingScheme); + dissect_s1ap_warningMessageContents(parameter_tvb, subtree, actx->pinfo, s1ap_data->data_coding_scheme); } #.FN_BODY MSClassmark2 VAL_PTR = ¶meter_tvb @@ -911,9 +963,15 @@ proto_item_append_text(actx->created_item, "s"); TAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX #.FN_BODY TAC VAL_PTR = ¶meter_tvb HF_INDEX = -1 tvbuff_t *parameter_tvb = NULL; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); %(DEFAULT_BODY)s if (parameter_tvb) { actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN); + if (s1ap_data->supported_ta) { + s1ap_data->supported_ta->tac = tvb_get_ntohs(parameter_tvb, 0); + } else if (s1ap_data->tai) { + s1ap_data->tai->tac = tvb_get_ntohs(parameter_tvb, 0); + } } #.TYPE_ATTR @@ -967,6 +1025,66 @@ M-TMSI TYPE = FT_UINT32 DISPLAY = BASE_DEC_HEX de_emm_sec_par_to_eutra(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0); } +#.FN_HDR SupportedTAs-Item + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + + if (!PINFO_FD_VISITED(actx->pinfo) && + (s1ap_data->message_type == INITIATING_MESSAGE) && + ((s1ap_data->procedure_code == id_S1Setup) || + (s1ap_data->procedure_code == id_ENBConfigurationUpdate))) { + s1ap_data->supported_ta = wmem_new0(wmem_packet_scope(), struct s1ap_supported_ta); + s1ap_data->supported_ta->plmn = wmem_array_new(wmem_packet_scope(), sizeof(guint32)); + } + +#.FN_FTR SupportedTAs-Item + s1ap_data->supported_ta = NULL; + +#.FN_BODY RAT-Type VAL_PTR = &rat_type + guint32 rat_type = 0xffffffff; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); +%(DEFAULT_BODY)s + if (s1ap_data->s1ap_conv && s1ap_data->supported_ta && (rat_type == nbiot)) { + guint64 *key; + guint i; + + for (i = 0; i < wmem_array_get_count(s1ap_data->supported_ta->plmn); i++) { + key = wmem_new(wmem_file_scope(), guint64); + *key = ((*(guint32*)wmem_array_index(s1ap_data->supported_ta->plmn, i)) << 16) | s1ap_data->supported_ta->tac; + wmem_map_insert(s1ap_data->s1ap_conv->nbiot_ta, key, GUINT_TO_POINTER(1)); + } + } + +#.FN_BODY ENB-UE-S1AP-ID VAL_PTR = &enb_ue_s1ap_id + guint32 enb_ue_s1ap_id; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); +%(DEFAULT_BODY)s + s1ap_data->enb_ue_s1ap_id = (guint16)enb_ue_s1ap_id; + +#.FN_BODY TAI + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + + s1ap_data->tai = wmem_new0(wmem_packet_scope(), struct s1ap_tai); +%(DEFAULT_BODY)s + if (!PINFO_FD_VISITED(actx->pinfo) && s1ap_data->s1ap_conv && + (s1ap_data->message_type == INITIATING_MESSAGE) && + (s1ap_data->procedure_code == id_initialUEMessage)) { + guint64 key = (s1ap_data->tai->plmn << 16) | s1ap_data->tai->tac; + + if (wmem_map_lookup(s1ap_data->s1ap_conv->nbiot_ta, &key)) { + wmem_tree_key_t tree_key[3]; + guint32 *id = wmem_new(wmem_file_scope(), guint32); + + *id = s1ap_data->enb_ue_s1ap_id; + tree_key[0].length = 1; + tree_key[0].key = id; + tree_key[1].length = 1; + tree_key[1].key = &actx->pinfo->num; + tree_key[2].length = 0; + tree_key[2].key = NULL; + wmem_tree_insert32_array(s1ap_data->s1ap_conv->nbiot_enb_ue_s1ap_id, tree_key, id); + } + } + #.ASSIGN_VALUE_TO_TYPE # S1AP does not have constants assigned to types, they are pure INTEGER # ProcedureCode @@ -1759,7 +1877,6 @@ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStart"); col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStop"); #.FN_HDR WriteReplaceWarningRequest col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningRequest"); - dataCodingScheme = SMS_ENCODING_NOT_SET; #.FN_HDR WriteReplaceWarningResponse col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningResponse"); #.FN_HDR ENBDirectInformationTransfer diff --git a/epan/dissectors/packet-lte-rrc.c b/epan/dissectors/packet-lte-rrc.c index 0950a2905b..871b2d02af 100644 --- a/epan/dissectors/packet-lte-rrc.c +++ b/epan/dissectors/packet-lte-rrc.c @@ -273,7 +273,9 @@ static int hf_lte_rrc_lte_rrc_UE_EUTRA_Capability_PDU = -1; /* UE_EUTRA_Capabil static int hf_lte_rrc_lte_rrc_VisitedCellInfoList_r12_PDU = -1; /* VisitedCellInfoList_r12 */ static int hf_lte_rrc_SBCCH_SL_BCH_Message_PDU = -1; /* SBCCH_SL_BCH_Message */ static int hf_lte_rrc_lte_rrc_HandoverPreparationInformation_NB_PDU = -1; /* HandoverPreparationInformation_NB */ +static int hf_lte_rrc_lte_rrc_UEPagingCoverageInformation_NB_PDU = -1; /* UEPagingCoverageInformation_NB */ static int hf_lte_rrc_lte_rrc_UERadioAccessCapabilityInformation_NB_PDU = -1; /* UERadioAccessCapabilityInformation_NB */ +static int hf_lte_rrc_lte_rrc_UERadioPagingInformation_NB_PDU = -1; /* UERadioPagingInformation_NB */ static int hf_lte_rrc_BCCH_BCH_Message_NB_PDU = -1; /* BCCH_BCH_Message_NB */ static int hf_lte_rrc_BCCH_DL_SCH_Message_NB_PDU = -1; /* BCCH_DL_SCH_Message_NB */ static int hf_lte_rrc_PCCH_Message_NB_PDU = -1; /* PCCH_Message_NB */ @@ -301,6 +303,7 @@ static int hf_lte_rrc_SystemInformationBlockType6_v8h0_IEs_PDU = -1; /* SystemI static int hf_lte_rrc_UE_EUTRA_Capability_v10j0_IEs_PDU = -1; /* UE_EUTRA_Capability_v10j0_IEs */ static int hf_lte_rrc_UE_EUTRA_Capability_v9a0_IEs_PDU = -1; /* UE_EUTRA_Capability_v9a0_IEs */ static int hf_lte_rrc_UE_Capability_NB_r13_PDU = -1; /* UE_Capability_NB_r13 */ +static int hf_lte_rrc_UE_RadioPagingInfo_NB_r13_PDU = -1; /* UE_RadioPagingInfo_NB_r13 */ static int hf_lte_rrc_criticalExtensions = -1; /* T_criticalExtensions */ static int hf_lte_rrc_c1 = -1; /* T_c1 */ static int hf_lte_rrc_handoverCommand_r8 = -1; /* HandoverCommand_r8_IEs */ @@ -4287,10 +4290,22 @@ static int hf_lte_rrc_as_Context_r13 = -1; /* AS_Context_NB */ static int hf_lte_rrc_nonCriticalExtension_188 = -1; /* T_nonCriticalExtension_66 */ static int hf_lte_rrc_criticalExtensions_52 = -1; /* T_criticalExtensions_52 */ static int hf_lte_rrc_c1_48 = -1; /* T_c1_48 */ -static int hf_lte_rrc_ueRadioAccessCapabilityInformation_r13 = -1; /* UERadioAccessCapabilityInformation_NB_IEs */ +static int hf_lte_rrc_uePagingCoverageInformation_r13_01 = -1; /* UEPagingCoverageInformation_NB_IEs */ static int hf_lte_rrc_criticalExtensionsFuture_52 = -1; /* T_criticalExtensionsFuture_52 */ -static int hf_lte_rrc_ue_RadioAccessCapabilityInfo_r13_01 = -1; /* T_ue_RadioAccessCapabilityInfo_r13 */ +static int hf_lte_rrc_npdcch_NumRepetitionPaging_r13 = -1; /* INTEGER_1_2048 */ static int hf_lte_rrc_nonCriticalExtension_189 = -1; /* T_nonCriticalExtension_67 */ +static int hf_lte_rrc_criticalExtensions_53 = -1; /* T_criticalExtensions_53 */ +static int hf_lte_rrc_c1_49 = -1; /* T_c1_49 */ +static int hf_lte_rrc_ueRadioAccessCapabilityInformation_r13 = -1; /* UERadioAccessCapabilityInformation_NB_IEs */ +static int hf_lte_rrc_criticalExtensionsFuture_53 = -1; /* T_criticalExtensionsFuture_53 */ +static int hf_lte_rrc_ue_RadioAccessCapabilityInfo_r13_01 = -1; /* T_ue_RadioAccessCapabilityInfo_r13 */ +static int hf_lte_rrc_nonCriticalExtension_190 = -1; /* T_nonCriticalExtension_68 */ +static int hf_lte_rrc_criticalExtensions_54 = -1; /* T_criticalExtensions_54 */ +static int hf_lte_rrc_c1_50 = -1; /* T_c1_50 */ +static int hf_lte_rrc_ueRadioPagingInformation_r13 = -1; /* UERadioPagingInformation_NB_IEs */ +static int hf_lte_rrc_criticalExtensionsFuture_54 = -1; /* T_criticalExtensionsFuture_54 */ +static int hf_lte_rrc_ue_RadioPagingInfo_r13 = -1; /* T_ue_RadioPagingInfo_r13 */ +static int hf_lte_rrc_nonCriticalExtension_191 = -1; /* T_nonCriticalExtension_69 */ static int hf_lte_rrc_sourceRadioResourceConfig_r13 = -1; /* RadioResourceConfigDedicated_NB_r13 */ static int hf_lte_rrc_sourceSecurityAlgorithmConfig_r13 = -1; /* SecurityAlgorithmConfig */ static int hf_lte_rrc_sourceUE_Identity_r13 = -1; /* C_RNTI */ @@ -4302,23 +4317,23 @@ static int hf_lte_rrc_additionalReestabInfoList_r13 = -1; /* AdditionalReestabI static int hf_lte_rrc_ue_InactiveTime_01 = -1; /* T_ue_InactiveTime_01 */ static int hf_lte_rrc_message_11 = -1; /* BCCH_BCH_MessageType_NB */ static int hf_lte_rrc_message_12 = -1; /* BCCH_DL_SCH_MessageType_NB */ -static int hf_lte_rrc_c1_49 = -1; /* T_c1_49 */ +static int hf_lte_rrc_c1_51 = -1; /* T_c1_51 */ static int hf_lte_rrc_systemInformation_r13 = -1; /* SystemInformation_NB */ static int hf_lte_rrc_systemInformationBlockType1_r13 = -1; /* SystemInformationBlockType1_NB */ static int hf_lte_rrc_messageClassExtension_09 = -1; /* T_messageClassExtension_09 */ static int hf_lte_rrc_message_13 = -1; /* PCCH_MessageType_NB */ -static int hf_lte_rrc_c1_50 = -1; /* T_c1_50 */ +static int hf_lte_rrc_c1_52 = -1; /* T_c1_52 */ static int hf_lte_rrc_paging_r13 = -1; /* Paging_NB */ static int hf_lte_rrc_messageClassExtension_10 = -1; /* T_messageClassExtension_10 */ static int hf_lte_rrc_message_14 = -1; /* DL_CCCH_MessageType_NB */ -static int hf_lte_rrc_c1_51 = -1; /* T_c1_51 */ +static int hf_lte_rrc_c1_53 = -1; /* T_c1_53 */ static int hf_lte_rrc_rrcConnectionReestablishment_r13 = -1; /* RRCConnectionReestablishment_NB */ static int hf_lte_rrc_rrcConnectionReestablishmentReject_r13 = -1; /* RRCConnectionReestablishmentReject */ static int hf_lte_rrc_rrcConnectionReject_r13 = -1; /* RRCConnectionReject_NB */ static int hf_lte_rrc_rrcConnectionSetup_r13 = -1; /* RRCConnectionSetup_NB */ static int hf_lte_rrc_messageClassExtension_11 = -1; /* T_messageClassExtension_11 */ static int hf_lte_rrc_message_15 = -1; /* DL_DCCH_MessageType_NB */ -static int hf_lte_rrc_c1_52 = -1; /* T_c1_52 */ +static int hf_lte_rrc_c1_54 = -1; /* T_c1_54 */ static int hf_lte_rrc_dlInformationTransfer_r13 = -1; /* DLInformationTransfer_NB */ static int hf_lte_rrc_rrcConnectionReconfiguration_r13 = -1; /* RRCConnectionReconfiguration_NB */ static int hf_lte_rrc_rrcConnectionRelease_r13 = -1; /* RRCConnectionRelease_NB */ @@ -4327,13 +4342,13 @@ static int hf_lte_rrc_ueCapabilityEnquiry_r13 = -1; /* UECapabilityEnquiry_NB * static int hf_lte_rrc_rrcConnectionResume_r13_02 = -1; /* RRCConnectionResume_NB */ static int hf_lte_rrc_messageClassExtension_12 = -1; /* T_messageClassExtension_12 */ static int hf_lte_rrc_message_16 = -1; /* UL_CCCH_MessageType_NB */ -static int hf_lte_rrc_c1_53 = -1; /* T_c1_53 */ +static int hf_lte_rrc_c1_55 = -1; /* T_c1_55 */ static int hf_lte_rrc_rrcConnectionReestablishmentRequest_r13 = -1; /* RRCConnectionReestablishmentRequest_NB */ static int hf_lte_rrc_rrcConnectionRequest_r13 = -1; /* RRCConnectionRequest_NB */ static int hf_lte_rrc_rrcConnectionResumeRequest_r13_02 = -1; /* RRCConnectionResumeRequest_NB */ static int hf_lte_rrc_messageClassExtension_13 = -1; /* T_messageClassExtension_13 */ static int hf_lte_rrc_message_17 = -1; /* UL_DCCH_MessageType_NB */ -static int hf_lte_rrc_c1_54 = -1; /* T_c1_54 */ +static int hf_lte_rrc_c1_56 = -1; /* T_c1_56 */ static int hf_lte_rrc_rrcConnectionReconfigurationComplete_r13 = -1; /* RRCConnectionReconfigurationComplete_NB */ static int hf_lte_rrc_rrcConnectionReestablishmentComplete_r13 = -1; /* RRCConnectionReestablishmentComplete_NB */ static int hf_lte_rrc_rrcConnectionSetupComplete_r13 = -1; /* RRCConnectionSetupComplete_NB */ @@ -4343,11 +4358,11 @@ static int hf_lte_rrc_ueCapabilityInformation_r13 = -1; /* UECapabilityInformat static int hf_lte_rrc_ulInformationTransfer_r13 = -1; /* ULInformationTransfer_NB */ static int hf_lte_rrc_rrcConnectionResumeComplete_r13_02 = -1; /* RRCConnectionResumeComplete_NB */ static int hf_lte_rrc_messageClassExtension_14 = -1; /* T_messageClassExtension_14 */ -static int hf_lte_rrc_criticalExtensions_53 = -1; /* T_criticalExtensions_53 */ -static int hf_lte_rrc_c1_55 = -1; /* T_c1_55 */ +static int hf_lte_rrc_criticalExtensions_55 = -1; /* T_criticalExtensions_55 */ +static int hf_lte_rrc_c1_57 = -1; /* T_c1_57 */ static int hf_lte_rrc_dlInformationTransfer_r13_01 = -1; /* DLInformationTransfer_NB_r13_IEs */ -static int hf_lte_rrc_criticalExtensionsFuture_53 = -1; /* T_criticalExtensionsFuture_53 */ -static int hf_lte_rrc_nonCriticalExtension_190 = -1; /* T_nonCriticalExtension_68 */ +static int hf_lte_rrc_criticalExtensionsFuture_55 = -1; /* T_criticalExtensionsFuture_55 */ +static int hf_lte_rrc_nonCriticalExtension_192 = -1; /* T_nonCriticalExtension_70 */ static int hf_lte_rrc_systemFrameNumber_MSB_r13 = -1; /* BIT_STRING_SIZE_4 */ static int hf_lte_rrc_hyperSFN_LSB_r13 = -1; /* BIT_STRING_SIZE_2 */ static int hf_lte_rrc_schedulingInfoSIB1_r13 = -1; /* INTEGER_0_15 */ @@ -4366,91 +4381,91 @@ static int hf_lte_rrc_eutra_NumCRS_Ports_r13 = -1; /* T_eutra_NumCRS_Ports_r13 static int hf_lte_rrc_pagingRecordList_r13 = -1; /* PagingRecordList_NB_r13 */ static int hf_lte_rrc_systemInfoModification_r13 = -1; /* T_systemInfoModification_r13 */ static int hf_lte_rrc_systemInfoModification_eDRX_r13_01 = -1; /* T_systemInfoModification_eDRX_r13_01 */ -static int hf_lte_rrc_nonCriticalExtension_191 = -1; /* T_nonCriticalExtension_69 */ +static int hf_lte_rrc_nonCriticalExtension_193 = -1; /* T_nonCriticalExtension_71 */ static int hf_lte_rrc_PagingRecordList_NB_r13_item = -1; /* PagingRecord_NB_r13 */ static int hf_lte_rrc_ue_Identity_r13 = -1; /* PagingUE_Identity */ -static int hf_lte_rrc_criticalExtensions_54 = -1; /* T_criticalExtensions_54 */ -static int hf_lte_rrc_c1_56 = -1; /* T_c1_56 */ +static int hf_lte_rrc_criticalExtensions_56 = -1; /* T_criticalExtensions_56 */ +static int hf_lte_rrc_c1_58 = -1; /* T_c1_58 */ static int hf_lte_rrc_rrcConnectionReconfiguration_r13_01 = -1; /* RRCConnectionReconfiguration_NB_r13_IEs */ -static int hf_lte_rrc_criticalExtensionsFuture_54 = -1; /* T_criticalExtensionsFuture_54 */ +static int hf_lte_rrc_criticalExtensionsFuture_56 = -1; /* T_criticalExtensionsFuture_56 */ static int hf_lte_rrc_dedicatedInfoNASList_r13 = -1; /* SEQUENCE_SIZE_1_maxDRB_NB_r13_OF_DedicatedInfoNAS */ static int hf_lte_rrc_dedicatedInfoNASList_r13_item = -1; /* DedicatedInfoNAS */ static int hf_lte_rrc_radioResourceConfigDedicated_r13_01 = -1; /* RadioResourceConfigDedicated_NB_r13 */ static int hf_lte_rrc_fullConfig_r13 = -1; /* T_fullConfig_r13 */ -static int hf_lte_rrc_nonCriticalExtension_192 = -1; /* T_nonCriticalExtension_70 */ -static int hf_lte_rrc_criticalExtensions_55 = -1; /* T_criticalExtensions_55 */ -static int hf_lte_rrc_rrcConnectionReconfigurationComplete_r13_01 = -1; /* RRCConnectionReconfigurationComplete_NB_r13_IEs */ -static int hf_lte_rrc_criticalExtensionsFuture_55 = -1; /* T_criticalExtensionsFuture_55 */ -static int hf_lte_rrc_nonCriticalExtension_193 = -1; /* T_nonCriticalExtension_71 */ -static int hf_lte_rrc_criticalExtensions_56 = -1; /* T_criticalExtensions_56 */ -static int hf_lte_rrc_c1_57 = -1; /* T_c1_57 */ -static int hf_lte_rrc_rrcConnectionReestablishment_r13_01 = -1; /* RRCConnectionReestablishment_NB_r13_IEs */ -static int hf_lte_rrc_criticalExtensionsFuture_56 = -1; /* T_criticalExtensionsFuture_56 */ static int hf_lte_rrc_nonCriticalExtension_194 = -1; /* T_nonCriticalExtension_72 */ static int hf_lte_rrc_criticalExtensions_57 = -1; /* T_criticalExtensions_57 */ -static int hf_lte_rrc_rrcConnectionReestablishmentComplete_r13_01 = -1; /* RRCConnectionReestablishmentComplete_NB_r13_IEs */ +static int hf_lte_rrc_rrcConnectionReconfigurationComplete_r13_01 = -1; /* RRCConnectionReconfigurationComplete_NB_r13_IEs */ static int hf_lte_rrc_criticalExtensionsFuture_57 = -1; /* T_criticalExtensionsFuture_57 */ static int hf_lte_rrc_nonCriticalExtension_195 = -1; /* T_nonCriticalExtension_73 */ static int hf_lte_rrc_criticalExtensions_58 = -1; /* T_criticalExtensions_58 */ -static int hf_lte_rrc_rrcConnectionReestablishmentRequest_r13_01 = -1; /* RRCConnectionReestablishmentRequest_NB_r13_IEs */ +static int hf_lte_rrc_c1_59 = -1; /* T_c1_59 */ +static int hf_lte_rrc_rrcConnectionReestablishment_r13_01 = -1; /* RRCConnectionReestablishment_NB_r13_IEs */ static int hf_lte_rrc_criticalExtensionsFuture_58 = -1; /* T_criticalExtensionsFuture_58 */ +static int hf_lte_rrc_nonCriticalExtension_196 = -1; /* T_nonCriticalExtension_74 */ +static int hf_lte_rrc_criticalExtensions_59 = -1; /* T_criticalExtensions_59 */ +static int hf_lte_rrc_rrcConnectionReestablishmentComplete_r13_01 = -1; /* RRCConnectionReestablishmentComplete_NB_r13_IEs */ +static int hf_lte_rrc_criticalExtensionsFuture_59 = -1; /* T_criticalExtensionsFuture_59 */ +static int hf_lte_rrc_nonCriticalExtension_197 = -1; /* T_nonCriticalExtension_75 */ +static int hf_lte_rrc_criticalExtensions_60 = -1; /* T_criticalExtensions_60 */ +static int hf_lte_rrc_rrcConnectionReestablishmentRequest_r13_01 = -1; /* RRCConnectionReestablishmentRequest_NB_r13_IEs */ +static int hf_lte_rrc_criticalExtensionsFuture_60 = -1; /* T_criticalExtensionsFuture_60 */ static int hf_lte_rrc_ue_Identity_r13_01 = -1; /* ReestabUE_Identity */ static int hf_lte_rrc_reestablishmentCause_r13 = -1; /* ReestablishmentCause_NB_r13 */ static int hf_lte_rrc_spare_05 = -1; /* BIT_STRING_SIZE_25 */ -static int hf_lte_rrc_criticalExtensions_59 = -1; /* T_criticalExtensions_59 */ -static int hf_lte_rrc_c1_58 = -1; /* T_c1_58 */ +static int hf_lte_rrc_criticalExtensions_61 = -1; /* T_criticalExtensions_61 */ +static int hf_lte_rrc_c1_60 = -1; /* T_c1_60 */ static int hf_lte_rrc_rrcConnectionReject_r13_01 = -1; /* RRCConnectionReject_NB_r13_IEs */ -static int hf_lte_rrc_criticalExtensionsFuture_59 = -1; /* T_criticalExtensionsFuture_59 */ +static int hf_lte_rrc_criticalExtensionsFuture_61 = -1; /* T_criticalExtensionsFuture_61 */ static int hf_lte_rrc_extendedWaitTime_r13 = -1; /* T_extendedWaitTime_r13 */ static int hf_lte_rrc_rrc_SuspendIndication_r13_01 = -1; /* T_rrc_SuspendIndication_r13_01 */ -static int hf_lte_rrc_nonCriticalExtension_196 = -1; /* T_nonCriticalExtension_74 */ -static int hf_lte_rrc_criticalExtensions_60 = -1; /* T_criticalExtensions_60 */ -static int hf_lte_rrc_c1_59 = -1; /* T_c1_59 */ +static int hf_lte_rrc_nonCriticalExtension_198 = -1; /* T_nonCriticalExtension_76 */ +static int hf_lte_rrc_criticalExtensions_62 = -1; /* T_criticalExtensions_62 */ +static int hf_lte_rrc_c1_61 = -1; /* T_c1_61 */ static int hf_lte_rrc_rrcConnectionRelease_r13_01 = -1; /* RRCConnectionRelease_NB_r13_IEs */ -static int hf_lte_rrc_criticalExtensionsFuture_60 = -1; /* T_criticalExtensionsFuture_60 */ +static int hf_lte_rrc_criticalExtensionsFuture_62 = -1; /* T_criticalExtensionsFuture_62 */ static int hf_lte_rrc_releaseCause_r13 = -1; /* ReleaseCause_NB_r13 */ static int hf_lte_rrc_extendedWaitTime_r13_01 = -1; /* T_extendedWaitTime_r13_01 */ static int hf_lte_rrc_redirectedCarrierInfo_r13 = -1; /* RedirectedCarrierInfo_NB_r13 */ -static int hf_lte_rrc_nonCriticalExtension_197 = -1; /* T_nonCriticalExtension_75 */ -static int hf_lte_rrc_criticalExtensions_61 = -1; /* T_criticalExtensions_61 */ +static int hf_lte_rrc_nonCriticalExtension_199 = -1; /* T_nonCriticalExtension_77 */ +static int hf_lte_rrc_criticalExtensions_63 = -1; /* T_criticalExtensions_63 */ static int hf_lte_rrc_rrcConnectionRequest_r13_01 = -1; /* RRCConnectionRequest_NB_r13_IEs */ -static int hf_lte_rrc_criticalExtensionsFuture_61 = -1; /* T_criticalExtensionsFuture_61 */ +static int hf_lte_rrc_criticalExtensionsFuture_63 = -1; /* T_criticalExtensionsFuture_63 */ static int hf_lte_rrc_ue_Identity_r13_02 = -1; /* InitialUE_Identity */ static int hf_lte_rrc_establishmentCause_r13 = -1; /* EstablishmentCause_NB_r13 */ static int hf_lte_rrc_multiToneSupport_r13 = -1; /* T_multiToneSupport_r13 */ static int hf_lte_rrc_multiCarrierSupport_r13 = -1; /* T_multiCarrierSupport_r13 */ static int hf_lte_rrc_spare_06 = -1; /* BIT_STRING_SIZE_22 */ -static int hf_lte_rrc_criticalExtensions_62 = -1; /* T_criticalExtensions_62 */ -static int hf_lte_rrc_c1_60 = -1; /* T_c1_60 */ +static int hf_lte_rrc_criticalExtensions_64 = -1; /* T_criticalExtensions_64 */ +static int hf_lte_rrc_c1_62 = -1; /* T_c1_62 */ static int hf_lte_rrc_rrcConnectionResume_r13_03 = -1; /* RRCConnectionResume_NB_r13_IEs */ -static int hf_lte_rrc_criticalExtensionsFuture_62 = -1; /* T_criticalExtensionsFuture_62 */ +static int hf_lte_rrc_criticalExtensionsFuture_64 = -1; /* T_criticalExtensionsFuture_64 */ static int hf_lte_rrc_drb_ContinueROHC_r13_01 = -1; /* T_drb_ContinueROHC_r13_01 */ -static int hf_lte_rrc_nonCriticalExtension_198 = -1; /* T_nonCriticalExtension_76 */ -static int hf_lte_rrc_criticalExtensions_63 = -1; /* T_criticalExtensions_63 */ +static int hf_lte_rrc_nonCriticalExtension_200 = -1; /* T_nonCriticalExtension_78 */ +static int hf_lte_rrc_criticalExtensions_65 = -1; /* T_criticalExtensions_65 */ static int hf_lte_rrc_rrcConnectionResumeComplete_r13_03 = -1; /* RRCConnectionResumeComplete_NB_r13_IEs */ -static int hf_lte_rrc_criticalExtensionsFuture_63 = -1; /* T_criticalExtensionsFuture_63 */ -static int hf_lte_rrc_nonCriticalExtension_199 = -1; /* T_nonCriticalExtension_77 */ -static int hf_lte_rrc_criticalExtensions_64 = -1; /* T_criticalExtensions_64 */ +static int hf_lte_rrc_criticalExtensionsFuture_65 = -1; /* T_criticalExtensionsFuture_65 */ +static int hf_lte_rrc_nonCriticalExtension_201 = -1; /* T_nonCriticalExtension_79 */ +static int hf_lte_rrc_criticalExtensions_66 = -1; /* T_criticalExtensions_66 */ static int hf_lte_rrc_rrcConnectionResumeRequest_r13_03 = -1; /* RRCConnectionResumeRequest_NB_r13_IEs */ -static int hf_lte_rrc_criticalExtensionsFuture_64 = -1; /* T_criticalExtensionsFuture_64 */ +static int hf_lte_rrc_criticalExtensionsFuture_66 = -1; /* T_criticalExtensionsFuture_66 */ static int hf_lte_rrc_shortResumeMAC_I_r13_01 = -1; /* ShortMAC_I */ static int hf_lte_rrc_resumeCause_r13_01 = -1; /* EstablishmentCause_NB_r13 */ static int hf_lte_rrc_spare_07 = -1; /* BIT_STRING_SIZE_9 */ -static int hf_lte_rrc_criticalExtensions_65 = -1; /* T_criticalExtensions_65 */ -static int hf_lte_rrc_c1_61 = -1; /* T_c1_61 */ +static int hf_lte_rrc_criticalExtensions_67 = -1; /* T_criticalExtensions_67 */ +static int hf_lte_rrc_c1_63 = -1; /* T_c1_63 */ static int hf_lte_rrc_rrcConnectionSetup_r13_01 = -1; /* RRCConnectionSetup_NB_r13_IEs */ -static int hf_lte_rrc_criticalExtensionsFuture_65 = -1; /* T_criticalExtensionsFuture_65 */ -static int hf_lte_rrc_nonCriticalExtension_200 = -1; /* T_nonCriticalExtension_78 */ -static int hf_lte_rrc_criticalExtensions_66 = -1; /* T_criticalExtensions_66 */ +static int hf_lte_rrc_criticalExtensionsFuture_67 = -1; /* T_criticalExtensionsFuture_67 */ +static int hf_lte_rrc_nonCriticalExtension_202 = -1; /* T_nonCriticalExtension_80 */ +static int hf_lte_rrc_criticalExtensions_68 = -1; /* T_criticalExtensions_68 */ static int hf_lte_rrc_rrcConnectionSetupComplete_r13_01 = -1; /* RRCConnectionSetupComplete_NB_r13_IEs */ -static int hf_lte_rrc_criticalExtensionsFuture_66 = -1; /* T_criticalExtensionsFuture_66 */ +static int hf_lte_rrc_criticalExtensionsFuture_68 = -1; /* T_criticalExtensionsFuture_68 */ static int hf_lte_rrc_registeredMME_r13 = -1; /* RegisteredMME */ static int hf_lte_rrc_attachWithoutPDN_Connectivity_r13_02 = -1; /* T_attachWithoutPDN_Connectivity_r13_02 */ static int hf_lte_rrc_up_CIoT_EPS_Optimisation_r13_02 = -1; /* T_up_CIoT_EPS_Optimisation_r13_02 */ -static int hf_lte_rrc_nonCriticalExtension_201 = -1; /* T_nonCriticalExtension_79 */ -static int hf_lte_rrc_criticalExtensions_67 = -1; /* T_criticalExtensions_67 */ +static int hf_lte_rrc_nonCriticalExtension_203 = -1; /* T_nonCriticalExtension_81 */ +static int hf_lte_rrc_criticalExtensions_69 = -1; /* T_criticalExtensions_69 */ static int hf_lte_rrc_systemInformation_r13_01 = -1; /* SystemInformation_NB_r13_IEs */ -static int hf_lte_rrc_criticalExtensionsFuture_67 = -1; /* T_criticalExtensionsFuture_67 */ +static int hf_lte_rrc_criticalExtensionsFuture_69 = -1; /* T_criticalExtensionsFuture_69 */ static int hf_lte_rrc_sib_TypeAndInfo_r13 = -1; /* T_sib_TypeAndInfo_r13 */ static int hf_lte_rrc_sib_TypeAndInfo_r13_item = -1; /* T_sib_TypeAndInfo_r13_item */ static int hf_lte_rrc_sib2_r13 = -1; /* SystemInformationBlockType2_NB_r13 */ @@ -4459,7 +4474,7 @@ static int hf_lte_rrc_sib4_r13 = -1; /* SystemInformationBlockType4 static int hf_lte_rrc_sib5_r13 = -1; /* SystemInformationBlockType5_NB_r13 */ static int hf_lte_rrc_sib14_r13 = -1; /* SystemInformationBlockType14_NB_r13 */ static int hf_lte_rrc_sib16_r13 = -1; /* SystemInformationBlockType16_NB_r13 */ -static int hf_lte_rrc_nonCriticalExtension_202 = -1; /* T_nonCriticalExtension_80 */ +static int hf_lte_rrc_nonCriticalExtension_204 = -1; /* T_nonCriticalExtension_82 */ static int hf_lte_rrc_hyperSFN_MSB_r13 = -1; /* BIT_STRING_SIZE_8 */ static int hf_lte_rrc_cellAccessRelatedInfo_r13 = -1; /* T_cellAccessRelatedInfo_r13 */ static int hf_lte_rrc_plmn_IdentityList_r13_01 = -1; /* PLMN_IdentityList_NB_r13 */ @@ -4479,7 +4494,7 @@ static int hf_lte_rrc_schedulingInfoList_r13 = -1; /* SchedulingInfoList_NB_r13 static int hf_lte_rrc_si_WindowLength_r13 = -1; /* T_si_WindowLength_r13 */ static int hf_lte_rrc_si_RadioFrameOffset_r13 = -1; /* INTEGER_1_15 */ static int hf_lte_rrc_systemInfoValueTagList_r13_01 = -1; /* SystemInfoValueTagList_NB_r13 */ -static int hf_lte_rrc_nonCriticalExtension_203 = -1; /* T_nonCriticalExtension_81 */ +static int hf_lte_rrc_nonCriticalExtension_205 = -1; /* T_nonCriticalExtension_83 */ static int hf_lte_rrc_PLMN_IdentityList_NB_r13_item = -1; /* PLMN_IdentityInfo_NB_r13 */ static int hf_lte_rrc_plmn_Identity_r13 = -1; /* PLMN_Identity */ static int hf_lte_rrc_cellReservedForOperatorUse_r13 = -1; /* T_cellReservedForOperatorUse_r13 */ @@ -4491,21 +4506,21 @@ static int hf_lte_rrc_sib_MappingInfo_r13 = -1; /* SIB_MappingInfo_NB_r13 */ static int hf_lte_rrc_si_TB_r13 = -1; /* T_si_TB_r13 */ static int hf_lte_rrc_SystemInfoValueTagList_NB_r13_item = -1; /* SystemInfoValueTagSI_r13 */ static int hf_lte_rrc_SIB_MappingInfo_NB_r13_item = -1; /* SIB_Type_NB_r13 */ -static int hf_lte_rrc_criticalExtensions_68 = -1; /* T_criticalExtensions_68 */ -static int hf_lte_rrc_c1_62 = -1; /* T_c1_62 */ +static int hf_lte_rrc_criticalExtensions_70 = -1; /* T_criticalExtensions_70 */ +static int hf_lte_rrc_c1_64 = -1; /* T_c1_64 */ static int hf_lte_rrc_ueCapabilityEnquiry_r13_01 = -1; /* UECapabilityEnquiry_NB_r13_IEs */ -static int hf_lte_rrc_criticalExtensionsFuture_68 = -1; /* T_criticalExtensionsFuture_68 */ -static int hf_lte_rrc_nonCriticalExtension_204 = -1; /* T_nonCriticalExtension_82 */ -static int hf_lte_rrc_criticalExtensions_69 = -1; /* T_criticalExtensions_69 */ +static int hf_lte_rrc_criticalExtensionsFuture_70 = -1; /* T_criticalExtensionsFuture_70 */ +static int hf_lte_rrc_nonCriticalExtension_206 = -1; /* T_nonCriticalExtension_84 */ +static int hf_lte_rrc_criticalExtensions_71 = -1; /* T_criticalExtensions_71 */ static int hf_lte_rrc_ueCapabilityInformation_r13_01 = -1; /* UECapabilityInformation_NB_r13_IEs */ -static int hf_lte_rrc_criticalExtensionsFuture_69 = -1; /* T_criticalExtensionsFuture_69 */ +static int hf_lte_rrc_criticalExtensionsFuture_71 = -1; /* T_criticalExtensionsFuture_71 */ static int hf_lte_rrc_ue_Capability_Container_r13 = -1; /* UE_Capability_NB_r13 */ -static int hf_lte_rrc_ue_RadioPagingInfo_r13 = -1; /* UE_RadioPagingInfo_NB_r13 */ -static int hf_lte_rrc_nonCriticalExtension_205 = -1; /* T_nonCriticalExtension_83 */ -static int hf_lte_rrc_criticalExtensions_70 = -1; /* T_criticalExtensions_70 */ +static int hf_lte_rrc_ue_RadioPagingInfo_r13_01 = -1; /* UE_RadioPagingInfo_NB_r13 */ +static int hf_lte_rrc_nonCriticalExtension_207 = -1; /* T_nonCriticalExtension_85 */ +static int hf_lte_rrc_criticalExtensions_72 = -1; /* T_criticalExtensions_72 */ static int hf_lte_rrc_ulInformationTransfer_r13_01 = -1; /* ULInformationTransfer_NB_r13_IEs */ -static int hf_lte_rrc_criticalExtensionsFuture_70 = -1; /* T_criticalExtensionsFuture_70 */ -static int hf_lte_rrc_nonCriticalExtension_206 = -1; /* T_nonCriticalExtension_84 */ +static int hf_lte_rrc_criticalExtensionsFuture_72 = -1; /* T_criticalExtensionsFuture_72 */ +static int hf_lte_rrc_nonCriticalExtension_208 = -1; /* T_nonCriticalExtension_86 */ static int hf_lte_rrc_radioResourceConfigCommon_r13 = -1; /* RadioResourceConfigCommonSIB_NB_r13 */ static int hf_lte_rrc_ue_TimersAndConstants_r13 = -1; /* UE_TimersAndConstants_NB_r13 */ static int hf_lte_rrc_freqInfo_r13_01 = -1; /* T_freqInfo_r13_01 */ @@ -4640,7 +4655,7 @@ static int hf_lte_rrc_uplinkPowerControlCommon_r13 = -1; /* UplinkPowerControlC static int hf_lte_rrc_modificationPeriodCoeff_r13 = -1; /* T_modificationPeriodCoeff_r13 */ static int hf_lte_rrc_defaultPagingCycle_r13 = -1; /* T_defaultPagingCycle_r13 */ static int hf_lte_rrc_nB_r13 = -1; /* T_nB_r13 */ -static int hf_lte_rrc_npdcch_NumRepetitionPaging_r13 = -1; /* T_npdcch_NumRepetitionPaging_r13 */ +static int hf_lte_rrc_npdcch_NumRepetitionPaging_r13_01 = -1; /* T_npdcch_NumRepetitionPaging_r13 */ static int hf_lte_rrc_srb_ToAddModList_r13 = -1; /* SRB_ToAddModList_NB_r13 */ static int hf_lte_rrc_drb_ToAddModList_r13 = -1; /* DRB_ToAddModList_NB_r13 */ static int hf_lte_rrc_drb_ToReleaseList_r13 = -1; /* DRB_ToReleaseList_NB_r13 */ @@ -4687,7 +4702,7 @@ static int hf_lte_rrc_multipleDRB_r13 = -1; /* T_multipleDRB_r13 */ static int hf_lte_rrc_pdcp_Parameters_r13 = -1; /* PDCP_Parameters_NB_r13 */ static int hf_lte_rrc_phyLayerParameters_r13 = -1; /* PhyLayerParameters_NB_r13 */ static int hf_lte_rrc_rf_Parameters_r13 = -1; /* RF_Parameters_NB_r13 */ -static int hf_lte_rrc_nonCriticalExtension_207 = -1; /* T_nonCriticalExtension_85 */ +static int hf_lte_rrc_nonCriticalExtension_209 = -1; /* T_nonCriticalExtension_87 */ static int hf_lte_rrc_supportedROHC_Profiles_r13 = -1; /* T_supportedROHC_Profiles_r13 */ static int hf_lte_rrc_maxNumberROHC_ContextSessions_r13 = -1; /* T_maxNumberROHC_ContextSessions_r13 */ static int hf_lte_rrc_multiTone_r13 = -1; /* T_multiTone_r13 */ @@ -6786,12 +6801,24 @@ static gint ett_lte_rrc_T_c1_47 = -1; static gint ett_lte_rrc_T_criticalExtensionsFuture_51 = -1; static gint ett_lte_rrc_HandoverPreparationInformation_NB_IEs = -1; static gint ett_lte_rrc_T_nonCriticalExtension_66 = -1; -static gint ett_lte_rrc_UERadioAccessCapabilityInformation_NB = -1; +static gint ett_lte_rrc_UEPagingCoverageInformation_NB = -1; static gint ett_lte_rrc_T_criticalExtensions_52 = -1; static gint ett_lte_rrc_T_c1_48 = -1; static gint ett_lte_rrc_T_criticalExtensionsFuture_52 = -1; -static gint ett_lte_rrc_UERadioAccessCapabilityInformation_NB_IEs = -1; +static gint ett_lte_rrc_UEPagingCoverageInformation_NB_IEs = -1; static gint ett_lte_rrc_T_nonCriticalExtension_67 = -1; +static gint ett_lte_rrc_UERadioAccessCapabilityInformation_NB = -1; +static gint ett_lte_rrc_T_criticalExtensions_53 = -1; +static gint ett_lte_rrc_T_c1_49 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_53 = -1; +static gint ett_lte_rrc_UERadioAccessCapabilityInformation_NB_IEs = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_68 = -1; +static gint ett_lte_rrc_UERadioPagingInformation_NB = -1; +static gint ett_lte_rrc_T_criticalExtensions_54 = -1; +static gint ett_lte_rrc_T_c1_50 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_54 = -1; +static gint ett_lte_rrc_UERadioPagingInformation_NB_IEs = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_69 = -1; static gint ett_lte_rrc_AS_Config_NB = -1; static gint ett_lte_rrc_AS_Context_NB = -1; static gint ett_lte_rrc_ReestablishmentInfo_NB = -1; @@ -6799,34 +6826,34 @@ static gint ett_lte_rrc_RRM_Config_NB = -1; static gint ett_lte_rrc_BCCH_BCH_Message_NB = -1; static gint ett_lte_rrc_BCCH_DL_SCH_Message_NB = -1; static gint ett_lte_rrc_BCCH_DL_SCH_MessageType_NB = -1; -static gint ett_lte_rrc_T_c1_49 = -1; +static gint ett_lte_rrc_T_c1_51 = -1; static gint ett_lte_rrc_T_messageClassExtension_09 = -1; static gint ett_lte_rrc_PCCH_Message_NB = -1; static gint ett_lte_rrc_PCCH_MessageType_NB = -1; -static gint ett_lte_rrc_T_c1_50 = -1; +static gint ett_lte_rrc_T_c1_52 = -1; static gint ett_lte_rrc_T_messageClassExtension_10 = -1; static gint ett_lte_rrc_DL_CCCH_Message_NB = -1; static gint ett_lte_rrc_DL_CCCH_MessageType_NB = -1; -static gint ett_lte_rrc_T_c1_51 = -1; +static gint ett_lte_rrc_T_c1_53 = -1; static gint ett_lte_rrc_T_messageClassExtension_11 = -1; static gint ett_lte_rrc_DL_DCCH_Message_NB = -1; static gint ett_lte_rrc_DL_DCCH_MessageType_NB = -1; -static gint ett_lte_rrc_T_c1_52 = -1; +static gint ett_lte_rrc_T_c1_54 = -1; static gint ett_lte_rrc_T_messageClassExtension_12 = -1; static gint ett_lte_rrc_UL_CCCH_Message_NB = -1; static gint ett_lte_rrc_UL_CCCH_MessageType_NB = -1; -static gint ett_lte_rrc_T_c1_53 = -1; +static gint ett_lte_rrc_T_c1_55 = -1; static gint ett_lte_rrc_T_messageClassExtension_13 = -1; static gint ett_lte_rrc_UL_DCCH_Message_NB = -1; static gint ett_lte_rrc_UL_DCCH_MessageType_NB = -1; -static gint ett_lte_rrc_T_c1_54 = -1; +static gint ett_lte_rrc_T_c1_56 = -1; static gint ett_lte_rrc_T_messageClassExtension_14 = -1; static gint ett_lte_rrc_DLInformationTransfer_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_53 = -1; -static gint ett_lte_rrc_T_c1_55 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_53 = -1; +static gint ett_lte_rrc_T_criticalExtensions_55 = -1; +static gint ett_lte_rrc_T_c1_57 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_55 = -1; static gint ett_lte_rrc_DLInformationTransfer_NB_r13_IEs = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_68 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_70 = -1; static gint ett_lte_rrc_MasterInformationBlock_NB = -1; static gint ett_lte_rrc_T_operationModeInfo_r13 = -1; static gint ett_lte_rrc_Guardband_NB_r13 = -1; @@ -6834,89 +6861,89 @@ static gint ett_lte_rrc_Inband_SamePCI_NB_r13 = -1; static gint ett_lte_rrc_Inband_DifferentPCI_NB_r13 = -1; static gint ett_lte_rrc_Standalone_NB_r13 = -1; static gint ett_lte_rrc_Paging_NB = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_69 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_71 = -1; static gint ett_lte_rrc_PagingRecordList_NB_r13 = -1; static gint ett_lte_rrc_PagingRecord_NB_r13 = -1; static gint ett_lte_rrc_RRCConnectionReconfiguration_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_54 = -1; -static gint ett_lte_rrc_T_c1_56 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_54 = -1; +static gint ett_lte_rrc_T_criticalExtensions_56 = -1; +static gint ett_lte_rrc_T_c1_58 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_56 = -1; static gint ett_lte_rrc_RRCConnectionReconfiguration_NB_r13_IEs = -1; static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxDRB_NB_r13_OF_DedicatedInfoNAS = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_70 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_72 = -1; static gint ett_lte_rrc_RRCConnectionReconfigurationComplete_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_55 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_55 = -1; +static gint ett_lte_rrc_T_criticalExtensions_57 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_57 = -1; static gint ett_lte_rrc_RRCConnectionReconfigurationComplete_NB_r13_IEs = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_71 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_73 = -1; static gint ett_lte_rrc_RRCConnectionReestablishment_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_56 = -1; -static gint ett_lte_rrc_T_c1_57 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_56 = -1; +static gint ett_lte_rrc_T_criticalExtensions_58 = -1; +static gint ett_lte_rrc_T_c1_59 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_58 = -1; static gint ett_lte_rrc_RRCConnectionReestablishment_NB_r13_IEs = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_72 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_74 = -1; static gint ett_lte_rrc_RRCConnectionReestablishmentComplete_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_57 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_57 = -1; +static gint ett_lte_rrc_T_criticalExtensions_59 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_59 = -1; static gint ett_lte_rrc_RRCConnectionReestablishmentComplete_NB_r13_IEs = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_73 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_75 = -1; static gint ett_lte_rrc_RRCConnectionReestablishmentRequest_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_58 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_58 = -1; +static gint ett_lte_rrc_T_criticalExtensions_60 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_60 = -1; static gint ett_lte_rrc_RRCConnectionReestablishmentRequest_NB_r13_IEs = -1; static gint ett_lte_rrc_RRCConnectionReject_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_59 = -1; -static gint ett_lte_rrc_T_c1_58 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_59 = -1; +static gint ett_lte_rrc_T_criticalExtensions_61 = -1; +static gint ett_lte_rrc_T_c1_60 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_61 = -1; static gint ett_lte_rrc_RRCConnectionReject_NB_r13_IEs = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_74 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_76 = -1; static gint ett_lte_rrc_RRCConnectionRelease_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_60 = -1; -static gint ett_lte_rrc_T_c1_59 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_60 = -1; +static gint ett_lte_rrc_T_criticalExtensions_62 = -1; +static gint ett_lte_rrc_T_c1_61 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_62 = -1; static gint ett_lte_rrc_RRCConnectionRelease_NB_r13_IEs = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_75 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_77 = -1; static gint ett_lte_rrc_RRCConnectionRequest_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_61 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_61 = -1; +static gint ett_lte_rrc_T_criticalExtensions_63 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_63 = -1; static gint ett_lte_rrc_RRCConnectionRequest_NB_r13_IEs = -1; static gint ett_lte_rrc_RRCConnectionResume_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_62 = -1; -static gint ett_lte_rrc_T_c1_60 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_62 = -1; +static gint ett_lte_rrc_T_criticalExtensions_64 = -1; +static gint ett_lte_rrc_T_c1_62 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_64 = -1; static gint ett_lte_rrc_RRCConnectionResume_NB_r13_IEs = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_76 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_78 = -1; static gint ett_lte_rrc_RRCConnectionResumeComplete_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_63 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_63 = -1; +static gint ett_lte_rrc_T_criticalExtensions_65 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_65 = -1; static gint ett_lte_rrc_RRCConnectionResumeComplete_NB_r13_IEs = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_77 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_79 = -1; static gint ett_lte_rrc_RRCConnectionResumeRequest_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_64 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_64 = -1; +static gint ett_lte_rrc_T_criticalExtensions_66 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_66 = -1; static gint ett_lte_rrc_RRCConnectionResumeRequest_NB_r13_IEs = -1; static gint ett_lte_rrc_RRCConnectionSetup_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_65 = -1; -static gint ett_lte_rrc_T_c1_61 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_65 = -1; +static gint ett_lte_rrc_T_criticalExtensions_67 = -1; +static gint ett_lte_rrc_T_c1_63 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_67 = -1; static gint ett_lte_rrc_RRCConnectionSetup_NB_r13_IEs = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_78 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_80 = -1; static gint ett_lte_rrc_RRCConnectionSetupComplete_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_66 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_66 = -1; +static gint ett_lte_rrc_T_criticalExtensions_68 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_68 = -1; static gint ett_lte_rrc_RRCConnectionSetupComplete_NB_r13_IEs = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_79 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_81 = -1; static gint ett_lte_rrc_SystemInformation_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_67 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_67 = -1; +static gint ett_lte_rrc_T_criticalExtensions_69 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_69 = -1; static gint ett_lte_rrc_SystemInformation_NB_r13_IEs = -1; static gint ett_lte_rrc_T_sib_TypeAndInfo_r13 = -1; static gint ett_lte_rrc_T_sib_TypeAndInfo_r13_item = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_80 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_82 = -1; static gint ett_lte_rrc_SystemInformationBlockType1_NB = -1; static gint ett_lte_rrc_T_cellAccessRelatedInfo_r13 = -1; static gint ett_lte_rrc_T_cellSelectionInfo_r13 = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_81 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_83 = -1; static gint ett_lte_rrc_PLMN_IdentityList_NB_r13 = -1; static gint ett_lte_rrc_PLMN_IdentityInfo_NB_r13 = -1; static gint ett_lte_rrc_SchedulingInfoList_NB_r13 = -1; @@ -6924,21 +6951,21 @@ static gint ett_lte_rrc_SchedulingInfo_NB_r13 = -1; static gint ett_lte_rrc_SystemInfoValueTagList_NB_r13 = -1; static gint ett_lte_rrc_SIB_MappingInfo_NB_r13 = -1; static gint ett_lte_rrc_UECapabilityEnquiry_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_68 = -1; -static gint ett_lte_rrc_T_c1_62 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_68 = -1; +static gint ett_lte_rrc_T_criticalExtensions_70 = -1; +static gint ett_lte_rrc_T_c1_64 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_70 = -1; static gint ett_lte_rrc_UECapabilityEnquiry_NB_r13_IEs = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_82 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_84 = -1; static gint ett_lte_rrc_UECapabilityInformation_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_69 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_69 = -1; +static gint ett_lte_rrc_T_criticalExtensions_71 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_71 = -1; static gint ett_lte_rrc_UECapabilityInformation_NB_r13_IEs = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_83 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_85 = -1; static gint ett_lte_rrc_ULInformationTransfer_NB = -1; -static gint ett_lte_rrc_T_criticalExtensions_70 = -1; -static gint ett_lte_rrc_T_criticalExtensionsFuture_70 = -1; +static gint ett_lte_rrc_T_criticalExtensions_72 = -1; +static gint ett_lte_rrc_T_criticalExtensionsFuture_72 = -1; static gint ett_lte_rrc_ULInformationTransfer_NB_r13_IEs = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_84 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_86 = -1; static gint ett_lte_rrc_SystemInformationBlockType2_NB_r13 = -1; static gint ett_lte_rrc_T_freqInfo_r13_01 = -1; static gint ett_lte_rrc_AdditionalSpectrumEmission_r13 = -1; @@ -7021,7 +7048,7 @@ static gint ett_lte_rrc_MultiBandInfo_NB_r13 = -1; static gint ett_lte_rrc_NS_PmaxList_NB_r13 = -1; static gint ett_lte_rrc_NS_PmaxValue_NB_r13 = -1; static gint ett_lte_rrc_UE_Capability_NB_r13 = -1; -static gint ett_lte_rrc_T_nonCriticalExtension_85 = -1; +static gint ett_lte_rrc_T_nonCriticalExtension_87 = -1; static gint ett_lte_rrc_PDCP_Parameters_NB_r13 = -1; static gint ett_lte_rrc_T_supportedROHC_Profiles_r13 = -1; static gint ett_lte_rrc_PhyLayerParameters_NB_r13 = -1; @@ -9675,6 +9702,7 @@ static int dissect_SystemInformationBlockType6_v8h0_IEs_PDU(tvbuff_t *tvb _U_, p static int dissect_UE_EUTRA_Capability_v10j0_IEs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); static int dissect_UE_EUTRA_Capability_v9a0_IEs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); static int dissect_UE_Capability_NB_r13_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +static int dissect_UE_RadioPagingInfo_NB_r13_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); @@ -62599,14 +62627,14 @@ dissect_lte_rrc_RF_Parameters_NB_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx } -static const per_sequence_t T_nonCriticalExtension_85_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_87_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_85(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_87(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_85, T_nonCriticalExtension_85_sequence); + ett_lte_rrc_T_nonCriticalExtension_87, T_nonCriticalExtension_87_sequence); return offset; } @@ -62619,7 +62647,7 @@ static const per_sequence_t UE_Capability_NB_r13_sequence[] = { { &hf_lte_rrc_pdcp_Parameters_r13, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_PDCP_Parameters_NB_r13 }, { &hf_lte_rrc_phyLayerParameters_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_PhyLayerParameters_NB_r13 }, { &hf_lte_rrc_rf_Parameters_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RF_Parameters_NB_r13 }, - { &hf_lte_rrc_nonCriticalExtension_207, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_85 }, + { &hf_lte_rrc_nonCriticalExtension_209, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_87 }, { NULL, 0, 0, NULL } }; @@ -64347,9 +64375,9 @@ dissect_lte_rrc_HandoverPreparationInformation_NB(tvbuff_t *tvb _U_, int offset static int -dissect_lte_rrc_T_ue_RadioAccessCapabilityInfo_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_octet_string_containing_pdu_new(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, FALSE, dissect_UE_Capability_NB_r13_PDU); +dissect_lte_rrc_INTEGER_1_2048(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 2048U, NULL, FALSE); return offset; } @@ -64368,23 +64396,23 @@ dissect_lte_rrc_T_nonCriticalExtension_67(tvbuff_t *tvb _U_, int offset _U_, asn } -static const per_sequence_t UERadioAccessCapabilityInformation_NB_IEs_sequence[] = { - { &hf_lte_rrc_ue_RadioAccessCapabilityInfo_r13_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_ue_RadioAccessCapabilityInfo_r13 }, +static const per_sequence_t UEPagingCoverageInformation_NB_IEs_sequence[] = { + { &hf_lte_rrc_npdcch_NumRepetitionPaging_r13, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_INTEGER_1_2048 }, { &hf_lte_rrc_nonCriticalExtension_189, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_67 }, { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_UERadioAccessCapabilityInformation_NB_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_UEPagingCoverageInformation_NB_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_UERadioAccessCapabilityInformation_NB_IEs, UERadioAccessCapabilityInformation_NB_IEs_sequence); + ett_lte_rrc_UEPagingCoverageInformation_NB_IEs, UEPagingCoverageInformation_NB_IEs_sequence); return offset; } static const value_string lte_rrc_T_c1_48_vals[] = { - { 0, "ueRadioAccessCapabilityInformation-r13" }, + { 0, "uePagingCoverageInformation-r13" }, { 1, "spare3" }, { 2, "spare2" }, { 3, "spare1" }, @@ -64392,7 +64420,7 @@ static const value_string lte_rrc_T_c1_48_vals[] = { }; static const per_choice_t T_c1_48_choice[] = { - { 0, &hf_lte_rrc_ueRadioAccessCapabilityInformation_r13, ASN1_NO_EXTENSIONS , dissect_lte_rrc_UERadioAccessCapabilityInformation_NB_IEs }, + { 0, &hf_lte_rrc_uePagingCoverageInformation_r13_01, ASN1_NO_EXTENSIONS , dissect_lte_rrc_UEPagingCoverageInformation_NB_IEs }, { 1, &hf_lte_rrc_spare3 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_NULL }, { 2, &hf_lte_rrc_spare2 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_NULL }, { 3, &hf_lte_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_NULL }, @@ -64444,12 +64472,125 @@ dissect_lte_rrc_T_criticalExtensions_52(tvbuff_t *tvb _U_, int offset _U_, asn1_ } -static const per_sequence_t UERadioAccessCapabilityInformation_NB_sequence[] = { +static const per_sequence_t UEPagingCoverageInformation_NB_sequence[] = { { &hf_lte_rrc_criticalExtensions_52, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_52 }, { NULL, 0, 0, NULL } }; static int +dissect_lte_rrc_UEPagingCoverageInformation_NB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_lte_rrc_UEPagingCoverageInformation_NB, UEPagingCoverageInformation_NB_sequence); + + return offset; +} + + + +static int +dissect_lte_rrc_T_ue_RadioAccessCapabilityInfo_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string_containing_pdu_new(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, dissect_UE_Capability_NB_r13_PDU); + + return offset; +} + + +static const per_sequence_t T_nonCriticalExtension_68_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_lte_rrc_T_nonCriticalExtension_68(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_lte_rrc_T_nonCriticalExtension_68, T_nonCriticalExtension_68_sequence); + + return offset; +} + + +static const per_sequence_t UERadioAccessCapabilityInformation_NB_IEs_sequence[] = { + { &hf_lte_rrc_ue_RadioAccessCapabilityInfo_r13_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_ue_RadioAccessCapabilityInfo_r13 }, + { &hf_lte_rrc_nonCriticalExtension_190, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_68 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_lte_rrc_UERadioAccessCapabilityInformation_NB_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_lte_rrc_UERadioAccessCapabilityInformation_NB_IEs, UERadioAccessCapabilityInformation_NB_IEs_sequence); + + return offset; +} + + +static const value_string lte_rrc_T_c1_49_vals[] = { + { 0, "ueRadioAccessCapabilityInformation-r13" }, + { 1, "spare3" }, + { 2, "spare2" }, + { 3, "spare1" }, + { 0, NULL } +}; + +static const per_choice_t T_c1_49_choice[] = { + { 0, &hf_lte_rrc_ueRadioAccessCapabilityInformation_r13, ASN1_NO_EXTENSIONS , dissect_lte_rrc_UERadioAccessCapabilityInformation_NB_IEs }, + { 1, &hf_lte_rrc_spare3 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_NULL }, + { 2, &hf_lte_rrc_spare2 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_NULL }, + { 3, &hf_lte_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_lte_rrc_T_c1_49(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_lte_rrc_T_c1_49, T_c1_49_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_53_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_lte_rrc_T_criticalExtensionsFuture_53(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_lte_rrc_T_criticalExtensionsFuture_53, T_criticalExtensionsFuture_53_sequence); + + return offset; +} + + +static const value_string lte_rrc_T_criticalExtensions_53_vals[] = { + { 0, "c1" }, + { 1, "criticalExtensionsFuture" }, + { 0, NULL } +}; + +static const per_choice_t T_criticalExtensions_53_choice[] = { + { 0, &hf_lte_rrc_c1_49 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_49 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_53, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_53 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_lte_rrc_T_criticalExtensions_53(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_lte_rrc_T_criticalExtensions_53, T_criticalExtensions_53_choice, + NULL); + + return offset; +} + + +static const per_sequence_t UERadioAccessCapabilityInformation_NB_sequence[] = { + { &hf_lte_rrc_criticalExtensions_53, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_53 }, + { NULL, 0, 0, NULL } +}; + +static int dissect_lte_rrc_UERadioAccessCapabilityInformation_NB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_lte_rrc_UERadioAccessCapabilityInformation_NB, UERadioAccessCapabilityInformation_NB_sequence); @@ -64458,6 +64599,119 @@ dissect_lte_rrc_UERadioAccessCapabilityInformation_NB(tvbuff_t *tvb _U_, int off } + +static int +dissect_lte_rrc_T_ue_RadioPagingInfo_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string_containing_pdu_new(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, dissect_UE_RadioPagingInfo_NB_r13_PDU); + + return offset; +} + + +static const per_sequence_t T_nonCriticalExtension_69_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_lte_rrc_T_nonCriticalExtension_69(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_lte_rrc_T_nonCriticalExtension_69, T_nonCriticalExtension_69_sequence); + + return offset; +} + + +static const per_sequence_t UERadioPagingInformation_NB_IEs_sequence[] = { + { &hf_lte_rrc_ue_RadioPagingInfo_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_ue_RadioPagingInfo_r13 }, + { &hf_lte_rrc_nonCriticalExtension_191, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_69 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_lte_rrc_UERadioPagingInformation_NB_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_lte_rrc_UERadioPagingInformation_NB_IEs, UERadioPagingInformation_NB_IEs_sequence); + + return offset; +} + + +static const value_string lte_rrc_T_c1_50_vals[] = { + { 0, "ueRadioPagingInformation-r13" }, + { 1, "spare3" }, + { 2, "spare2" }, + { 3, "spare1" }, + { 0, NULL } +}; + +static const per_choice_t T_c1_50_choice[] = { + { 0, &hf_lte_rrc_ueRadioPagingInformation_r13, ASN1_NO_EXTENSIONS , dissect_lte_rrc_UERadioPagingInformation_NB_IEs }, + { 1, &hf_lte_rrc_spare3 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_NULL }, + { 2, &hf_lte_rrc_spare2 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_NULL }, + { 3, &hf_lte_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_lte_rrc_T_c1_50(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_lte_rrc_T_c1_50, T_c1_50_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_54_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_lte_rrc_T_criticalExtensionsFuture_54(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_lte_rrc_T_criticalExtensionsFuture_54, T_criticalExtensionsFuture_54_sequence); + + return offset; +} + + +static const value_string lte_rrc_T_criticalExtensions_54_vals[] = { + { 0, "c1" }, + { 1, "criticalExtensionsFuture" }, + { 0, NULL } +}; + +static const per_choice_t T_criticalExtensions_54_choice[] = { + { 0, &hf_lte_rrc_c1_50 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_50 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_54, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_54 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_lte_rrc_T_criticalExtensions_54(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_lte_rrc_T_criticalExtensions_54, T_criticalExtensions_54_choice, + NULL); + + return offset; +} + + +static const per_sequence_t UERadioPagingInformation_NB_sequence[] = { + { &hf_lte_rrc_criticalExtensions_54, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_54 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_lte_rrc_UERadioPagingInformation_NB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_lte_rrc_UERadioPagingInformation_NB, UERadioPagingInformation_NB_sequence); + + return offset; +} + + static const per_sequence_t Inband_SamePCI_NB_r13_sequence[] = { { &hf_lte_rrc_eutra_CRS_SequenceInfo_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_INTEGER_0_31 }, { NULL, 0, 0, NULL } @@ -64838,7 +65092,7 @@ dissect_lte_rrc_T_npdcch_NumRepetitionPaging_r13(tvbuff_t *tvb _U_, int offset _ static const per_sequence_t PCCH_Config_NB_r13_sequence[] = { { &hf_lte_rrc_defaultPagingCycle_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_defaultPagingCycle_r13 }, { &hf_lte_rrc_nB_r13 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_nB_r13 }, - { &hf_lte_rrc_npdcch_NumRepetitionPaging_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_npdcch_NumRepetitionPaging_r13 }, + { &hf_lte_rrc_npdcch_NumRepetitionPaging_r13_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_npdcch_NumRepetitionPaging_r13 }, { NULL, 0, 0, NULL } }; @@ -66024,14 +66278,14 @@ dissect_lte_rrc_T_sib_TypeAndInfo_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ct } -static const per_sequence_t T_nonCriticalExtension_80_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_82_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_80(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_82(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_80, T_nonCriticalExtension_80_sequence); + ett_lte_rrc_T_nonCriticalExtension_82, T_nonCriticalExtension_82_sequence); return offset; } @@ -66040,7 +66294,7 @@ dissect_lte_rrc_T_nonCriticalExtension_80(tvbuff_t *tvb _U_, int offset _U_, asn static const per_sequence_t SystemInformation_NB_r13_IEs_sequence[] = { { &hf_lte_rrc_sib_TypeAndInfo_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_sib_TypeAndInfo_r13 }, { &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING }, - { &hf_lte_rrc_nonCriticalExtension_202, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_80 }, + { &hf_lte_rrc_nonCriticalExtension_204, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_82 }, { NULL, 0, 0, NULL } }; @@ -66053,35 +66307,35 @@ dissect_lte_rrc_SystemInformation_NB_r13_IEs(tvbuff_t *tvb _U_, int offset _U_, } -static const per_sequence_t T_criticalExtensionsFuture_67_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_69_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_67(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_69(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_67, T_criticalExtensionsFuture_67_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_69, T_criticalExtensionsFuture_69_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_67_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_69_vals[] = { { 0, "systemInformation-r13" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_67_choice[] = { +static const per_choice_t T_criticalExtensions_69_choice[] = { { 0, &hf_lte_rrc_systemInformation_r13_01, ASN1_NO_EXTENSIONS , dissect_lte_rrc_SystemInformation_NB_r13_IEs }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_67, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_67 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_69, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_69 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_67(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_69(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_67, T_criticalExtensions_67_choice, + ett_lte_rrc_T_criticalExtensions_69, T_criticalExtensions_69_choice, NULL); return offset; @@ -66089,7 +66343,7 @@ dissect_lte_rrc_T_criticalExtensions_67(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t SystemInformation_NB_sequence[] = { - { &hf_lte_rrc_criticalExtensions_67, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_67 }, + { &hf_lte_rrc_criticalExtensions_69, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_69 }, { NULL, 0, 0, NULL } }; @@ -66445,14 +66699,14 @@ dissect_lte_rrc_SystemInfoValueTagList_NB_r13(tvbuff_t *tvb _U_, int offset _U_, } -static const per_sequence_t T_nonCriticalExtension_81_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_83_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_81(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_83(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_81, T_nonCriticalExtension_81_sequence); + ett_lte_rrc_T_nonCriticalExtension_83, T_nonCriticalExtension_83_sequence); return offset; } @@ -66474,7 +66728,7 @@ static const per_sequence_t SystemInformationBlockType1_NB_sequence[] = { { &hf_lte_rrc_si_RadioFrameOffset_r13, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_INTEGER_1_15 }, { &hf_lte_rrc_systemInfoValueTagList_r13_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SystemInfoValueTagList_NB_r13 }, { &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING }, - { &hf_lte_rrc_nonCriticalExtension_203, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_81 }, + { &hf_lte_rrc_nonCriticalExtension_205, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_83 }, { NULL, 0, 0, NULL } }; @@ -66489,22 +66743,22 @@ dissect_lte_rrc_SystemInformationBlockType1_NB(tvbuff_t *tvb _U_, int offset _U_ } -static const value_string lte_rrc_T_c1_49_vals[] = { +static const value_string lte_rrc_T_c1_51_vals[] = { { 0, "systemInformation-r13" }, { 1, "systemInformationBlockType1-r13" }, { 0, NULL } }; -static const per_choice_t T_c1_49_choice[] = { +static const per_choice_t T_c1_51_choice[] = { { 0, &hf_lte_rrc_systemInformation_r13, ASN1_NO_EXTENSIONS , dissect_lte_rrc_SystemInformation_NB }, { 1, &hf_lte_rrc_systemInformationBlockType1_r13, ASN1_NO_EXTENSIONS , dissect_lte_rrc_SystemInformationBlockType1_NB }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_c1_49(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_c1_51(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_c1_49, T_c1_49_choice, + ett_lte_rrc_T_c1_51, T_c1_51_choice, NULL); return offset; @@ -66531,7 +66785,7 @@ static const value_string lte_rrc_BCCH_DL_SCH_MessageType_NB_vals[] = { }; static const per_choice_t BCCH_DL_SCH_MessageType_NB_choice[] = { - { 0, &hf_lte_rrc_c1_49 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_49 }, + { 0, &hf_lte_rrc_c1_51 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_51 }, { 1, &hf_lte_rrc_messageClassExtension_09, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_messageClassExtension_09 }, { 0, NULL, 0, NULL } }; @@ -66618,14 +66872,14 @@ dissect_lte_rrc_T_systemInfoModification_eDRX_r13_01(tvbuff_t *tvb _U_, int offs } -static const per_sequence_t T_nonCriticalExtension_69_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_71_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_69(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_71(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_69, T_nonCriticalExtension_69_sequence); + ett_lte_rrc_T_nonCriticalExtension_71, T_nonCriticalExtension_71_sequence); return offset; } @@ -66635,7 +66889,7 @@ static const per_sequence_t Paging_NB_sequence[] = { { &hf_lte_rrc_pagingRecordList_r13, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_PagingRecordList_NB_r13 }, { &hf_lte_rrc_systemInfoModification_r13, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_systemInfoModification_r13 }, { &hf_lte_rrc_systemInfoModification_eDRX_r13_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_systemInfoModification_eDRX_r13_01 }, - { &hf_lte_rrc_nonCriticalExtension_191, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_69 }, + { &hf_lte_rrc_nonCriticalExtension_193, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_71 }, { NULL, 0, 0, NULL } }; @@ -66650,20 +66904,20 @@ dissect_lte_rrc_Paging_NB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U } -static const value_string lte_rrc_T_c1_50_vals[] = { +static const value_string lte_rrc_T_c1_52_vals[] = { { 0, "paging-r13" }, { 0, NULL } }; -static const per_choice_t T_c1_50_choice[] = { +static const per_choice_t T_c1_52_choice[] = { { 0, &hf_lte_rrc_paging_r13 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_Paging_NB }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_c1_50(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_c1_52(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_c1_50, T_c1_50_choice, + ett_lte_rrc_T_c1_52, T_c1_52_choice, NULL); return offset; @@ -66690,7 +66944,7 @@ static const value_string lte_rrc_PCCH_MessageType_NB_vals[] = { }; static const per_choice_t PCCH_MessageType_NB_choice[] = { - { 0, &hf_lte_rrc_c1_50 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_50 }, + { 0, &hf_lte_rrc_c1_52 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_52 }, { 1, &hf_lte_rrc_messageClassExtension_10, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_messageClassExtension_10 }, { 0, NULL, 0, NULL } }; @@ -66719,14 +66973,14 @@ dissect_lte_rrc_PCCH_Message_NB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } -static const per_sequence_t T_nonCriticalExtension_72_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_74_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_72(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_74(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_72, T_nonCriticalExtension_72_sequence); + ett_lte_rrc_T_nonCriticalExtension_74, T_nonCriticalExtension_74_sequence); return offset; } @@ -66736,7 +66990,7 @@ static const per_sequence_t RRCConnectionReestablishment_NB_r13_IEs_sequence[] = { &hf_lte_rrc_radioResourceConfigDedicated_r13_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RadioResourceConfigDedicated_NB_r13 }, { &hf_lte_rrc_nextHopChainingCount_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_NextHopChainingCount }, { &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING }, - { &hf_lte_rrc_nonCriticalExtension_194, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_72 }, + { &hf_lte_rrc_nonCriticalExtension_196, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_74 }, { NULL, 0, 0, NULL } }; @@ -66749,57 +67003,57 @@ dissect_lte_rrc_RRCConnectionReestablishment_NB_r13_IEs(tvbuff_t *tvb _U_, int o } -static const value_string lte_rrc_T_c1_57_vals[] = { +static const value_string lte_rrc_T_c1_59_vals[] = { { 0, "rrcConnectionReestablishment-r13" }, { 1, "spare1" }, { 0, NULL } }; -static const per_choice_t T_c1_57_choice[] = { +static const per_choice_t T_c1_59_choice[] = { { 0, &hf_lte_rrc_rrcConnectionReestablishment_r13_01, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionReestablishment_NB_r13_IEs }, { 1, &hf_lte_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_NULL }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_c1_57(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_c1_59(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_c1_57, T_c1_57_choice, + ett_lte_rrc_T_c1_59, T_c1_59_choice, NULL); return offset; } -static const per_sequence_t T_criticalExtensionsFuture_56_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_58_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_56(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_58(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_56, T_criticalExtensionsFuture_56_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_58, T_criticalExtensionsFuture_58_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_56_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_58_vals[] = { { 0, "c1" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_56_choice[] = { - { 0, &hf_lte_rrc_c1_57 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_57 }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_56, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_56 }, +static const per_choice_t T_criticalExtensions_58_choice[] = { + { 0, &hf_lte_rrc_c1_59 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_59 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_58, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_58 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_56(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_58(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_56, T_criticalExtensions_56_choice, + ett_lte_rrc_T_criticalExtensions_58, T_criticalExtensions_58_choice, NULL); return offset; @@ -66808,7 +67062,7 @@ dissect_lte_rrc_T_criticalExtensions_56(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t RRCConnectionReestablishment_NB_sequence[] = { { &hf_lte_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RRC_TransactionIdentifier }, - { &hf_lte_rrc_criticalExtensions_56, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_56 }, + { &hf_lte_rrc_criticalExtensions_58, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_58 }, { NULL, 0, 0, NULL } }; @@ -66851,14 +67105,14 @@ dissect_lte_rrc_T_rrc_SuspendIndication_r13_01(tvbuff_t *tvb _U_, int offset _U_ } -static const per_sequence_t T_nonCriticalExtension_74_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_76_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_74(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_76(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_74, T_nonCriticalExtension_74_sequence); + ett_lte_rrc_T_nonCriticalExtension_76, T_nonCriticalExtension_76_sequence); return offset; } @@ -66868,7 +67122,7 @@ static const per_sequence_t RRCConnectionReject_NB_r13_IEs_sequence[] = { { &hf_lte_rrc_extendedWaitTime_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_extendedWaitTime_r13 }, { &hf_lte_rrc_rrc_SuspendIndication_r13_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_rrc_SuspendIndication_r13_01 }, { &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING }, - { &hf_lte_rrc_nonCriticalExtension_196, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_74 }, + { &hf_lte_rrc_nonCriticalExtension_198, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_76 }, { NULL, 0, 0, NULL } }; @@ -66881,57 +67135,57 @@ dissect_lte_rrc_RRCConnectionReject_NB_r13_IEs(tvbuff_t *tvb _U_, int offset _U_ } -static const value_string lte_rrc_T_c1_58_vals[] = { +static const value_string lte_rrc_T_c1_60_vals[] = { { 0, "rrcConnectionReject-r13" }, { 1, "spare1" }, { 0, NULL } }; -static const per_choice_t T_c1_58_choice[] = { +static const per_choice_t T_c1_60_choice[] = { { 0, &hf_lte_rrc_rrcConnectionReject_r13_01, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionReject_NB_r13_IEs }, { 1, &hf_lte_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_NULL }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_c1_58(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_c1_60(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_c1_58, T_c1_58_choice, + ett_lte_rrc_T_c1_60, T_c1_60_choice, NULL); return offset; } -static const per_sequence_t T_criticalExtensionsFuture_59_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_61_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_59(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_61(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_59, T_criticalExtensionsFuture_59_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_61, T_criticalExtensionsFuture_61_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_59_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_61_vals[] = { { 0, "c1" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_59_choice[] = { - { 0, &hf_lte_rrc_c1_58 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_58 }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_59, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_59 }, +static const per_choice_t T_criticalExtensions_61_choice[] = { + { 0, &hf_lte_rrc_c1_60 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_60 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_61, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_61 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_59(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_61(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_59, T_criticalExtensions_59_choice, + ett_lte_rrc_T_criticalExtensions_61, T_criticalExtensions_61_choice, NULL); return offset; @@ -66939,7 +67193,7 @@ dissect_lte_rrc_T_criticalExtensions_59(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t RRCConnectionReject_NB_sequence[] = { - { &hf_lte_rrc_criticalExtensions_59, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_59 }, + { &hf_lte_rrc_criticalExtensions_61, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_61 }, { NULL, 0, 0, NULL } }; @@ -66954,14 +67208,14 @@ dissect_lte_rrc_RRCConnectionReject_NB(tvbuff_t *tvb _U_, int offset _U_, asn1_c } -static const per_sequence_t T_nonCriticalExtension_78_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_80_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_78(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_80(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_78, T_nonCriticalExtension_78_sequence); + ett_lte_rrc_T_nonCriticalExtension_80, T_nonCriticalExtension_80_sequence); return offset; } @@ -66970,7 +67224,7 @@ dissect_lte_rrc_T_nonCriticalExtension_78(tvbuff_t *tvb _U_, int offset _U_, asn static const per_sequence_t RRCConnectionSetup_NB_r13_IEs_sequence[] = { { &hf_lte_rrc_radioResourceConfigDedicated_r13_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RadioResourceConfigDedicated_NB_r13 }, { &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING }, - { &hf_lte_rrc_nonCriticalExtension_200, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_78 }, + { &hf_lte_rrc_nonCriticalExtension_202, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_80 }, { NULL, 0, 0, NULL } }; @@ -66983,57 +67237,57 @@ dissect_lte_rrc_RRCConnectionSetup_NB_r13_IEs(tvbuff_t *tvb _U_, int offset _U_, } -static const value_string lte_rrc_T_c1_61_vals[] = { +static const value_string lte_rrc_T_c1_63_vals[] = { { 0, "rrcConnectionSetup-r13" }, { 1, "spare1" }, { 0, NULL } }; -static const per_choice_t T_c1_61_choice[] = { +static const per_choice_t T_c1_63_choice[] = { { 0, &hf_lte_rrc_rrcConnectionSetup_r13_01, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionSetup_NB_r13_IEs }, { 1, &hf_lte_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_NULL }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_c1_61(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_c1_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_c1_61, T_c1_61_choice, + ett_lte_rrc_T_c1_63, T_c1_63_choice, NULL); return offset; } -static const per_sequence_t T_criticalExtensionsFuture_65_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_67_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_65(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_67(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_65, T_criticalExtensionsFuture_65_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_67, T_criticalExtensionsFuture_67_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_65_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_67_vals[] = { { 0, "c1" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_65_choice[] = { - { 0, &hf_lte_rrc_c1_61 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_61 }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_65, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_65 }, +static const per_choice_t T_criticalExtensions_67_choice[] = { + { 0, &hf_lte_rrc_c1_63 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_63 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_67, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_67 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_65(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_67(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_65, T_criticalExtensions_65_choice, + ett_lte_rrc_T_criticalExtensions_67, T_criticalExtensions_67_choice, NULL); return offset; @@ -67042,7 +67296,7 @@ dissect_lte_rrc_T_criticalExtensions_65(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t RRCConnectionSetup_NB_sequence[] = { { &hf_lte_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RRC_TransactionIdentifier }, - { &hf_lte_rrc_criticalExtensions_65, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_65 }, + { &hf_lte_rrc_criticalExtensions_67, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_67 }, { NULL, 0, 0, NULL } }; @@ -67057,7 +67311,7 @@ dissect_lte_rrc_RRCConnectionSetup_NB(tvbuff_t *tvb _U_, int offset _U_, asn1_ct } -static const value_string lte_rrc_T_c1_51_vals[] = { +static const value_string lte_rrc_T_c1_53_vals[] = { { 0, "rrcConnectionReestablishment-r13" }, { 1, "rrcConnectionReestablishmentReject-r13" }, { 2, "rrcConnectionReject-r13" }, @@ -67069,7 +67323,7 @@ static const value_string lte_rrc_T_c1_51_vals[] = { { 0, NULL } }; -static const per_choice_t T_c1_51_choice[] = { +static const per_choice_t T_c1_53_choice[] = { { 0, &hf_lte_rrc_rrcConnectionReestablishment_r13, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionReestablishment_NB }, { 1, &hf_lte_rrc_rrcConnectionReestablishmentReject_r13, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionReestablishmentReject }, { 2, &hf_lte_rrc_rrcConnectionReject_r13, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionReject_NB }, @@ -67082,9 +67336,9 @@ static const per_choice_t T_c1_51_choice[] = { }; static int -dissect_lte_rrc_T_c1_51(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_c1_53(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_c1_51, T_c1_51_choice, + ett_lte_rrc_T_c1_53, T_c1_53_choice, NULL); return offset; @@ -67111,7 +67365,7 @@ static const value_string lte_rrc_DL_CCCH_MessageType_NB_vals[] = { }; static const per_choice_t DL_CCCH_MessageType_NB_choice[] = { - { 0, &hf_lte_rrc_c1_51 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_51 }, + { 0, &hf_lte_rrc_c1_53 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_53 }, { 1, &hf_lte_rrc_messageClassExtension_11, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_messageClassExtension_11 }, { 0, NULL, 0, NULL } }; @@ -67140,14 +67394,14 @@ dissect_lte_rrc_DL_CCCH_Message_NB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } -static const per_sequence_t T_nonCriticalExtension_68_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_70_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_68(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_70(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_68, T_nonCriticalExtension_68_sequence); + ett_lte_rrc_T_nonCriticalExtension_70, T_nonCriticalExtension_70_sequence); return offset; } @@ -67156,7 +67410,7 @@ dissect_lte_rrc_T_nonCriticalExtension_68(tvbuff_t *tvb _U_, int offset _U_, asn static const per_sequence_t DLInformationTransfer_NB_r13_IEs_sequence[] = { { &hf_lte_rrc_dedicatedInfoNAS_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_DedicatedInfoNAS }, { &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING }, - { &hf_lte_rrc_nonCriticalExtension_190, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_68 }, + { &hf_lte_rrc_nonCriticalExtension_192, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_70 }, { NULL, 0, 0, NULL } }; @@ -67169,57 +67423,57 @@ dissect_lte_rrc_DLInformationTransfer_NB_r13_IEs(tvbuff_t *tvb _U_, int offset _ } -static const value_string lte_rrc_T_c1_55_vals[] = { +static const value_string lte_rrc_T_c1_57_vals[] = { { 0, "dlInformationTransfer-r13" }, { 1, "spare1" }, { 0, NULL } }; -static const per_choice_t T_c1_55_choice[] = { +static const per_choice_t T_c1_57_choice[] = { { 0, &hf_lte_rrc_dlInformationTransfer_r13_01, ASN1_NO_EXTENSIONS , dissect_lte_rrc_DLInformationTransfer_NB_r13_IEs }, { 1, &hf_lte_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_NULL }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_c1_55(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_c1_57(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_c1_55, T_c1_55_choice, + ett_lte_rrc_T_c1_57, T_c1_57_choice, NULL); return offset; } -static const per_sequence_t T_criticalExtensionsFuture_53_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_55_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_53(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_55(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_53, T_criticalExtensionsFuture_53_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_55, T_criticalExtensionsFuture_55_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_53_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_55_vals[] = { { 0, "c1" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_53_choice[] = { - { 0, &hf_lte_rrc_c1_55 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_55 }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_53, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_53 }, +static const per_choice_t T_criticalExtensions_55_choice[] = { + { 0, &hf_lte_rrc_c1_57 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_57 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_55, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_55 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_53(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_55(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_53, T_criticalExtensions_53_choice, + ett_lte_rrc_T_criticalExtensions_55, T_criticalExtensions_55_choice, NULL); return offset; @@ -67228,7 +67482,7 @@ dissect_lte_rrc_T_criticalExtensions_53(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t DLInformationTransfer_NB_sequence[] = { { &hf_lte_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RRC_TransactionIdentifier }, - { &hf_lte_rrc_criticalExtensions_53, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_53 }, + { &hf_lte_rrc_criticalExtensions_55, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_55 }, { NULL, 0, 0, NULL } }; @@ -67272,14 +67526,14 @@ dissect_lte_rrc_T_fullConfig_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * } -static const per_sequence_t T_nonCriticalExtension_70_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_72_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_70(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_72(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_70, T_nonCriticalExtension_70_sequence); + ett_lte_rrc_T_nonCriticalExtension_72, T_nonCriticalExtension_72_sequence); return offset; } @@ -67290,7 +67544,7 @@ static const per_sequence_t RRCConnectionReconfiguration_NB_r13_IEs_sequence[] = { &hf_lte_rrc_radioResourceConfigDedicated_r13_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RadioResourceConfigDedicated_NB_r13 }, { &hf_lte_rrc_fullConfig_r13, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_fullConfig_r13 }, { &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING }, - { &hf_lte_rrc_nonCriticalExtension_192, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_70 }, + { &hf_lte_rrc_nonCriticalExtension_194, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_72 }, { NULL, 0, 0, NULL } }; @@ -67303,57 +67557,57 @@ dissect_lte_rrc_RRCConnectionReconfiguration_NB_r13_IEs(tvbuff_t *tvb _U_, int o } -static const value_string lte_rrc_T_c1_56_vals[] = { +static const value_string lte_rrc_T_c1_58_vals[] = { { 0, "rrcConnectionReconfiguration-r13" }, { 1, "spare1" }, { 0, NULL } }; -static const per_choice_t T_c1_56_choice[] = { +static const per_choice_t T_c1_58_choice[] = { { 0, &hf_lte_rrc_rrcConnectionReconfiguration_r13_01, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionReconfiguration_NB_r13_IEs }, { 1, &hf_lte_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_NULL }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_c1_56(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_c1_58(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_c1_56, T_c1_56_choice, + ett_lte_rrc_T_c1_58, T_c1_58_choice, NULL); return offset; } -static const per_sequence_t T_criticalExtensionsFuture_54_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_56_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_54(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_56(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_54, T_criticalExtensionsFuture_54_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_56, T_criticalExtensionsFuture_56_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_54_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_56_vals[] = { { 0, "c1" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_54_choice[] = { - { 0, &hf_lte_rrc_c1_56 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_56 }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_54, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_54 }, +static const per_choice_t T_criticalExtensions_56_choice[] = { + { 0, &hf_lte_rrc_c1_58 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_58 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_56, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_56 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_54(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_56(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_54, T_criticalExtensions_54_choice, + ett_lte_rrc_T_criticalExtensions_56, T_criticalExtensions_56_choice, NULL); return offset; @@ -67362,7 +67616,7 @@ dissect_lte_rrc_T_criticalExtensions_54(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t RRCConnectionReconfiguration_NB_sequence[] = { { &hf_lte_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RRC_TransactionIdentifier }, - { &hf_lte_rrc_criticalExtensions_54, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_54 }, + { &hf_lte_rrc_criticalExtensions_56, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_56 }, { NULL, 0, 0, NULL } }; @@ -67417,14 +67671,14 @@ dissect_lte_rrc_RedirectedCarrierInfo_NB_r13(tvbuff_t *tvb _U_, int offset _U_, } -static const per_sequence_t T_nonCriticalExtension_75_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_77_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_75(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_77(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_75, T_nonCriticalExtension_75_sequence); + ett_lte_rrc_T_nonCriticalExtension_77, T_nonCriticalExtension_77_sequence); return offset; } @@ -67436,7 +67690,7 @@ static const per_sequence_t RRCConnectionRelease_NB_r13_IEs_sequence[] = { { &hf_lte_rrc_extendedWaitTime_r13_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_extendedWaitTime_r13_01 }, { &hf_lte_rrc_redirectedCarrierInfo_r13, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RedirectedCarrierInfo_NB_r13 }, { &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING }, - { &hf_lte_rrc_nonCriticalExtension_197, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_75 }, + { &hf_lte_rrc_nonCriticalExtension_199, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_77 }, { NULL, 0, 0, NULL } }; @@ -67449,57 +67703,57 @@ dissect_lte_rrc_RRCConnectionRelease_NB_r13_IEs(tvbuff_t *tvb _U_, int offset _U } -static const value_string lte_rrc_T_c1_59_vals[] = { +static const value_string lte_rrc_T_c1_61_vals[] = { { 0, "rrcConnectionRelease-r13" }, { 1, "spare1" }, { 0, NULL } }; -static const per_choice_t T_c1_59_choice[] = { +static const per_choice_t T_c1_61_choice[] = { { 0, &hf_lte_rrc_rrcConnectionRelease_r13_01, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionRelease_NB_r13_IEs }, { 1, &hf_lte_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_NULL }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_c1_59(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_c1_61(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_c1_59, T_c1_59_choice, + ett_lte_rrc_T_c1_61, T_c1_61_choice, NULL); return offset; } -static const per_sequence_t T_criticalExtensionsFuture_60_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_62_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_60(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_62(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_60, T_criticalExtensionsFuture_60_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_62, T_criticalExtensionsFuture_62_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_60_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_62_vals[] = { { 0, "c1" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_60_choice[] = { - { 0, &hf_lte_rrc_c1_59 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_59 }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_60, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_60 }, +static const per_choice_t T_criticalExtensions_62_choice[] = { + { 0, &hf_lte_rrc_c1_61 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_61 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_62, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_62 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_60(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_62(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_60, T_criticalExtensions_60_choice, + ett_lte_rrc_T_criticalExtensions_62, T_criticalExtensions_62_choice, NULL); return offset; @@ -67508,7 +67762,7 @@ dissect_lte_rrc_T_criticalExtensions_60(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t RRCConnectionRelease_NB_sequence[] = { { &hf_lte_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RRC_TransactionIdentifier }, - { &hf_lte_rrc_criticalExtensions_60, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_60 }, + { &hf_lte_rrc_criticalExtensions_62, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_62 }, { NULL, 0, 0, NULL } }; @@ -67523,14 +67777,14 @@ dissect_lte_rrc_RRCConnectionRelease_NB(tvbuff_t *tvb _U_, int offset _U_, asn1_ } -static const per_sequence_t T_nonCriticalExtension_82_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_84_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_82(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_84(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_82, T_nonCriticalExtension_82_sequence); + ett_lte_rrc_T_nonCriticalExtension_84, T_nonCriticalExtension_84_sequence); return offset; } @@ -67538,7 +67792,7 @@ dissect_lte_rrc_T_nonCriticalExtension_82(tvbuff_t *tvb _U_, int offset _U_, asn static const per_sequence_t UECapabilityEnquiry_NB_r13_IEs_sequence[] = { { &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING }, - { &hf_lte_rrc_nonCriticalExtension_204, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_82 }, + { &hf_lte_rrc_nonCriticalExtension_206, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_84 }, { NULL, 0, 0, NULL } }; @@ -67551,57 +67805,57 @@ dissect_lte_rrc_UECapabilityEnquiry_NB_r13_IEs(tvbuff_t *tvb _U_, int offset _U_ } -static const value_string lte_rrc_T_c1_62_vals[] = { +static const value_string lte_rrc_T_c1_64_vals[] = { { 0, "ueCapabilityEnquiry-r13" }, { 1, "spare1" }, { 0, NULL } }; -static const per_choice_t T_c1_62_choice[] = { +static const per_choice_t T_c1_64_choice[] = { { 0, &hf_lte_rrc_ueCapabilityEnquiry_r13_01, ASN1_NO_EXTENSIONS , dissect_lte_rrc_UECapabilityEnquiry_NB_r13_IEs }, { 1, &hf_lte_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_NULL }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_c1_62(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_c1_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_c1_62, T_c1_62_choice, + ett_lte_rrc_T_c1_64, T_c1_64_choice, NULL); return offset; } -static const per_sequence_t T_criticalExtensionsFuture_68_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_70_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_68(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_70(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_68, T_criticalExtensionsFuture_68_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_70, T_criticalExtensionsFuture_70_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_68_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_70_vals[] = { { 0, "c1" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_68_choice[] = { - { 0, &hf_lte_rrc_c1_62 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_62 }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_68, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_68 }, +static const per_choice_t T_criticalExtensions_70_choice[] = { + { 0, &hf_lte_rrc_c1_64 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_64 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_70, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_70 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_68(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_70(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_68, T_criticalExtensions_68_choice, + ett_lte_rrc_T_criticalExtensions_70, T_criticalExtensions_70_choice, NULL); return offset; @@ -67610,7 +67864,7 @@ dissect_lte_rrc_T_criticalExtensions_68(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t UECapabilityEnquiry_NB_sequence[] = { { &hf_lte_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RRC_TransactionIdentifier }, - { &hf_lte_rrc_criticalExtensions_68, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_68 }, + { &hf_lte_rrc_criticalExtensions_70, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_70 }, { NULL, 0, 0, NULL } }; @@ -67640,14 +67894,14 @@ dissect_lte_rrc_T_drb_ContinueROHC_r13_01(tvbuff_t *tvb _U_, int offset _U_, asn } -static const per_sequence_t T_nonCriticalExtension_76_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_78_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_76(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_78(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_76, T_nonCriticalExtension_76_sequence); + ett_lte_rrc_T_nonCriticalExtension_78, T_nonCriticalExtension_78_sequence); return offset; } @@ -67658,7 +67912,7 @@ static const per_sequence_t RRCConnectionResume_NB_r13_IEs_sequence[] = { { &hf_lte_rrc_nextHopChainingCount_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_NextHopChainingCount }, { &hf_lte_rrc_drb_ContinueROHC_r13_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_drb_ContinueROHC_r13_01 }, { &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING }, - { &hf_lte_rrc_nonCriticalExtension_198, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_76 }, + { &hf_lte_rrc_nonCriticalExtension_200, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_78 }, { NULL, 0, 0, NULL } }; @@ -67671,57 +67925,57 @@ dissect_lte_rrc_RRCConnectionResume_NB_r13_IEs(tvbuff_t *tvb _U_, int offset _U_ } -static const value_string lte_rrc_T_c1_60_vals[] = { +static const value_string lte_rrc_T_c1_62_vals[] = { { 0, "rrcConnectionResume-r13" }, { 1, "spare1" }, { 0, NULL } }; -static const per_choice_t T_c1_60_choice[] = { +static const per_choice_t T_c1_62_choice[] = { { 0, &hf_lte_rrc_rrcConnectionResume_r13_03, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionResume_NB_r13_IEs }, { 1, &hf_lte_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_NULL }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_c1_60(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_c1_62(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_c1_60, T_c1_60_choice, + ett_lte_rrc_T_c1_62, T_c1_62_choice, NULL); return offset; } -static const per_sequence_t T_criticalExtensionsFuture_62_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_64_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_62(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_62, T_criticalExtensionsFuture_62_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_64, T_criticalExtensionsFuture_64_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_62_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_64_vals[] = { { 0, "c1" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_62_choice[] = { - { 0, &hf_lte_rrc_c1_60 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_60 }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_62, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_62 }, +static const per_choice_t T_criticalExtensions_64_choice[] = { + { 0, &hf_lte_rrc_c1_62 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_62 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_64, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_64 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_62(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_62, T_criticalExtensions_62_choice, + ett_lte_rrc_T_criticalExtensions_64, T_criticalExtensions_64_choice, NULL); return offset; @@ -67730,7 +67984,7 @@ dissect_lte_rrc_T_criticalExtensions_62(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t RRCConnectionResume_NB_sequence[] = { { &hf_lte_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RRC_TransactionIdentifier }, - { &hf_lte_rrc_criticalExtensions_62, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_62 }, + { &hf_lte_rrc_criticalExtensions_64, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_64 }, { NULL, 0, 0, NULL } }; @@ -67745,7 +67999,7 @@ dissect_lte_rrc_RRCConnectionResume_NB(tvbuff_t *tvb _U_, int offset _U_, asn1_c } -static const value_string lte_rrc_T_c1_52_vals[] = { +static const value_string lte_rrc_T_c1_54_vals[] = { { 0, "dlInformationTransfer-r13" }, { 1, "rrcConnectionReconfiguration-r13" }, { 2, "rrcConnectionRelease-r13" }, @@ -67757,7 +68011,7 @@ static const value_string lte_rrc_T_c1_52_vals[] = { { 0, NULL } }; -static const per_choice_t T_c1_52_choice[] = { +static const per_choice_t T_c1_54_choice[] = { { 0, &hf_lte_rrc_dlInformationTransfer_r13, ASN1_NO_EXTENSIONS , dissect_lte_rrc_DLInformationTransfer_NB }, { 1, &hf_lte_rrc_rrcConnectionReconfiguration_r13, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionReconfiguration_NB }, { 2, &hf_lte_rrc_rrcConnectionRelease_r13, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionRelease_NB }, @@ -67770,9 +68024,9 @@ static const per_choice_t T_c1_52_choice[] = { }; static int -dissect_lte_rrc_T_c1_52(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_c1_54(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_c1_52, T_c1_52_choice, + ett_lte_rrc_T_c1_54, T_c1_54_choice, NULL); return offset; @@ -67799,7 +68053,7 @@ static const value_string lte_rrc_DL_DCCH_MessageType_NB_vals[] = { }; static const per_choice_t DL_DCCH_MessageType_NB_choice[] = { - { 0, &hf_lte_rrc_c1_52 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_52 }, + { 0, &hf_lte_rrc_c1_54 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_54 }, { 1, &hf_lte_rrc_messageClassExtension_12, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_messageClassExtension_12 }, { 0, NULL, 0, NULL } }; @@ -67864,35 +68118,35 @@ dissect_lte_rrc_RRCConnectionReestablishmentRequest_NB_r13_IEs(tvbuff_t *tvb _U_ } -static const per_sequence_t T_criticalExtensionsFuture_58_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_60_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_58(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_60(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_58, T_criticalExtensionsFuture_58_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_60, T_criticalExtensionsFuture_60_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_58_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_60_vals[] = { { 0, "rrcConnectionReestablishmentRequest-r13" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_58_choice[] = { +static const per_choice_t T_criticalExtensions_60_choice[] = { { 0, &hf_lte_rrc_rrcConnectionReestablishmentRequest_r13_01, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionReestablishmentRequest_NB_r13_IEs }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_58, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_58 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_60, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_60 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_58(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_60(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_58, T_criticalExtensions_58_choice, + ett_lte_rrc_T_criticalExtensions_60, T_criticalExtensions_60_choice, NULL); return offset; @@ -67900,7 +68154,7 @@ dissect_lte_rrc_T_criticalExtensions_58(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t RRCConnectionReestablishmentRequest_NB_sequence[] = { - { &hf_lte_rrc_criticalExtensions_58, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_58 }, + { &hf_lte_rrc_criticalExtensions_60, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_60 }, { NULL, 0, 0, NULL } }; @@ -67995,35 +68249,35 @@ dissect_lte_rrc_RRCConnectionRequest_NB_r13_IEs(tvbuff_t *tvb _U_, int offset _U } -static const per_sequence_t T_criticalExtensionsFuture_61_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_63_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_61(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_61, T_criticalExtensionsFuture_61_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_63, T_criticalExtensionsFuture_63_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_61_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_63_vals[] = { { 0, "rrcConnectionRequest-r13" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_61_choice[] = { +static const per_choice_t T_criticalExtensions_63_choice[] = { { 0, &hf_lte_rrc_rrcConnectionRequest_r13_01, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionRequest_NB_r13_IEs }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_61, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_61 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_63, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_63 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_61(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_61, T_criticalExtensions_61_choice, + ett_lte_rrc_T_criticalExtensions_63, T_criticalExtensions_63_choice, NULL); return offset; @@ -68031,7 +68285,7 @@ dissect_lte_rrc_T_criticalExtensions_61(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t RRCConnectionRequest_NB_sequence[] = { - { &hf_lte_rrc_criticalExtensions_61, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_61 }, + { &hf_lte_rrc_criticalExtensions_63, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_63 }, { NULL, 0, 0, NULL } }; @@ -68063,35 +68317,35 @@ dissect_lte_rrc_RRCConnectionResumeRequest_NB_r13_IEs(tvbuff_t *tvb _U_, int off } -static const per_sequence_t T_criticalExtensionsFuture_64_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_66_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_66(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_64, T_criticalExtensionsFuture_64_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_66, T_criticalExtensionsFuture_66_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_64_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_66_vals[] = { { 0, "rrcConnectionResumeRequest-r13" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_64_choice[] = { +static const per_choice_t T_criticalExtensions_66_choice[] = { { 0, &hf_lte_rrc_rrcConnectionResumeRequest_r13_03, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionResumeRequest_NB_r13_IEs }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_64, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_64 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_66, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_66 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_66(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_64, T_criticalExtensions_64_choice, + ett_lte_rrc_T_criticalExtensions_66, T_criticalExtensions_66_choice, NULL); return offset; @@ -68099,7 +68353,7 @@ dissect_lte_rrc_T_criticalExtensions_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t RRCConnectionResumeRequest_NB_sequence[] = { - { &hf_lte_rrc_criticalExtensions_64, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_64 }, + { &hf_lte_rrc_criticalExtensions_66, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_66 }, { NULL, 0, 0, NULL } }; @@ -68114,7 +68368,7 @@ dissect_lte_rrc_RRCConnectionResumeRequest_NB(tvbuff_t *tvb _U_, int offset _U_, } -static const value_string lte_rrc_T_c1_53_vals[] = { +static const value_string lte_rrc_T_c1_55_vals[] = { { 0, "rrcConnectionReestablishmentRequest-r13" }, { 1, "rrcConnectionRequest-r13" }, { 2, "rrcConnectionResumeRequest-r13" }, @@ -68122,7 +68376,7 @@ static const value_string lte_rrc_T_c1_53_vals[] = { { 0, NULL } }; -static const per_choice_t T_c1_53_choice[] = { +static const per_choice_t T_c1_55_choice[] = { { 0, &hf_lte_rrc_rrcConnectionReestablishmentRequest_r13, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionReestablishmentRequest_NB }, { 1, &hf_lte_rrc_rrcConnectionRequest_r13, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionRequest_NB }, { 2, &hf_lte_rrc_rrcConnectionResumeRequest_r13_02, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionResumeRequest_NB }, @@ -68131,9 +68385,9 @@ static const per_choice_t T_c1_53_choice[] = { }; static int -dissect_lte_rrc_T_c1_53(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_c1_55(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_c1_53, T_c1_53_choice, + ett_lte_rrc_T_c1_55, T_c1_55_choice, NULL); return offset; @@ -68160,7 +68414,7 @@ static const value_string lte_rrc_UL_CCCH_MessageType_NB_vals[] = { }; static const per_choice_t UL_CCCH_MessageType_NB_choice[] = { - { 0, &hf_lte_rrc_c1_53 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_53 }, + { 0, &hf_lte_rrc_c1_55 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_55 }, { 1, &hf_lte_rrc_messageClassExtension_13, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_messageClassExtension_13 }, { 0, NULL, 0, NULL } }; @@ -68189,14 +68443,14 @@ dissect_lte_rrc_UL_CCCH_Message_NB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } -static const per_sequence_t T_nonCriticalExtension_71_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_73_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_71(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_73(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_71, T_nonCriticalExtension_71_sequence); + ett_lte_rrc_T_nonCriticalExtension_73, T_nonCriticalExtension_73_sequence); return offset; } @@ -68204,7 +68458,7 @@ dissect_lte_rrc_T_nonCriticalExtension_71(tvbuff_t *tvb _U_, int offset _U_, asn static const per_sequence_t RRCConnectionReconfigurationComplete_NB_r13_IEs_sequence[] = { { &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING }, - { &hf_lte_rrc_nonCriticalExtension_193, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_71 }, + { &hf_lte_rrc_nonCriticalExtension_195, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_73 }, { NULL, 0, 0, NULL } }; @@ -68217,35 +68471,35 @@ dissect_lte_rrc_RRCConnectionReconfigurationComplete_NB_r13_IEs(tvbuff_t *tvb _U } -static const per_sequence_t T_criticalExtensionsFuture_55_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_57_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_55(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_57(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_55, T_criticalExtensionsFuture_55_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_57, T_criticalExtensionsFuture_57_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_55_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_57_vals[] = { { 0, "rrcConnectionReconfigurationComplete-r13" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_55_choice[] = { +static const per_choice_t T_criticalExtensions_57_choice[] = { { 0, &hf_lte_rrc_rrcConnectionReconfigurationComplete_r13_01, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionReconfigurationComplete_NB_r13_IEs }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_55, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_55 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_57, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_57 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_55(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_57(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_55, T_criticalExtensions_55_choice, + ett_lte_rrc_T_criticalExtensions_57, T_criticalExtensions_57_choice, NULL); return offset; @@ -68254,7 +68508,7 @@ dissect_lte_rrc_T_criticalExtensions_55(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t RRCConnectionReconfigurationComplete_NB_sequence[] = { { &hf_lte_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RRC_TransactionIdentifier }, - { &hf_lte_rrc_criticalExtensions_55, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_55 }, + { &hf_lte_rrc_criticalExtensions_57, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_57 }, { NULL, 0, 0, NULL } }; @@ -68269,14 +68523,14 @@ dissect_lte_rrc_RRCConnectionReconfigurationComplete_NB(tvbuff_t *tvb _U_, int o } -static const per_sequence_t T_nonCriticalExtension_73_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_75_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_73(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_75(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_73, T_nonCriticalExtension_73_sequence); + ett_lte_rrc_T_nonCriticalExtension_75, T_nonCriticalExtension_75_sequence); return offset; } @@ -68284,7 +68538,7 @@ dissect_lte_rrc_T_nonCriticalExtension_73(tvbuff_t *tvb _U_, int offset _U_, asn static const per_sequence_t RRCConnectionReestablishmentComplete_NB_r13_IEs_sequence[] = { { &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING }, - { &hf_lte_rrc_nonCriticalExtension_195, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_73 }, + { &hf_lte_rrc_nonCriticalExtension_197, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_75 }, { NULL, 0, 0, NULL } }; @@ -68297,35 +68551,35 @@ dissect_lte_rrc_RRCConnectionReestablishmentComplete_NB_r13_IEs(tvbuff_t *tvb _U } -static const per_sequence_t T_criticalExtensionsFuture_57_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_59_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_57(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_59(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_57, T_criticalExtensionsFuture_57_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_59, T_criticalExtensionsFuture_59_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_57_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_59_vals[] = { { 0, "rrcConnectionReestablishmentComplete-r13" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_57_choice[] = { +static const per_choice_t T_criticalExtensions_59_choice[] = { { 0, &hf_lte_rrc_rrcConnectionReestablishmentComplete_r13_01, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionReestablishmentComplete_NB_r13_IEs }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_57, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_57 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_59, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_59 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_57(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_59(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_57, T_criticalExtensions_57_choice, + ett_lte_rrc_T_criticalExtensions_59, T_criticalExtensions_59_choice, NULL); return offset; @@ -68334,7 +68588,7 @@ dissect_lte_rrc_T_criticalExtensions_57(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t RRCConnectionReestablishmentComplete_NB_sequence[] = { { &hf_lte_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RRC_TransactionIdentifier }, - { &hf_lte_rrc_criticalExtensions_57, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_57 }, + { &hf_lte_rrc_criticalExtensions_59, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_59 }, { NULL, 0, 0, NULL } }; @@ -68379,14 +68633,14 @@ dissect_lte_rrc_T_up_CIoT_EPS_Optimisation_r13_02(tvbuff_t *tvb _U_, int offset } -static const per_sequence_t T_nonCriticalExtension_79_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_81_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_79(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_81(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_79, T_nonCriticalExtension_79_sequence); + ett_lte_rrc_T_nonCriticalExtension_81, T_nonCriticalExtension_81_sequence); return offset; } @@ -68400,7 +68654,7 @@ static const per_sequence_t RRCConnectionSetupComplete_NB_r13_IEs_sequence[] = { { &hf_lte_rrc_attachWithoutPDN_Connectivity_r13_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_attachWithoutPDN_Connectivity_r13_02 }, { &hf_lte_rrc_up_CIoT_EPS_Optimisation_r13_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_up_CIoT_EPS_Optimisation_r13_02 }, { &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING }, - { &hf_lte_rrc_nonCriticalExtension_201, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_79 }, + { &hf_lte_rrc_nonCriticalExtension_203, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_81 }, { NULL, 0, 0, NULL } }; @@ -68413,35 +68667,35 @@ dissect_lte_rrc_RRCConnectionSetupComplete_NB_r13_IEs(tvbuff_t *tvb _U_, int off } -static const per_sequence_t T_criticalExtensionsFuture_66_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_68_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_66(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_68(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_66, T_criticalExtensionsFuture_66_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_68, T_criticalExtensionsFuture_68_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_66_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_68_vals[] = { { 0, "rrcConnectionSetupComplete-r13" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_66_choice[] = { +static const per_choice_t T_criticalExtensions_68_choice[] = { { 0, &hf_lte_rrc_rrcConnectionSetupComplete_r13_01, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionSetupComplete_NB_r13_IEs }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_66, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_66 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_68, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_68 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_66(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_68(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_66, T_criticalExtensions_66_choice, + ett_lte_rrc_T_criticalExtensions_68, T_criticalExtensions_68_choice, NULL); return offset; @@ -68450,7 +68704,7 @@ dissect_lte_rrc_T_criticalExtensions_66(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t RRCConnectionSetupComplete_NB_sequence[] = { { &hf_lte_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RRC_TransactionIdentifier }, - { &hf_lte_rrc_criticalExtensions_66, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_66 }, + { &hf_lte_rrc_criticalExtensions_68, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_68 }, { NULL, 0, 0, NULL } }; @@ -68494,14 +68748,14 @@ dissect_lte_rrc_UE_RadioPagingInfo_NB_r13(tvbuff_t *tvb _U_, int offset _U_, asn } -static const per_sequence_t T_nonCriticalExtension_83_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_85_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_83(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_85(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_83, T_nonCriticalExtension_83_sequence); + ett_lte_rrc_T_nonCriticalExtension_85, T_nonCriticalExtension_85_sequence); return offset; } @@ -68509,9 +68763,9 @@ dissect_lte_rrc_T_nonCriticalExtension_83(tvbuff_t *tvb _U_, int offset _U_, asn static const per_sequence_t UECapabilityInformation_NB_r13_IEs_sequence[] = { { &hf_lte_rrc_ue_Capability_Container_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_UE_Capability_NB_r13 }, - { &hf_lte_rrc_ue_RadioPagingInfo_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_UE_RadioPagingInfo_NB_r13 }, + { &hf_lte_rrc_ue_RadioPagingInfo_r13_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_UE_RadioPagingInfo_NB_r13 }, { &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING }, - { &hf_lte_rrc_nonCriticalExtension_205, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_83 }, + { &hf_lte_rrc_nonCriticalExtension_207, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_85 }, { NULL, 0, 0, NULL } }; @@ -68524,35 +68778,35 @@ dissect_lte_rrc_UECapabilityInformation_NB_r13_IEs(tvbuff_t *tvb _U_, int offset } -static const per_sequence_t T_criticalExtensionsFuture_69_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_71_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_69(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_71(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_69, T_criticalExtensionsFuture_69_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_71, T_criticalExtensionsFuture_71_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_69_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_71_vals[] = { { 0, "ueCapabilityInformation-r13" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_69_choice[] = { +static const per_choice_t T_criticalExtensions_71_choice[] = { { 0, &hf_lte_rrc_ueCapabilityInformation_r13_01, ASN1_NO_EXTENSIONS , dissect_lte_rrc_UECapabilityInformation_NB_r13_IEs }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_69, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_69 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_71, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_71 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_69(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_71(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_69, T_criticalExtensions_69_choice, + ett_lte_rrc_T_criticalExtensions_71, T_criticalExtensions_71_choice, NULL); return offset; @@ -68561,7 +68815,7 @@ dissect_lte_rrc_T_criticalExtensions_69(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t UECapabilityInformation_NB_sequence[] = { { &hf_lte_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RRC_TransactionIdentifier }, - { &hf_lte_rrc_criticalExtensions_69, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_69 }, + { &hf_lte_rrc_criticalExtensions_71, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_71 }, { NULL, 0, 0, NULL } }; @@ -68576,14 +68830,14 @@ dissect_lte_rrc_UECapabilityInformation_NB(tvbuff_t *tvb _U_, int offset _U_, as } -static const per_sequence_t T_nonCriticalExtension_84_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_86_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_84(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_86(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_84, T_nonCriticalExtension_84_sequence); + ett_lte_rrc_T_nonCriticalExtension_86, T_nonCriticalExtension_86_sequence); return offset; } @@ -68592,7 +68846,7 @@ dissect_lte_rrc_T_nonCriticalExtension_84(tvbuff_t *tvb _U_, int offset _U_, asn static const per_sequence_t ULInformationTransfer_NB_r13_IEs_sequence[] = { { &hf_lte_rrc_dedicatedInfoNAS_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_DedicatedInfoNAS }, { &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING }, - { &hf_lte_rrc_nonCriticalExtension_206, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_84 }, + { &hf_lte_rrc_nonCriticalExtension_208, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_86 }, { NULL, 0, 0, NULL } }; @@ -68605,35 +68859,35 @@ dissect_lte_rrc_ULInformationTransfer_NB_r13_IEs(tvbuff_t *tvb _U_, int offset _ } -static const per_sequence_t T_criticalExtensionsFuture_70_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_72_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_70(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_72(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_70, T_criticalExtensionsFuture_70_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_72, T_criticalExtensionsFuture_72_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_70_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_72_vals[] = { { 0, "ulInformationTransfer-r13" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_70_choice[] = { +static const per_choice_t T_criticalExtensions_72_choice[] = { { 0, &hf_lte_rrc_ulInformationTransfer_r13_01, ASN1_NO_EXTENSIONS , dissect_lte_rrc_ULInformationTransfer_NB_r13_IEs }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_70, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_70 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_72, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_72 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_70(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_72(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_70, T_criticalExtensions_70_choice, + ett_lte_rrc_T_criticalExtensions_72, T_criticalExtensions_72_choice, NULL); return offset; @@ -68641,7 +68895,7 @@ dissect_lte_rrc_T_criticalExtensions_70(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t ULInformationTransfer_NB_sequence[] = { - { &hf_lte_rrc_criticalExtensions_70, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_70 }, + { &hf_lte_rrc_criticalExtensions_72, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_72 }, { NULL, 0, 0, NULL } }; @@ -68656,14 +68910,14 @@ dissect_lte_rrc_ULInformationTransfer_NB(tvbuff_t *tvb _U_, int offset _U_, asn1 } -static const per_sequence_t T_nonCriticalExtension_77_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_79_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_nonCriticalExtension_77(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_nonCriticalExtension_79(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_nonCriticalExtension_77, T_nonCriticalExtension_77_sequence); + ett_lte_rrc_T_nonCriticalExtension_79, T_nonCriticalExtension_79_sequence); return offset; } @@ -68673,7 +68927,7 @@ static const per_sequence_t RRCConnectionResumeComplete_NB_r13_IEs_sequence[] = { &hf_lte_rrc_selectedPLMN_Identity_r13, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_INTEGER_1_maxPLMN_r11 }, { &hf_lte_rrc_dedicatedInfoNAS_r13, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_DedicatedInfoNAS }, { &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING }, - { &hf_lte_rrc_nonCriticalExtension_199, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_77 }, + { &hf_lte_rrc_nonCriticalExtension_201, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_79 }, { NULL, 0, 0, NULL } }; @@ -68686,35 +68940,35 @@ dissect_lte_rrc_RRCConnectionResumeComplete_NB_r13_IEs(tvbuff_t *tvb _U_, int of } -static const per_sequence_t T_criticalExtensionsFuture_63_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_65_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensionsFuture_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensionsFuture_65(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensionsFuture_63, T_criticalExtensionsFuture_63_sequence); + ett_lte_rrc_T_criticalExtensionsFuture_65, T_criticalExtensionsFuture_65_sequence); return offset; } -static const value_string lte_rrc_T_criticalExtensions_63_vals[] = { +static const value_string lte_rrc_T_criticalExtensions_65_vals[] = { { 0, "rrcConnectionResumeComplete-r13" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_63_choice[] = { +static const per_choice_t T_criticalExtensions_65_choice[] = { { 0, &hf_lte_rrc_rrcConnectionResumeComplete_r13_03, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionResumeComplete_NB_r13_IEs }, - { 1, &hf_lte_rrc_criticalExtensionsFuture_63, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_63 }, + { 1, &hf_lte_rrc_criticalExtensionsFuture_65, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_criticalExtensionsFuture_65 }, { 0, NULL, 0, NULL } }; static int -dissect_lte_rrc_T_criticalExtensions_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_criticalExtensions_65(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_criticalExtensions_63, T_criticalExtensions_63_choice, + ett_lte_rrc_T_criticalExtensions_65, T_criticalExtensions_65_choice, NULL); return offset; @@ -68723,7 +68977,7 @@ dissect_lte_rrc_T_criticalExtensions_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t RRCConnectionResumeComplete_NB_sequence[] = { { &hf_lte_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RRC_TransactionIdentifier }, - { &hf_lte_rrc_criticalExtensions_63, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_63 }, + { &hf_lte_rrc_criticalExtensions_65, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_criticalExtensions_65 }, { NULL, 0, 0, NULL } }; @@ -68738,7 +68992,7 @@ dissect_lte_rrc_RRCConnectionResumeComplete_NB(tvbuff_t *tvb _U_, int offset _U_ } -static const value_string lte_rrc_T_c1_54_vals[] = { +static const value_string lte_rrc_T_c1_56_vals[] = { { 0, "rrcConnectionReconfigurationComplete-r13" }, { 1, "rrcConnectionReestablishmentComplete-r13" }, { 2, "rrcConnectionSetupComplete-r13" }, @@ -68758,7 +69012,7 @@ static const value_string lte_rrc_T_c1_54_vals[] = { { 0, NULL } }; -static const per_choice_t T_c1_54_choice[] = { +static const per_choice_t T_c1_56_choice[] = { { 0, &hf_lte_rrc_rrcConnectionReconfigurationComplete_r13, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionReconfigurationComplete_NB }, { 1, &hf_lte_rrc_rrcConnectionReestablishmentComplete_r13, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionReestablishmentComplete_NB }, { 2, &hf_lte_rrc_rrcConnectionSetupComplete_r13, ASN1_NO_EXTENSIONS , dissect_lte_rrc_RRCConnectionSetupComplete_NB }, @@ -68779,9 +69033,9 @@ static const per_choice_t T_c1_54_choice[] = { }; static int -dissect_lte_rrc_T_c1_54(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_lte_rrc_T_c1_56(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_lte_rrc_T_c1_54, T_c1_54_choice, + ett_lte_rrc_T_c1_56, T_c1_56_choice, NULL); return offset; @@ -68808,7 +69062,7 @@ static const value_string lte_rrc_UL_DCCH_MessageType_NB_vals[] = { }; static const per_choice_t UL_DCCH_MessageType_NB_choice[] = { - { 0, &hf_lte_rrc_c1_54 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_54 }, + { 0, &hf_lte_rrc_c1_56 , ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_c1_56 }, { 1, &hf_lte_rrc_messageClassExtension_14, ASN1_NO_EXTENSIONS , dissect_lte_rrc_T_messageClassExtension_14 }, { 0, NULL, 0, NULL } }; @@ -69024,6 +69278,14 @@ int dissect_lte_rrc_HandoverPreparationInformation_NB_PDU(tvbuff_t *tvb _U_, pac offset += 7; offset >>= 3; return offset; } +int dissect_lte_rrc_UEPagingCoverageInformation_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo); + offset = dissect_lte_rrc_UEPagingCoverageInformation_NB(tvb, offset, &asn1_ctx, tree, hf_lte_rrc_lte_rrc_UEPagingCoverageInformation_NB_PDU); + offset += 7; offset >>= 3; + return offset; +} int dissect_lte_rrc_UERadioAccessCapabilityInformation_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -69032,6 +69294,14 @@ int dissect_lte_rrc_UERadioAccessCapabilityInformation_NB_PDU(tvbuff_t *tvb _U_, offset += 7; offset >>= 3; return offset; } +int dissect_lte_rrc_UERadioPagingInformation_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo); + offset = dissect_lte_rrc_UERadioPagingInformation_NB(tvb, offset, &asn1_ctx, tree, hf_lte_rrc_lte_rrc_UERadioPagingInformation_NB_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_BCCH_BCH_Message_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -69248,6 +69518,14 @@ static int dissect_UE_Capability_NB_r13_PDU(tvbuff_t *tvb _U_, packet_info *pinf offset += 7; offset >>= 3; return offset; } +static int dissect_UE_RadioPagingInfo_NB_r13_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo); + offset = dissect_lte_rrc_UE_RadioPagingInfo_NB_r13(tvb, offset, &asn1_ctx, tree, hf_lte_rrc_UE_RadioPagingInfo_NB_r13_PDU); + offset += 7; offset >>= 3; + return offset; +} /*--- End of included file: packet-lte-rrc-fn.c ---*/ @@ -69666,10 +69944,18 @@ void proto_register_lte_rrc(void) { { "HandoverPreparationInformation-NB", "lte-rrc.HandoverPreparationInformation_NB_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_lte_rrc_lte_rrc_UEPagingCoverageInformation_NB_PDU, + { "UEPagingCoverageInformation-NB", "lte-rrc.UEPagingCoverageInformation_NB_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_lte_rrc_lte_rrc_UERadioAccessCapabilityInformation_NB_PDU, { "UERadioAccessCapabilityInformation-NB", "lte-rrc.UERadioAccessCapabilityInformation_NB_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_lte_rrc_lte_rrc_UERadioPagingInformation_NB_PDU, + { "UERadioPagingInformation-NB", "lte-rrc.UERadioPagingInformation_NB_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_lte_rrc_BCCH_BCH_Message_NB_PDU, { "BCCH-BCH-Message-NB", "lte-rrc.BCCH_BCH_Message_NB_element", FT_NONE, BASE_NONE, NULL, 0, @@ -69778,6 +70064,10 @@ void proto_register_lte_rrc(void) { { "UE-Capability-NB-r13", "lte-rrc.UE_Capability_NB_r13_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_lte_rrc_UE_RadioPagingInfo_NB_r13_PDU, + { "UE-RadioPagingInfo-NB-r13", "lte-rrc.UE_RadioPagingInfo_NB_r13_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_lte_rrc_criticalExtensions, { "criticalExtensions", "lte-rrc.criticalExtensions", FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_vals), 0, @@ -85722,22 +86012,70 @@ void proto_register_lte_rrc(void) { { "c1", "lte-rrc.c1", FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_48_vals), 0, "T_c1_48", HFILL }}, + { &hf_lte_rrc_uePagingCoverageInformation_r13_01, + { "uePagingCoverageInformation-r13", "lte-rrc.uePagingCoverageInformation_r13_element", + FT_NONE, BASE_NONE, NULL, 0, + "UEPagingCoverageInformation_NB_IEs", HFILL }}, + { &hf_lte_rrc_criticalExtensionsFuture_52, + { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_52", HFILL }}, + { &hf_lte_rrc_npdcch_NumRepetitionPaging_r13, + { "npdcch-NumRepetitionPaging-r13", "lte-rrc.npdcch_NumRepetitionPaging_r13", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_2048", HFILL }}, + { &hf_lte_rrc_nonCriticalExtension_189, + { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_67", HFILL }}, + { &hf_lte_rrc_criticalExtensions_53, + { "criticalExtensions", "lte-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_53_vals), 0, + "T_criticalExtensions_53", HFILL }}, + { &hf_lte_rrc_c1_49, + { "c1", "lte-rrc.c1", + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_49_vals), 0, + "T_c1_49", HFILL }}, { &hf_lte_rrc_ueRadioAccessCapabilityInformation_r13, { "ueRadioAccessCapabilityInformation-r13", "lte-rrc.ueRadioAccessCapabilityInformation_r13_element", FT_NONE, BASE_NONE, NULL, 0, "UERadioAccessCapabilityInformation_NB_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_52, + { &hf_lte_rrc_criticalExtensionsFuture_53, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_52", HFILL }}, + "T_criticalExtensionsFuture_53", HFILL }}, { &hf_lte_rrc_ue_RadioAccessCapabilityInfo_r13_01, { "ue-RadioAccessCapabilityInfo-r13", "lte-rrc.ue_RadioAccessCapabilityInfo_r13", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_189, + { &hf_lte_rrc_nonCriticalExtension_190, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_67", HFILL }}, + "T_nonCriticalExtension_68", HFILL }}, + { &hf_lte_rrc_criticalExtensions_54, + { "criticalExtensions", "lte-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_54_vals), 0, + "T_criticalExtensions_54", HFILL }}, + { &hf_lte_rrc_c1_50, + { "c1", "lte-rrc.c1", + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_50_vals), 0, + "T_c1_50", HFILL }}, + { &hf_lte_rrc_ueRadioPagingInformation_r13, + { "ueRadioPagingInformation-r13", "lte-rrc.ueRadioPagingInformation_r13_element", + FT_NONE, BASE_NONE, NULL, 0, + "UERadioPagingInformation_NB_IEs", HFILL }}, + { &hf_lte_rrc_criticalExtensionsFuture_54, + { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_54", HFILL }}, + { &hf_lte_rrc_ue_RadioPagingInfo_r13, + { "ue-RadioPagingInfo-r13", "lte-rrc.ue_RadioPagingInfo_r13", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_lte_rrc_nonCriticalExtension_191, + { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_69", HFILL }}, { &hf_lte_rrc_sourceRadioResourceConfig_r13, { "sourceRadioResourceConfig-r13", "lte-rrc.sourceRadioResourceConfig_r13_element", FT_NONE, BASE_NONE, NULL, 0, @@ -85782,10 +86120,10 @@ void proto_register_lte_rrc(void) { { "message", "lte-rrc.message", FT_UINT32, BASE_DEC, VALS(lte_rrc_BCCH_DL_SCH_MessageType_NB_vals), 0, "BCCH_DL_SCH_MessageType_NB", HFILL }}, - { &hf_lte_rrc_c1_49, + { &hf_lte_rrc_c1_51, { "c1", "lte-rrc.c1", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_49_vals), 0, - "T_c1_49", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_51_vals), 0, + "T_c1_51", HFILL }}, { &hf_lte_rrc_systemInformation_r13, { "systemInformation-r13", "lte-rrc.systemInformation_r13_element", FT_NONE, BASE_NONE, NULL, 0, @@ -85802,10 +86140,10 @@ void proto_register_lte_rrc(void) { { "message", "lte-rrc.message", FT_UINT32, BASE_DEC, VALS(lte_rrc_PCCH_MessageType_NB_vals), 0, "PCCH_MessageType_NB", HFILL }}, - { &hf_lte_rrc_c1_50, + { &hf_lte_rrc_c1_52, { "c1", "lte-rrc.c1", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_50_vals), 0, - "T_c1_50", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_52_vals), 0, + "T_c1_52", HFILL }}, { &hf_lte_rrc_paging_r13, { "paging-r13", "lte-rrc.paging_r13_element", FT_NONE, BASE_NONE, NULL, 0, @@ -85818,10 +86156,10 @@ void proto_register_lte_rrc(void) { { "message", "lte-rrc.message", FT_UINT32, BASE_DEC, VALS(lte_rrc_DL_CCCH_MessageType_NB_vals), 0, "DL_CCCH_MessageType_NB", HFILL }}, - { &hf_lte_rrc_c1_51, + { &hf_lte_rrc_c1_53, { "c1", "lte-rrc.c1", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_51_vals), 0, - "T_c1_51", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_53_vals), 0, + "T_c1_53", HFILL }}, { &hf_lte_rrc_rrcConnectionReestablishment_r13, { "rrcConnectionReestablishment-r13", "lte-rrc.rrcConnectionReestablishment_r13_element", FT_NONE, BASE_NONE, NULL, 0, @@ -85846,10 +86184,10 @@ void proto_register_lte_rrc(void) { { "message", "lte-rrc.message", FT_UINT32, BASE_DEC, VALS(lte_rrc_DL_DCCH_MessageType_NB_vals), 0, "DL_DCCH_MessageType_NB", HFILL }}, - { &hf_lte_rrc_c1_52, + { &hf_lte_rrc_c1_54, { "c1", "lte-rrc.c1", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_52_vals), 0, - "T_c1_52", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_54_vals), 0, + "T_c1_54", HFILL }}, { &hf_lte_rrc_dlInformationTransfer_r13, { "dlInformationTransfer-r13", "lte-rrc.dlInformationTransfer_r13_element", FT_NONE, BASE_NONE, NULL, 0, @@ -85882,10 +86220,10 @@ void proto_register_lte_rrc(void) { { "message", "lte-rrc.message", FT_UINT32, BASE_DEC, VALS(lte_rrc_UL_CCCH_MessageType_NB_vals), 0, "UL_CCCH_MessageType_NB", HFILL }}, - { &hf_lte_rrc_c1_53, + { &hf_lte_rrc_c1_55, { "c1", "lte-rrc.c1", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_53_vals), 0, - "T_c1_53", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_55_vals), 0, + "T_c1_55", HFILL }}, { &hf_lte_rrc_rrcConnectionReestablishmentRequest_r13, { "rrcConnectionReestablishmentRequest-r13", "lte-rrc.rrcConnectionReestablishmentRequest_r13_element", FT_NONE, BASE_NONE, NULL, 0, @@ -85906,10 +86244,10 @@ void proto_register_lte_rrc(void) { { "message", "lte-rrc.message", FT_UINT32, BASE_DEC, VALS(lte_rrc_UL_DCCH_MessageType_NB_vals), 0, "UL_DCCH_MessageType_NB", HFILL }}, - { &hf_lte_rrc_c1_54, + { &hf_lte_rrc_c1_56, { "c1", "lte-rrc.c1", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_54_vals), 0, - "T_c1_54", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_56_vals), 0, + "T_c1_56", HFILL }}, { &hf_lte_rrc_rrcConnectionReconfigurationComplete_r13, { "rrcConnectionReconfigurationComplete-r13", "lte-rrc.rrcConnectionReconfigurationComplete_r13_element", FT_NONE, BASE_NONE, NULL, 0, @@ -85946,26 +86284,26 @@ void proto_register_lte_rrc(void) { { "messageClassExtension", "lte-rrc.messageClassExtension_element", FT_NONE, BASE_NONE, NULL, 0, "T_messageClassExtension_14", HFILL }}, - { &hf_lte_rrc_criticalExtensions_53, + { &hf_lte_rrc_criticalExtensions_55, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_53_vals), 0, - "T_criticalExtensions_53", HFILL }}, - { &hf_lte_rrc_c1_55, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_55_vals), 0, + "T_criticalExtensions_55", HFILL }}, + { &hf_lte_rrc_c1_57, { "c1", "lte-rrc.c1", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_55_vals), 0, - "T_c1_55", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_57_vals), 0, + "T_c1_57", HFILL }}, { &hf_lte_rrc_dlInformationTransfer_r13_01, { "dlInformationTransfer-r13", "lte-rrc.dlInformationTransfer_r13_element", FT_NONE, BASE_NONE, NULL, 0, "DLInformationTransfer_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_53, + { &hf_lte_rrc_criticalExtensionsFuture_55, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_53", HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_190, + "T_criticalExtensionsFuture_55", HFILL }}, + { &hf_lte_rrc_nonCriticalExtension_192, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_68", HFILL }}, + "T_nonCriticalExtension_70", HFILL }}, { &hf_lte_rrc_systemFrameNumber_MSB_r13, { "systemFrameNumber-MSB-r13", "lte-rrc.systemFrameNumber_MSB_r13", FT_BYTES, BASE_NONE, NULL, 0, @@ -86038,10 +86376,10 @@ void proto_register_lte_rrc(void) { { "systemInfoModification-eDRX-r13", "lte-rrc.systemInfoModification_eDRX_r13", FT_UINT32, BASE_DEC, VALS(lte_rrc_T_systemInfoModification_eDRX_r13_01_vals), 0, "T_systemInfoModification_eDRX_r13_01", HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_191, + { &hf_lte_rrc_nonCriticalExtension_193, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_69", HFILL }}, + "T_nonCriticalExtension_71", HFILL }}, { &hf_lte_rrc_PagingRecordList_NB_r13_item, { "PagingRecord-NB-r13", "lte-rrc.PagingRecord_NB_r13_element", FT_NONE, BASE_NONE, NULL, 0, @@ -86050,22 +86388,22 @@ void proto_register_lte_rrc(void) { { "ue-Identity-r13", "lte-rrc.ue_Identity_r13", FT_UINT32, BASE_DEC, VALS(lte_rrc_PagingUE_Identity_vals), 0, "PagingUE_Identity", HFILL }}, - { &hf_lte_rrc_criticalExtensions_54, + { &hf_lte_rrc_criticalExtensions_56, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_54_vals), 0, - "T_criticalExtensions_54", HFILL }}, - { &hf_lte_rrc_c1_56, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_56_vals), 0, + "T_criticalExtensions_56", HFILL }}, + { &hf_lte_rrc_c1_58, { "c1", "lte-rrc.c1", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_56_vals), 0, - "T_c1_56", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_58_vals), 0, + "T_c1_58", HFILL }}, { &hf_lte_rrc_rrcConnectionReconfiguration_r13_01, { "rrcConnectionReconfiguration-r13", "lte-rrc.rrcConnectionReconfiguration_r13_element", FT_NONE, BASE_NONE, NULL, 0, "RRCConnectionReconfiguration_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_54, + { &hf_lte_rrc_criticalExtensionsFuture_56, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_54", HFILL }}, + "T_criticalExtensionsFuture_56", HFILL }}, { &hf_lte_rrc_dedicatedInfoNASList_r13, { "dedicatedInfoNASList-r13", "lte-rrc.dedicatedInfoNASList_r13", FT_UINT32, BASE_DEC, NULL, 0, @@ -86082,74 +86420,74 @@ void proto_register_lte_rrc(void) { { "fullConfig-r13", "lte-rrc.fullConfig_r13", FT_UINT32, BASE_DEC, VALS(lte_rrc_T_fullConfig_r13_vals), 0, NULL, HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_192, + { &hf_lte_rrc_nonCriticalExtension_194, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_70", HFILL }}, - { &hf_lte_rrc_criticalExtensions_55, + "T_nonCriticalExtension_72", HFILL }}, + { &hf_lte_rrc_criticalExtensions_57, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_55_vals), 0, - "T_criticalExtensions_55", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_57_vals), 0, + "T_criticalExtensions_57", HFILL }}, { &hf_lte_rrc_rrcConnectionReconfigurationComplete_r13_01, { "rrcConnectionReconfigurationComplete-r13", "lte-rrc.rrcConnectionReconfigurationComplete_r13_element", FT_NONE, BASE_NONE, NULL, 0, "RRCConnectionReconfigurationComplete_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_55, + { &hf_lte_rrc_criticalExtensionsFuture_57, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_55", HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_193, + "T_criticalExtensionsFuture_57", HFILL }}, + { &hf_lte_rrc_nonCriticalExtension_195, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_71", HFILL }}, - { &hf_lte_rrc_criticalExtensions_56, + "T_nonCriticalExtension_73", HFILL }}, + { &hf_lte_rrc_criticalExtensions_58, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_56_vals), 0, - "T_criticalExtensions_56", HFILL }}, - { &hf_lte_rrc_c1_57, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_58_vals), 0, + "T_criticalExtensions_58", HFILL }}, + { &hf_lte_rrc_c1_59, { "c1", "lte-rrc.c1", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_57_vals), 0, - "T_c1_57", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_59_vals), 0, + "T_c1_59", HFILL }}, { &hf_lte_rrc_rrcConnectionReestablishment_r13_01, { "rrcConnectionReestablishment-r13", "lte-rrc.rrcConnectionReestablishment_r13_element", FT_NONE, BASE_NONE, NULL, 0, "RRCConnectionReestablishment_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_56, + { &hf_lte_rrc_criticalExtensionsFuture_58, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_56", HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_194, + "T_criticalExtensionsFuture_58", HFILL }}, + { &hf_lte_rrc_nonCriticalExtension_196, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_72", HFILL }}, - { &hf_lte_rrc_criticalExtensions_57, + "T_nonCriticalExtension_74", HFILL }}, + { &hf_lte_rrc_criticalExtensions_59, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_57_vals), 0, - "T_criticalExtensions_57", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_59_vals), 0, + "T_criticalExtensions_59", HFILL }}, { &hf_lte_rrc_rrcConnectionReestablishmentComplete_r13_01, { "rrcConnectionReestablishmentComplete-r13", "lte-rrc.rrcConnectionReestablishmentComplete_r13_element", FT_NONE, BASE_NONE, NULL, 0, "RRCConnectionReestablishmentComplete_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_57, + { &hf_lte_rrc_criticalExtensionsFuture_59, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_57", HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_195, + "T_criticalExtensionsFuture_59", HFILL }}, + { &hf_lte_rrc_nonCriticalExtension_197, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_73", HFILL }}, - { &hf_lte_rrc_criticalExtensions_58, + "T_nonCriticalExtension_75", HFILL }}, + { &hf_lte_rrc_criticalExtensions_60, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_58_vals), 0, - "T_criticalExtensions_58", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_60_vals), 0, + "T_criticalExtensions_60", HFILL }}, { &hf_lte_rrc_rrcConnectionReestablishmentRequest_r13_01, { "rrcConnectionReestablishmentRequest-r13", "lte-rrc.rrcConnectionReestablishmentRequest_r13_element", FT_NONE, BASE_NONE, NULL, 0, "RRCConnectionReestablishmentRequest_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_58, + { &hf_lte_rrc_criticalExtensionsFuture_60, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_58", HFILL }}, + "T_criticalExtensionsFuture_60", HFILL }}, { &hf_lte_rrc_ue_Identity_r13_01, { "ue-Identity-r13", "lte-rrc.ue_Identity_r13_element", FT_NONE, BASE_NONE, NULL, 0, @@ -86162,22 +86500,22 @@ void proto_register_lte_rrc(void) { { "spare", "lte-rrc.spare", FT_BYTES, BASE_NONE, NULL, 0, "BIT_STRING_SIZE_25", HFILL }}, - { &hf_lte_rrc_criticalExtensions_59, + { &hf_lte_rrc_criticalExtensions_61, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_59_vals), 0, - "T_criticalExtensions_59", HFILL }}, - { &hf_lte_rrc_c1_58, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_61_vals), 0, + "T_criticalExtensions_61", HFILL }}, + { &hf_lte_rrc_c1_60, { "c1", "lte-rrc.c1", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_58_vals), 0, - "T_c1_58", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_60_vals), 0, + "T_c1_60", HFILL }}, { &hf_lte_rrc_rrcConnectionReject_r13_01, { "rrcConnectionReject-r13", "lte-rrc.rrcConnectionReject_r13_element", FT_NONE, BASE_NONE, NULL, 0, "RRCConnectionReject_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_59, + { &hf_lte_rrc_criticalExtensionsFuture_61, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_59", HFILL }}, + "T_criticalExtensionsFuture_61", HFILL }}, { &hf_lte_rrc_extendedWaitTime_r13, { "extendedWaitTime-r13", "lte-rrc.extendedWaitTime_r13", FT_UINT32, BASE_DEC, NULL, 0, @@ -86186,26 +86524,26 @@ void proto_register_lte_rrc(void) { { "rrc-SuspendIndication-r13", "lte-rrc.rrc_SuspendIndication_r13", FT_UINT32, BASE_DEC, VALS(lte_rrc_T_rrc_SuspendIndication_r13_01_vals), 0, "T_rrc_SuspendIndication_r13_01", HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_196, + { &hf_lte_rrc_nonCriticalExtension_198, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_74", HFILL }}, - { &hf_lte_rrc_criticalExtensions_60, + "T_nonCriticalExtension_76", HFILL }}, + { &hf_lte_rrc_criticalExtensions_62, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_60_vals), 0, - "T_criticalExtensions_60", HFILL }}, - { &hf_lte_rrc_c1_59, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_62_vals), 0, + "T_criticalExtensions_62", HFILL }}, + { &hf_lte_rrc_c1_61, { "c1", "lte-rrc.c1", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_59_vals), 0, - "T_c1_59", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_61_vals), 0, + "T_c1_61", HFILL }}, { &hf_lte_rrc_rrcConnectionRelease_r13_01, { "rrcConnectionRelease-r13", "lte-rrc.rrcConnectionRelease_r13_element", FT_NONE, BASE_NONE, NULL, 0, "RRCConnectionRelease_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_60, + { &hf_lte_rrc_criticalExtensionsFuture_62, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_60", HFILL }}, + "T_criticalExtensionsFuture_62", HFILL }}, { &hf_lte_rrc_releaseCause_r13, { "releaseCause-r13", "lte-rrc.releaseCause_r13", FT_UINT32, BASE_DEC, VALS(lte_rrc_ReleaseCause_NB_r13_vals), 0, @@ -86218,22 +86556,22 @@ void proto_register_lte_rrc(void) { { "redirectedCarrierInfo-r13", "lte-rrc.redirectedCarrierInfo_r13_element", FT_NONE, BASE_NONE, NULL, 0, "RedirectedCarrierInfo_NB_r13", HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_197, + { &hf_lte_rrc_nonCriticalExtension_199, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_75", HFILL }}, - { &hf_lte_rrc_criticalExtensions_61, + "T_nonCriticalExtension_77", HFILL }}, + { &hf_lte_rrc_criticalExtensions_63, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_61_vals), 0, - "T_criticalExtensions_61", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_63_vals), 0, + "T_criticalExtensions_63", HFILL }}, { &hf_lte_rrc_rrcConnectionRequest_r13_01, { "rrcConnectionRequest-r13", "lte-rrc.rrcConnectionRequest_r13_element", FT_NONE, BASE_NONE, NULL, 0, "RRCConnectionRequest_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_61, + { &hf_lte_rrc_criticalExtensionsFuture_63, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_61", HFILL }}, + "T_criticalExtensionsFuture_63", HFILL }}, { &hf_lte_rrc_ue_Identity_r13_02, { "ue-Identity-r13", "lte-rrc.ue_Identity_r13", FT_UINT32, BASE_DEC, VALS(lte_rrc_InitialUE_Identity_vals), 0, @@ -86254,58 +86592,58 @@ void proto_register_lte_rrc(void) { { "spare", "lte-rrc.spare", FT_BYTES, BASE_NONE, NULL, 0, "BIT_STRING_SIZE_22", HFILL }}, - { &hf_lte_rrc_criticalExtensions_62, + { &hf_lte_rrc_criticalExtensions_64, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_62_vals), 0, - "T_criticalExtensions_62", HFILL }}, - { &hf_lte_rrc_c1_60, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_64_vals), 0, + "T_criticalExtensions_64", HFILL }}, + { &hf_lte_rrc_c1_62, { "c1", "lte-rrc.c1", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_60_vals), 0, - "T_c1_60", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_62_vals), 0, + "T_c1_62", HFILL }}, { &hf_lte_rrc_rrcConnectionResume_r13_03, { "rrcConnectionResume-r13", "lte-rrc.rrcConnectionResume_r13_element", FT_NONE, BASE_NONE, NULL, 0, "RRCConnectionResume_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_62, + { &hf_lte_rrc_criticalExtensionsFuture_64, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_62", HFILL }}, + "T_criticalExtensionsFuture_64", HFILL }}, { &hf_lte_rrc_drb_ContinueROHC_r13_01, { "drb-ContinueROHC-r13", "lte-rrc.drb_ContinueROHC_r13", FT_UINT32, BASE_DEC, VALS(lte_rrc_T_drb_ContinueROHC_r13_01_vals), 0, "T_drb_ContinueROHC_r13_01", HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_198, + { &hf_lte_rrc_nonCriticalExtension_200, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_76", HFILL }}, - { &hf_lte_rrc_criticalExtensions_63, + "T_nonCriticalExtension_78", HFILL }}, + { &hf_lte_rrc_criticalExtensions_65, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_63_vals), 0, - "T_criticalExtensions_63", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_65_vals), 0, + "T_criticalExtensions_65", HFILL }}, { &hf_lte_rrc_rrcConnectionResumeComplete_r13_03, { "rrcConnectionResumeComplete-r13", "lte-rrc.rrcConnectionResumeComplete_r13_element", FT_NONE, BASE_NONE, NULL, 0, "RRCConnectionResumeComplete_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_63, + { &hf_lte_rrc_criticalExtensionsFuture_65, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_63", HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_199, + "T_criticalExtensionsFuture_65", HFILL }}, + { &hf_lte_rrc_nonCriticalExtension_201, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_77", HFILL }}, - { &hf_lte_rrc_criticalExtensions_64, + "T_nonCriticalExtension_79", HFILL }}, + { &hf_lte_rrc_criticalExtensions_66, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_64_vals), 0, - "T_criticalExtensions_64", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_66_vals), 0, + "T_criticalExtensions_66", HFILL }}, { &hf_lte_rrc_rrcConnectionResumeRequest_r13_03, { "rrcConnectionResumeRequest-r13", "lte-rrc.rrcConnectionResumeRequest_r13_element", FT_NONE, BASE_NONE, NULL, 0, "RRCConnectionResumeRequest_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_64, + { &hf_lte_rrc_criticalExtensionsFuture_66, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_64", HFILL }}, + "T_criticalExtensionsFuture_66", HFILL }}, { &hf_lte_rrc_shortResumeMAC_I_r13_01, { "shortResumeMAC-I-r13", "lte-rrc.shortResumeMAC_I_r13", FT_BYTES, BASE_NONE, NULL, 0, @@ -86318,38 +86656,38 @@ void proto_register_lte_rrc(void) { { "spare", "lte-rrc.spare", FT_BYTES, BASE_NONE, NULL, 0, "BIT_STRING_SIZE_9", HFILL }}, - { &hf_lte_rrc_criticalExtensions_65, + { &hf_lte_rrc_criticalExtensions_67, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_65_vals), 0, - "T_criticalExtensions_65", HFILL }}, - { &hf_lte_rrc_c1_61, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_67_vals), 0, + "T_criticalExtensions_67", HFILL }}, + { &hf_lte_rrc_c1_63, { "c1", "lte-rrc.c1", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_61_vals), 0, - "T_c1_61", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_63_vals), 0, + "T_c1_63", HFILL }}, { &hf_lte_rrc_rrcConnectionSetup_r13_01, { "rrcConnectionSetup-r13", "lte-rrc.rrcConnectionSetup_r13_element", FT_NONE, BASE_NONE, NULL, 0, "RRCConnectionSetup_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_65, + { &hf_lte_rrc_criticalExtensionsFuture_67, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_65", HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_200, + "T_criticalExtensionsFuture_67", HFILL }}, + { &hf_lte_rrc_nonCriticalExtension_202, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_78", HFILL }}, - { &hf_lte_rrc_criticalExtensions_66, + "T_nonCriticalExtension_80", HFILL }}, + { &hf_lte_rrc_criticalExtensions_68, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_66_vals), 0, - "T_criticalExtensions_66", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_68_vals), 0, + "T_criticalExtensions_68", HFILL }}, { &hf_lte_rrc_rrcConnectionSetupComplete_r13_01, { "rrcConnectionSetupComplete-r13", "lte-rrc.rrcConnectionSetupComplete_r13_element", FT_NONE, BASE_NONE, NULL, 0, "RRCConnectionSetupComplete_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_66, + { &hf_lte_rrc_criticalExtensionsFuture_68, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_66", HFILL }}, + "T_criticalExtensionsFuture_68", HFILL }}, { &hf_lte_rrc_registeredMME_r13, { "registeredMME-r13", "lte-rrc.registeredMME_r13_element", FT_NONE, BASE_NONE, NULL, 0, @@ -86362,22 +86700,22 @@ void proto_register_lte_rrc(void) { { "up-CIoT-EPS-Optimisation-r13", "lte-rrc.up_CIoT_EPS_Optimisation_r13", FT_UINT32, BASE_DEC, VALS(lte_rrc_T_up_CIoT_EPS_Optimisation_r13_02_vals), 0, "T_up_CIoT_EPS_Optimisation_r13_02", HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_201, + { &hf_lte_rrc_nonCriticalExtension_203, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_79", HFILL }}, - { &hf_lte_rrc_criticalExtensions_67, + "T_nonCriticalExtension_81", HFILL }}, + { &hf_lte_rrc_criticalExtensions_69, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_67_vals), 0, - "T_criticalExtensions_67", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_69_vals), 0, + "T_criticalExtensions_69", HFILL }}, { &hf_lte_rrc_systemInformation_r13_01, { "systemInformation-r13", "lte-rrc.systemInformation_r13_element", FT_NONE, BASE_NONE, NULL, 0, "SystemInformation_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_67, + { &hf_lte_rrc_criticalExtensionsFuture_69, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_67", HFILL }}, + "T_criticalExtensionsFuture_69", HFILL }}, { &hf_lte_rrc_sib_TypeAndInfo_r13, { "sib-TypeAndInfo-r13", "lte-rrc.sib_TypeAndInfo_r13", FT_UINT32, BASE_DEC, NULL, 0, @@ -86410,10 +86748,10 @@ void proto_register_lte_rrc(void) { { "sib16-r13", "lte-rrc.sib16_r13_element", FT_NONE, BASE_NONE, NULL, 0, "SystemInformationBlockType16_NB_r13", HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_202, + { &hf_lte_rrc_nonCriticalExtension_204, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_80", HFILL }}, + "T_nonCriticalExtension_82", HFILL }}, { &hf_lte_rrc_hyperSFN_MSB_r13, { "hyperSFN-MSB-r13", "lte-rrc.hyperSFN_MSB_r13", FT_BYTES, BASE_NONE, NULL, 0, @@ -86490,10 +86828,10 @@ void proto_register_lte_rrc(void) { { "systemInfoValueTagList-r13", "lte-rrc.systemInfoValueTagList_r13", FT_UINT32, BASE_DEC, NULL, 0, "SystemInfoValueTagList_NB_r13", HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_203, + { &hf_lte_rrc_nonCriticalExtension_205, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_81", HFILL }}, + "T_nonCriticalExtension_83", HFILL }}, { &hf_lte_rrc_PLMN_IdentityList_NB_r13_item, { "PLMN-IdentityInfo-NB-r13", "lte-rrc.PLMN_IdentityInfo_NB_r13_element", FT_NONE, BASE_NONE, NULL, 0, @@ -86538,66 +86876,66 @@ void proto_register_lte_rrc(void) { { "SIB-Type-NB-r13", "lte-rrc.SIB_Type_NB_r13", FT_UINT32, BASE_DEC, VALS(lte_rrc_SIB_Type_NB_r13_vals), 0, NULL, HFILL }}, - { &hf_lte_rrc_criticalExtensions_68, + { &hf_lte_rrc_criticalExtensions_70, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_68_vals), 0, - "T_criticalExtensions_68", HFILL }}, - { &hf_lte_rrc_c1_62, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_70_vals), 0, + "T_criticalExtensions_70", HFILL }}, + { &hf_lte_rrc_c1_64, { "c1", "lte-rrc.c1", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_62_vals), 0, - "T_c1_62", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_c1_64_vals), 0, + "T_c1_64", HFILL }}, { &hf_lte_rrc_ueCapabilityEnquiry_r13_01, { "ueCapabilityEnquiry-r13", "lte-rrc.ueCapabilityEnquiry_r13_element", FT_NONE, BASE_NONE, NULL, 0, "UECapabilityEnquiry_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_68, + { &hf_lte_rrc_criticalExtensionsFuture_70, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_68", HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_204, + "T_criticalExtensionsFuture_70", HFILL }}, + { &hf_lte_rrc_nonCriticalExtension_206, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_82", HFILL }}, - { &hf_lte_rrc_criticalExtensions_69, + "T_nonCriticalExtension_84", HFILL }}, + { &hf_lte_rrc_criticalExtensions_71, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_69_vals), 0, - "T_criticalExtensions_69", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_71_vals), 0, + "T_criticalExtensions_71", HFILL }}, { &hf_lte_rrc_ueCapabilityInformation_r13_01, { "ueCapabilityInformation-r13", "lte-rrc.ueCapabilityInformation_r13_element", FT_NONE, BASE_NONE, NULL, 0, "UECapabilityInformation_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_69, + { &hf_lte_rrc_criticalExtensionsFuture_71, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_69", HFILL }}, + "T_criticalExtensionsFuture_71", HFILL }}, { &hf_lte_rrc_ue_Capability_Container_r13, { "ue-Capability-Container-r13", "lte-rrc.ue_Capability_Container_r13_element", FT_NONE, BASE_NONE, NULL, 0, "UE_Capability_NB_r13", HFILL }}, - { &hf_lte_rrc_ue_RadioPagingInfo_r13, + { &hf_lte_rrc_ue_RadioPagingInfo_r13_01, { "ue-RadioPagingInfo-r13", "lte-rrc.ue_RadioPagingInfo_r13_element", FT_NONE, BASE_NONE, NULL, 0, "UE_RadioPagingInfo_NB_r13", HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_205, + { &hf_lte_rrc_nonCriticalExtension_207, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_83", HFILL }}, - { &hf_lte_rrc_criticalExtensions_70, + "T_nonCriticalExtension_85", HFILL }}, + { &hf_lte_rrc_criticalExtensions_72, { "criticalExtensions", "lte-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_70_vals), 0, - "T_criticalExtensions_70", HFILL }}, + FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_72_vals), 0, + "T_criticalExtensions_72", HFILL }}, { &hf_lte_rrc_ulInformationTransfer_r13_01, { "ulInformationTransfer-r13", "lte-rrc.ulInformationTransfer_r13_element", FT_NONE, BASE_NONE, NULL, 0, "ULInformationTransfer_NB_r13_IEs", HFILL }}, - { &hf_lte_rrc_criticalExtensionsFuture_70, + { &hf_lte_rrc_criticalExtensionsFuture_72, { "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_70", HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_206, + "T_criticalExtensionsFuture_72", HFILL }}, + { &hf_lte_rrc_nonCriticalExtension_208, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_84", HFILL }}, + "T_nonCriticalExtension_86", HFILL }}, { &hf_lte_rrc_radioResourceConfigCommon_r13, { "radioResourceConfigCommon-r13", "lte-rrc.radioResourceConfigCommon_r13_element", FT_NONE, BASE_NONE, NULL, 0, @@ -87134,7 +87472,7 @@ void proto_register_lte_rrc(void) { { "nB-r13", "lte-rrc.nB_r13", FT_UINT32, BASE_DEC, VALS(lte_rrc_T_nB_r13_vals), 0, NULL, HFILL }}, - { &hf_lte_rrc_npdcch_NumRepetitionPaging_r13, + { &hf_lte_rrc_npdcch_NumRepetitionPaging_r13_01, { "npdcch-NumRepetitionPaging-r13", "lte-rrc.npdcch_NumRepetitionPaging_r13", FT_UINT32, BASE_DEC, VALS(lte_rrc_T_npdcch_NumRepetitionPaging_r13_vals), 0, NULL, HFILL }}, @@ -87322,10 +87660,10 @@ void proto_register_lte_rrc(void) { { "rf-Parameters-r13", "lte-rrc.rf_Parameters_r13_element", FT_NONE, BASE_NONE, NULL, 0, "RF_Parameters_NB_r13", HFILL }}, - { &hf_lte_rrc_nonCriticalExtension_207, + { &hf_lte_rrc_nonCriticalExtension_209, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_85", HFILL }}, + "T_nonCriticalExtension_87", HFILL }}, { &hf_lte_rrc_supportedROHC_Profiles_r13, { "supportedROHC-Profiles-r13", "lte-rrc.supportedROHC_Profiles_r13_element", FT_NONE, BASE_NONE, NULL, 0, @@ -90012,12 +90350,24 @@ void proto_register_lte_rrc(void) { &ett_lte_rrc_T_criticalExtensionsFuture_51, &ett_lte_rrc_HandoverPreparationInformation_NB_IEs, &ett_lte_rrc_T_nonCriticalExtension_66, - &ett_lte_rrc_UERadioAccessCapabilityInformation_NB, + &ett_lte_rrc_UEPagingCoverageInformation_NB, &ett_lte_rrc_T_criticalExtensions_52, &ett_lte_rrc_T_c1_48, &ett_lte_rrc_T_criticalExtensionsFuture_52, - &ett_lte_rrc_UERadioAccessCapabilityInformation_NB_IEs, + &ett_lte_rrc_UEPagingCoverageInformation_NB_IEs, &ett_lte_rrc_T_nonCriticalExtension_67, + &ett_lte_rrc_UERadioAccessCapabilityInformation_NB, + &ett_lte_rrc_T_criticalExtensions_53, + &ett_lte_rrc_T_c1_49, + &ett_lte_rrc_T_criticalExtensionsFuture_53, + &ett_lte_rrc_UERadioAccessCapabilityInformation_NB_IEs, + &ett_lte_rrc_T_nonCriticalExtension_68, + &ett_lte_rrc_UERadioPagingInformation_NB, + &ett_lte_rrc_T_criticalExtensions_54, + &ett_lte_rrc_T_c1_50, + &ett_lte_rrc_T_criticalExtensionsFuture_54, + &ett_lte_rrc_UERadioPagingInformation_NB_IEs, + &ett_lte_rrc_T_nonCriticalExtension_69, &ett_lte_rrc_AS_Config_NB, &ett_lte_rrc_AS_Context_NB, &ett_lte_rrc_ReestablishmentInfo_NB, @@ -90025,34 +90375,34 @@ void proto_register_lte_rrc(void) { &ett_lte_rrc_BCCH_BCH_Message_NB, &ett_lte_rrc_BCCH_DL_SCH_Message_NB, &ett_lte_rrc_BCCH_DL_SCH_MessageType_NB, - &ett_lte_rrc_T_c1_49, + &ett_lte_rrc_T_c1_51, &ett_lte_rrc_T_messageClassExtension_09, &ett_lte_rrc_PCCH_Message_NB, &ett_lte_rrc_PCCH_MessageType_NB, - &ett_lte_rrc_T_c1_50, + &ett_lte_rrc_T_c1_52, &ett_lte_rrc_T_messageClassExtension_10, &ett_lte_rrc_DL_CCCH_Message_NB, &ett_lte_rrc_DL_CCCH_MessageType_NB, - &ett_lte_rrc_T_c1_51, + &ett_lte_rrc_T_c1_53, &ett_lte_rrc_T_messageClassExtension_11, &ett_lte_rrc_DL_DCCH_Message_NB, &ett_lte_rrc_DL_DCCH_MessageType_NB, - &ett_lte_rrc_T_c1_52, + &ett_lte_rrc_T_c1_54, &ett_lte_rrc_T_messageClassExtension_12, &ett_lte_rrc_UL_CCCH_Message_NB, &ett_lte_rrc_UL_CCCH_MessageType_NB, - &ett_lte_rrc_T_c1_53, + &ett_lte_rrc_T_c1_55, &ett_lte_rrc_T_messageClassExtension_13, &ett_lte_rrc_UL_DCCH_Message_NB, &ett_lte_rrc_UL_DCCH_MessageType_NB, - &ett_lte_rrc_T_c1_54, + &ett_lte_rrc_T_c1_56, &ett_lte_rrc_T_messageClassExtension_14, &ett_lte_rrc_DLInformationTransfer_NB, - &ett_lte_rrc_T_criticalExtensions_53, - &ett_lte_rrc_T_c1_55, - &ett_lte_rrc_T_criticalExtensionsFuture_53, + &ett_lte_rrc_T_criticalExtensions_55, + &ett_lte_rrc_T_c1_57, + &ett_lte_rrc_T_criticalExtensionsFuture_55, &ett_lte_rrc_DLInformationTransfer_NB_r13_IEs, - &ett_lte_rrc_T_nonCriticalExtension_68, + &ett_lte_rrc_T_nonCriticalExtension_70, &ett_lte_rrc_MasterInformationBlock_NB, &ett_lte_rrc_T_operationModeInfo_r13, &ett_lte_rrc_Guardband_NB_r13, @@ -90060,89 +90410,89 @@ void proto_register_lte_rrc(void) { &ett_lte_rrc_Inband_DifferentPCI_NB_r13, &ett_lte_rrc_Standalone_NB_r13, &ett_lte_rrc_Paging_NB, - &ett_lte_rrc_T_nonCriticalExtension_69, + &ett_lte_rrc_T_nonCriticalExtension_71, &ett_lte_rrc_PagingRecordList_NB_r13, &ett_lte_rrc_PagingRecord_NB_r13, &ett_lte_rrc_RRCConnectionReconfiguration_NB, - &ett_lte_rrc_T_criticalExtensions_54, - &ett_lte_rrc_T_c1_56, - &ett_lte_rrc_T_criticalExtensionsFuture_54, + &ett_lte_rrc_T_criticalExtensions_56, + &ett_lte_rrc_T_c1_58, + &ett_lte_rrc_T_criticalExtensionsFuture_56, &ett_lte_rrc_RRCConnectionReconfiguration_NB_r13_IEs, &ett_lte_rrc_SEQUENCE_SIZE_1_maxDRB_NB_r13_OF_DedicatedInfoNAS, - &ett_lte_rrc_T_nonCriticalExtension_70, + &ett_lte_rrc_T_nonCriticalExtension_72, &ett_lte_rrc_RRCConnectionReconfigurationComplete_NB, - &ett_lte_rrc_T_criticalExtensions_55, - &ett_lte_rrc_T_criticalExtensionsFuture_55, + &ett_lte_rrc_T_criticalExtensions_57, + &ett_lte_rrc_T_criticalExtensionsFuture_57, &ett_lte_rrc_RRCConnectionReconfigurationComplete_NB_r13_IEs, - &ett_lte_rrc_T_nonCriticalExtension_71, + &ett_lte_rrc_T_nonCriticalExtension_73, &ett_lte_rrc_RRCConnectionReestablishment_NB, - &ett_lte_rrc_T_criticalExtensions_56, - &ett_lte_rrc_T_c1_57, - &ett_lte_rrc_T_criticalExtensionsFuture_56, + &ett_lte_rrc_T_criticalExtensions_58, + &ett_lte_rrc_T_c1_59, + &ett_lte_rrc_T_criticalExtensionsFuture_58, &ett_lte_rrc_RRCConnectionReestablishment_NB_r13_IEs, - &ett_lte_rrc_T_nonCriticalExtension_72, + &ett_lte_rrc_T_nonCriticalExtension_74, &ett_lte_rrc_RRCConnectionReestablishmentComplete_NB, - &ett_lte_rrc_T_criticalExtensions_57, - &ett_lte_rrc_T_criticalExtensionsFuture_57, + &ett_lte_rrc_T_criticalExtensions_59, + &ett_lte_rrc_T_criticalExtensionsFuture_59, &ett_lte_rrc_RRCConnectionReestablishmentComplete_NB_r13_IEs, - &ett_lte_rrc_T_nonCriticalExtension_73, + &ett_lte_rrc_T_nonCriticalExtension_75, &ett_lte_rrc_RRCConnectionReestablishmentRequest_NB, - &ett_lte_rrc_T_criticalExtensions_58, - &ett_lte_rrc_T_criticalExtensionsFuture_58, + &ett_lte_rrc_T_criticalExtensions_60, + &ett_lte_rrc_T_criticalExtensionsFuture_60, &ett_lte_rrc_RRCConnectionReestablishmentRequest_NB_r13_IEs, &ett_lte_rrc_RRCConnectionReject_NB, - &ett_lte_rrc_T_criticalExtensions_59, - &ett_lte_rrc_T_c1_58, - &ett_lte_rrc_T_criticalExtensionsFuture_59, + &ett_lte_rrc_T_criticalExtensions_61, + &ett_lte_rrc_T_c1_60, + &ett_lte_rrc_T_criticalExtensionsFuture_61, &ett_lte_rrc_RRCConnectionReject_NB_r13_IEs, - &ett_lte_rrc_T_nonCriticalExtension_74, + &ett_lte_rrc_T_nonCriticalExtension_76, &ett_lte_rrc_RRCConnectionRelease_NB, - &ett_lte_rrc_T_criticalExtensions_60, - &ett_lte_rrc_T_c1_59, - &ett_lte_rrc_T_criticalExtensionsFuture_60, + &ett_lte_rrc_T_criticalExtensions_62, + &ett_lte_rrc_T_c1_61, + &ett_lte_rrc_T_criticalExtensionsFuture_62, &ett_lte_rrc_RRCConnectionRelease_NB_r13_IEs, - &ett_lte_rrc_T_nonCriticalExtension_75, + &ett_lte_rrc_T_nonCriticalExtension_77, &ett_lte_rrc_RRCConnectionRequest_NB, - &ett_lte_rrc_T_criticalExtensions_61, - &ett_lte_rrc_T_criticalExtensionsFuture_61, + &ett_lte_rrc_T_criticalExtensions_63, + &ett_lte_rrc_T_criticalExtensionsFuture_63, &ett_lte_rrc_RRCConnectionRequest_NB_r13_IEs, &ett_lte_rrc_RRCConnectionResume_NB, - &ett_lte_rrc_T_criticalExtensions_62, - &ett_lte_rrc_T_c1_60, - &ett_lte_rrc_T_criticalExtensionsFuture_62, + &ett_lte_rrc_T_criticalExtensions_64, + &ett_lte_rrc_T_c1_62, + &ett_lte_rrc_T_criticalExtensionsFuture_64, &ett_lte_rrc_RRCConnectionResume_NB_r13_IEs, - &ett_lte_rrc_T_nonCriticalExtension_76, + &ett_lte_rrc_T_nonCriticalExtension_78, &ett_lte_rrc_RRCConnectionResumeComplete_NB, - &ett_lte_rrc_T_criticalExtensions_63, - &ett_lte_rrc_T_criticalExtensionsFuture_63, + &ett_lte_rrc_T_criticalExtensions_65, + &ett_lte_rrc_T_criticalExtensionsFuture_65, &ett_lte_rrc_RRCConnectionResumeComplete_NB_r13_IEs, - &ett_lte_rrc_T_nonCriticalExtension_77, + &ett_lte_rrc_T_nonCriticalExtension_79, &ett_lte_rrc_RRCConnectionResumeRequest_NB, - &ett_lte_rrc_T_criticalExtensions_64, - &ett_lte_rrc_T_criticalExtensionsFuture_64, + &ett_lte_rrc_T_criticalExtensions_66, + &ett_lte_rrc_T_criticalExtensionsFuture_66, &ett_lte_rrc_RRCConnectionResumeRequest_NB_r13_IEs, &ett_lte_rrc_RRCConnectionSetup_NB, - &ett_lte_rrc_T_criticalExtensions_65, - &ett_lte_rrc_T_c1_61, - &ett_lte_rrc_T_criticalExtensionsFuture_65, + &ett_lte_rrc_T_criticalExtensions_67, + &ett_lte_rrc_T_c1_63, + &ett_lte_rrc_T_criticalExtensionsFuture_67, &ett_lte_rrc_RRCConnectionSetup_NB_r13_IEs, - &ett_lte_rrc_T_nonCriticalExtension_78, + &ett_lte_rrc_T_nonCriticalExtension_80, &ett_lte_rrc_RRCConnectionSetupComplete_NB, - &ett_lte_rrc_T_criticalExtensions_66, - &ett_lte_rrc_T_criticalExtensionsFuture_66, + &ett_lte_rrc_T_criticalExtensions_68, + &ett_lte_rrc_T_criticalExtensionsFuture_68, &ett_lte_rrc_RRCConnectionSetupComplete_NB_r13_IEs, - &ett_lte_rrc_T_nonCriticalExtension_79, + &ett_lte_rrc_T_nonCriticalExtension_81, &ett_lte_rrc_SystemInformation_NB, - &ett_lte_rrc_T_criticalExtensions_67, - &ett_lte_rrc_T_criticalExtensionsFuture_67, + &ett_lte_rrc_T_criticalExtensions_69, + &ett_lte_rrc_T_criticalExtensionsFuture_69, &ett_lte_rrc_SystemInformation_NB_r13_IEs, &ett_lte_rrc_T_sib_TypeAndInfo_r13, &ett_lte_rrc_T_sib_TypeAndInfo_r13_item, - &ett_lte_rrc_T_nonCriticalExtension_80, + &ett_lte_rrc_T_nonCriticalExtension_82, &ett_lte_rrc_SystemInformationBlockType1_NB, &ett_lte_rrc_T_cellAccessRelatedInfo_r13, &ett_lte_rrc_T_cellSelectionInfo_r13, - &ett_lte_rrc_T_nonCriticalExtension_81, + &ett_lte_rrc_T_nonCriticalExtension_83, &ett_lte_rrc_PLMN_IdentityList_NB_r13, &ett_lte_rrc_PLMN_IdentityInfo_NB_r13, &ett_lte_rrc_SchedulingInfoList_NB_r13, @@ -90150,21 +90500,21 @@ void proto_register_lte_rrc(void) { &ett_lte_rrc_SystemInfoValueTagList_NB_r13, &ett_lte_rrc_SIB_MappingInfo_NB_r13, &ett_lte_rrc_UECapabilityEnquiry_NB, - &ett_lte_rrc_T_criticalExtensions_68, - &ett_lte_rrc_T_c1_62, - &ett_lte_rrc_T_criticalExtensionsFuture_68, + &ett_lte_rrc_T_criticalExtensions_70, + &ett_lte_rrc_T_c1_64, + &ett_lte_rrc_T_criticalExtensionsFuture_70, &ett_lte_rrc_UECapabilityEnquiry_NB_r13_IEs, - &ett_lte_rrc_T_nonCriticalExtension_82, + &ett_lte_rrc_T_nonCriticalExtension_84, &ett_lte_rrc_UECapabilityInformation_NB, - &ett_lte_rrc_T_criticalExtensions_69, - &ett_lte_rrc_T_criticalExtensionsFuture_69, + &ett_lte_rrc_T_criticalExtensions_71, + &ett_lte_rrc_T_criticalExtensionsFuture_71, &ett_lte_rrc_UECapabilityInformation_NB_r13_IEs, - &ett_lte_rrc_T_nonCriticalExtension_83, + &ett_lte_rrc_T_nonCriticalExtension_85, &ett_lte_rrc_ULInformationTransfer_NB, - &ett_lte_rrc_T_criticalExtensions_70, - &ett_lte_rrc_T_criticalExtensionsFuture_70, + &ett_lte_rrc_T_criticalExtensions_72, + &ett_lte_rrc_T_criticalExtensionsFuture_72, &ett_lte_rrc_ULInformationTransfer_NB_r13_IEs, - &ett_lte_rrc_T_nonCriticalExtension_84, + &ett_lte_rrc_T_nonCriticalExtension_86, &ett_lte_rrc_SystemInformationBlockType2_NB_r13, &ett_lte_rrc_T_freqInfo_r13_01, &ett_lte_rrc_AdditionalSpectrumEmission_r13, @@ -90247,7 +90597,7 @@ void proto_register_lte_rrc(void) { &ett_lte_rrc_NS_PmaxList_NB_r13, &ett_lte_rrc_NS_PmaxValue_NB_r13, &ett_lte_rrc_UE_Capability_NB_r13, - &ett_lte_rrc_T_nonCriticalExtension_85, + &ett_lte_rrc_T_nonCriticalExtension_87, &ett_lte_rrc_PDCP_Parameters_NB_r13, &ett_lte_rrc_T_supportedROHC_Profiles_r13, &ett_lte_rrc_PhyLayerParameters_NB_r13, diff --git a/epan/dissectors/packet-lte-rrc.h b/epan/dissectors/packet-lte-rrc.h index 037d7d46f7..03f9d5b492 100644 --- a/epan/dissectors/packet-lte-rrc.h +++ b/epan/dissectors/packet-lte-rrc.h @@ -47,7 +47,9 @@ int dissect_lte_rrc_RLF_Report_v9e0_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U int dissect_lte_rrc_UE_EUTRA_Capability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_lte_rrc_VisitedCellInfoList_r12_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_lte_rrc_HandoverPreparationInformation_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +int dissect_lte_rrc_UEPagingCoverageInformation_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_lte_rrc_UERadioAccessCapabilityInformation_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +int dissect_lte_rrc_UERadioPagingInformation_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); /*--- End of included file: packet-lte-rrc-exp.h ---*/ #line 29 "./asn1/lte-rrc/packet-lte-rrc-template.h" diff --git a/epan/dissectors/packet-s1ap.c b/epan/dissectors/packet-s1ap.c index 474913fc9f..e20d490343 100644 --- a/epan/dissectors/packet-s1ap.c +++ b/epan/dissectors/packet-s1ap.c @@ -42,6 +42,8 @@ #include <epan/prefs.h> #include <epan/sctpppids.h> #include <epan/expert.h> +#include <epan/conversation.h> +#include <epan/proto_data.h> #include "packet-ber.h" #include "packet-per.h" @@ -418,8 +420,12 @@ typedef enum _ProtocolIE_ID_enum { id_UEUserPlaneCIoTSupportIndicator = 241 } ProtocolIE_ID_enum; +typedef enum _RAT_Type_enum { + nbiot = 0 +} RAT_Type_enum; + /*--- End of included file: packet-s1ap-val.h ---*/ -#line 66 "./asn1/s1ap/packet-s1ap-template.c" +#line 68 "./asn1/s1ap/packet-s1ap-template.c" /* Initialize the protocol and registered fields */ static int proto_s1ap = -1; @@ -1129,7 +1135,7 @@ static int hf_s1ap_eHRPD_Sector_ID_01 = -1; /* EHRPD_Sector_ID */ static int hf_s1ap_eHRPDSectorLoadReportingResponse = -1; /* EHRPDSectorLoadReportingResponse */ /*--- End of included file: packet-s1ap-hf.c ---*/ -#line 106 "./asn1/s1ap/packet-s1ap-template.c" +#line 108 "./asn1/s1ap/packet-s1ap-template.c" /* Initialize the subtree pointers */ static int ett_s1ap = -1; @@ -1491,7 +1497,7 @@ static gint ett_s1ap_EHRPDCompositeAvailableCapacity = -1; static gint ett_s1ap_EHRPDMultiSectorLoadReportingResponseItem = -1; /*--- End of included file: packet-s1ap-ett.c ---*/ -#line 138 "./asn1/s1ap/packet-s1ap-template.c" +#line 140 "./asn1/s1ap/packet-s1ap-template.c" static expert_field ei_s1ap_number_pages_le15 = EI_INIT; @@ -1501,21 +1507,56 @@ enum{ UNSUCCESSFUL_OUTCOME }; +struct s1ap_conv_info { + wmem_map_t *nbiot_ta; + wmem_tree_t *nbiot_enb_ue_s1ap_id; +}; + +struct s1ap_supported_ta { + guint16 tac; + wmem_array_t *plmn; +}; + +struct s1ap_tai { + guint32 plmn; + guint16 tac; +}; + +struct s1ap_private_data { + struct s1ap_conv_info *s1ap_conv; + guint32 procedure_code; + guint32 protocol_ie_id; + guint32 protocol_extension_id; + guint32 handover_type_value; + guint32 message_type; + guint8 data_coding_scheme; + struct s1ap_supported_ta *supported_ta; + const char *obj_id; + struct s1ap_tai *tai; + guint16 enb_ue_s1ap_id; +}; + +enum { + S1AP_LTE_CONTAINER_AUTOMATIC, + S1AP_LTE_CONTAINER_LEGACY, + S1AP_LTE_CONTAINER_NBIOT +}; + +static const enum_val_t s1ap_lte_container_vals[] = { + {"automatic", "Automatic", S1AP_LTE_CONTAINER_AUTOMATIC}, + {"legacy", "Legacy LTE", S1AP_LTE_CONTAINER_LEGACY}, + {"nb-iot","NB-IoT", S1AP_LTE_CONTAINER_NBIOT}, + {NULL, NULL, -1} +}; + /* Global variables */ -static guint32 ProcedureCode; -static guint32 ProtocolIE_ID; -static guint32 ProtocolExtensionID; static guint gbl_s1apSctpPort=SCTP_PORT_S1AP; -static guint32 handover_type_value; -static guint32 message_type; static gboolean g_s1ap_dissect_container = TRUE; -static const char *obj_id = NULL; -static guint8 dataCodingScheme = SMS_ENCODING_NOT_SET; +static gint g_s1ap_dissect_lte_container_as = S1AP_LTE_CONTAINER_AUTOMATIC; static dissector_handle_t gcsna_handle = NULL; static dissector_handle_t s1ap_handle; - /* Dissector tables */ static dissector_table_t s1ap_ies_dissector_table; static dissector_table_t s1ap_ies_p1_dissector_table; @@ -1625,6 +1666,41 @@ static const true_false_string s1ap_tfs_activate_do_not_activate = { "Do not activate" }; +static struct s1ap_private_data* +s1ap_get_private_data(packet_info *pinfo) +{ + struct s1ap_private_data *s1ap_data = (struct s1ap_private_data*)p_get_proto_data(pinfo->pool, pinfo, proto_s1ap, 0); + if (!s1ap_data) { + s1ap_data = wmem_new0(pinfo->pool, struct s1ap_private_data); + p_add_proto_data(pinfo->pool, pinfo, proto_s1ap, 0, s1ap_data); + } + return s1ap_data; +} + +static gboolean +s1ap_is_nbiot_ue(packet_info *pinfo) +{ + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo); + + if (s1ap_data->s1ap_conv) { + wmem_tree_key_t tree_key[3]; + guint32 *id; + guint32 enb_ue_s1ap_id = s1ap_data->enb_ue_s1ap_id; + + tree_key[0].length = 1; + tree_key[0].key = &enb_ue_s1ap_id; + tree_key[1].length = 1; + tree_key[1].key = &pinfo->num; + tree_key[2].length = 0; + tree_key[2].key = NULL; + id = (guint32*)wmem_tree_lookup32_array_le(s1ap_data->s1ap_conv->nbiot_enb_ue_s1ap_id, tree_key); + if (id && (*id == enb_ue_s1ap_id)) { + return TRUE; + } + } + return FALSE; +} + /*--- Included file: packet-s1ap-fn.c ---*/ #line 1 "./asn1/s1ap/packet-s1ap-fn.c" @@ -1659,7 +1735,12 @@ dissect_s1ap_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_T_global(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &obj_id); +#line 201 "./asn1/s1ap/s1ap.cnf" + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &s1ap_data->obj_id); + + + return offset; } @@ -1679,8 +1760,9 @@ static const per_choice_t PrivateIE_ID_choice[] = { static int dissect_s1ap_PrivateIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 184 "./asn1/s1ap/s1ap.cnf" -obj_id = NULL; +#line 197 "./asn1/s1ap/s1ap.cnf" + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + s1ap_data->obj_id = NULL; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -1757,8 +1839,12 @@ static value_string_ext s1ap_ProcedureCode_vals_ext = VALUE_STRING_EXT_INIT(s1ap static int dissect_s1ap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 115 "./asn1/s1ap/s1ap.cnf" + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 0U, 255U, &ProcedureCode, FALSE); + 0U, 255U, &s1ap_data->procedure_code, FALSE); + + return offset; } @@ -1767,8 +1853,13 @@ dissect_s1ap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ static int dissect_s1ap_ProtocolExtensionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 109 "./asn1/s1ap/s1ap.cnf" + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 0U, 65535U, &ProtocolExtensionID, FALSE); + 0U, 65535U, &s1ap_data->protocol_extension_id, FALSE); + + + return offset; } @@ -2023,12 +2114,18 @@ static value_string_ext s1ap_ProtocolIE_ID_vals_ext = VALUE_STRING_EXT_INIT(s1ap static int dissect_s1ap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 91 "./asn1/s1ap/s1ap.cnf" + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 0U, 65535U, &ProtocolIE_ID, FALSE); + 0U, 65535U, &s1ap_data->protocol_ie_id, FALSE); -#line 91 "./asn1/s1ap/s1ap.cnf" + + + +#line 95 "./asn1/s1ap/s1ap.cnf" if (tree) { - proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &s1ap_ProtocolIE_ID_vals_ext, "unknown (%d)")); + proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", + val_to_str_ext(s1ap_data->protocol_ie_id, &s1ap_ProtocolIE_ID_vals_ext, "unknown (%d)")); } return offset; @@ -2106,7 +2203,7 @@ static const per_sequence_t ProtocolIE_ContainerList_sequence_of[1] = { static int dissect_s1ap_ProtocolIE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 129 "./asn1/s1ap/s1ap.cnf" +#line 142 "./asn1/s1ap/s1ap.cnf" static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = { { "lowerBound", ASN1_PAR_INTEGER }, { "upperBound", ASN1_PAR_INTEGER }, @@ -2164,11 +2261,11 @@ dissect_s1ap_ProtocolExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ static int dissect_s1ap_T_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 189 "./asn1/s1ap/s1ap.cnf" - - if (obj_id){ - offset=call_per_oid_callback(obj_id, tvb, actx->pinfo, tree, offset, actx, hf_index); - }else{ +#line 205 "./asn1/s1ap/s1ap.cnf" + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + if (s1ap_data->obj_id) { + offset = call_per_oid_callback(s1ap_data->obj_id, tvb, actx->pinfo, tree, offset, actx, hf_index); + } else { offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL); } @@ -2215,8 +2312,9 @@ dissect_s1ap_PrivateIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_s1ap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 202 "./asn1/s1ap/s1ap.cnf" +#line 218 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 3, 3, FALSE, ¶meter_tvb); @@ -2226,6 +2324,12 @@ dissect_s1ap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U if (!parameter_tvb) return offset; dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, E212_NONE, FALSE); + if (s1ap_data->supported_ta) { + guint32 plmn = tvb_get_ntoh24(parameter_tvb, 0); + wmem_array_append_one(s1ap_data->supported_ta->plmn, plmn); + } else if (s1ap_data->tai) { + s1ap_data->tai->plmn = tvb_get_ntoh24(parameter_tvb, 0); + } return offset; @@ -2235,7 +2339,7 @@ dissect_s1ap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_s1ap_MME_Group_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 733 "./asn1/s1ap/s1ap.cnf" +#line 783 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 2, 2, FALSE, ¶meter_tvb); @@ -2253,7 +2357,7 @@ dissect_s1ap_MME_Group_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_s1ap_MME_Code(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 724 "./asn1/s1ap/s1ap.cnf" +#line 774 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 1, 1, FALSE, ¶meter_tvb); @@ -2288,7 +2392,7 @@ dissect_s1ap_GUMMEI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro static int dissect_s1ap_M_TMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 940 "./asn1/s1ap/s1ap.cnf" +#line 998 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 4, 4, FALSE, ¶meter_tvb); @@ -2377,13 +2481,19 @@ dissect_s1ap_CellBasedMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_s1ap_TAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 913 "./asn1/s1ap/s1ap.cnf" +#line 965 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 2, 2, FALSE, ¶meter_tvb); if (parameter_tvb) { actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN); + if (s1ap_data->supported_ta) { + s1ap_data->supported_ta->tac = tvb_get_ntohs(parameter_tvb, 0); + } else if (s1ap_data->tai) { + s1ap_data->tai->tac = tvb_get_ntohs(parameter_tvb, 0); + } } @@ -2439,9 +2549,35 @@ static const per_sequence_t TAI_sequence[] = { static int dissect_s1ap_TAI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 1064 "./asn1/s1ap/s1ap.cnf" + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + + s1ap_data->tai = wmem_new0(wmem_packet_scope(), struct s1ap_tai); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_TAI, TAI_sequence); + if (!PINFO_FD_VISITED(actx->pinfo) && s1ap_data->s1ap_conv && + (s1ap_data->message_type == INITIATING_MESSAGE) && + (s1ap_data->procedure_code == id_initialUEMessage)) { + guint64 key = (s1ap_data->tai->plmn << 16) | s1ap_data->tai->tac; + + if (wmem_map_lookup(s1ap_data->s1ap_conv->nbiot_ta, &key)) { + wmem_tree_key_t tree_key[3]; + guint32 *id = wmem_new(wmem_file_scope(), guint32); + + *id = s1ap_data->enb_ue_s1ap_id; + tree_key[0].length = 1; + tree_key[0].key = id; + tree_key[1].length = 1; + tree_key[1].key = &actx->pinfo->num; + tree_key[2].length = 0; + tree_key[2].key = NULL; + wmem_tree_insert32_array(s1ap_data->s1ap_conv->nbiot_enb_ue_s1ap_id, tree_key, id); + } + } + + + return offset; } @@ -2571,7 +2707,7 @@ dissect_s1ap_AllocationAndRetentionPriority(tvbuff_t *tvb _U_, int offset _U_, a static int dissect_s1ap_CELevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 626 "./asn1/s1ap/s1ap.cnf" +#line 671 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -2582,7 +2718,12 @@ dissect_s1ap_CELevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr if (g_s1ap_dissect_container) { subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_CELevel); - dissect_lte_rrc_UEPagingCoverageInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + if ((s1ap_is_nbiot_ue(actx->pinfo) && (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_AUTOMATIC)) || + (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_NBIOT)) { + dissect_lte_rrc_UEPagingCoverageInformation_NB_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } else { + dissect_lte_rrc_UEPagingCoverageInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } } @@ -2845,7 +2986,7 @@ dissect_s1ap_BitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index, 0U, G_GUINT64_CONSTANT(10000000000), NULL, FALSE); -#line 719 "./asn1/s1ap/s1ap.cnf" +#line 769 "./asn1/s1ap/s1ap.cnf" proto_item_append_text(actx->created_item, "bit/s"); @@ -3280,7 +3421,7 @@ static value_string_ext s1ap_CauseRadioNetwork_vals_ext = VALUE_STRING_EXT_INIT( static int dissect_s1ap_CauseRadioNetwork(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1816 "./asn1/s1ap/s1ap.cnf" +#line 1933 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 36, &value, TRUE, 3, NULL); @@ -3302,7 +3443,7 @@ const value_string s1ap_CauseTransport_vals[] = { static int dissect_s1ap_CauseTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1821 "./asn1/s1ap/s1ap.cnf" +#line 1938 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 2, &value, TRUE, 0, NULL); @@ -3327,7 +3468,7 @@ const value_string s1ap_CauseNas_vals[] = { static int dissect_s1ap_CauseNas(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1826 "./asn1/s1ap/s1ap.cnf" +#line 1943 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 4, &value, TRUE, 1, NULL); @@ -3354,7 +3495,7 @@ const value_string s1ap_CauseProtocol_vals[] = { static int dissect_s1ap_CauseProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1831 "./asn1/s1ap/s1ap.cnf" +#line 1948 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 7, &value, TRUE, 0, NULL); @@ -3380,7 +3521,7 @@ const value_string s1ap_CauseMisc_vals[] = { static int dissect_s1ap_CauseMisc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1836 "./asn1/s1ap/s1ap.cnf" +#line 1953 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 6, &value, TRUE, 0, NULL); @@ -3439,7 +3580,7 @@ dissect_s1ap_CellAccessMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_Cdma2000PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 575 "./asn1/s1ap/s1ap.cnf" +#line 615 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -3481,7 +3622,7 @@ dissect_s1ap_Cdma2000RATType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_Cdma2000SectorID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 590 "./asn1/s1ap/s1ap.cnf" +#line 630 "./asn1/s1ap/s1ap.cnf" /* 9.2.1.25 * This IE is set to CDMA2000 Reference Cell ID * corresponding to the HRPD/1xRTT sector under @@ -3631,7 +3772,7 @@ dissect_s1ap_CellType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p static int dissect_s1ap_LAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 922 "./asn1/s1ap/s1ap.cnf" +#line 980 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 2, 2, FALSE, ¶meter_tvb); @@ -3659,7 +3800,7 @@ dissect_s1ap_CI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_t static int dissect_s1ap_RAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 931 "./asn1/s1ap/s1ap.cnf" +#line 989 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 1, 1, FALSE, ¶meter_tvb); @@ -3960,16 +4101,17 @@ dissect_s1ap_CriticalityDiagnostics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ static int dissect_s1ap_DataCodingScheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 821 "./asn1/s1ap/s1ap.cnf" +#line 871 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 8, 8, FALSE, ¶meter_tvb, NULL); if (parameter_tvb) { + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_DataCodingScheme); - dataCodingScheme = dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree, 0); + s1ap_data->data_coding_scheme = dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree, 0); } @@ -4226,8 +4368,15 @@ dissect_s1ap_ENB_StatusTransfer_TransparentContainer(tvbuff_t *tvb _U_, int offs static int dissect_s1ap_ENB_UE_S1AP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 1058 "./asn1/s1ap/s1ap.cnf" + guint32 enb_ue_s1ap_id; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 0U, 16777215U, NULL, FALSE); + 0U, 16777215U, &enb_ue_s1ap_id, FALSE); + + s1ap_data->enb_ue_s1ap_id = (guint16)enb_ue_s1ap_id; + + return offset; } @@ -4236,7 +4385,7 @@ dissect_s1ap_ENB_UE_S1AP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_ENBname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 215 "./asn1/s1ap/s1ap.cnf" +#line 238 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; int length; int p_offset; @@ -4270,7 +4419,7 @@ dissect_s1ap_ENBname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr static int dissect_s1ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 282 "./asn1/s1ap/s1ap.cnf" +#line 305 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; proto_tree *subtree; gint tvb_len; @@ -4320,7 +4469,7 @@ dissect_s1ap_ENBX2TLAs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int dissect_s1ap_EncryptionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 740 "./asn1/s1ap/s1ap.cnf" +#line 790 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 16, 16, TRUE, ¶meter_tvb, NULL); @@ -4495,7 +4644,7 @@ dissect_s1ap_ExpectedActivityPeriod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 1U, 181U, NULL, FALSE); -#line 902 "./asn1/s1ap/s1ap.cnf" +#line 954 "./asn1/s1ap/s1ap.cnf" proto_item_append_text(actx->created_item, "s"); @@ -4509,7 +4658,7 @@ dissect_s1ap_ExpectedIdlePeriod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 1U, 181U, NULL, FALSE); -#line 905 "./asn1/s1ap/s1ap.cnf" +#line 957 "./asn1/s1ap/s1ap.cnf" proto_item_append_text(actx->created_item, "s"); @@ -4603,7 +4752,7 @@ dissect_s1ap_ExtendedRepetitionPeriod(tvbuff_t *tvb _U_, int offset _U_, asn1_ct offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 4096U, 131071U, NULL, FALSE); -#line 858 "./asn1/s1ap/s1ap.cnf" +#line 910 "./asn1/s1ap/s1ap.cnf" proto_item_append_text(actx->created_item, "s"); @@ -4801,10 +4950,10 @@ static const value_string s1ap_HandoverType_vals[] = { static int dissect_s1ap_HandoverType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 332 "./asn1/s1ap/s1ap.cnf" - +#line 355 "./asn1/s1ap/s1ap.cnf" + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 5, &handover_type_value, TRUE, 0, NULL); + 5, &s1ap_data->handover_type_value, TRUE, 0, NULL); @@ -4826,7 +4975,7 @@ dissect_s1ap_Masked_IMEISV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ static int dissect_s1ap_MeasurementsToActivate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 861 "./asn1/s1ap/s1ap.cnf" +#line 913 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 8, 8, FALSE, ¶meter_tvb, NULL); @@ -5013,7 +5162,7 @@ dissect_s1ap_ImmediateMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_s1ap_IMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 947 "./asn1/s1ap/s1ap.cnf" +#line 1005 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 3, 8, FALSE, ¶meter_tvb); @@ -5077,7 +5226,7 @@ dissect_s1ap_InformationOnRecommendedCellsAndENBsForPaging(tvbuff_t *tvb _U_, in static int dissect_s1ap_IntegrityProtectionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 755 "./asn1/s1ap/s1ap.cnf" +#line 805 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 16, 16, TRUE, ¶meter_tvb, NULL); @@ -5103,7 +5252,7 @@ dissect_s1ap_IntegrityProtectionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, as static int dissect_s1ap_InterfacesToTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 704 "./asn1/s1ap/s1ap.cnf" +#line 754 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 8, 8, FALSE, ¶meter_tvb, NULL); @@ -5147,7 +5296,7 @@ dissect_s1ap_Time_UE_StayedInCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 4095U, NULL, FALSE); -#line 770 "./asn1/s1ap/s1ap.cnf" +#line 820 "./asn1/s1ap/s1ap.cnf" proto_item_append_text(actx->created_item, "s"); proto_item_append_text(actx->created_item, "s"); @@ -5177,7 +5326,7 @@ dissect_s1ap_LastVisitedEUTRANCellInformation(tvbuff_t *tvb _U_, int offset _U_, static int dissect_s1ap_LastVisitedUTRANCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 776 "./asn1/s1ap/s1ap.cnf" +#line 826 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -5244,7 +5393,7 @@ dissect_s1ap_LastVisitedCell_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_s1ap_LPPa_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 273 "./asn1/s1ap/s1ap.cnf" +#line 296 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; @@ -5264,7 +5413,7 @@ dissect_s1ap_LPPa_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p static int dissect_s1ap_LHN_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 896 "./asn1/s1ap/s1ap.cnf" +#line 948 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 32, 256, FALSE, ¶meter_tvb); @@ -5662,7 +5811,7 @@ dissect_s1ap_MDT_Activation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_MDT_Location_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 880 "./asn1/s1ap/s1ap.cnf" +#line 932 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 8, 8, FALSE, ¶meter_tvb, NULL); @@ -5782,7 +5931,7 @@ dissect_s1ap_PrivacyIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act static int dissect_s1ap_MessageIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 791 "./asn1/s1ap/s1ap.cnf" +#line 841 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, -1, 16, 16, FALSE, ¶meter_tvb, NULL); @@ -5810,7 +5959,7 @@ dissect_s1ap_MobilityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_s1ap_MMEname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 238 "./asn1/s1ap/s1ap.cnf" +#line 261 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; int length; int p_offset; @@ -5891,7 +6040,7 @@ dissect_s1ap_MME_UE_S1AP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_MSClassmark2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 839 "./asn1/s1ap/s1ap.cnf" +#line 891 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); @@ -5910,7 +6059,7 @@ dissect_s1ap_MSClassmark2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_s1ap_MSClassmark3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 847 "./asn1/s1ap/s1ap.cnf" +#line 899 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); @@ -5980,7 +6129,7 @@ dissect_s1ap_MutingPatternInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ct static int dissect_s1ap_NAS_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 264 "./asn1/s1ap/s1ap.cnf" +#line 287 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; @@ -6000,7 +6149,7 @@ tvbuff_t *parameter_tvb=NULL; static int dissect_s1ap_NASSecurityParametersfromE_UTRAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 955 "./asn1/s1ap/s1ap.cnf" +#line 1013 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); @@ -6019,7 +6168,7 @@ dissect_s1ap_NASSecurityParametersfromE_UTRAN(tvbuff_t *tvb _U_, int offset _U_, static int dissect_s1ap_NASSecurityParameterstoE_UTRAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 963 "./asn1/s1ap/s1ap.cnf" +#line 1021 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); @@ -6293,7 +6442,7 @@ dissect_s1ap_PagingPriority(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_Port_Number(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 313 "./asn1/s1ap/s1ap.cnf" +#line 336 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 2, 2, FALSE, ¶meter_tvb); @@ -6474,15 +6623,31 @@ dissect_s1ap_RelayNode_Indicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static const value_string s1ap_RAT_Type_vals[] = { - { 0, "nbiot" }, + { nbiot, "nbiot" }, { 0, NULL } }; static int dissect_s1ap_RAT_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 1043 "./asn1/s1ap/s1ap.cnf" + guint32 rat_type = 0xffffffff; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 1, NULL, TRUE, 0, NULL); + 1, &rat_type, TRUE, 0, NULL); + + if (s1ap_data->s1ap_conv && s1ap_data->supported_ta && (rat_type == nbiot)) { + guint64 *key; + guint i; + + for (i = 0; i < wmem_array_get_count(s1ap_data->supported_ta->plmn); i++) { + key = wmem_new(wmem_file_scope(), guint64); + *key = ((*(guint32*)wmem_array_index(s1ap_data->supported_ta->plmn, i)) << 16) | s1ap_data->supported_ta->tac; + wmem_map_insert(s1ap_data->s1ap_conv->nbiot_ta, key, GUINT_TO_POINTER(1)); + } + } + + return offset; } @@ -6522,7 +6687,7 @@ dissect_s1ap_RequestType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ static int dissect_s1ap_RIMInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 559 "./asn1/s1ap/s1ap.cnf" +#line 599 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -6630,7 +6795,7 @@ dissect_s1ap_RepetitionPeriod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 4095U, NULL, FALSE); -#line 808 "./asn1/s1ap/s1ap.cnf" +#line 858 "./asn1/s1ap/s1ap.cnf" proto_item_append_text(actx->created_item, "s"); @@ -6641,7 +6806,7 @@ dissect_s1ap_RepetitionPeriod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act static int dissect_s1ap_UE_RLF_Report_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 640 "./asn1/s1ap/s1ap.cnf" +#line 690 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -6664,7 +6829,7 @@ dissect_s1ap_UE_RLF_Report_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx static int dissect_s1ap_UE_RLF_Report_Container_for_extended_bands(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 654 "./asn1/s1ap/s1ap.cnf" +#line 704 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -6703,7 +6868,7 @@ dissect_s1ap_RLFReportInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_s1ap_RRC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 468 "./asn1/s1ap/s1ap.cnf" +#line 497 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; @@ -6716,12 +6881,18 @@ dissect_s1ap_RRC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ return offset; if (g_s1ap_dissect_container) { + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_RRCContainer); - switch(message_type){ + switch(s1ap_data->message_type){ case INITIATING_MESSAGE: /* 9.2.1.7 Source eNB to Target eNB Transparent Container */ - dissect_lte_rrc_HandoverPreparationInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + if ((s1ap_is_nbiot_ue(actx->pinfo) && (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_AUTOMATIC)) || + (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_NBIOT)) { + dissect_lte_rrc_HandoverPreparationInformation_NB_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } else { + dissect_lte_rrc_HandoverPreparationInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } break; case SUCCESSFUL_OUTCOME: /* 9.2.1.8 Target eNB to Source eNB Transparent Container */ @@ -6823,7 +6994,7 @@ dissect_s1ap_SecurityContext(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_SerialNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 798 "./asn1/s1ap/s1ap.cnf" +#line 848 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 16, 16, FALSE, ¶meter_tvb, NULL); @@ -7021,7 +7192,7 @@ dissect_s1ap_SynchronisationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ static int dissect_s1ap_Source_ToTarget_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 353 "./asn1/s1ap/s1ap.cnf" +#line 380 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -7030,11 +7201,12 @@ dissect_s1ap_Source_ToTarget_TransparentContainer(tvbuff_t *tvb _U_, int offset if (g_s1ap_dissect_container) { + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); /* Don't want elements inside container to write to info column */ col_set_writable(actx->pinfo->cinfo, COL_INFO, FALSE); subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_ToTargetTransparentContainer); - switch(handover_type_value){ + switch(s1ap_data->handover_type_value){ /* HandoverType ::= ENUMERATED { intralte, @@ -7242,9 +7414,25 @@ static const per_sequence_t SupportedTAs_Item_sequence[] = { static int dissect_s1ap_SupportedTAs_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 1029 "./asn1/s1ap/s1ap.cnf" + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + + if (!PINFO_FD_VISITED(actx->pinfo) && + (s1ap_data->message_type == INITIATING_MESSAGE) && + ((s1ap_data->procedure_code == id_S1Setup) || + (s1ap_data->procedure_code == id_ENBConfigurationUpdate))) { + s1ap_data->supported_ta = wmem_new0(wmem_packet_scope(), struct s1ap_supported_ta); + s1ap_data->supported_ta->plmn = wmem_array_new(wmem_packet_scope(), sizeof(guint32)); + } + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_SupportedTAs_Item, SupportedTAs_Item_sequence); +#line 1040 "./asn1/s1ap/s1ap.cnf" + s1ap_data->supported_ta = NULL; + + return offset; } @@ -7367,7 +7555,7 @@ dissect_s1ap_TargeteNB_ToSourceeNB_TransparentContainer(tvbuff_t *tvb _U_, int o static int dissect_s1ap_Target_ToSource_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 410 "./asn1/s1ap/s1ap.cnf" +#line 438 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -7377,9 +7565,10 @@ dissect_s1ap_Target_ToSource_TransparentContainer(tvbuff_t *tvb _U_, int offset if (g_s1ap_dissect_container) { + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_ToSourceTransparentContainer); - switch(handover_type_value){ + switch(s1ap_data->handover_type_value){ /* HandoverType ::= ENUMERATED { intralte, @@ -7479,7 +7668,7 @@ dissect_s1ap_TransportInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_s1ap_E_UTRAN_Trace_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 693 "./asn1/s1ap/s1ap.cnf" +#line 743 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -7674,7 +7863,7 @@ dissect_s1ap_UEIdentityIndexValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_s1ap_UE_HistoryInformationFromTheUE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 525 "./asn1/s1ap/s1ap.cnf" +#line 560 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -7720,7 +7909,7 @@ dissect_s1ap_UEPagingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int dissect_s1ap_UERadioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 538 "./asn1/s1ap/s1ap.cnf" +#line 573 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -7732,7 +7921,12 @@ dissect_s1ap_UERadioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac if (g_s1ap_dissect_container) { subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_UERadioCapability); - dissect_lte_rrc_UERadioAccessCapabilityInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + if ((s1ap_is_nbiot_ue(actx->pinfo) && (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_AUTOMATIC)) || + (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_NBIOT)) { + dissect_lte_rrc_UERadioAccessCapabilityInformation_NB_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } else { + dissect_lte_rrc_UERadioAccessCapabilityInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } } @@ -7744,7 +7938,7 @@ dissect_s1ap_UERadioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_s1ap_UERadioCapabilityForPaging(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 610 "./asn1/s1ap/s1ap.cnf" +#line 650 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -7757,7 +7951,12 @@ dissect_s1ap_UERadioCapabilityForPaging(tvbuff_t *tvb _U_, int offset _U_, asn1_ if (g_s1ap_dissect_container) { subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_UERadioPagingInformation); - dissect_lte_rrc_UERadioPagingInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + if ((s1ap_is_nbiot_ue(actx->pinfo) && (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_AUTOMATIC)) || + (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_NBIOT)) { + dissect_lte_rrc_UERadioPagingInformation_NB_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } else { + dissect_lte_rrc_UERadioPagingInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } } @@ -7866,7 +8065,7 @@ dissect_s1ap_WarningAreaList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_WarningType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 811 "./asn1/s1ap/s1ap.cnf" +#line 861 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 2, 2, FALSE, ¶meter_tvb); @@ -7897,14 +8096,15 @@ dissect_s1ap_WarningSecurityInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_s1ap_WarningMessageContents(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 831 "./asn1/s1ap/s1ap.cnf" +#line 882 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 1, 9600, FALSE, ¶meter_tvb); if (parameter_tvb) { + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_WarningMessageContents); - dissect_s1ap_warningMessageContents(parameter_tvb, subtree, actx->pinfo, dataCodingScheme); + dissect_s1ap_warningMessageContents(parameter_tvb, subtree, actx->pinfo, s1ap_data->data_coding_scheme); } @@ -7974,7 +8174,7 @@ dissect_s1ap_ENBIndirectX2TransportLayerAddresses(tvbuff_t *tvb _U_, int offset static int dissect_s1ap_E_RAB_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 156 "./asn1/s1ap/s1ap.cnf" +#line 169 "./asn1/s1ap/s1ap.cnf" asn1_stack_frame_push(actx, "ProtocolIE-ContainerList"); asn1_param_push_integer(actx, 1); asn1_param_push_integer(actx, maxnoofE_RABs); @@ -7994,8 +8194,9 @@ static const per_sequence_t HandoverRequired_sequence[] = { static int dissect_s1ap_HandoverRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 337 "./asn1/s1ap/s1ap.cnf" - handover_type_value = 0; +#line 360 "./asn1/s1ap/s1ap.cnf" + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + s1ap_data->handover_type_value = 0; col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequired"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8012,8 +8213,9 @@ static const per_sequence_t HandoverCommand_sequence[] = { static int dissect_s1ap_HandoverCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 339 "./asn1/s1ap/s1ap.cnf" - handover_type_value = 0; +#line 363 "./asn1/s1ap/s1ap.cnf" + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + s1ap_data->handover_type_value = 0; col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCommand"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8058,7 +8260,7 @@ static const per_sequence_t HandoverPreparationFailure_sequence[] = { static int dissect_s1ap_HandoverPreparationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1641 "./asn1/s1ap/s1ap.cnf" +#line 1759 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverPreparationFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8075,8 +8277,9 @@ static const per_sequence_t HandoverRequest_sequence[] = { static int dissect_s1ap_HandoverRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 341 "./asn1/s1ap/s1ap.cnf" - handover_type_value = 0; +#line 366 "./asn1/s1ap/s1ap.cnf" + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + s1ap_data->handover_type_value = 0; col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8120,8 +8323,9 @@ static const per_sequence_t HandoverRequestAcknowledge_sequence[] = { static int dissect_s1ap_HandoverRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 343 "./asn1/s1ap/s1ap.cnf" - handover_type_value = 0; +#line 369 "./asn1/s1ap/s1ap.cnf" + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + s1ap_data->handover_type_value = 0; col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequestAcknowledge"); @@ -8194,7 +8398,7 @@ static const per_sequence_t HandoverFailure_sequence[] = { static int dissect_s1ap_HandoverFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1647 "./asn1/s1ap/s1ap.cnf" +#line 1765 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8211,7 +8415,7 @@ static const per_sequence_t HandoverNotify_sequence[] = { static int dissect_s1ap_HandoverNotify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1649 "./asn1/s1ap/s1ap.cnf" +#line 1767 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverNotify"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8228,7 +8432,7 @@ static const per_sequence_t PathSwitchRequest_sequence[] = { static int dissect_s1ap_PathSwitchRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1651 "./asn1/s1ap/s1ap.cnf" +#line 1769 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8271,7 +8475,7 @@ static const per_sequence_t PathSwitchRequestAcknowledge_sequence[] = { static int dissect_s1ap_PathSwitchRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1653 "./asn1/s1ap/s1ap.cnf" +#line 1771 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8314,7 +8518,7 @@ static const per_sequence_t PathSwitchRequestFailure_sequence[] = { static int dissect_s1ap_PathSwitchRequestFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1655 "./asn1/s1ap/s1ap.cnf" +#line 1773 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8331,7 +8535,7 @@ static const per_sequence_t HandoverCancel_sequence[] = { static int dissect_s1ap_HandoverCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1657 "./asn1/s1ap/s1ap.cnf" +#line 1775 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancel"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8348,7 +8552,7 @@ static const per_sequence_t HandoverCancelAcknowledge_sequence[] = { static int dissect_s1ap_HandoverCancelAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1659 "./asn1/s1ap/s1ap.cnf" +#line 1777 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancelAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8365,7 +8569,7 @@ static const per_sequence_t E_RABSetupRequest_sequence[] = { static int dissect_s1ap_E_RABSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1661 "./asn1/s1ap/s1ap.cnf" +#line 1779 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABSetupRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8415,7 +8619,7 @@ static const per_sequence_t E_RABSetupResponse_sequence[] = { static int dissect_s1ap_E_RABSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1663 "./asn1/s1ap/s1ap.cnf" +#line 1781 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABSetupResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8463,7 +8667,7 @@ static const per_sequence_t E_RABModifyRequest_sequence[] = { static int dissect_s1ap_E_RABModifyRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1665 "./asn1/s1ap/s1ap.cnf" +#line 1783 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModifyRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8511,7 +8715,7 @@ static const per_sequence_t E_RABModifyResponse_sequence[] = { static int dissect_s1ap_E_RABModifyResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1667 "./asn1/s1ap/s1ap.cnf" +#line 1785 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModifyResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8557,7 +8761,7 @@ static const per_sequence_t E_RABReleaseCommand_sequence[] = { static int dissect_s1ap_E_RABReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1669 "./asn1/s1ap/s1ap.cnf" +#line 1787 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseCommand"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8574,7 +8778,7 @@ static const per_sequence_t E_RABReleaseResponse_sequence[] = { static int dissect_s1ap_E_RABReleaseResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1671 "./asn1/s1ap/s1ap.cnf" +#line 1789 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8620,7 +8824,7 @@ static const per_sequence_t E_RABReleaseIndication_sequence[] = { static int dissect_s1ap_E_RABReleaseIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1673 "./asn1/s1ap/s1ap.cnf" +#line 1791 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8637,7 +8841,7 @@ static const per_sequence_t InitialContextSetupRequest_sequence[] = { static int dissect_s1ap_InitialContextSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1675 "./asn1/s1ap/s1ap.cnf" +#line 1793 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8687,7 +8891,7 @@ static const per_sequence_t InitialContextSetupResponse_sequence[] = { static int dissect_s1ap_InitialContextSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1677 "./asn1/s1ap/s1ap.cnf" +#line 1795 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8735,7 +8939,7 @@ static const per_sequence_t InitialContextSetupFailure_sequence[] = { static int dissect_s1ap_InitialContextSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1679 "./asn1/s1ap/s1ap.cnf" +#line 1797 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8752,7 +8956,7 @@ static const per_sequence_t Paging_sequence[] = { static int dissect_s1ap_Paging(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1681 "./asn1/s1ap/s1ap.cnf" +#line 1799 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Paging"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8798,7 +9002,7 @@ static const per_sequence_t UEContextReleaseRequest_sequence[] = { static int dissect_s1ap_UEContextReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1683 "./asn1/s1ap/s1ap.cnf" +#line 1801 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8815,7 +9019,7 @@ static const per_sequence_t UEContextReleaseCommand_sequence[] = { static int dissect_s1ap_UEContextReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1685 "./asn1/s1ap/s1ap.cnf" +#line 1803 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseCommand"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8832,7 +9036,7 @@ static const per_sequence_t UEContextReleaseComplete_sequence[] = { static int dissect_s1ap_UEContextReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1687 "./asn1/s1ap/s1ap.cnf" +#line 1805 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseComplete"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8849,7 +9053,7 @@ static const per_sequence_t UEContextModificationRequest_sequence[] = { static int dissect_s1ap_UEContextModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1689 "./asn1/s1ap/s1ap.cnf" +#line 1807 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8866,7 +9070,7 @@ static const per_sequence_t UEContextModificationResponse_sequence[] = { static int dissect_s1ap_UEContextModificationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1691 "./asn1/s1ap/s1ap.cnf" +#line 1809 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8883,7 +9087,7 @@ static const per_sequence_t UEContextModificationFailure_sequence[] = { static int dissect_s1ap_UEContextModificationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1693 "./asn1/s1ap/s1ap.cnf" +#line 1811 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8900,7 +9104,7 @@ static const per_sequence_t UERadioCapabilityMatchRequest_sequence[] = { static int dissect_s1ap_UERadioCapabilityMatchRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1695 "./asn1/s1ap/s1ap.cnf" +#line 1813 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityMatchRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8917,7 +9121,7 @@ static const per_sequence_t UERadioCapabilityMatchResponse_sequence[] = { static int dissect_s1ap_UERadioCapabilityMatchResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1697 "./asn1/s1ap/s1ap.cnf" +#line 1815 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityMatchResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8934,7 +9138,7 @@ static const per_sequence_t DownlinkNASTransport_sequence[] = { static int dissect_s1ap_DownlinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 324 "./asn1/s1ap/s1ap.cnf" +#line 347 "./asn1/s1ap/s1ap.cnf" /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_DL; @@ -8954,7 +9158,7 @@ static const per_sequence_t InitialUEMessage_sequence[] = { static int dissect_s1ap_InitialUEMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 320 "./asn1/s1ap/s1ap.cnf" +#line 343 "./asn1/s1ap/s1ap.cnf" /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_UL; @@ -8974,7 +9178,7 @@ static const per_sequence_t UplinkNASTransport_sequence[] = { static int dissect_s1ap_UplinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 328 "./asn1/s1ap/s1ap.cnf" +#line 351 "./asn1/s1ap/s1ap.cnf" /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_UL; @@ -8994,7 +9198,7 @@ static const per_sequence_t NASNonDeliveryIndication_sequence[] = { static int dissect_s1ap_NASNonDeliveryIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1705 "./asn1/s1ap/s1ap.cnf" +#line 1823 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NASNonDeliveryIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9011,7 +9215,7 @@ static const per_sequence_t RerouteNASRequest_sequence[] = { static int dissect_s1ap_RerouteNASRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1707 "./asn1/s1ap/s1ap.cnf" +#line 1825 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RerouteNASRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9024,7 +9228,7 @@ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RerouteNASRequest"); static int dissect_s1ap_S1_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 683 "./asn1/s1ap/s1ap.cnf" +#line 733 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -9049,7 +9253,7 @@ static const per_sequence_t Reset_sequence[] = { static int dissect_s1ap_Reset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1709 "./asn1/s1ap/s1ap.cnf" +#line 1827 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Reset"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9117,7 +9321,7 @@ static const per_sequence_t ResetAcknowledge_sequence[] = { static int dissect_s1ap_ResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1711 "./asn1/s1ap/s1ap.cnf" +#line 1829 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9162,7 +9366,7 @@ static const per_sequence_t S1SetupRequest_sequence[] = { static int dissect_s1ap_S1SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1715 "./asn1/s1ap/s1ap.cnf" +#line 1833 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9179,7 +9383,7 @@ static const per_sequence_t S1SetupResponse_sequence[] = { static int dissect_s1ap_S1SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1717 "./asn1/s1ap/s1ap.cnf" +#line 1835 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9196,7 +9400,7 @@ static const per_sequence_t S1SetupFailure_sequence[] = { static int dissect_s1ap_S1SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1719 "./asn1/s1ap/s1ap.cnf" +#line 1837 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9213,7 +9417,7 @@ static const per_sequence_t ENBConfigurationUpdate_sequence[] = { static int dissect_s1ap_ENBConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1721 "./asn1/s1ap/s1ap.cnf" +#line 1839 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdate"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9230,7 +9434,7 @@ static const per_sequence_t ENBConfigurationUpdateAcknowledge_sequence[] = { static int dissect_s1ap_ENBConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1723 "./asn1/s1ap/s1ap.cnf" +#line 1841 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9247,7 +9451,7 @@ static const per_sequence_t ENBConfigurationUpdateFailure_sequence[] = { static int dissect_s1ap_ENBConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1725 "./asn1/s1ap/s1ap.cnf" +#line 1843 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9264,7 +9468,7 @@ static const per_sequence_t MMEConfigurationUpdate_sequence[] = { static int dissect_s1ap_MMEConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1727 "./asn1/s1ap/s1ap.cnf" +#line 1845 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdate"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9281,7 +9485,7 @@ static const per_sequence_t MMEConfigurationUpdateAcknowledge_sequence[] = { static int dissect_s1ap_MMEConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1729 "./asn1/s1ap/s1ap.cnf" +#line 1847 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdateAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9298,7 +9502,7 @@ static const per_sequence_t MMEConfigurationUpdateFailure_sequence[] = { static int dissect_s1ap_MMEConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1731 "./asn1/s1ap/s1ap.cnf" +#line 1849 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdateFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9315,7 +9519,7 @@ static const per_sequence_t DownlinkS1cdma2000tunnelling_sequence[] = { static int dissect_s1ap_DownlinkS1cdma2000tunnelling(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1733 "./asn1/s1ap/s1ap.cnf" +#line 1851 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkS1cdma2000tunnelling"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9332,7 +9536,7 @@ static const per_sequence_t UplinkS1cdma2000tunnelling_sequence[] = { static int dissect_s1ap_UplinkS1cdma2000tunnelling(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1735 "./asn1/s1ap/s1ap.cnf" +#line 1853 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkS1cdma2000tunnelling"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9349,7 +9553,7 @@ static const per_sequence_t UECapabilityInfoIndication_sequence[] = { static int dissect_s1ap_UECapabilityInfoIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1737 "./asn1/s1ap/s1ap.cnf" +#line 1855 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UECapabilityInfoIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9366,7 +9570,7 @@ static const per_sequence_t ENBStatusTransfer_sequence[] = { static int dissect_s1ap_ENBStatusTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1739 "./asn1/s1ap/s1ap.cnf" +#line 1857 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBStatusTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9383,7 +9587,7 @@ static const per_sequence_t MMEStatusTransfer_sequence[] = { static int dissect_s1ap_MMEStatusTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1741 "./asn1/s1ap/s1ap.cnf" +#line 1859 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEStatusTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9400,7 +9604,7 @@ static const per_sequence_t TraceStart_sequence[] = { static int dissect_s1ap_TraceStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1743 "./asn1/s1ap/s1ap.cnf" +#line 1861 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceStart"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9417,7 +9621,7 @@ static const per_sequence_t TraceFailureIndication_sequence[] = { static int dissect_s1ap_TraceFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1745 "./asn1/s1ap/s1ap.cnf" +#line 1863 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceFailureIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9434,7 +9638,7 @@ static const per_sequence_t DeactivateTrace_sequence[] = { static int dissect_s1ap_DeactivateTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1747 "./asn1/s1ap/s1ap.cnf" +#line 1865 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DeactivateTrace"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9451,7 +9655,7 @@ static const per_sequence_t CellTrafficTrace_sequence[] = { static int dissect_s1ap_CellTrafficTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1749 "./asn1/s1ap/s1ap.cnf" +#line 1867 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellTrafficTrace"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9468,7 +9672,7 @@ static const per_sequence_t LocationReportingControl_sequence[] = { static int dissect_s1ap_LocationReportingControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1751 "./asn1/s1ap/s1ap.cnf" +#line 1869 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingControl"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9485,7 +9689,7 @@ static const per_sequence_t LocationReportingFailureIndication_sequence[] = { static int dissect_s1ap_LocationReportingFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1753 "./asn1/s1ap/s1ap.cnf" +#line 1871 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingFailureIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9502,7 +9706,7 @@ static const per_sequence_t LocationReport_sequence[] = { static int dissect_s1ap_LocationReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1755 "./asn1/s1ap/s1ap.cnf" +#line 1873 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9519,7 +9723,7 @@ static const per_sequence_t OverloadStart_sequence[] = { static int dissect_s1ap_OverloadStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1757 "./asn1/s1ap/s1ap.cnf" +#line 1875 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStart"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9536,7 +9740,7 @@ static const per_sequence_t OverloadStop_sequence[] = { static int dissect_s1ap_OverloadStop(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1759 "./asn1/s1ap/s1ap.cnf" +#line 1877 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStop"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9553,9 +9757,8 @@ static const per_sequence_t WriteReplaceWarningRequest_sequence[] = { static int dissect_s1ap_WriteReplaceWarningRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1761 "./asn1/s1ap/s1ap.cnf" +#line 1879 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningRequest"); - dataCodingScheme = SMS_ENCODING_NOT_SET; offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_WriteReplaceWarningRequest, WriteReplaceWarningRequest_sequence); @@ -9571,7 +9774,7 @@ static const per_sequence_t WriteReplaceWarningResponse_sequence[] = { static int dissect_s1ap_WriteReplaceWarningResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1764 "./asn1/s1ap/s1ap.cnf" +#line 1881 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9588,7 +9791,7 @@ static const per_sequence_t ENBDirectInformationTransfer_sequence[] = { static int dissect_s1ap_ENBDirectInformationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1766 "./asn1/s1ap/s1ap.cnf" +#line 1883 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBDirectInformationTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9625,7 +9828,7 @@ static const per_sequence_t MMEDirectInformationTransfer_sequence[] = { static int dissect_s1ap_MMEDirectInformationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1768 "./asn1/s1ap/s1ap.cnf" +#line 1885 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEDirectInformationTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9642,7 +9845,7 @@ static const per_sequence_t ENBConfigurationTransfer_sequence[] = { static int dissect_s1ap_ENBConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1770 "./asn1/s1ap/s1ap.cnf" +#line 1887 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9659,7 +9862,7 @@ static const per_sequence_t MMEConfigurationTransfer_sequence[] = { static int dissect_s1ap_MMEConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1772 "./asn1/s1ap/s1ap.cnf" +#line 1889 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9676,7 +9879,7 @@ static const per_sequence_t PrivateMessage_sequence[] = { static int dissect_s1ap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1774 "./asn1/s1ap/s1ap.cnf" +#line 1891 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9693,7 +9896,7 @@ static const per_sequence_t KillRequest_sequence[] = { static int dissect_s1ap_KillRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1776 "./asn1/s1ap/s1ap.cnf" +#line 1893 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "KillRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9710,7 +9913,7 @@ static const per_sequence_t KillResponse_sequence[] = { static int dissect_s1ap_KillResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1778 "./asn1/s1ap/s1ap.cnf" +#line 1895 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "KillResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9727,7 +9930,7 @@ static const per_sequence_t PWSRestartIndication_sequence[] = { static int dissect_s1ap_PWSRestartIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1780 "./asn1/s1ap/s1ap.cnf" +#line 1897 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSRestartIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9744,7 +9947,7 @@ static const per_sequence_t PWSFailureIndication_sequence[] = { static int dissect_s1ap_PWSFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1782 "./asn1/s1ap/s1ap.cnf" +#line 1899 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSFailureIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9761,7 +9964,7 @@ static const per_sequence_t DownlinkUEAssociatedLPPaTransport_sequence[] = { static int dissect_s1ap_DownlinkUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1784 "./asn1/s1ap/s1ap.cnf" +#line 1901 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkUEAssociatedLPPaTransport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9778,7 +9981,7 @@ static const per_sequence_t UplinkUEAssociatedLPPaTransport_sequence[] = { static int dissect_s1ap_UplinkUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1786 "./asn1/s1ap/s1ap.cnf" +#line 1903 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkUEAssociatedLPPaTransport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9795,7 +9998,7 @@ static const per_sequence_t DownlinkNonUEAssociatedLPPaTransport_sequence[] = { static int dissect_s1ap_DownlinkNonUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1788 "./asn1/s1ap/s1ap.cnf" +#line 1905 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkNonUEAssociatedLPPaTransport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9812,7 +10015,7 @@ static const per_sequence_t UplinkNonUEAssociatedLPPaTransport_sequence[] = { static int dissect_s1ap_UplinkNonUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1790 "./asn1/s1ap/s1ap.cnf" +#line 1907 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkNonUEAssociatedLPPaTransport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9829,7 +10032,7 @@ static const per_sequence_t E_RABModificationIndication_sequence[] = { static int dissect_s1ap_E_RABModificationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1792 "./asn1/s1ap/s1ap.cnf" +#line 1909 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModificationIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9916,7 +10119,7 @@ static const per_sequence_t E_RABModificationConfirm_sequence[] = { static int dissect_s1ap_E_RABModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1794 "./asn1/s1ap/s1ap.cnf" +#line 1911 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModificationConfirm"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9962,7 +10165,7 @@ static const per_sequence_t UEContextModificationIndication_sequence[] = { static int dissect_s1ap_UEContextModificationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1796 "./asn1/s1ap/s1ap.cnf" +#line 1913 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9979,7 +10182,7 @@ static const per_sequence_t UEContextModificationConfirm_sequence[] = { static int dissect_s1ap_UEContextModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1798 "./asn1/s1ap/s1ap.cnf" +#line 1915 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationConfirm"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9996,7 +10199,7 @@ static const per_sequence_t UEContextSuspendRequest_sequence[] = { static int dissect_s1ap_UEContextSuspendRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1800 "./asn1/s1ap/s1ap.cnf" +#line 1917 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSuspendRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10013,7 +10216,7 @@ static const per_sequence_t UEContextSuspendResponse_sequence[] = { static int dissect_s1ap_UEContextSuspendResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1802 "./asn1/s1ap/s1ap.cnf" +#line 1919 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSuspendResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10030,7 +10233,7 @@ static const per_sequence_t UEContextResumeRequest_sequence[] = { static int dissect_s1ap_UEContextResumeRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1804 "./asn1/s1ap/s1ap.cnf" +#line 1921 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10072,7 +10275,7 @@ static const per_sequence_t UEContextResumeResponse_sequence[] = { static int dissect_s1ap_UEContextResumeResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1806 "./asn1/s1ap/s1ap.cnf" +#line 1923 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10114,7 +10317,7 @@ static const per_sequence_t UEContextResumeFailure_sequence[] = { static int dissect_s1ap_UEContextResumeFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1808 "./asn1/s1ap/s1ap.cnf" +#line 1925 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10131,7 +10334,7 @@ static const per_sequence_t ConnectionEstablishmentIndication_sequence[] = { static int dissect_s1ap_ConnectionEstablishmentIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1810 "./asn1/s1ap/s1ap.cnf" +#line 1927 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ConnectionEstablishmentIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10144,8 +10347,9 @@ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ConnectionEstablishmentI static int dissect_s1ap_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 111 "./asn1/s1ap/s1ap.cnf" - message_type = INITIATING_MESSAGE; +#line 121 "./asn1/s1ap/s1ap.cnf" + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + s1ap_data->message_type = INITIATING_MESSAGE; offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_InitiatingMessageValue); @@ -10172,8 +10376,9 @@ dissect_s1ap_InitiatingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_s1ap_SuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 114 "./asn1/s1ap/s1ap.cnf" - message_type = SUCCESSFUL_OUTCOME; +#line 125 "./asn1/s1ap/s1ap.cnf" + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + s1ap_data->message_type = SUCCESSFUL_OUTCOME; offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_SuccessfulOutcomeValue); @@ -10200,8 +10405,9 @@ dissect_s1ap_SuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_s1ap_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 117 "./asn1/s1ap/s1ap.cnf" - message_type = UNSUCCESSFUL_OUTCOME; +#line 129 "./asn1/s1ap/s1ap.cnf" + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); + s1ap_data->message_type = UNSUCCESSFUL_OUTCOME; @@ -10599,7 +10805,7 @@ dissect_s1ap_CellStateIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_s1ap_T_uERLFReportContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 668 "./asn1/s1ap/s1ap.cnf" +#line 718 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -13387,56 +13593,68 @@ int dissect_s1ap_SONtransferCause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, /*--- End of included file: packet-s1ap-fn.c ---*/ -#line 272 "./asn1/s1ap/packet-s1ap-template.c" +#line 344 "./asn1/s1ap/packet-s1ap-template.c" static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) { s1ap_ctx_t s1ap_ctx; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo); - s1ap_ctx.message_type = message_type; - s1ap_ctx.ProcedureCode = ProcedureCode; - s1ap_ctx.ProtocolIE_ID = ProtocolIE_ID; - s1ap_ctx.ProtocolExtensionID = ProtocolExtensionID; + s1ap_ctx.message_type = s1ap_data->message_type; + s1ap_ctx.ProcedureCode = s1ap_data->procedure_code; + s1ap_ctx.ProtocolIE_ID = s1ap_data->protocol_ie_id; + s1ap_ctx.ProtocolExtensionID = s1ap_data->protocol_extension_id; - return (dissector_try_uint_new(s1ap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, TRUE, &s1ap_ctx)) ? tvb_captured_length(tvb) : 0; + return (dissector_try_uint_new(s1ap_ies_dissector_table, s1ap_data->protocol_ie_id, tvb, pinfo, tree, TRUE, &s1ap_ctx)) ? tvb_captured_length(tvb) : 0; } /* Currently not used static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - return (dissector_try_uint(s1ap_ies_p1_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo); + + return (dissector_try_uint(s1ap_ies_p1_dissector_table, s1ap_data->protocol_ie_id, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0; } static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - return (dissector_try_uint(s1ap_ies_p2_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo); + + return (dissector_try_uint(s1ap_ies_p2_dissector_table, s1ap_data->protocol_ie_id, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0; } */ static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) { s1ap_ctx_t s1ap_ctx; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo); - s1ap_ctx.message_type = message_type; - s1ap_ctx.ProcedureCode = ProcedureCode; - s1ap_ctx.ProtocolIE_ID = ProtocolIE_ID; - s1ap_ctx.ProtocolExtensionID = ProtocolExtensionID; + s1ap_ctx.message_type = s1ap_data->message_type; + s1ap_ctx.ProcedureCode = s1ap_data->procedure_code; + s1ap_ctx.ProtocolIE_ID = s1ap_data->protocol_ie_id; + s1ap_ctx.ProtocolExtensionID = s1ap_data->protocol_extension_id; - return (dissector_try_uint_new(s1ap_extension_dissector_table, ProtocolExtensionID, tvb, pinfo, tree, TRUE, &s1ap_ctx)) ? tvb_captured_length(tvb) : 0; + return (dissector_try_uint_new(s1ap_extension_dissector_table, s1ap_data->protocol_extension_id, tvb, pinfo, tree, TRUE, &s1ap_ctx)) ? tvb_captured_length(tvb) : 0; } static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) { - return (dissector_try_uint_new(s1ap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo); + + return (dissector_try_uint_new(s1ap_proc_imsg_dissector_table, s1ap_data->procedure_code, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0; } static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) { - return (dissector_try_uint_new(s1ap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo); + + return (dissector_try_uint_new(s1ap_proc_sout_dissector_table, s1ap_data->procedure_code, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0; } static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) { - return (dissector_try_uint_new(s1ap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0; + struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo); + + return (dissector_try_uint_new(s1ap_proc_uout_dissector_table, s1ap_data->procedure_code, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0; } @@ -13445,6 +13663,8 @@ dissect_s1ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_ { proto_item *s1ap_item = NULL; proto_tree *s1ap_tree = NULL; + conversation_t *conversation; + struct s1ap_private_data* s1ap_data; /* make entry in the Protocol column on summary display */ col_set_str(pinfo->cinfo, COL_PROTOCOL, "S1AP"); @@ -13455,6 +13675,16 @@ dissect_s1ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_ s1ap_item = proto_tree_add_item(tree, proto_s1ap, tvb, 0, -1, ENC_NA); s1ap_tree = proto_item_add_subtree(s1ap_item, ett_s1ap); + s1ap_data = s1ap_get_private_data(pinfo); + conversation = find_or_create_conversation(pinfo); + s1ap_data->s1ap_conv = (struct s1ap_conv_info *)conversation_get_proto_data(conversation, proto_s1ap); + if (!s1ap_data->s1ap_conv) { + s1ap_data->s1ap_conv = wmem_new(wmem_file_scope(), struct s1ap_conv_info); + s1ap_data->s1ap_conv->nbiot_ta = wmem_map_new(wmem_file_scope(), wmem_int64_hash, g_int64_equal); + s1ap_data->s1ap_conv->nbiot_enb_ue_s1ap_id = wmem_tree_new(wmem_file_scope()); + conversation_add_proto_data(conversation, proto_s1ap, s1ap_data->s1ap_conv); + } + dissect_S1AP_PDU_PDU(tvb, pinfo, s1ap_tree, NULL); return tvb_captured_length(tvb); } @@ -13784,7 +14014,7 @@ proto_reg_handoff_s1ap(void) /*--- End of included file: packet-s1ap-dis-tab.c ---*/ -#line 360 "./asn1/s1ap/packet-s1ap-template.c" +#line 456 "./asn1/s1ap/packet-s1ap-template.c" } else { if (SctpPort != 0) { dissector_delete_uint("sctp.port", SctpPort, s1ap_handle); @@ -16608,7 +16838,7 @@ void proto_register_s1ap(void) { NULL, HFILL }}, /*--- End of included file: packet-s1ap-hfarr.c ---*/ -#line 519 "./asn1/s1ap/packet-s1ap-template.c" +#line 615 "./asn1/s1ap/packet-s1ap-template.c" }; /* List of subtrees */ @@ -16972,7 +17202,7 @@ void proto_register_s1ap(void) { &ett_s1ap_EHRPDMultiSectorLoadReportingResponseItem, /*--- End of included file: packet-s1ap-ettarr.c ---*/ -#line 553 "./asn1/s1ap/packet-s1ap-template.c" +#line 649 "./asn1/s1ap/packet-s1ap-template.c" }; static ei_register_info ei[] = { @@ -17011,7 +17241,9 @@ void proto_register_s1ap(void) { 10, &gbl_s1apSctpPort); prefs_register_bool_preference(s1ap_module, "dissect_container", "Dissect TransparentContainer", "Dissect TransparentContainers that are opaque to S1AP", &g_s1ap_dissect_container); - + prefs_register_enum_preference(s1ap_module, "dissect_lte_container_as", "Dissect LTE TransparentContainer as", + "Select whether LTE TransparentContainer should be dissected as NB-IOT or legacy LTE", + &g_s1ap_dissect_lte_container_as, s1ap_lte_container_vals, FALSE); } /* |