summaryrefslogtreecommitdiff
path: root/epan/dissectors/asn1
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/asn1')
-rw-r--r--epan/dissectors/asn1/lte-rrc/lte-rrc.cnf17
-rw-r--r--epan/dissectors/asn1/s1ap/packet-s1ap-template.c24
-rw-r--r--epan/dissectors/asn1/s1ap/s1ap.cnf86
3 files changed, 109 insertions, 18 deletions
diff --git a/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf b/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf
index d88f4329fd..69b9d493d5 100644
--- a/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf
+++ b/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf
@@ -22,29 +22,30 @@ T-StatusProhibit
WLAN-backhaulRate-r12
#.EXPORTS
-HandoverCommand
HandoverCommand_PDU
-HandoverPreparationInformation
HandoverPreparationInformation_PDU
-HandoverPreparationInformation-NB
HandoverPreparationInformation-NB_PDU
-UERadioAccessCapabilityInformation
+RLF-Report-r9_PDU
+RLF-Report-v9e0_PDU
UERadioAccessCapabilityInformation_PDU
-UERadioAccessCapabilityInformation-NB
UERadioAccessCapabilityInformation-NB_PDU
-UE-EUTRA-Capability
UE-EUTRA-Capability_PDU
-UERadioPagingInformation
+UEPagingCoverageInformation_PDU
UERadioPagingInformation_PDU
+VisitedCellInfoList-r12_PDU
#.END
#.PDU
HandoverCommand
HandoverPreparationInformation
HandoverPreparationInformation-NB
+RLF-Report-r9
+RLF-Report-v9e0
+UEPagingCoverageInformation
UERadioAccessCapabilityInformation
UERadioAccessCapabilityInformation-NB
UERadioPagingInformation
+VisitedCellInfoList-r12
BCCH-BCH-Message @bcch.bch
BCCH-DL-SCH-Message @bcch.dl.sch
BCCH-DL-SCH-Message-BR @bcch.dl.sch.br
@@ -97,10 +98,8 @@ SL-PreconfigRelay-r13
SL-PreconfigSync-r12
SL-Preconfiguration-r12
SL-TxPoolIdentity-r13
-UEPagingCoverageInformation
UEPagingCoverageInformation-NB
UEPagingCoverageInformation-NB-IEs
-UEPagingCoverageInformation-r13-IEs
UERadioPagingInformation-NB
UERadioPagingInformation-NB-IEs
VarConnEstFailReport-r11
diff --git a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
index 0cbb471863..0de9f1f343 100644
--- a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
+++ b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
@@ -1,6 +1,6 @@
/* packet-s1ap.c
* Routines for E-UTRAN S1 Application Protocol (S1AP) packet dissection
- * Copyright 2007-2010, Anders Broman <anders.broman@ericsson.com>
+ * Copyright 2007-2016, Anders Broman <anders.broman@ericsson.com>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -22,7 +22,7 @@
*
* Based on the RANAP dissector
*
- * References: 3GPP TS 36.413 V9.2.0 (2010-03)
+ * References: 3GPP TS 36.413 V13.3.0 (2016-06)
*/
#include "config.h"
@@ -83,6 +83,10 @@ static int ett_s1ap_RIMInformation = -1;
static int ett_s1ap_Cdma2000PDU = -1;
static int ett_s1ap_Cdma2000SectorID = -1;
static int ett_s1ap_UERadioPagingInformation = -1;
+static int ett_s1ap_UE_HistoryInformationFromTheUE = -1;
+static int ett_s1ap_CELevel = -1;
+static int ett_s1ap_UE_RLF_Report_Container = -1;
+static int ett_s1ap_UE_RLF_Report_Container_for_extended_bands = -1;
#include "packet-s1ap-ett.c"
@@ -135,6 +139,18 @@ static int dissect_SourceBSS_ToTargetBSS_TransparentContainer_PDU(tvbuff_t *tvb,
static int dissect_TargetBSS_ToSourceBSS_TransparentContainer_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
#endif
+static void
+s1ap_Threshold_RSRP_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%u)", (gint32)v-140, v);
+}
+
+static void
+s1ap_Threshold_RSRQ_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%u)", ((float)v/2)-20, v);
+}
+
#include "packet-s1ap-fn.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
@@ -264,6 +280,10 @@ void proto_register_s1ap(void) {
&ett_s1ap_Cdma2000PDU,
&ett_s1ap_Cdma2000SectorID,
&ett_s1ap_UERadioPagingInformation,
+ &ett_s1ap_UE_HistoryInformationFromTheUE,
+ &ett_s1ap_CELevel,
+ &ett_s1ap_UE_RLF_Report_Container,
+ &ett_s1ap_UE_RLF_Report_Container_for_extended_bands,
#include "packet-s1ap-ettarr.c"
};
diff --git a/epan/dissectors/asn1/s1ap/s1ap.cnf b/epan/dissectors/asn1/s1ap/s1ap.cnf
index 569f6a6343..66aa4a2271 100644
--- a/epan/dissectors/asn1/s1ap/s1ap.cnf
+++ b/epan/dissectors/asn1/s1ap/s1ap.cnf
@@ -30,7 +30,6 @@ SONtransferResponseContainer
SONtransferCause_PDU
UE-HistoryInformation_PDU
-
#.PDU
S1AP-PDU
SourceeNB-ToTargeteNB-TransparentContainer
@@ -487,11 +486,11 @@ tvbuff_t *parameter_tvb=NULL;
switch(message_type){
case INITIATING_MESSAGE:
- /* 9.2.1.7 Source eNB to Target eNB Transparent Container */
+ /* 9.2.1.7 Source eNB to Target eNB Transparent Container */
dissect_lte_rrc_HandoverPreparationInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
break;
case SUCCESSFUL_OUTCOME:
- /* 9.2.1.7 Source eNB to Target eNB Transparent Container */
+ /* 9.2.1.8 Target eNB to Source eNB Transparent Container */
dissect_lte_rrc_HandoverCommand_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
break;
default:
@@ -499,8 +498,18 @@ tvbuff_t *parameter_tvb=NULL;
}
}
+#.FN_BODY UE-HistoryInformationFromTheUE VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree = NULL;
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+ if (g_s1ap_dissect_container) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_UE_HistoryInformationFromTheUE);
+ dissect_lte_rrc_VisitedCellInfoList_r12_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ }
#.FN_BODY UERadioCapability VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
@@ -513,7 +522,13 @@ tvbuff_t *parameter_tvb=NULL;
if (g_s1ap_dissect_container) {
subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_UERadioCapability);
dissect_lte_rrc_UERadioAccessCapabilityInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
-}
+ }
+
+#.TYPE_ATTR
+Threshold-RSRP DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(s1ap_Threshold_RSRP_fmt)
+
+#.TYPE_ATTR
+Threshold-RSRQ DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(s1ap_Threshold_RSRQ_fmt)
# 9.2.3.24 RIM Information
# Contains the BSSGP RIM PDU
@@ -577,9 +592,66 @@ if (gcsna_handle) {
if (!parameter_tvb)
return offset;
- subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_UERadioPagingInformation);
- dissect_lte_rrc_UERadioPagingInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ if (g_s1ap_dissect_container) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_UERadioPagingInformation);
+ dissect_lte_rrc_UERadioPagingInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ }
+#.FN_BODY CELevel VAL_PTR = &parameter_tvb
+# 9.2.1.109 Cell Identifier and Coverage Enhancement Level
+# Includes the UEPagingCoverageInformation message as defined in 10.2.2 of TS 36.331
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree = NULL;
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+
+ if (g_s1ap_dissect_container) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_CELevel);
+ dissect_lte_rrc_UEPagingCoverageInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY UE-RLF-Report-Container VAL_PTR = &parameter_tvb
+# 9.2.3.40 RLF Report Information
+# Includes the rlf-Report-r9 contained in UEInformationResponse message as defined in TS 36.331
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree = NULL;
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+
+ if (g_s1ap_dissect_container) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_UE_RLF_Report_Container);
+ dissect_lte_rrc_RLF_Report_r9_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY UE-RLF-Report-Container-for-extended-bands VAL_PTR = &parameter_tvb
+# 9.2.3.40 RLF Report Information
+# Includes the rlf-Report-v9e0 contained in UEInformationResponse message as defined in TS 36.331
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree = NULL;
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+
+ if (g_s1ap_dissect_container) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_UE_RLF_Report_Container_for_extended_bands);
+ dissect_lte_rrc_RLF_Report_v9e0_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY TooEarlyInterRATHOReportReportFromEUTRAN/uERLFReportContainer VAL_PTR = &parameter_tvb
+# B.1.17 Failure Event Report
+# Includes the RLF Report contained in the UEInformationResponse message (TS 36.331 [16])
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree = NULL;
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+
+ if (g_s1ap_dissect_container) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_UE_RLF_Report_Container);
+ dissect_lte_rrc_RLF_Report_r9_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ }
#.TYPE_ATTR
ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &s1ap_ProtocolIE_ID_vals_ext
@@ -1400,7 +1472,7 @@ UEContextResumeFailure N s1ap.proc.uout id-UEContextResume
#.FN_BODY CauseProtocol VAL_PTR=&value
guint32 value;
%(DEFAULT_BODY)s
- col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [Protocol-cause=%%s]", val_to_str_const(value, s1ap_CauseProtocol_vals, "Unknown"));
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [Protocol-cause=%%s]", val_to_str_const(value, s1ap_CauseProtocol_vals, "Unknown"));
#.FN_BODY CauseMisc VAL_PTR=&value
guint32 value;