diff options
author | Mathias Kurth <mathias.kurth@commsolid.com> | 2017-04-10 10:45:08 +0200 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2017-04-11 12:33:37 +0000 |
commit | 90c2e34cbd988179187422b48f8d9f28e4f0e9ed (patch) | |
tree | febc69111191a831b3c6291b4160d9ccabac680e /epan/dissectors/packet-rlc-lte.c | |
parent | 87fc4cc5d7d7838d9fb708ca0c00166014d4ace8 (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.c | 18 |
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 */ |