diff options
author | Pascal Quantin <pascal@wireshark.org> | 2019-02-13 15:20:41 +0100 |
---|---|---|
committer | Pascal Quantin <pascal@wireshark.org> | 2019-02-13 16:46:22 +0000 |
commit | bf4fe342e3506ab756eeb2620633e0035826606b (patch) | |
tree | 0534860dc6ebf51d935ce4c6559339e361f46767 /epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c | |
parent | c96b56d384391b1fe18da468548e2fcf3c8c4eeb (diff) |
LTE RRC: add dissection of NR RSRP/RSRQ/SINR fields
Change-Id: I56f44fd4dc6aa6358be54e200ddc7b27d51778aa
Reviewed-on: https://code.wireshark.org/review/32008
Petri-Dish: Pascal Quantin <pascal@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Pascal Quantin <pascal@wireshark.org>
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.c | 38 |
1 files changed, 38 insertions, 0 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 163ce0819d..c98aab9a66 100644 --- a/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c +++ b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c @@ -2148,6 +2148,20 @@ static const value_string lte_rrc_RSRP_RangeSL4_vals[] = { }; static value_string_ext lte_rrc_RSRP_RangeSL4_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_RSRP_RangeSL4_vals); +static void +lte_rrc_RSRP_RangeNR_r15_fmt(gchar *s, guint32 v) +{ + if (v == 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "SS-RSRP < -156dBm (0)"); + } else if (v == 126) { + g_snprintf(s, ITEM_LABEL_LENGTH, "-31dBm <= SS-RSRP (126)"); + } else if (v == 127) { + g_snprintf(s, ITEM_LABEL_LENGTH, "Infinity (127)"); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= SS-RSRP < %ddBm (%u)", -157+v, -156+v, v); + } +} + static const value_string lte_rrc_RSRQ_Range_vals[] = { {-34, "RSRQ < -36dB"}, {-33, "-36dB <= RSRQ < -35.5dB"}, @@ -2234,6 +2248,18 @@ static const value_string lte_rrc_RSRQ_Range_vals[] = { }; static value_string_ext lte_rrc_RSRQ_Range_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_RSRQ_Range_vals); +static void +lte_rrc_RSRQ_RangeNR_r15_fmt(gchar *s, guint32 v) +{ + if (v == 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "SS-RSRQ < -43dB (0)"); + } else if (v == 127) { + g_snprintf(s, ITEM_LABEL_LENGTH, "20dB < SS-RSRQ (127)"); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= SS-RSRQ < %.1fdB (%u)", (((float)v-1)/2)-43, ((float)v/2)-43, v); + } +} + static const value_string lte_rrc_MBSFN_RSRQ_Range_vals[] = { { 0, "RSRQ < -23dB"}, { 1, "-23dB <= RSRQ < -22.5dB"}, @@ -2482,6 +2508,18 @@ lte_rrc_RS_SINR_Range_r13_fmt(gchar *s, guint32 v) } static void +lte_rrc_RS_SINR_RangeNR_r15_fmt(gchar *s, guint32 v) +{ + if (v == 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "SS-SINR < -23dB (0)"); + } else if (v == 127) { + g_snprintf(s, ITEM_LABEL_LENGTH, "40dB < SS-SINR (127)"); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= SS-SINR < %.1fdB (%u)", (((float)v-1)/2)-23, ((float)v/2)-23, v); + } +} + +static void lte_rrc_RSSI_Range_r13_fmt(gchar *s, guint32 v) { if (v == 0) { |