aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormartinm <martinm@f5534014-38df-0310-8fa8-9805f1628bb7>2011-07-19 16:41:56 +0000
committermartinm <martinm@f5534014-38df-0310-8fa8-9805f1628bb7>2011-07-19 16:41:56 +0000
commit2a46f365cd7a47ff69b1ec41cab0fa6457207e32 (patch)
tree3bb052055010a5e354983baaed77fca6fba6c35d
parent963b6972170fbfdb58d554426f78d7448d3019be (diff)
From Pradip Biswas, bug 6127 - Added Decode for RRC BCCH (BCH and DL_SCH) messages on RLC-over-UDP.
Add separate codes/cases for BCH-over-BCH and BCH-over-DLSCH. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@38115 f5534014-38df-0310-8fa8-9805f1628bb7
-rw-r--r--epan/dissectors/packet-rlc-lte.c21
-rw-r--r--epan/dissectors/packet-rlc-lte.h3
-rw-r--r--gtk/rlc_lte_stat_dlg.c3
-rw-r--r--tap-rlcltestat.c3
4 files changed, 18 insertions, 12 deletions
diff --git a/epan/dissectors/packet-rlc-lte.c b/epan/dissectors/packet-rlc-lte.c
index 4e575a5af0..55d36e8aec 100644
--- a/epan/dissectors/packet-rlc-lte.c
+++ b/epan/dissectors/packet-rlc-lte.c
@@ -200,11 +200,12 @@ static const value_string rlc_mode_vals[] =
static const value_string rlc_channel_type_vals[] =
{
- { CHANNEL_TYPE_CCCH, "CCCH"},
- { CHANNEL_TYPE_BCCH, "BCCH"},
- { CHANNEL_TYPE_PCCH, "PCCH"},
- { CHANNEL_TYPE_SRB, "SRB"},
- { CHANNEL_TYPE_DRB, "DRB"},
+ { CHANNEL_TYPE_CCCH, "CCCH"},
+ { CHANNEL_TYPE_BCCH_BCH, "BCCH_BCH"},
+ { CHANNEL_TYPE_PCCH, "PCCH"},
+ { CHANNEL_TYPE_SRB, "SRB"},
+ { CHANNEL_TYPE_DRB, "DRB"},
+ { CHANNEL_TYPE_BCCH_DL_SCH, "BCCH_DL_SCH"},
{ 0, NULL }
};
@@ -1386,10 +1387,12 @@ static void dissect_rlc_lte_tm(tvbuff_t *tvb, packet_info *pinfo,
}
break;
- case CHANNEL_TYPE_BCCH:
- /* TODO: Problem is don't know which transport channel... */
- return;
-
+ case CHANNEL_TYPE_BCCH_BCH:
+ protocol_handle = find_dissector("lte_rrc.bcch.bch");
+ break;
+ case CHANNEL_TYPE_BCCH_DL_SCH:
+ protocol_handle = find_dissector("lte_rrc.bcch.dl.sch");
+ break;
case CHANNEL_TYPE_PCCH:
protocol_handle = find_dissector("lte-rrc.pcch");
break;
diff --git a/epan/dissectors/packet-rlc-lte.h b/epan/dissectors/packet-rlc-lte.h
index ab85d6cdc8..e79301a7a5 100644
--- a/epan/dissectors/packet-rlc-lte.h
+++ b/epan/dissectors/packet-rlc-lte.h
@@ -36,10 +36,11 @@
/* channelType */
#define CHANNEL_TYPE_CCCH 1
-#define CHANNEL_TYPE_BCCH 2
+#define CHANNEL_TYPE_BCCH_BCH 2
#define CHANNEL_TYPE_PCCH 3
#define CHANNEL_TYPE_SRB 4
#define CHANNEL_TYPE_DRB 5
+#define CHANNEL_TYPE_BCCH_DL_SCH 6
/* UMSequenceNumberLength */
#define UM_SN_LENGTH_5_BITS 5
diff --git a/gtk/rlc_lte_stat_dlg.c b/gtk/rlc_lte_stat_dlg.c
index 1ed140233e..c341019407 100644
--- a/gtk/rlc_lte_stat_dlg.c
+++ b/gtk/rlc_lte_stat_dlg.c
@@ -391,7 +391,8 @@ rlc_lte_stat_packet(void *phs, packet_info *pinfo, epan_dissect_t *edt _U_,
/* Common channel stats */
switch (si->channelType) {
- case CHANNEL_TYPE_BCCH:
+ case CHANNEL_TYPE_BCCH_BCH:
+ case CHANNEL_TYPE_BCCH_DL_SCH:
hs->common_stats.bcch_frames++;
hs->common_stats.bcch_bytes += si->pduLength;
return 1;
diff --git a/tap-rlcltestat.c b/tap-rlcltestat.c
index e9e291c327..a64c2d9024 100644
--- a/tap-rlcltestat.c
+++ b/tap-rlcltestat.c
@@ -187,7 +187,8 @@ rlc_lte_stat_packet(void *phs, packet_info *pinfo, epan_dissect_t *edt _U_,
/* Common channel stats */
switch (si->channelType) {
- case CHANNEL_TYPE_BCCH:
+ case CHANNEL_TYPE_BCCH_BCH:
+ case CHANNEL_TYPE_BCCH_DL_SCH:
hs->common_stats.bcch_frames++;
hs->common_stats.bcch_bytes += si->pduLength;
return 1;