diff options
author | Martin Mathieson <martin.r.mathieson@googlemail.com> | 2019-04-27 17:45:09 +0100 |
---|---|---|
committer | Martin Mathieson <martin.r.mathieson@googlemail.com> | 2019-04-29 23:39:58 +0000 |
commit | dd708676d3c887058420a667c5e924cf037b39cb (patch) | |
tree | bb658b8270b472e743ec067079b0e2d1c31d30db /epan/dissectors/packet-catapult-dct2000.c | |
parent | ca553bcb2a78ab65476bf4f2b2a35e7578064de0 (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.c | 17 |
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); } |