aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormartinm <martinm@f5534014-38df-0310-8fa8-9805f1628bb7>2011-11-21 16:18:33 +0000
committermartinm <martinm@f5534014-38df-0310-8fa8-9805f1628bb7>2011-11-21 16:18:33 +0000
commit7e6bba5f522f18152d5294a6b71fe86f7ab9d9be (patch)
treea5bd2ae6488f699fc8198e2449fe310f3c543b86
parente8766df56005f16811a7e30e6726cc28f8e5e341 (diff)
Add the system frame number (SFN) to the context fields logged along with LTE MAC frames.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@39971 f5534014-38df-0310-8fa8-9805f1628bb7
-rw-r--r--epan/dissectors/packet-catapult-dct2000.c11
-rw-r--r--epan/dissectors/packet-mac-lte.c14
-rw-r--r--epan/dissectors/packet-mac-lte.h3
3 files changed, 20 insertions, 8 deletions
diff --git a/epan/dissectors/packet-catapult-dct2000.c b/epan/dissectors/packet-catapult-dct2000.c
index 6c7407c958..cff6ca2cc9 100644
--- a/epan/dissectors/packet-catapult-dct2000.c
+++ b/epan/dissectors/packet-catapult-dct2000.c
@@ -260,7 +260,7 @@ static const value_string transport_channel_type_vals[] = {
#define MAX_OUTHDR_VALUES 32
static guint outhdr_values[MAX_OUTHDR_VALUES];
-static gint outhdr_values_found = 0;
+static guint outhdr_values_found = 0;
extern int proto_fp;
extern int proto_rlc;
@@ -1763,18 +1763,23 @@ static void attach_mac_lte_info(packet_info *pinfo)
if (outhdr_values_found == 16) {
p_mac_lte_info->subframeNumberOfGrantPresent = TRUE;
- p_mac_lte_info->subframeNumberOfGrant = outhdr_values[i];
+ p_mac_lte_info->subframeNumberOfGrant = outhdr_values[i++];
}
if (outhdr_values_found > 16) {
p_mac_lte_info->detailed_phy_info.ul_info.harq_id = outhdr_values[i++];
p_mac_lte_info->detailed_phy_info.ul_info.ndi = outhdr_values[i++];
p_mac_lte_info->subframeNumberOfGrantPresent = TRUE;
- p_mac_lte_info->subframeNumberOfGrant = outhdr_values[i];
+ p_mac_lte_info->subframeNumberOfGrant = outhdr_values[i++];
}
}
}
+ /* System frame number */
+ if (i < outhdr_values_found) {
+ p_mac_lte_info->sysframeNumber = outhdr_values[i];
+ }
+
/* Store info in packet */
set_mac_lte_proto_data(pinfo, p_mac_lte_info);
}
diff --git a/epan/dissectors/packet-mac-lte.c b/epan/dissectors/packet-mac-lte.c
index bc04f31119..542d0da9e2 100644
--- a/epan/dissectors/packet-mac-lte.c
+++ b/epan/dissectors/packet-mac-lte.c
@@ -41,10 +41,6 @@
*/
-/* TODO:
- - ??
-*/
-
/* Initialize the protocol and registered fields. */
int proto_mac_lte = -1;
@@ -57,6 +53,7 @@ static int hf_mac_lte_context_direction = -1;
static int hf_mac_lte_context_rnti = -1;
static int hf_mac_lte_context_rnti_type = -1;
static int hf_mac_lte_context_ueid = -1;
+static int hf_mac_lte_context_sysframe_number = -1;
static int hf_mac_lte_context_subframe_number = -1;
static int hf_mac_lte_context_grant_subframe_number = -1;
static int hf_mac_lte_context_predefined_frame = -1;
@@ -3359,6 +3356,9 @@ void dissect_mac_lte(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
return;
}
+ ti = proto_tree_add_uint(context_tree, hf_mac_lte_context_sysframe_number,
+ tvb, 0, 0, p_mac_lte_info->sysframeNumber);
+ PROTO_ITEM_SET_GENERATED(ti);
ti = proto_tree_add_uint(context_tree, hf_mac_lte_context_subframe_number,
tvb, 0, 0, p_mac_lte_info->subframeNumber);
@@ -3701,6 +3701,12 @@ void proto_register_mac_lte(void)
"User Equipment Identifier associated with message", HFILL
}
},
+ { &hf_mac_lte_context_sysframe_number,
+ { "System Frame Number",
+ "mac-lte.sfn", FT_UINT16, BASE_DEC, 0, 0x0,
+ "System Frame Number associated with message", HFILL
+ }
+ },
{ &hf_mac_lte_context_subframe_number,
{ "Subframe",
"mac-lte.subframe", FT_UINT16, BASE_DEC, 0, 0x0,
diff --git a/epan/dissectors/packet-mac-lte.h b/epan/dissectors/packet-mac-lte.h
index e2541ac9f3..55086837c2 100644
--- a/epan/dissectors/packet-mac-lte.h
+++ b/epan/dissectors/packet-mac-lte.h
@@ -97,7 +97,8 @@ typedef struct mac_lte_info
guint16 rnti;
guint16 ueid;
- /* Timing info. TODO: sysframe too? */
+ /* Timing info */
+ guint16 sysframeNumber;
guint16 subframeNumber;
/* Optional field. More interesting for TDD (FDD is always -4 subframeNumber) */