aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Mathieson <martin.r.mathieson@googlemail.com>2009-03-11 11:17:16 +0000
committerMartin Mathieson <martin.r.mathieson@googlemail.com>2009-03-11 11:17:16 +0000
commitadd4159acaba0b7cfd6ecdca298e978e9d04233f (patch)
tree6bdeb7e5d0c5e374b5b479dc5594babc023f682b
parentaffc58bea909247ecb4fc5149e682886c8a09954 (diff)
Be careful not to show not-relevant context info.
svn path=/trunk/; revision=27699
-rw-r--r--epan/dissectors/packet-mac-lte.c9
-rw-r--r--epan/dissectors/packet-rlc-lte.c34
2 files changed, 31 insertions, 12 deletions
diff --git a/epan/dissectors/packet-mac-lte.c b/epan/dissectors/packet-mac-lte.c
index ff41746d98..e62c349584 100644
--- a/epan/dissectors/packet-mac-lte.c
+++ b/epan/dissectors/packet-mac-lte.c
@@ -43,6 +43,7 @@
- more testing of control bodies
- TDD mode
- add a preference so that padding can be verified against an expected pattern?
+ - context values to show HARQ retry counts and CRC-pased flag
*/
/* Initialize the protocol and registered fields. */
@@ -1023,9 +1024,11 @@ void dissect_mac_lte(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
tvb, 0, 0, p_mac_lte_info->subframeNumber);
PROTO_ITEM_SET_GENERATED(ti);
- ti = proto_tree_add_uint(mac_lte_tree, hf_mac_lte_context_rnti,
- tvb, 0, 0, p_mac_lte_info->rnti);
- PROTO_ITEM_SET_GENERATED(ti);
+ if (p_mac_lte_info->rntiType != NO_RNTI) {
+ ti = proto_tree_add_uint(mac_lte_tree, hf_mac_lte_context_rnti,
+ tvb, 0, 0, p_mac_lte_info->rnti);
+ PROTO_ITEM_SET_GENERATED(ti);
+ }
ti = proto_tree_add_uint(mac_lte_tree, hf_mac_lte_context_rnti_type,
tvb, 0, 0, p_mac_lte_info->rntiType);
diff --git a/epan/dissectors/packet-rlc-lte.c b/epan/dissectors/packet-rlc-lte.c
index fac21cad08..bf35d21580 100644
--- a/epan/dissectors/packet-rlc-lte.c
+++ b/epan/dissectors/packet-rlc-lte.c
@@ -38,6 +38,15 @@
* Radio Link Control (RLC) Protocol specification
*/
+/* TODO:
+ Working towards re-assembly:
+ - track frames within same channel, so can show:
+ - frame link back to start of current segment
+ - show length (and possibly contents) of re-assembled segment
+ - report inconsistent framing info values, i.e. grumble if see for consecutive SNs:
+ - "... [" OR "] ..."
+*/
+
/* Initialize the protocol and registered fields. */
int proto_rlc_lte = -1;
@@ -719,9 +728,11 @@ void dissect_rlc_lte(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
tvb, 0, 0, p_rlc_lte_info->rlcMode);
PROTO_ITEM_SET_GENERATED(mode_ti);
- ti = proto_tree_add_uint(rlc_lte_tree, hf_rlc_lte_context_ueid,
- tvb, 0, 0, p_rlc_lte_info->ueid);
- PROTO_ITEM_SET_GENERATED(ti);
+ if (p_rlc_lte_info->ueid != 0) {
+ ti = proto_tree_add_uint(rlc_lte_tree, hf_rlc_lte_context_ueid,
+ tvb, 0, 0, p_rlc_lte_info->ueid);
+ PROTO_ITEM_SET_GENERATED(ti);
+ }
ti = proto_tree_add_uint(rlc_lte_tree, hf_rlc_lte_context_priority,
tvb, 0, 0, p_rlc_lte_info->priority);
@@ -731,9 +742,12 @@ void dissect_rlc_lte(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
tvb, 0, 0, p_rlc_lte_info->channelType);
PROTO_ITEM_SET_GENERATED(ti);
- ti = proto_tree_add_uint(rlc_lte_tree, hf_rlc_lte_context_channel_id,
- tvb, 0, 0, p_rlc_lte_info->channelId);
- PROTO_ITEM_SET_GENERATED(ti);
+ if ((p_rlc_lte_info->channelType == CHANNEL_TYPE_SRB) ||
+ (p_rlc_lte_info->channelType == CHANNEL_TYPE_DRB)) {
+ ti = proto_tree_add_uint(rlc_lte_tree, hf_rlc_lte_context_channel_id,
+ tvb, 0, 0, p_rlc_lte_info->channelId);
+ PROTO_ITEM_SET_GENERATED(ti);
+ }
ti = proto_tree_add_uint(rlc_lte_tree, hf_rlc_lte_context_pdu_length,
tvb, 0, 0, p_rlc_lte_info->pduLength);
@@ -749,10 +763,12 @@ void dissect_rlc_lte(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* Append context highlights to info column */
if (check_col(pinfo->cinfo, COL_INFO)) {
col_add_fstr(pinfo->cinfo, COL_INFO,
- "[%s] [%s] UEId=%u ",
+ "[%s] [%s] ",
(p_rlc_lte_info->direction == 0) ? "UL" : "DL",
- val_to_str(p_rlc_lte_info->rlcMode, rlc_mode_short_vals, "Unknown"),
- p_rlc_lte_info->ueid);
+ val_to_str(p_rlc_lte_info->rlcMode, rlc_mode_short_vals, "Unknown"));
+ if (p_rlc_lte_info->ueid != 0) {
+ col_append_fstr(pinfo->cinfo, COL_INFO, "UEId=%u ", p_rlc_lte_info->ueid);
+ }
if (p_rlc_lte_info->channelId == 0) {
col_append_fstr(pinfo->cinfo, COL_INFO, "%s",
val_to_str(p_rlc_lte_info->channelType, rlc_channel_type_vals, "Unknown"));