From 590d8c091ea1c96ab8bf0875aaca880a55f5b723 Mon Sep 17 00:00:00 2001 From: Pascal Quantin Date: Wed, 20 Jun 2018 14:01:21 +0200 Subject: LTE RRC: upgrade dissector to v15.2.0 Change-Id: I89f3a3e3f2020d68ea1b165c0ed9d731256fbe94 Reviewed-on: https://code.wireshark.org/review/28346 Petri-Dish: Pascal Quantin Tested-by: Petri Dish Buildbot Reviewed-by: Pascal Quantin --- .../asn1/lte-rrc/packet-lte-rrc-template.c | 85 +++++++++++++++++++++- 1 file changed, 83 insertions(+), 2 deletions(-) (limited to 'epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c') diff --git a/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c index d518e0a2c3..3127e96c97 100644 --- a/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c +++ b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c @@ -1,7 +1,7 @@ /* packet-lte-rrc-template.c * Routines for Evolved Universal Terrestrial Radio Access (E-UTRA); * Radio Resource Control (RRC) protocol specification - * (3GPP TS 36.331 V15.1.0 Release 15) packet dissection + * (3GPP TS 36.331 V15.2.0 Release 15) packet dissection * Copyright 2008, Vincent Helfre * Copyright 2009-2018, Pascal Quantin * @@ -254,6 +254,14 @@ static int hf_lte_rrc_sib12_fragment_count = -1; static int hf_lte_rrc_sib12_reassembled_in = -1; static int hf_lte_rrc_sib12_reassembled_length = -1; static int hf_lte_rrc_sib12_reassembled_data = -1; +static int hf_lte_rrc_measGapPatterns_v1520_bit1 = -1; +static int hf_lte_rrc_measGapPatterns_v1520_bit2 = -1; +static int hf_lte_rrc_measGapPatterns_v1520_bit3 = -1; +static int hf_lte_rrc_measGapPatterns_v1520_bit4 = -1; +static int hf_lte_rrc_measGapPatterns_v1520_bit5 = -1; +static int hf_lte_rrc_measGapPatterns_v1520_bit6 = -1; +static int hf_lte_rrc_measGapPatterns_v1520_bit7 = -1; +static int hf_lte_rrc_measGapPatterns_v1520_bit8 = -1; /* Initialize the subtree pointers */ static int ett_lte_rrc = -1; @@ -295,6 +303,7 @@ static gint ett_lte_rrc_sourceRB_ConfigSN_NR_r15 = -1; static gint ett_lte_rrc_sourceOtherConfigSN_NR_r15 = -1; static gint ett_lte_rrc_sourceContextENDC_r15 = -1; static gint ett_lte_rrc_requestedFreqBandsNR_MRDC_r15 = -1; +static gint ett_lte_rrc_measGapPatterns_v1520 = -1; static expert_field ei_lte_rrc_number_pages_le15 = EI_INIT; static expert_field ei_lte_rrc_si_info_value_changed = EI_INIT; @@ -2550,6 +2559,45 @@ static const value_string lte_rrc_schedulingInfoSIB1_NB_r13_vals[] = { }; static value_string_ext lte_rrc_schedulingInfoSIB1_NB_r13_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_schedulingInfoSIB1_NB_r13_vals); +static void +lte_rrc_NRSRP_Range_NB_r14_fmt(gchar *s, guint32 v) +{ + if (v == 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "NRSRP < -156dBm (0)"); + } else if (v < 113) { + g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= NRSRP < %ddBm (%u)", v-157, v-156, v); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "-44dBm <= NRSRP (97)"); + } +} + +static void +lte_rrc_NRSRQ_Range_NB_r14_fmt(gchar *s, guint32 v) +{ + gint32 rsrq = (guint32)v; + if (rsrq == -30) { + g_snprintf(s, ITEM_LABEL_LENGTH, "NRSRQ < -34dB (-30)"); + } else if (rsrq < 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= NRSRQ < %.1fdB (%d)", (((float)rsrq-1)/2)-19, ((float)rsrq/2)-19, rsrq); + } else if (rsrq == 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "NRSRQ < -19.5dB (0)"); + } else if (rsrq < 34) { + g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= NRSRQ < %.1fdB (%d)", (((float)rsrq-1)/2)-19.5, ((float)rsrq/2)-19.5, rsrq); + } else if (rsrq == 34) { + g_snprintf(s, ITEM_LABEL_LENGTH, "-3 <= NRSRQ (34)"); + } else if (rsrq < 46) { + g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= NRSRQ < %.1fdB (%d)", (((float)rsrq-1)/2)-20, ((float)rsrq/2)-20, rsrq); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "2.5dB <= NRSRQ (46)"); + } +} + +static void +lte_rrc_mbms_MaxBW_r14_fmt(gchar *s, guint32 v) +{ + g_snprintf(s, ITEM_LABEL_LENGTH, "%u MHz (%u)", 40*v, v); +} + static void lte_rrc_call_dissector(dissector_handle_t handle, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { @@ -4161,6 +4209,38 @@ void proto_register_lte_rrc(void) { { &hf_lte_rrc_sib12_reassembled_data, { "Reassembled Data", "lte-rrc.warningMessageSegment_r9.reassembled_data", FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_lte_rrc_measGapPatterns_v1520_bit1, + { "Gap Pattern 4", "lte-rrc.measGapPatterns_v1520.bit1", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x80, + NULL, HFILL }}, + { &hf_lte_rrc_measGapPatterns_v1520_bit2, + { "Gap Pattern 5", "lte-rrc.measGapPatterns_v1520.bit2", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x40, + NULL, HFILL }}, + { &hf_lte_rrc_measGapPatterns_v1520_bit3, + { "Gap Pattern 6", "lte-rrc.measGapPatterns_v1520.bit3", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x20, + NULL, HFILL }}, + { &hf_lte_rrc_measGapPatterns_v1520_bit4, + { "Gap Pattern 7", "lte-rrc.measGapPatterns_v1520.bit4", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x10, + NULL, HFILL }}, + { &hf_lte_rrc_measGapPatterns_v1520_bit5, + { "Gap Pattern 8", "lte-rrc.measGapPatterns_v1520.bit5", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x08, + NULL, HFILL }}, + { &hf_lte_rrc_measGapPatterns_v1520_bit6, + { "Gap Pattern 9", "lte-rrc.measGapPatterns_v1520.bit6", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x04, + NULL, HFILL }}, + { &hf_lte_rrc_measGapPatterns_v1520_bit7, + { "Gap Pattern 10", "lte-rrc.measGapPatterns_v1520.bit7", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x02, + NULL, HFILL }}, + { &hf_lte_rrc_measGapPatterns_v1520_bit8, + { "Gap Pattern 11", "lte-rrc.measGapPatterns_v1520.bit8", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x01, NULL, HFILL }} }; @@ -4203,7 +4283,8 @@ void proto_register_lte_rrc(void) { &ett_lte_rrc_sourceRB_ConfigSN_NR_r15, &ett_lte_rrc_sourceOtherConfigSN_NR_r15, &ett_lte_rrc_sourceContextENDC_r15, - &ett_lte_rrc_requestedFreqBandsNR_MRDC_r15 + &ett_lte_rrc_requestedFreqBandsNR_MRDC_r15, + &ett_lte_rrc_measGapPatterns_v1520 }; static ei_register_info ei[] = { -- cgit v1.2.3