aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c
diff options
context:
space:
mode:
authorPascal Quantin <pascal@wireshark.org>2019-02-13 15:20:41 +0100
committerPascal Quantin <pascal@wireshark.org>2019-02-13 16:46:22 +0000
commitbf4fe342e3506ab756eeb2620633e0035826606b (patch)
tree0534860dc6ebf51d935ce4c6559339e361f46767 /epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c
parentc96b56d384391b1fe18da468548e2fcf3c8c4eeb (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.c38
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) {