diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2013-12-19 21:40:38 +0000 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2013-12-19 21:40:38 +0000 |
commit | d66bffb66eecd7797c6f0d153c9f4bfd9eb6ab02 (patch) | |
tree | 5c347ef019fffe48206050449bef826c1d6d7b41 | |
parent | 6be37815a19a8b34713831d131c1843d1f20ed7e (diff) |
Add System Frame Number to UDP framing protocol and display it in info column
svn path=/trunk/; revision=54272
-rw-r--r-- | epan/dissectors/packet-mac-lte.c | 17 | ||||
-rw-r--r-- | epan/dissectors/packet-mac-lte.h | 4 |
2 files changed, 13 insertions, 8 deletions
diff --git a/epan/dissectors/packet-mac-lte.c b/epan/dissectors/packet-mac-lte.c index 85478e2127..346521ca70 100644 --- a/epan/dissectors/packet-mac-lte.c +++ b/epan/dissectors/packet-mac-lte.c @@ -1858,9 +1858,13 @@ gboolean dissect_mac_lte_context_fields(struct mac_lte_info *p_mac_lte_info, tv p_mac_lte_info->ueid = tvb_get_ntohs(tvb, offset); offset += 2; break; - case MAC_LTE_SUBFRAME_TAG: - p_mac_lte_info->subframeNumber = tvb_get_ntohs(tvb, offset); - offset += 2; + case MAC_LTE_FRAME_SUBFRAME_TAG: + { + guint16 sfn_sf = tvb_get_ntohs(tvb, offset); + p_mac_lte_info->sysframeNumber = (sfn_sf >> 4) & 0x03ff; + p_mac_lte_info->subframeNumber = sfn_sf & 0x000f; + offset += 2; + } break; case MAC_LTE_PREDEFINED_DATA_TAG: p_mac_lte_info->isPredefinedData = tvb_get_guint8(tvb, offset); @@ -2303,8 +2307,8 @@ static void dissect_rar(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, pro int start_headers_offset = offset; write_pdu_label_and_info(pdu_ti, NULL, pinfo, - "RAR (RA-RNTI=%u, SF=%u) ", - p_mac_lte_info->rnti, p_mac_lte_info->subframeNumber); + "RAR (RA-RNTI=%u, SFN=%-4u, SF=%u) ", + p_mac_lte_info->rnti, p_mac_lte_info->sysframeNumber, p_mac_lte_info->subframeNumber); /* Create hidden 'virtual root' so can filter on mac-lte.rar */ ti = proto_tree_add_item(tree, hf_mac_lte_rar, tvb, offset, -1, ENC_NA); @@ -3350,8 +3354,9 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree show_ues_tti(pinfo, p_mac_lte_info, tvb, context_tree); write_pdu_label_and_info(pdu_ti, NULL, pinfo, - "%s: (SF=%u) UEId=%-3u ", + "%s: (SFN=%-4u, SF=%u) UEId=%-3u ", (direction == DIRECTION_UPLINK) ? "UL-SCH" : "DL-SCH", + p_mac_lte_info->sysframeNumber, p_mac_lte_info->subframeNumber, p_mac_lte_info->ueid); diff --git a/epan/dissectors/packet-mac-lte.h b/epan/dissectors/packet-mac-lte.h index 87360f4354..6b1a505902 100644 --- a/epan/dissectors/packet-mac-lte.h +++ b/epan/dissectors/packet-mac-lte.h @@ -249,8 +249,8 @@ int is_mac_lte_frame_retx(packet_info *pinfo, guint8 direction); #define MAC_LTE_UEID_TAG 0x03 /* 2 bytes, network order */ -#define MAC_LTE_SUBFRAME_TAG 0x04 -/* 2 bytes, network order */ +#define MAC_LTE_FRAME_SUBFRAME_TAG 0x04 +/* 2 bytes, network order, SFN is stored in 12 MSB and SF in 4 LSB */ #define MAC_LTE_PREDEFINED_DATA_TAG 0x05 /* 1 byte */ |