aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rlc-lte.c
diff options
context:
space:
mode:
authorMathias Kurth <mathias.kurth@commsolid.com>2017-04-10 10:45:08 +0200
committerPascal Quantin <pascal.quantin@gmail.com>2017-04-11 12:33:37 +0000
commit90c2e34cbd988179187422b48f8d9f28e4f0e9ed (patch)
treefebc69111191a831b3c6291b4160d9ccabac680e /epan/dissectors/packet-rlc-lte.c
parent87fc4cc5d7d7838d9fb708ca0c00166014d4ace8 (diff)
NB-IoT SRB1bis implementation
Change-Id: If0c9dd3f3ca2321aaf9176330299a32f611d34ce Reviewed-on: https://code.wireshark.org/review/20990 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>
Diffstat (limited to 'epan/dissectors/packet-rlc-lte.c')
-rw-r--r--epan/dissectors/packet-rlc-lte.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/epan/dissectors/packet-rlc-lte.c b/epan/dissectors/packet-rlc-lte.c
index 3322eef328..4e9a0db14a 100644
--- a/epan/dissectors/packet-rlc-lte.c
+++ b/epan/dissectors/packet-rlc-lte.c
@@ -829,7 +829,11 @@ static void show_PDU_in_tree(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb
}
p_pdcp_lte_info->ueid = rlc_info->ueid;
- p_pdcp_lte_info->channelType = Channel_DCCH;
+ if (rlc_info->nbMode == rlc_nb_mode) {
+ p_pdcp_lte_info->channelType = Channel_DCCH_NB;
+ } else {
+ p_pdcp_lte_info->channelType = Channel_DCCH;
+ }
p_pdcp_lte_info->channelId = rlc_info->channelId;
p_pdcp_lte_info->direction = rlc_info->direction;
p_pdcp_lte_info->is_retx = (state != SN_OK);
@@ -838,7 +842,12 @@ static void show_PDU_in_tree(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb
p_pdcp_lte_info->no_header_pdu = FALSE;
if (rlc_info->channelType == CHANNEL_TYPE_SRB) {
p_pdcp_lte_info->plane = SIGNALING_PLANE;
- p_pdcp_lte_info->seqnum_length = 5;
+ if ((rlc_info->nbMode == rlc_nb_mode) && (rlc_info->channelId == 3)) {
+ p_pdcp_lte_info->no_header_pdu = TRUE;
+ p_pdcp_lte_info->seqnum_length = 0;
+ } else {
+ p_pdcp_lte_info->seqnum_length = 5;
+ }
}
else {
p_pdcp_lte_info->plane = USER_PLANE;
@@ -2831,6 +2840,11 @@ static gboolean dissect_rlc_lte_heur(tvbuff_t *tvb, packet_info *pinfo,
case RLC_LTE_EXT_LI_FIELD_TAG:
p_rlc_lte_info->extendedLiField = TRUE;
break;
+ case RLC_LTE_NB_MODE_TAG:
+ p_rlc_lte_info->nbMode =
+ (rlc_lte_nb_mode)tvb_get_guint8(tvb, offset);
+ offset++;
+ break;
case RLC_LTE_PAYLOAD_TAG:
/* Have reached data, so set payload length and get out of loop */