summaryrefslogtreecommitdiff
path: root/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c')
-rw-r--r--epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c84
1 files changed, 80 insertions, 4 deletions
diff --git a/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c b/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c
index 3a012d404b..c1aeac53c6 100644
--- a/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c
+++ b/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c
@@ -28,10 +28,14 @@
#include <epan/strutil.h>
#include <epan/asn1.h>
#include <epan/sctpppids.h>
+#include <epan/proto_data.h>
#include "packet-ber.h"
#include "packet-per.h"
#include "packet-e212.h"
+#include "packet-gsm_map.h"
+#include "packet-s1ap.h"
+#include "packet-lte-rrc.h"
#define PNAME "SBc Application Part"
#define PSNAME "SBCAP"
@@ -52,10 +56,22 @@ static dissector_handle_t sbc_ap_handle=NULL;
/* Initialize the protocol and registered fields */
static int proto_sbc_ap = -1;
+static int hf_sbc_ap_Serial_Number_gs = -1;
+static int hf_sbc_ap_Serial_Number_msg_code = -1;
+static int hf_sbc_ap_Serial_Number_upd_nb = -1;
+static int hf_sbc_ap_Warning_Type_value = -1;
+static int hf_sbc_ap_Warning_Type_emergency_user_alert = -1;
+static int hf_sbc_ap_Warning_Type_popup = -1;
+static int hf_sbc_ap_Warning_Message_Contents_nb_pages = -1;
+static int hf_sbc_ap_Warning_Message_Contents_decoded_page = -1;
#include "packet-sbc-ap-hf.c"
/* Initialize the subtree pointers */
static int ett_sbc_ap = -1;
+static int ett_sbc_ap_Serial_Number = -1;
+static int ett_sbc_ap_Warning_Type = -1;
+static int ett_sbc_ap_Data_Coding_Scheme = -1;
+static int ett_sbc_ap_Warning_Message_Contents = -1;
#include "packet-sbc-ap-ett.c"
@@ -65,6 +81,10 @@ enum{
UNSUCCESSFUL_OUTCOME
};
+struct sbc_ap_private_data {
+ guint8 data_coding_scheme;
+};
+
/* Global variables */
static guint32 ProcedureCode;
static guint32 ProtocolIE_ID;
@@ -84,6 +104,18 @@ static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, pro
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
+
+static struct sbc_ap_private_data*
+sbc_ap_get_private_data(packet_info *pinfo)
+{
+ struct sbc_ap_private_data *sbc_ap_data = (struct sbc_ap_private_data*)p_get_proto_data(pinfo->pool, pinfo, proto_sbc_ap, 0);
+ if (!sbc_ap_data) {
+ sbc_ap_data = wmem_new0(pinfo->pool, struct sbc_ap_private_data);
+ p_add_proto_data(pinfo->pool, pinfo, proto_sbc_ap, 0, sbc_ap_data);
+ }
+ return sbc_ap_data;
+}
+
#include "packet-sbc-ap-fn.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
@@ -146,13 +178,48 @@ void proto_register_sbc_ap(void) {
/* List of fields */
static hf_register_info hf[] = {
-
+ { &hf_sbc_ap_Serial_Number_gs,
+ { "Geographical Scope", "sbc_ap.SerialNumber.gs",
+ FT_UINT16, BASE_DEC, VALS(s1ap_serialNumber_gs_vals), 0xc000,
+ NULL, HFILL }},
+ { &hf_sbc_ap_Serial_Number_msg_code,
+ { "Message Code", "sbc_ap.SerialNumber.msg_code",
+ FT_UINT16, BASE_DEC, NULL, 0x3ff0,
+ NULL, HFILL }},
+ { &hf_sbc_ap_Serial_Number_upd_nb,
+ { "Update Number", "sbc_ap.SerialNumber.upd_nb",
+ FT_UINT16, BASE_DEC, NULL, 0x000f,
+ NULL, HFILL }},
+ { &hf_sbc_ap_Warning_Type_value,
+ { "Warning Type Value", "sbc-ap.WarningType.value",
+ FT_UINT16, BASE_DEC, VALS(s1ap_warningType_vals), 0xfe00,
+ NULL, HFILL }},
+ { &hf_sbc_ap_Warning_Type_emergency_user_alert,
+ { "Emergency User Alert", "sbc-ap.WarningType.emergency_user_alert",
+ FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x0100,
+ NULL, HFILL }},
+ { &hf_sbc_ap_Warning_Type_popup,
+ { "Popup", "sbc-ap.WarningType.popup",
+ FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x0080,
+ NULL, HFILL }},
+ { &hf_sbc_ap_Warning_Message_Contents_nb_pages,
+ { "Number of Pages", "sbc-ap.WarningMessageContents.nb_pages",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_sbc_ap_Warning_Message_Contents_decoded_page,
+ { "Decoded Page", "sbc-ap.WarningMessageContents.decoded_page",
+ FT_STRING, STR_UNICODE, NULL, 0,
+ NULL, HFILL }},
#include "packet-sbc-ap-hfarr.c"
};
/* List of subtrees */
static gint *ett[] = {
&ett_sbc_ap,
+ &ett_sbc_ap_Serial_Number,
+ &ett_sbc_ap_Warning_Type,
+ &ett_sbc_ap_Data_Coding_Scheme,
+ &ett_sbc_ap_Warning_Message_Contents,
#include "packet-sbc-ap-ettarr.c"
};
@@ -201,6 +268,15 @@ proto_reg_handoff_sbc_ap(void)
}
-
-
-
+/*
+ * Editor modelines
+ *
+ * Local Variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * ex: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=2:tabSize=8:noTabs=true:
+ */