aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2018-06-20 14:01:21 +0200
committerPascal Quantin <pascal.quantin@gmail.com>2018-06-20 13:07:57 +0000
commit590d8c091ea1c96ab8bf0875aaca880a55f5b723 (patch)
treeb80aedd01d48400824955cdb593014159e488921 /epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c
parentccd2512602913b6b89a98878cbcc16d6c6d3ee1c (diff)
LTE RRC: upgrade dissector to v15.2.0
Change-Id: I89f3a3e3f2020d68ea1b165c0ed9d731256fbe94 Reviewed-on: https://code.wireshark.org/review/28346 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c')
-rw-r--r--epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c85
1 files changed, 83 insertions, 2 deletions
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;
@@ -2551,6 +2560,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)
{
TRY {
@@ -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[] = {