aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-catapult-dct2000.c
diff options
context:
space:
mode:
authorMartin Mathieson <martin.r.mathieson@googlemail.com>2019-04-27 17:45:09 +0100
committerMartin Mathieson <martin.r.mathieson@googlemail.com>2019-04-29 23:39:58 +0000
commitdd708676d3c887058420a667c5e924cf037b39cb (patch)
treebb658b8270b472e743ec067079b0e2d1c31d30db /epan/dissectors/packet-catapult-dct2000.c
parentca553bcb2a78ab65476bf4f2b2a35e7578064de0 (diff)
NR: Configure LCID -> RLC Bearer config from RRC
Change-Id: Ida6af4ccd2157f967b9d2340e6f12319e4dbe688 Reviewed-on: https://code.wireshark.org/review/32998 Petri-Dish: Martin Mathieson <martin.r.mathieson@googlemail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Martin Mathieson <martin.r.mathieson@googlemail.com>
Diffstat (limited to 'epan/dissectors/packet-catapult-dct2000.c')
-rw-r--r--epan/dissectors/packet-catapult-dct2000.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/epan/dissectors/packet-catapult-dct2000.c b/epan/dissectors/packet-catapult-dct2000.c
index d04c877fe9..89d4c99a63 100644
--- a/epan/dissectors/packet-catapult-dct2000.c
+++ b/epan/dissectors/packet-catapult-dct2000.c
@@ -29,6 +29,8 @@
#include "packet-rlc-lte.h"
#include "packet-pdcp-lte.h"
+#include "packet-mac-nr.h"
+
void proto_reg_handoff_catapult_dct2000(void);
void proto_register_catapult_dct2000(void);
@@ -853,6 +855,7 @@ static void dissect_rrc_lte_nr(tvbuff_t *tvb, gint offset,
LogicalChannelType logicalChannelType;
guint16 cell_id;
guint8 bcch_transport = 0;
+ guint32 ueid = 0;
tvbuff_t *rrc_tvb;
/* Top-level opcode */
@@ -892,7 +895,7 @@ static void dissect_rrc_lte_nr(tvbuff_t *tvb, gint offset,
logicalChannelType = Channel_DCCH;
/* UEId */
- proto_tree_add_item(tree, hf_catapult_dct2000_ueid, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item_ret_uint(tree, hf_catapult_dct2000_ueid, tvb, offset, 2, ENC_BIG_ENDIAN, &ueid);
offset += 2;
/* Get tag of channel type */
@@ -1099,6 +1102,18 @@ static void dissect_rrc_lte_nr(tvbuff_t *tvb, gint offset,
/* Send to RRC dissector, if got here, have sub-dissector and some data left */
if ((protocol_handle != NULL) && (tvb_reported_length_remaining(tvb, offset) > 0)) {
+
+ /* Set MAC-NR info for this PDU. Needed so that UEId can be found for this frame,
+ * as used by MAC/RLC/PDCP configuration from RRC dissector */
+ if (ueid) {
+ struct mac_nr_info *p_mac_nr_info;
+ p_mac_nr_info = wmem_new0(wmem_file_scope(), struct mac_nr_info);
+ p_mac_nr_info->ueid = ueid;
+ p_mac_nr_info->direction = (isUplink) ? DIRECTION_UPLINK : DIRECTION_DOWNLINK;
+ /* Store info in packet */
+ set_mac_nr_proto_data(pinfo, p_mac_nr_info);
+ }
+
rrc_tvb = tvb_new_subset_remaining(tvb, offset);
call_dissector_only(protocol_handle, rrc_tvb, pinfo, tree, NULL);
}