aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-pdcp-nr.c
diff options
context:
space:
mode:
authorMartin Mathieson <martin.mathieson@keysight.com>2021-01-04 11:03:22 +0000
committerWireshark GitLab Utility <gerald+gitlab-utility@wireshark.org>2021-01-05 11:56:11 +0000
commit445df19e7cb15c0164ea5822d89c4b79c0633822 (patch)
tree9b90ae7b87cb8f73c64b84b7d61de694ff9883fe /epan/dissectors/packet-pdcp-nr.c
parent8902386c763b036205e85cade8d272d43ae28953 (diff)
PDCP NR: Get DRB params when RLC not present
Diffstat (limited to 'epan/dissectors/packet-pdcp-nr.c')
-rw-r--r--epan/dissectors/packet-pdcp-nr.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/epan/dissectors/packet-pdcp-nr.c b/epan/dissectors/packet-pdcp-nr.c
index bc3eb708e8..bd7c0300c3 100644
--- a/epan/dissectors/packet-pdcp-nr.c
+++ b/epan/dissectors/packet-pdcp-nr.c
@@ -1844,6 +1844,30 @@ static int dissect_pdcp_nr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
p_pdcp_info = (struct pdcp_nr_info *)data;
}
+ /* If no RLC layer in this frame, query RLC table for configured drb settings */
+ if (!p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc_nr, 0)) {
+ /* If DRB channel, query rlc table */
+ if (p_pdcp_info->plane == NR_USER_PLANE) {
+ pdcp_bearer_parameters *params = get_rlc_nr_drb_pdcp_mapping(p_pdcp_info->ueid, p_pdcp_info->bearerId);
+ if (params) {
+ if (p_pdcp_info->direction == DIRECTION_UPLINK) {
+ p_pdcp_info->seqnum_length = params->pdcp_sn_bits_ul;
+ if (params->pdcp_sdap_ul) {
+ p_pdcp_info->sdap_header |= PDCP_NR_UL_SDAP_HEADER_PRESENT;
+ }
+ }
+ else {
+ p_pdcp_info->seqnum_length = params->pdcp_sn_bits_dl;
+ if (params->pdcp_sdap_dl) {
+ p_pdcp_info->sdap_header |= PDCP_NR_DL_SDAP_HEADER_PRESENT;
+ }
+ }
+ p_pdcp_info->maci_present = params->pdcp_integrity;
+ p_pdcp_info->ciphering_disabled = params->pdcp_ciphering_disabled;
+ }
+ }
+ }
+
/* Don't want to overwrite the RLC Info column if configured not to */
if ((global_pdcp_nr_layer_to_show == ShowRLCLayer) &&
(p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc_nr, 0) != NULL)) {