aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Kukosa <tomas.kukosa@siemens.com>2007-10-29 19:25:37 +0000
committerTomas Kukosa <tomas.kukosa@siemens.com>2007-10-29 19:25:37 +0000
commit84488ec01617591a27cd6ca848992694a13c12ac (patch)
tree86eb36577ef8f56583974ef94912a16dc86fecb4
parenta708791aa0dd793a8d371449f6d75f5f2219055b (diff)
asn2wrs
- parameterized object class assignment - octet string with extensible size constraint - RELATIVE-OID type (still not supported in packet-per/ber) packet-per - octet string with extensible size constraint more dissect_per_... functions exported from libwireshark.dll PER dissectors regenerated add forgotten packet-h323-template.h fix svn properties for h323 files svn path=/trunk/; revision=23309
-rw-r--r--asn1/h323/Makefile.am52
-rw-r--r--asn1/h323/Makefile.common106
-rw-r--r--asn1/h323/Makefile.nmake58
-rw-r--r--asn1/h323/RAS-PROTOCOL-TUNNEL.asn2
-rw-r--r--asn1/h323/ROBUSTNESS-DATA.asn2
-rw-r--r--asn1/h323/h323.cnf34
-rw-r--r--asn1/h323/packet-h323-template.c290
-rw-r--r--asn1/h323/packet-h323-template.h66
-rw-r--r--asn1/ranap/ranap.cnf4
-rw-r--r--epan/dissectors/packet-h225.c50
-rw-r--r--epan/dissectors/packet-h235.c8
-rw-r--r--epan/dissectors/packet-h245.c40
-rw-r--r--epan/dissectors/packet-h323.c2
-rw-r--r--epan/dissectors/packet-h450.c8
-rw-r--r--epan/dissectors/packet-h460.c10
-rw-r--r--epan/dissectors/packet-h501.c4
-rw-r--r--epan/dissectors/packet-mpeg-audio.c12
-rw-r--r--epan/dissectors/packet-mpeg-pes.c4
-rw-r--r--epan/dissectors/packet-nbap.c4
-rw-r--r--epan/dissectors/packet-per.c23
-rw-r--r--epan/dissectors/packet-per.h4
-rw-r--r--epan/dissectors/packet-ranap.c86
-rw-r--r--epan/dissectors/packet-ranap.h2
-rw-r--r--epan/dissectors/packet-rnsap.c32
-rw-r--r--epan/dissectors/packet-rrc.c30
-rw-r--r--epan/dissectors/packet-rrlp.c346
-rw-r--r--epan/dissectors/packet-sabp.c6
-rw-r--r--epan/dissectors/packet-t38.c14
-rw-r--r--epan/dissectors/packet-ulp.c20
-rw-r--r--epan/libwireshark.def9
-rwxr-xr-xtools/asn2wrs.py55
31 files changed, 757 insertions, 626 deletions
diff --git a/asn1/h323/Makefile.am b/asn1/h323/Makefile.am
index 0b7ca0ada3..462af31e88 100644
--- a/asn1/h323/Makefile.am
+++ b/asn1/h323/Makefile.am
@@ -1,26 +1,26 @@
-# $Id: Makefile.am 23085 2007-10-07 21:07:33Z jmayer $
-#
-#
-# Wireshark - Network traffic analyzer
-# By Gerald Combs <gerald@wireshark.org>
-# Copyright 1998 Gerald Combs
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-
-include ../Makefile.preinc
-include Makefile.common
-include ../Makefile.inc
-
+# $Id$
+#
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/asn1/h323/Makefile.common b/asn1/h323/Makefile.common
index 152abac171..c57acb54a5 100644
--- a/asn1/h323/Makefile.common
+++ b/asn1/h323/Makefile.common
@@ -1,53 +1,53 @@
-# $Id: Makefile.common 22951 2007-09-25 11:58:35Z kukosa $
-#
-#
-# Wireshark - Network traffic analyzer
-# By Gerald Combs <gerald@wireshark.org>
-# Copyright 1998 Gerald Combs
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-
-PROTOCOL_NAME = h323
-
-DISSECTOR_FILES = \
- packet-$(PROTOCOL_NAME).c \
- packet-$(PROTOCOL_NAME).h
-
-NEED_PACKET_PROTO_H = 1
-
-EXT_ASN_FILE_LIST =
-
-ASN_FILE_LIST = \
- RAS-PROTOCOL-TUNNEL.asn \
- ROBUSTNESS-DATA.asn
-
-EXTRA_DIST = \
- $(ASN_FILE_LIST) \
- packet-$(PROTOCOL_NAME)-template.c \
- $(PROTOCOL_NAME).cnf
-
-SRC_FILES = \
- $(EXTRA_DIST) \
- $(EXT_ASN_FILE_LIST)
-
-A2W_FLAGS =
-
-EXTRA_CNF = \
- ../h225/h225-exp.cnf
-
-../h225/h225-exp.cnf:
- (cd ../h225 && $(MAKE_CNF_EXPORT))
-
+# $Id$
+#
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+PROTOCOL_NAME = h323
+
+DISSECTOR_FILES = \
+ packet-$(PROTOCOL_NAME).c \
+ packet-$(PROTOCOL_NAME).h
+
+NEED_PACKET_PROTO_H = 1
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ RAS-PROTOCOL-TUNNEL.asn \
+ ROBUSTNESS-DATA.asn
+
+EXTRA_DIST = \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF = \
+ ../h225/h225-exp.cnf
+
+../h225/h225-exp.cnf:
+ (cd ../h225 && $(MAKE_CNF_EXPORT))
+
diff --git a/asn1/h323/Makefile.nmake b/asn1/h323/Makefile.nmake
index d8dc2a43eb..5a32997c60 100644
--- a/asn1/h323/Makefile.nmake
+++ b/asn1/h323/Makefile.nmake
@@ -1,29 +1,29 @@
-## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
-#
-# $Id: Makefile.nmake 23085 2007-10-07 21:07:33Z jmayer $
-#
-#
-# Wireshark - Network traffic analyzer
-# By Gerald Combs <gerald@wireshark.org>
-# Copyright 1998 Gerald Combs
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-
-include ../../config.nmake
-include ../Makefile.preinc.nmake
-include Makefile.common
-include ../Makefile.inc.nmake
-
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# $Id$
+#
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+include ../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/asn1/h323/RAS-PROTOCOL-TUNNEL.asn b/asn1/h323/RAS-PROTOCOL-TUNNEL.asn
index 20a7c41902..4f791c314c 100644
--- a/asn1/h323/RAS-PROTOCOL-TUNNEL.asn
+++ b/asn1/h323/RAS-PROTOCOL-TUNNEL.asn
@@ -3,7 +3,7 @@
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h323/2006/RAS-PROTOCOL-TUNNEL.asn
--
--- $Id: H235-SECURITY-MESSAGES.asn 18339 2006-06-05 06:52:50Z kukosa $
+-- $Id$
--
-- Module RAS-PROTOCOL-TUNNEL (H.323:06/2006)
diff --git a/asn1/h323/ROBUSTNESS-DATA.asn b/asn1/h323/ROBUSTNESS-DATA.asn
index b2fe7aed6c..7af9ae89bb 100644
--- a/asn1/h323/ROBUSTNESS-DATA.asn
+++ b/asn1/h323/ROBUSTNESS-DATA.asn
@@ -1,6 +1,6 @@
-- ROBUSTNESS-DATA.asn
--
--- $Id: H235-SECURITY-MESSAGES.asn 18339 2006-06-05 06:52:50Z kukosa $
+-- $Id$
--
-- ITU-T Rec. H.323 (06/2006)
--
diff --git a/asn1/h323/h323.cnf b/asn1/h323/h323.cnf
index 2ca21adaef..de01473bd7 100644
--- a/asn1/h323/h323.cnf
+++ b/asn1/h323/h323.cnf
@@ -1,17 +1,17 @@
-# h323.cnf
-# H.323 conformation file
-# 2007 Tomas Kukosa
-
-# $Id$
-
-#.IMPORT ../h225/h225-exp.cnf
-
-#.OPT
-PER
-ALIGNED
-#.END
-
-#.PDU_NEW
-RasTunnelledSignallingMessage
-RobustnessData
-#.END
+# h323.cnf
+# H.323 conformation file
+# 2007 Tomas Kukosa
+
+# $Id$
+
+#.IMPORT ../h225/h225-exp.cnf
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.PDU_NEW
+RasTunnelledSignallingMessage
+RobustnessData
+#.END
diff --git a/asn1/h323/packet-h323-template.c b/asn1/h323/packet-h323-template.c
index bb3d268f61..44f2b816ad 100644
--- a/asn1/h323/packet-h323-template.c
+++ b/asn1/h323/packet-h323-template.c
@@ -1,145 +1,145 @@
-/* packet-h323.c
- * Routines for H.323 packet dissection
- * 2007 Tomas Kukosa
- *
- * $Id$
- *
- * Wireshark - Network traffic analyzer
- * By Gerald Combs <gerald@wireshark.org>
- * Copyright 1998 Gerald Combs
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <glib.h>
-#include <epan/packet.h>
-#include <epan/conversation.h>
-#include <epan/oids.h>
-#include <epan/asn1.h>
-
-#include <stdio.h>
-#include <string.h>
-
-#include "packet-per.h"
-#include "packet-h225.h"
-#include "packet-h323.h"
-
-#define PNAME "H.323"
-#define PSNAME "H.323"
-#define PFNAME "h323"
-
-
-/* Generic Extensible Framework */
-gef_ctx_t* gef_ctx_alloc(gef_ctx_t *parent, const gchar *type) {
- gef_ctx_t *gefx;
-
- gefx = ep_alloc0(sizeof(gef_ctx_t));
- gefx->signature = GEF_CTX_SIGNATURE;
- gefx->parent = parent;
- gefx->type = type;
- return gefx;
-}
-
-gboolean gef_ctx_check_signature(gef_ctx_t *gefx) {
- return gefx && (gefx->signature == GEF_CTX_SIGNATURE);
-}
-
-gef_ctx_t* gef_ctx_get(void *ptr) {
- gef_ctx_t *gefx = (gef_ctx_t*)ptr;
- asn1_ctx_t *actx = (asn1_ctx_t*)ptr;
-
- if (!asn1_ctx_check_signature(actx))
- actx = NULL;
-
- if (actx)
- gefx = actx->private_data;
-
- if (!gef_ctx_check_signature(gefx))
- gefx = NULL;
-
- return gefx;
-}
-
-void gef_ctx_update_key(gef_ctx_t *gefx) {
- const gchar *parent_key;
-
- if (!gefx) return;
- parent_key = (gefx->parent) ? gefx->parent->key : NULL;
- gefx->key = ep_strdup_printf(
- "%s%s" /* parent prefix */
- "%s%s%s" /* type, id */
- "%s%s" /* subid */,
- (parent_key) ? parent_key : "", (parent_key) ? "/" : "",
- (gefx->type) ? gefx->type : "", (gefx->type && (gefx->id || gefx->subid)) ? "/" : "", (gefx->id) ? gefx->id : "",
- (gefx->subid) ? "-" : "", (gefx->subid) ? gefx->subid : ""
- );
-}
-
-/* Subdissectors */
-static dissector_handle_t q931_handle = NULL;
-
-/* Initialize the protocol and registered fields */
-int proto_h323 = -1;
-#include "packet-h323-hf.c"
-
-/* Initialize the subtree pointers */
-#include "packet-h323-ett.c"
-
-#include "packet-h323-fn.c"
-
-/*--- proto_register_h323 ----------------------------------------------*/
-void proto_register_h323(void) {
-
- /* List of fields */
- static hf_register_info hf[] = {
-#include "packet-h323-hfarr.c"
- };
-
- /* List of subtrees */
- static gint *ett[] = {
-#include "packet-h323-ettarr.c"
- };
-
- /* Register protocol */
- proto_h323 = proto_register_protocol(PNAME, PSNAME, PFNAME);
-
- /* Register fields and subtrees */
- proto_register_field_array(proto_h323, hf, array_length(hf));
- proto_register_subtree_array(ett, array_length(ett));
-
-}
-
-
-/*--- proto_reg_handoff_h323 -------------------------------------------*/
-void proto_reg_handoff_h323(void)
-{
- q931_handle = find_dissector("q931");
-
- /* H.323, Annex M1, Tunnelling of signalling protocols (QSIG) in H.323 */
- dissector_add_string("h225.tp", "1.3.12.9", q931_handle);
-
- /* H.323, Annex M4, Tunnelling of narrow-band signalling syntax (NSS) for H.323 */
- dissector_add_string("h225.gef.content", "GenericData/1000/1",
- new_create_dissector_handle(dissect_RasTunnelledSignallingMessage_PDU, proto_h323));
-
- /* H.323, Annex R, Robustness methods for H.323 entities */
- dissector_add_string("h225.gef.content", "GenericData/1/1",
- new_create_dissector_handle(dissect_RobustnessData_PDU, proto_h323));
-}
-
+/* packet-h323.c
+ * Routines for H.323 packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * $Id$
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <glib.h>
+#include <epan/packet.h>
+#include <epan/conversation.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include <stdio.h>
+#include <string.h>
+
+#include "packet-per.h"
+#include "packet-h225.h"
+#include "packet-h323.h"
+
+#define PNAME "H.323"
+#define PSNAME "H.323"
+#define PFNAME "h323"
+
+
+/* Generic Extensible Framework */
+gef_ctx_t* gef_ctx_alloc(gef_ctx_t *parent, const gchar *type) {
+ gef_ctx_t *gefx;
+
+ gefx = ep_alloc0(sizeof(gef_ctx_t));
+ gefx->signature = GEF_CTX_SIGNATURE;
+ gefx->parent = parent;
+ gefx->type = type;
+ return gefx;
+}
+
+gboolean gef_ctx_check_signature(gef_ctx_t *gefx) {
+ return gefx && (gefx->signature == GEF_CTX_SIGNATURE);
+}
+
+gef_ctx_t* gef_ctx_get(void *ptr) {
+ gef_ctx_t *gefx = (gef_ctx_t*)ptr;
+ asn1_ctx_t *actx = (asn1_ctx_t*)ptr;
+
+ if (!asn1_ctx_check_signature(actx))
+ actx = NULL;
+
+ if (actx)
+ gefx = actx->private_data;
+
+ if (!gef_ctx_check_signature(gefx))
+ gefx = NULL;
+
+ return gefx;
+}
+
+void gef_ctx_update_key(gef_ctx_t *gefx) {
+ const gchar *parent_key;
+
+ if (!gefx) return;
+ parent_key = (gefx->parent) ? gefx->parent->key : NULL;
+ gefx->key = ep_strdup_printf(
+ "%s%s" /* parent prefix */
+ "%s%s%s" /* type, id */
+ "%s%s" /* subid */,
+ (parent_key) ? parent_key : "", (parent_key) ? "/" : "",
+ (gefx->type) ? gefx->type : "", (gefx->type && (gefx->id || gefx->subid)) ? "/" : "", (gefx->id) ? gefx->id : "",
+ (gefx->subid) ? "-" : "", (gefx->subid) ? gefx->subid : ""
+ );
+}
+
+/* Subdissectors */
+static dissector_handle_t q931_handle = NULL;
+
+/* Initialize the protocol and registered fields */
+int proto_h323 = -1;
+#include "packet-h323-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-h323-ett.c"
+
+#include "packet-h323-fn.c"
+
+/*--- proto_register_h323 ----------------------------------------------*/
+void proto_register_h323(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-h323-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-h323-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_h323 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_h323, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_h323 -------------------------------------------*/
+void proto_reg_handoff_h323(void)
+{
+ q931_handle = find_dissector("q931");
+
+ /* H.323, Annex M1, Tunnelling of signalling protocols (QSIG) in H.323 */
+ dissector_add_string("h225.tp", "1.3.12.9", q931_handle);
+
+ /* H.323, Annex M4, Tunnelling of narrow-band signalling syntax (NSS) for H.323 */
+ dissector_add_string("h225.gef.content", "GenericData/1000/1",
+ new_create_dissector_handle(dissect_RasTunnelledSignallingMessage_PDU, proto_h323));
+
+ /* H.323, Annex R, Robustness methods for H.323 entities */
+ dissector_add_string("h225.gef.content", "GenericData/1/1",
+ new_create_dissector_handle(dissect_RobustnessData_PDU, proto_h323));
+}
+
diff --git a/asn1/h323/packet-h323-template.h b/asn1/h323/packet-h323-template.h
new file mode 100644
index 0000000000..2f467b66cd
--- /dev/null
+++ b/asn1/h323/packet-h323-template.h
@@ -0,0 +1,66 @@
+/* packet-h323.h
+ * Routines for H.235 packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * $Id$
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PACKET_H323_H
+#define PACKET_H323_H
+
+/* Generic Extensible Framework */
+
+#define GEF_CTX_SIGNATURE 0x47454658 /* "GEFX" */
+
+typedef struct _gef_ctx_t {
+ guint32 signature;
+ struct _gef_ctx_t *parent;
+ /*
+ H323-MESSAGES
+ FeatureDescriptor/<id>
+ <id>
+ GenericData/<id>
+ <id>
+ MULTIMEDIA-SYSTEM-CONTROL
+ GenericInformation/<id>[-<subid>]
+ <id>
+ GenericMessage/<id>[-<subid>]
+ <id>
+ GenericCapability/<id>
+ collapsing/<id>
+ nonCollapsing/<id>
+ nonCollapsingRaw
+ EncryptionSync
+ <id>
+ */
+ const gchar *type;
+ const gchar *id;
+ const gchar *subid;
+ const gchar *key;
+} gef_ctx_t;
+
+extern gef_ctx_t* gef_ctx_alloc(gef_ctx_t *parent, const gchar *type);
+extern gboolean gef_ctx_check_signature(gef_ctx_t *gefx);
+extern gef_ctx_t* gef_ctx_get(void *ptr);
+extern void gef_ctx_update_key(gef_ctx_t *gefx);
+
+#endif /* PACKET_H323_H */
+
diff --git a/asn1/ranap/ranap.cnf b/asn1/ranap/ranap.cnf
index e85e042610..a8b5530d1d 100644
--- a/asn1/ranap/ranap.cnf
+++ b/asn1/ranap/ranap.cnf
@@ -156,7 +156,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
char *digit_str;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 8, &imsi_tvb);
+ 3, 8, FALSE, &imsi_tvb);
if(!imsi_tvb)
return offset;
@@ -191,7 +191,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, &parameter_tvb);
+ 3, 3, FALSE, &parameter_tvb);
if (!parameter_tvb)
return offset;
diff --git a/epan/dissectors/packet-h225.c b/epan/dissectors/packet-h225.c
index 9693f96f6a..8898d9cd64 100644
--- a/epan/dissectors/packet-h225.c
+++ b/epan/dissectors/packet-h225.c
@@ -1189,7 +1189,7 @@ dissect_h225_T_h245Ip(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
ipv4_address = 0;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 4, 4, &value_tvb);
+ 4, 4, FALSE, &value_tvb);
if (value_tvb)
ipv4_address = tvb_get_ipv4(value_tvb, 0);
@@ -1228,7 +1228,7 @@ dissect_h225_T_h245IpAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_h225_OCTET_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 4, 4, NULL);
+ 4, 4, FALSE, NULL);
return offset;
}
@@ -1309,7 +1309,7 @@ dissect_h225_T_h245IpSourceRoute(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_h225_OCTET_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 6, 6, NULL);
+ 6, 6, FALSE, NULL);
return offset;
}
@@ -1319,7 +1319,7 @@ dissect_h225_OCTET_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_h225_OCTET_STRING_SIZE_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 2, 2, NULL);
+ 2, 2, FALSE, NULL);
return offset;
}
@@ -1345,7 +1345,7 @@ dissect_h225_T_h245IpxAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_h225_OCTET_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 16, 16, NULL);
+ 16, 16, FALSE, NULL);
return offset;
}
@@ -1370,7 +1370,7 @@ dissect_h225_T_h245Ip6Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_h225_OCTET_STRING_SIZE_1_20(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 20, NULL);
+ 1, 20, FALSE, NULL);
return offset;
}
@@ -1487,7 +1487,7 @@ dissect_h225_T_nsp_data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
tvbuff_t *next_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, &next_tvb);
+ NO_BOUND, NO_BOUND, FALSE, &next_tvb);
if (next_tvb && tvb_length(next_tvb)) {
call_dissector((nsp_handle)?nsp_handle:data_handle, next_tvb, actx->pinfo, tree);
@@ -1627,7 +1627,7 @@ dissect_h225_IA5String_SIZE_1_512(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h225_IpV4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 4, 4, NULL);
+ 4, 4, FALSE, NULL);
return offset;
}
@@ -1929,7 +1929,7 @@ dissect_h225_T_system_id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_h225_OCTET_STRING_SIZE_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 1, NULL);
+ 1, 1, FALSE, NULL);
return offset;
}
@@ -1964,7 +1964,7 @@ dissect_h225_ANSI_41_UIM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_h225_OCTET_STRING_SIZE_1_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 4, NULL);
+ 1, 4, FALSE, NULL);
return offset;
}
@@ -2165,7 +2165,7 @@ dissect_h225_SEQUENCE_OF_AliasAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static int
dissect_h225_OCTET_STRING_SIZE_1_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 256, NULL);
+ 1, 256, FALSE, NULL);
return offset;
}
@@ -2724,7 +2724,7 @@ dissect_h225_SEQUENCE_OF_CallReferenceValue(tvbuff_t *tvb _U_, int offset _U_, a
int
dissect_h225_GloballyUniqueID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 16, 16, actx->value_ptr);
+ 16, 16, FALSE, actx->value_ptr);
return offset;
}
@@ -3050,7 +3050,7 @@ dissect_h225_FastStart_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
char codec_str[50];
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, &value_tvb);
+ NO_BOUND, NO_BOUND, FALSE, &value_tvb);
if (value_tvb && tvb_length(value_tvb)) {
dissect_h245_OpenLogicalChannelCodec(value_tvb, actx->pinfo, tree, codec_str);
@@ -3257,7 +3257,7 @@ dissect_h225_IA5String_SIZE_0_512(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h225_H248SignalsDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -3448,7 +3448,7 @@ dissect_h225_IA5String_SIZE_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h225_OCTET_STRING_SIZE_3_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 4, NULL);
+ 3, 4, FALSE, NULL);
return offset;
}
@@ -3542,7 +3542,7 @@ dissect_h225_CallCapacity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_h225_OCTET_STRING_SIZE_2_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 2, 4, NULL);
+ 2, 4, FALSE, NULL);
return offset;
}
@@ -3565,7 +3565,7 @@ dissect_h225_T_cic_2_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_h225_OCTET_STRING_SIZE_2_5(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 2, 5, NULL);
+ 2, 5, FALSE, NULL);
return offset;
}
@@ -3707,7 +3707,7 @@ dissect_h225_GenericIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_h225_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -3944,7 +3944,7 @@ dissect_h225_ParallelH245Control_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
tvbuff_t *h245_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, &h245_tvb);
+ NO_BOUND, NO_BOUND, FALSE, &h245_tvb);
next_tvb_add_handle(&h245_list, h245_tvb, (h225_h245_in_tree)?tree:NULL, h245dg_handle);
@@ -4691,7 +4691,7 @@ dissect_h225_T_h4501SupplementaryService_item(tvbuff_t *tvb _U_, int offset _U_,
tvbuff_t *h4501_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, &h4501_tvb);
+ NO_BOUND, NO_BOUND, FALSE, &h4501_tvb);
if (h4501_tvb && tvb_length(h4501_tvb)) {
call_dissector(h4501_handle, h4501_tvb, actx->pinfo, tree);
@@ -4731,7 +4731,7 @@ dissect_h225_H245Control_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
tvbuff_t *h245_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, &h245_tvb);
+ NO_BOUND, NO_BOUND, FALSE, &h245_tvb);
next_tvb_add_handle(&h245_list, h245_tvb, (h225_h245_in_tree)?tree:NULL, h245dg_handle);
@@ -4788,7 +4788,7 @@ dissect_h225_T_messageContent_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
tvbuff_t *next_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, &next_tvb);
+ NO_BOUND, NO_BOUND, FALSE, &next_tvb);
next_tvb_add_handle(&tp_list, next_tvb, (h225_tp_in_tree)?tree:NULL, tp_handle);
@@ -4874,7 +4874,7 @@ dissect_h225_H323_UU_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_h225_OCTET_STRING_SIZE_1_131(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 131, NULL);
+ 1, 131, FALSE, NULL);
return offset;
}
@@ -5134,7 +5134,7 @@ dissect_h225_TimeToLive(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_h225_H248PackagesDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -5376,7 +5376,7 @@ dissect_h225_RasUsageInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_h225_OCTET_STRING_SIZE_2_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 2, 32, NULL);
+ 2, 32, FALSE, NULL);
return offset;
}
diff --git a/epan/dissectors/packet-h235.c b/epan/dissectors/packet-h235.c
index 13458bbca9..cbab515cc1 100644
--- a/epan/dissectors/packet-h235.c
+++ b/epan/dissectors/packet-h235.c
@@ -236,7 +236,7 @@ PER_NOT_DECODED_YET("ToBeSigned");
static int
dissect_h235_ChallengeString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 8, 128, NULL);
+ 8, 128, FALSE, NULL);
return offset;
}
@@ -304,7 +304,7 @@ dissect_h235_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_h235_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -529,7 +529,7 @@ dissect_h235_INTEGER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_h235_IV8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 8, 8, NULL);
+ 8, 8, FALSE, NULL);
return offset;
}
@@ -539,7 +539,7 @@ dissect_h235_IV8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_
static int
dissect_h235_IV16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 16, 16, NULL);
+ 16, 16, FALSE, NULL);
return offset;
}
diff --git a/epan/dissectors/packet-h245.c b/epan/dissectors/packet-h245.c
index 34464e9a90..2d432a731d 100644
--- a/epan/dissectors/packet-h245.c
+++ b/epan/dissectors/packet-h245.c
@@ -2335,7 +2335,7 @@ dissect_h245_T_nsd_data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
tvbuff_t *next_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, &next_tvb);
+ NO_BOUND, NO_BOUND, FALSE, &next_tvb);
if (next_tvb && tvb_length(next_tvb)) {
call_dissector((nsp_handle)?nsp_handle:data_handle, next_tvb, actx->pinfo, tree);
@@ -2578,7 +2578,7 @@ dissect_h245_NumericString_SIZE_1_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_h245_OCTET_STRING_SIZE_1_20(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 20, NULL);
+ 1, 20, FALSE, NULL);
return offset;
}
@@ -3165,7 +3165,7 @@ dissect_h245_T_t84(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot
static int
dissect_h245_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -3328,7 +3328,7 @@ dissect_h245_T_standardOid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_h245_OCTET_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 16, 16, NULL);
+ 16, 16, FALSE, NULL);
return offset;
}
@@ -3458,7 +3458,7 @@ dissect_h245_T_octetString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
gef_ctx_t *gefx;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, &value_tvb);
+ NO_BOUND, NO_BOUND, FALSE, &value_tvb);
gefx = gef_ctx_get(actx->private_data);
if (gefx) {
@@ -3620,7 +3620,7 @@ dissect_h245_T_nonCollapsingRaw(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
parent_gefx = gef_ctx_get(actx->private_data);
actx->private_data = gef_ctx_alloc(parent_gefx, "nonCollapsingRaw");
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, &value_tvb);
+ NO_BOUND, NO_BOUND, FALSE, &value_tvb);
gefx = gef_ctx_get(actx->private_data);
if (gefx) {
@@ -7537,7 +7537,7 @@ dissect_h245_Ipv4_network(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
tvbuff_t *value_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 4, 4, &value_tvb);
+ 4, 4, FALSE, &value_tvb);
if ( media_channel )
ipv4_address = tvb_get_ipv4(value_tvb, 0);
@@ -7591,7 +7591,7 @@ dissect_h245_T_iPAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_h245_OCTET_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 6, 6, NULL);
+ 6, 6, FALSE, NULL);
return offset;
}
@@ -7601,7 +7601,7 @@ dissect_h245_OCTET_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_h245_OCTET_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 4, 4, NULL);
+ 4, 4, FALSE, NULL);
return offset;
}
@@ -7611,7 +7611,7 @@ dissect_h245_OCTET_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_h245_OCTET_STRING_SIZE_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 2, 2, NULL);
+ 2, 2, FALSE, NULL);
return offset;
}
@@ -8147,7 +8147,7 @@ dissect_h245_T_networkAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_h245_OCTET_STRING_SIZE_1_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 255, NULL);
+ 1, 255, FALSE, NULL);
return offset;
}
@@ -8199,7 +8199,7 @@ dissect_h245_NetworkAccessParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_h245_OCTET_STRING_SIZE_1_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 65535, NULL);
+ 1, 65535, FALSE, NULL);
return offset;
}
@@ -11289,7 +11289,7 @@ dissect_h245_CommunicationModeResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_h245_TerminalID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 128, NULL);
+ 1, 128, FALSE, NULL);
return offset;
}
@@ -11329,7 +11329,7 @@ dissect_h245_T_terminalIDResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h245_ConferenceID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 32, NULL);
+ 1, 32, FALSE, NULL);
return offset;
}
@@ -11354,7 +11354,7 @@ dissect_h245_T_conferenceIDResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_h245_Password(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 32, NULL);
+ 1, 32, FALSE, NULL);
return offset;
}
@@ -13502,7 +13502,7 @@ dissect_h245_T_rtp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot
static int
dissect_h245_IV8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 8, 8, NULL);
+ 8, 8, FALSE, NULL);
return offset;
}
@@ -13512,7 +13512,7 @@ dissect_h245_IV8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_
static int
dissect_h245_IV16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 16, 16, NULL);
+ 16, 16, FALSE, NULL);
return offset;
}
@@ -13538,7 +13538,7 @@ dissect_h245_Params(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
static int
dissect_h245_OCTET_STRING_SIZE_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 1, NULL);
+ 1, 1, FALSE, NULL);
return offset;
}
@@ -13778,7 +13778,7 @@ dissect_h245_ConferenceIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h245_OCTET_STRING_SIZE_1_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 256, NULL);
+ 1, 256, FALSE, NULL);
return offset;
}
@@ -13834,7 +13834,7 @@ dissect_h245_T_returnedFunction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
h245_packet_info *saved_h245_pi;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, &next_tvb);
+ NO_BOUND, NO_BOUND, FALSE, &next_tvb);
if (next_tvb && tvb_length(next_tvb)) {
diff --git a/epan/dissectors/packet-h323.c b/epan/dissectors/packet-h323.c
index c91833eb2d..5e5d43d17c 100644
--- a/epan/dissectors/packet-h323.c
+++ b/epan/dissectors/packet-h323.c
@@ -168,7 +168,7 @@ static gint ett_h323_StatusInquiry_RD = -1;
static int
dissect_h323_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
diff --git a/epan/dissectors/packet-h450.c b/epan/dissectors/packet-h450.c
index 7387533530..72db57f566 100644
--- a/epan/dissectors/packet-h450.c
+++ b/epan/dissectors/packet-h450.c
@@ -1019,7 +1019,7 @@ dissect_h450_InvokeIDs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_h450_SubaddressInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 20, NULL);
+ 1, 20, FALSE, NULL);
return offset;
}
@@ -1053,7 +1053,7 @@ dissect_h450_UserSpecifiedSubaddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_h450_NSAPSubaddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 20, NULL);
+ 1, 20, FALSE, NULL);
return offset;
}
@@ -1276,7 +1276,7 @@ dissect_h450_PresentationAllowedIndicator(tvbuff_t *tvb _U_, int offset _U_, asn
static int
dissect_h450_H225InformationElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -3672,7 +3672,7 @@ static int dissect_h450_7_PAR_undefined_PDU(tvbuff_t *tvb _U_, packet_info *pinf
static int
dissect_h450_8_SimpleName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 50, NULL);
+ 1, 50, FALSE, NULL);
return offset;
}
diff --git a/epan/dissectors/packet-h460.c b/epan/dissectors/packet-h460.c
index be2de9091e..e3fccb1f3e 100644
--- a/epan/dissectors/packet-h460.c
+++ b/epan/dissectors/packet-h460.c
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h460.c */
-/* ../../tools/asn2wrs.py -c ./h460.cnf -s ./packet-h460-template -D . NUMBER-PORTABILITY.asn CIRCUIT-STATUS-MAP.asn CALL-PRIORITY.asn QOS-MONITORING-REPORT.asn QOS-MONITORING-EXTENDED-VOIP-REPORT.asn CALL-PARTY-CATEGORY.asn MLPP.asn SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn SIGNALLING-TRAVERSAL.asn MEDIA-TRAVERSAL.asn MESSAGE-BROADCAST.asn */
+/* ../../tools/asn2wrs.py -c h460.cnf -s packet-h460-template NUMBER-PORTABILITY.asn CIRCUIT-STATUS-MAP.asn CALL-PRIORITY.asn QOS-MONITORING-REPORT.asn QOS-MONITORING-EXTENDED-VOIP-REPORT.asn CALL-PARTY-CATEGORY.asn MLPP.asn SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn SIGNALLING-TRAVERSAL.asn MEDIA-TRAVERSAL.asn MESSAGE-BROADCAST.asn */
/* Input file: packet-h460-template.c */
@@ -494,7 +494,7 @@ dissect_h460_2_INTEGER_1_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_h460_2_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -615,7 +615,7 @@ dissect_h460_3_INTEGER_0_4095(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_h460_3_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -936,7 +936,7 @@ dissect_h460_9_CalculatedJitter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_h460_9_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -1911,7 +1911,7 @@ dissect_h460_21_ReceiveCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_h460_21_GloballyUniqueID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 16, 16, NULL);
+ 16, 16, FALSE, NULL);
return offset;
}
diff --git a/epan/dissectors/packet-h501.c b/epan/dissectors/packet-h501.c
index ec786ddae5..bfe9703440 100644
--- a/epan/dissectors/packet-h501.c
+++ b/epan/dissectors/packet-h501.c
@@ -1817,7 +1817,7 @@ dissect_h501_NonStandardRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h501_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -2203,7 +2203,7 @@ dissect_h501_ValidationRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_h501_ApplicationMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
diff --git a/epan/dissectors/packet-mpeg-audio.c b/epan/dissectors/packet-mpeg-audio.c
index 7665cea0c9..9b33740127 100644
--- a/epan/dissectors/packet-mpeg-audio.c
+++ b/epan/dissectors/packet-mpeg-audio.c
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
-/* ./packet-mpeg-audio.c */
-/* ../../tools/asn2wrs.py -e -p mpeg-audio -c mpeg-audio.cnf -s packet-mpeg-audio-template mpeg-audio.asn */
+/* packet-mpeg-audio.c */
+/* ../../tools/asn2wrs.py -p mpeg-audio -c mpeg-audio.cnf -s packet-mpeg-audio-template mpeg-audio.asn */
/* Input file: packet-mpeg-audio-template.c */
@@ -244,7 +244,7 @@ dissect_mpeg_audio_Audio(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_mpeg_audio_OCTET_STRING_SIZE_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, NULL);
+ 3, 3, FALSE, NULL);
return offset;
}
@@ -254,7 +254,7 @@ dissect_mpeg_audio_OCTET_STRING_SIZE_3(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_mpeg_audio_OCTET_STRING_SIZE_30(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 30, 30, NULL);
+ 30, 30, FALSE, NULL);
return offset;
}
@@ -264,7 +264,7 @@ dissect_mpeg_audio_OCTET_STRING_SIZE_30(tvbuff_t *tvb _U_, int offset _U_, asn1_
static int
dissect_mpeg_audio_OCTET_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 4, 4, NULL);
+ 4, 4, FALSE, NULL);
return offset;
}
@@ -274,7 +274,7 @@ dissect_mpeg_audio_OCTET_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_mpeg_audio_OCTET_STRING_SIZE_28(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 28, 28, NULL);
+ 28, 28, FALSE, NULL);
return offset;
}
diff --git a/epan/dissectors/packet-mpeg-pes.c b/epan/dissectors/packet-mpeg-pes.c
index b6689adbe5..c5f847a2e0 100644
--- a/epan/dissectors/packet-mpeg-pes.c
+++ b/epan/dissectors/packet-mpeg-pes.c
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-mpeg-pes.c */
-/* ../../tools/asn2wrs.py -p mpeg-pes -c ./mpeg-pes.cnf -s ./packet-mpeg-pes-template -D . mpeg-pes.asn */
+/* ../../tools/asn2wrs.py -p mpeg-pes -c mpeg-pes.cnf -s packet-mpeg-pes-template mpeg-pes.asn */
/* Input file: packet-mpeg-pes-template.c */
@@ -121,7 +121,7 @@ static gint ett_mpeg_pes_Picture = -1;
static int
dissect_mpeg_pes_OCTET_STRING_SIZE_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, NULL);
+ 3, 3, FALSE, NULL);
return offset;
}
diff --git a/epan/dissectors/packet-nbap.c b/epan/dissectors/packet-nbap.c
index b4e145c60a..300d13de0c 100644
--- a/epan/dissectors/packet-nbap.c
+++ b/epan/dissectors/packet-nbap.c
@@ -1,6 +1,6 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
-/* ./packet-nbap.c */
+/* packet-nbap.c */
/* ../../tools/asn2wrs.py -p nbap -c nbap.cnf -s packet-nbap-template NBAP-CommonDataTypes.asn NBAP-Constants.asn NBAP-Containers.asn NBAP-IEs.asn NBAP-PDU-Contents.asn NBAP-PDU-Descriptions.asn */
/* Input file: packet-nbap-template.c */
@@ -6398,7 +6398,7 @@ dissect_nbap_Best_Cell_Portions_Value(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static int
dissect_nbap_BindingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 4, NULL);
+ 1, 4, TRUE, NULL);
return offset;
}
diff --git a/epan/dissectors/packet-per.c b/epan/dissectors/packet-per.c
index c5d6568a28..89d9bf5912 100644
--- a/epan/dissectors/packet-per.c
+++ b/epan/dissectors/packet-per.c
@@ -538,7 +538,7 @@ DEBUG_ENTRY("dissect_per_sequence_of");
guint32
dissect_per_IA5String(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len)
{
- offset=dissect_per_octet_string(tvb, offset, actx, tree, hf_index, min_len, max_len, NULL);
+ offset=dissect_per_octet_string(tvb, offset, actx, tree, hf_index, min_len, max_len, FALSE, NULL);
return offset;
}
@@ -779,7 +779,7 @@ dissect_per_BMPString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tre
guint32
dissect_per_object_descriptor(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, tvbuff_t **value_tvb)
{
- offset=dissect_per_octet_string(tvb, offset, actx, tree, hf_index, -1, -1, value_tvb);
+ offset=dissect_per_octet_string(tvb, offset, actx, tree, hf_index, -1, -1, FALSE, value_tvb);
return offset;
}
@@ -1759,7 +1759,7 @@ guint32 dissect_per_bit_string_containing_pdu_new(tvbuff_t *tvb, guint32 offset,
hf_index can either be a FT_BYTES or an FT_STRING
*/
guint32
-dissect_per_octet_string(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, tvbuff_t **value_tvb)
+dissect_per_octet_string(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension, tvbuff_t **value_tvb)
{
gint val_start = 0, val_length;
guint32 length;
@@ -1770,6 +1770,13 @@ dissect_per_octet_string(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_
DEBUG_ENTRY("dissect_per_octet_string");
+ if (has_extension) { /* 16.3 an extension marker is present */
+ gboolean extension_present;
+ offset = dissect_per_boolean(tvb, offset, actx, tree, hf_per_extension_present_bit, &extension_present);
+ if (!display_internal_per_fields) PROTO_ITEM_SET_HIDDEN(actx->created_item);
+ if (extension_present) max_len = NO_BOUND; /* skip to 16.8 */
+ }
+
if (min_len == NO_BOUND) {
min_len = 0;
}
@@ -1847,12 +1854,12 @@ DEBUG_ENTRY("dissect_per_octet_string");
return offset;
}
-guint32 dissect_per_octet_string_containing_pdu(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, dissector_t type_cb)
+guint32 dissect_per_octet_string_containing_pdu(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension, dissector_t type_cb)
{
tvbuff_t *val_tvb = NULL;
proto_tree *subtree = tree;
- offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, min_len, max_len, &val_tvb);
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, min_len, max_len, has_extension, &val_tvb);
if (type_cb && val_tvb) {
subtree = proto_item_add_subtree(actx->created_item, ett_per_containing);
@@ -1862,12 +1869,12 @@ guint32 dissect_per_octet_string_containing_pdu(tvbuff_t *tvb, guint32 offset, a
return offset;
}
-guint32 dissect_per_octet_string_containing_pdu_new(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, new_dissector_t type_cb)
+guint32 dissect_per_octet_string_containing_pdu_new(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension, new_dissector_t type_cb)
{
tvbuff_t *val_tvb = NULL;
proto_tree *subtree = tree;
- offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, min_len, max_len, &val_tvb);
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, min_len, max_len, has_extension, &val_tvb);
if (type_cb && val_tvb) {
subtree = proto_item_add_subtree(actx->created_item, ett_per_containing);
@@ -1937,7 +1944,7 @@ dissect_per_T_single_ASN1_type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_per_T_octet_aligned(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, &actx->external.octet_aligned);
+ NO_BOUND, NO_BOUND, FALSE, &actx->external.octet_aligned);
if (actx->external.u.per.type_cb) {
actx->external.u.per.type_cb(actx->external.octet_aligned, 0, actx, tree, actx->external.hf_index);
diff --git a/epan/dissectors/packet-per.h b/epan/dissectors/packet-per.h
index 6ec2ceb192..68416b9b10 100644
--- a/epan/dissectors/packet-per.h
+++ b/epan/dissectors/packet-per.h
@@ -106,7 +106,9 @@ extern guint32 dissect_per_choice(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *act
extern guint32 dissect_per_sequence(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *parent_tree, int hf_index, gint ett_index, const per_sequence_t *sequence);
-extern guint32 dissect_per_octet_string(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, tvbuff_t **value_tvb);
+extern guint32 dissect_per_octet_string(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension, tvbuff_t **value_tvb);
+extern guint32 dissect_per_octet_string_containing_pdu(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension, dissector_t type_cb);
+extern guint32 dissect_per_octet_string_containing_pdu_new(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension, new_dissector_t type_cb);
extern guint32 dissect_per_bit_string(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension, tvbuff_t **value_tvb);
extern guint32 dissect_per_bit_string_containing_pdu(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, int min_len, int max_len, gboolean has_extension, dissector_t type_cb);
diff --git a/epan/dissectors/packet-ranap.c b/epan/dissectors/packet-ranap.c
index 4a9f0746b0..b2804f031e 100644
--- a/epan/dissectors/packet-ranap.c
+++ b/epan/dissectors/packet-ranap.c
@@ -1,6 +1,6 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
-/* ./packet-ranap.c */
+/* packet-ranap.c */
/* ../../tools/asn2wrs.py -p ranap -c ranap.cnf -s packet-ranap-template RANAP-CommonDataTypes.asn RANAP-Constants.asn RANAP-Containers.asn RANAP-IEs.asn RANAP-PDU-Contents.asn RANAP-PDU-Descriptions.asn */
/* Input file: packet-ranap-template.c */
@@ -2155,7 +2155,7 @@ dissect_ranap_AlternativeRABConfigurationRequest(tvbuff_t *tvb _U_, int offset _
static int
dissect_ranap_APN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 255, NULL);
+ 1, 255, FALSE, NULL);
return offset;
}
@@ -2165,7 +2165,7 @@ dissect_ranap_APN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto
static int
dissect_ranap_TBCD_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -2178,7 +2178,7 @@ dissect_ranap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, &parameter_tvb);
+ 3, 3, FALSE, &parameter_tvb);
if (!parameter_tvb)
return offset;
@@ -2193,7 +2193,7 @@ dissect_ranap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_ranap_LAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 2, 2, NULL);
+ 2, 2, FALSE, NULL);
return offset;
}
@@ -2203,7 +2203,7 @@ dissect_ranap_LAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto
static int
dissect_ranap_SAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 2, 2, NULL);
+ 2, 2, FALSE, NULL);
return offset;
}
@@ -2672,7 +2672,7 @@ dissect_ranap_AuthorisedPLMNs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_ranap_BindingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 4, 4, NULL);
+ 4, 4, FALSE, NULL);
return offset;
}
@@ -3016,7 +3016,7 @@ dissect_ranap_SourceUTRANCellID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_ranap_CI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 2, 2, NULL);
+ 2, 2, FALSE, NULL);
return offset;
}
@@ -3255,7 +3255,7 @@ dissect_ranap_ChosenIntegrityProtectionAlgorithm(tvbuff_t *tvb _U_, int offset _
static int
dissect_ranap_ClassmarkInformation2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -3265,7 +3265,7 @@ dissect_ranap_ClassmarkInformation2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_ranap_ClassmarkInformation3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -3370,7 +3370,7 @@ dissect_ranap_DeliveryOrder(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_ranap_RAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 1, NULL);
+ 1, 1, FALSE, NULL);
return offset;
}
@@ -3524,7 +3524,7 @@ dissect_ranap_EncryptionInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_ranap_IMEI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 8, 8, NULL);
+ 8, 8, FALSE, NULL);
return offset;
}
@@ -3548,7 +3548,7 @@ dissect_ranap_IMEIList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_ranap_IMEISV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 8, 8, NULL);
+ 8, 8, FALSE, NULL);
return offset;
}
@@ -3685,7 +3685,7 @@ dissect_ranap_FrequenceLayerConvergenceFlag(tvbuff_t *tvb _U_, int offset _U_, a
static int
dissect_ranap_GANSS_PositioningMethodAndUsage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 1, NULL);
+ 1, 1, FALSE, NULL);
return offset;
}
@@ -3709,7 +3709,7 @@ dissect_ranap_GANSS_PositioningDataSet(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_ranap_GERAN_BSC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -3752,7 +3752,7 @@ dissect_ranap_GERAN_Cell_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_ranap_GERAN_Classmark(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -3802,7 +3802,7 @@ dissect_ranap_GlobalRNC_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_ranap_GTP_TEI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 4, 4, NULL);
+ 4, 4, FALSE, NULL);
return offset;
}
@@ -3826,7 +3826,7 @@ dissect_ranap_IMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot
char *digit_str;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 8, &imsi_tvb);
+ 3, 8, FALSE, &imsi_tvb);
if(!imsi_tvb)
return offset;
@@ -3893,7 +3893,7 @@ dissect_ranap_InformationExchangeType(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static int
dissect_ranap_OCTET_STRING_SIZE_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, NULL);
+ 3, 3, FALSE, NULL);
return offset;
}
@@ -3919,7 +3919,7 @@ dissect_ranap_TMGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot
static int
dissect_ranap_IPMulticastAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 4, 16, NULL);
+ 4, 16, FALSE, NULL);
return offset;
}
@@ -4062,7 +4062,7 @@ dissect_ranap_InformationTransferID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_ranap_TraceReference(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 2, 3, NULL);
+ 2, 3, FALSE, NULL);
return offset;
}
@@ -4165,7 +4165,7 @@ dissect_ranap_IntegrityProtectionInformation(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_ranap_RIMInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -4442,7 +4442,7 @@ dissect_ranap_RequestedLocationRelatedDataType(tvbuff_t *tvb _U_, int offset _U_
static int
dissect_ranap_RequestedGPSAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 38, NULL);
+ 1, 38, FALSE, NULL);
return offset;
}
@@ -4484,7 +4484,7 @@ dissect_ranap_LocationRelatedDataRequestTypeSpecificToGERANIuMode(tvbuff_t *tvb
static int
dissect_ranap_L3_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -4593,7 +4593,7 @@ dissect_ranap_MBMSRegistrationRequestType(tvbuff_t *tvb _U_, int offset _U_, asn
static int
dissect_ranap_MBMSServiceArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -4603,7 +4603,7 @@ dissect_ranap_MBMSServiceArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_ranap_MBMSSessionDuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, NULL);
+ 3, 3, FALSE, NULL);
return offset;
}
@@ -4613,7 +4613,7 @@ dissect_ranap_MBMSSessionDuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_ranap_MBMSSessionIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 1, NULL);
+ 1, 1, FALSE, NULL);
return offset;
}
@@ -4623,7 +4623,7 @@ dissect_ranap_MBMSSessionIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_ranap_MBMSSessionRepetitionNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 1, NULL);
+ 1, 1, FALSE, NULL);
return offset;
}
@@ -4636,7 +4636,7 @@ dissect_ranap_NAS_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
tvbuff_t *nas_pdu_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, &nas_pdu_tvb);
+ NO_BOUND, NO_BOUND, FALSE, &nas_pdu_tvb);
if (nas_pdu_tvb)
@@ -4671,7 +4671,7 @@ dissect_ranap_NAS_SynchronisationIndicator(tvbuff_t *tvb _U_, int offset _U_, as
static int
dissect_ranap_NewBSS_To_OldBSS_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -4717,7 +4717,7 @@ dissect_ranap_NumberOfSteps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_ranap_OldBSS_ToNewBSS_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -4727,7 +4727,7 @@ dissect_ranap_OldBSS_ToNewBSS_Information(tvbuff_t *tvb _U_, int offset _U_, asn
static int
dissect_ranap_OMC_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 22, NULL);
+ 3, 22, FALSE, NULL);
return offset;
}
@@ -4894,7 +4894,7 @@ dissect_ranap_PositioningDataDiscriminator(tvbuff_t *tvb _U_, int offset _U_, as
static int
dissect_ranap_PositioningMethodAndUsage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 1, NULL);
+ 1, 1, FALSE, NULL);
return offset;
}
@@ -4950,7 +4950,7 @@ dissect_ranap_PositionData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_ranap_PositionDataSpecificToGERANIuMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -4995,7 +4995,7 @@ dissect_ranap_ProvidedData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_ranap_P_TMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 4, 4, NULL);
+ 4, 4, FALSE, NULL);
return offset;
}
@@ -5598,7 +5598,7 @@ dissect_ranap_ReportArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_ranap_RequestedGANSSAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 201, NULL);
+ 1, 201, FALSE, NULL);
return offset;
}
@@ -5712,7 +5712,7 @@ dissect_ranap_ResponseTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_ranap_RRC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -5795,7 +5795,7 @@ dissect_ranap_Service_Handover(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_ranap_SourceBSS_ToTargetBSS_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -5909,7 +5909,7 @@ dissect_ranap_SRB_TrCH_Mapping(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_ranap_TargetBSS_ToSourceBSS_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -5957,7 +5957,7 @@ dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvbuff_t *tvb _U_, int
static int
dissect_ranap_TMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 4, 4, NULL);
+ 4, 4, FALSE, NULL);
return offset;
}
@@ -5989,7 +5989,7 @@ dissect_ranap_TemporaryUE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_ranap_TimeToMBMSDataTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 1, NULL);
+ 1, 1, FALSE, NULL);
return offset;
}
@@ -6059,7 +6059,7 @@ dissect_ranap_TraceRecordingSessionInformation(tvbuff_t *tvb _U_, int offset _U_
static int
dissect_ranap_TraceType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 1, NULL);
+ 1, 1, FALSE, NULL);
return offset;
}
@@ -6089,7 +6089,7 @@ dissect_ranap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_ranap_TriggerID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 22, NULL);
+ 3, 22, FALSE, NULL);
return offset;
}
diff --git a/epan/dissectors/packet-ranap.h b/epan/dissectors/packet-ranap.h
index dfb73d7936..0f5ee7f8bd 100644
--- a/epan/dissectors/packet-ranap.h
+++ b/epan/dissectors/packet-ranap.h
@@ -1,6 +1,6 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
-/* ./packet-ranap.h */
+/* packet-ranap.h */
/* ../../tools/asn2wrs.py -p ranap -c ranap.cnf -s packet-ranap-template RANAP-CommonDataTypes.asn RANAP-Constants.asn RANAP-Containers.asn RANAP-IEs.asn RANAP-PDU-Contents.asn RANAP-PDU-Descriptions.asn */
/* Input file: packet-ranap-template.h */
diff --git a/epan/dissectors/packet-rnsap.c b/epan/dissectors/packet-rnsap.c
index 013897eedd..43b88046bd 100644
--- a/epan/dissectors/packet-rnsap.c
+++ b/epan/dissectors/packet-rnsap.c
@@ -1,6 +1,6 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
-/* ./packet-rnsap.c */
+/* packet-rnsap.c */
/* ../../tools/asn2wrs.py -p rnsap -c rnsap.cnf -s packet-rnsap-template RNSAP-CommonDataTypes.asn RNSAP-Constants.asn RNSAP-Containers.asn RNSAP-IEs.asn RNSAP-PDU-Contents.asn RNSAP-PDU-Descriptions.asn */
/* Input file: packet-rnsap-template.c */
@@ -4881,7 +4881,7 @@ dissect_rnsap_PrivateIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_rnsap_AccessPointName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 255, NULL);
+ 1, 255, FALSE, NULL);
return offset;
}
@@ -4911,7 +4911,7 @@ dissect_rnsap_Ack_Power_Offset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_rnsap_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, NULL);
+ 3, 3, FALSE, NULL);
return offset;
}
@@ -4921,7 +4921,7 @@ dissect_rnsap_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_rnsap_Service_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, NULL);
+ 3, 3, FALSE, NULL);
return offset;
}
@@ -5544,7 +5544,7 @@ dissect_rnsap_BetaCD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_rnsap_BindingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 4, NULL);
+ 1, 4, TRUE, NULL);
return offset;
}
@@ -5919,7 +5919,7 @@ dissect_rnsap_CellPortionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_rnsap_LAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 2, 2, NULL);
+ 2, 2, FALSE, NULL);
return offset;
}
@@ -5945,7 +5945,7 @@ dissect_rnsap_T_lAI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
static int
dissect_rnsap_CI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 2, 2, NULL);
+ 2, 2, FALSE, NULL);
return offset;
}
@@ -7585,7 +7585,7 @@ dissect_rnsap_CN_CS_DomainIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_rnsap_RAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 1, NULL);
+ 1, 1, FALSE, NULL);
return offset;
}
@@ -14593,7 +14593,7 @@ dissect_rnsap_GERAN_Cell_Capability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_rnsap_GERAN_Classmark(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -14603,7 +14603,7 @@ dissect_rnsap_GERAN_Classmark(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_rnsap_OCTET_STRING_SIZE_1_23(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 23, NULL);
+ 1, 23, FALSE, NULL);
return offset;
}
@@ -16418,7 +16418,7 @@ dissect_rnsap_HSDSCH_TDD_Update_Information(tvbuff_t *tvb _U_, int offset _U_, a
static int
dissect_rnsap_IMEI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 8, 8, NULL);
+ 8, 8, FALSE, NULL);
return offset;
}
@@ -16428,7 +16428,7 @@ dissect_rnsap_IMEI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot
static int
dissect_rnsap_IMEISV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 8, 8, NULL);
+ 8, 8, FALSE, NULL);
return offset;
}
@@ -16438,7 +16438,7 @@ dissect_rnsap_IMEISV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_rnsap_IMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 8, NULL);
+ 3, 8, FALSE, NULL);
return offset;
}
@@ -17093,7 +17093,7 @@ dissect_rnsap_IPDL_TDD_ParametersLCR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_rnsap_IPMulticastAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 4, 16, NULL);
+ 4, 16, FALSE, NULL);
return offset;
}
@@ -18672,7 +18672,7 @@ dissect_rnsap_Rx_Timing_Deviation_Value_768(tvbuff_t *tvb _U_, int offset _U_, a
static int
dissect_rnsap_SAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 2, 2, NULL);
+ 2, 2, FALSE, NULL);
return offset;
}
@@ -19821,7 +19821,7 @@ dissect_rnsap_TraceRecordingSessionReference(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_rnsap_TraceReference(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 2, 3, NULL);
+ 2, 3, FALSE, NULL);
return offset;
}
diff --git a/epan/dissectors/packet-rrc.c b/epan/dissectors/packet-rrc.c
index 99b7e2efd8..240e97e97a 100644
--- a/epan/dissectors/packet-rrc.c
+++ b/epan/dissectors/packet-rrc.c
@@ -1,6 +1,6 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
-/* ./packet-rrc.c */
+/* packet-rrc.c */
/* ../../tools/asn2wrs.py -p rrc -c rrc.cnf -s packet-rrc-template Class-definitions.asn PDU-definitions.asn InformationElements.asn Constant-definitions.asn Internode-definitions.asn */
/* Input file: packet-rrc-template.c */
@@ -10408,7 +10408,7 @@ dissect_rrc_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_rrc_NAS_SystemInformationGSM_MAP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 8, NULL);
+ 1, 8, FALSE, NULL);
return offset;
}
@@ -19683,7 +19683,7 @@ dissect_rrc_CellChangeOrderFromUTRAN_r3_IEs(tvbuff_t *tvb _U_, int offset _U_, a
static int
dissect_rrc_GERAN_SystemInfoBlock(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 23, NULL);
+ 1, 23, FALSE, NULL);
return offset;
}
@@ -35026,7 +35026,7 @@ dissect_rrc_CounterCheck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_rrc_NAS_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 4095, NULL);
+ 1, 4095, FALSE, NULL);
return offset;
}
@@ -35330,7 +35330,7 @@ dissect_rrc_T_r3_09(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
static int
dissect_rrc_MBMS_SessionIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 1, NULL);
+ 1, 1, FALSE, NULL);
return offset;
}
@@ -48220,7 +48220,7 @@ dissect_rrc_RadioBearerSetup_r6_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_rrc_OCTET_STRING_SIZE_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, NULL);
+ 3, 3, FALSE, NULL);
return offset;
}
@@ -59666,7 +59666,7 @@ dissect_rrc_UE_RadioAccessCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_rrc_GSM_Classmark2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 5, 5, NULL);
+ 5, 5, FALSE, NULL);
return offset;
}
@@ -59676,7 +59676,7 @@ dissect_rrc_GSM_Classmark2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_rrc_GSM_Classmark3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 32, NULL);
+ 1, 32, FALSE, NULL);
return offset;
}
@@ -63391,7 +63391,7 @@ dissect_rrc_ESN_DS_41(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_rrc_IMSI_DS_41(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 5, 7, NULL);
+ 5, 7, FALSE, NULL);
return offset;
}
@@ -63416,7 +63416,7 @@ dissect_rrc_IMSI_and_ESN_DS_41(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_rrc_TMSI_DS_41(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 2, 17, NULL);
+ 2, 17, FALSE, NULL);
return offset;
}
@@ -71574,7 +71574,7 @@ dissect_rrc_T_uE_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_rrc_OCTET_STRING_SIZE_0_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 0, 63, NULL);
+ 0, 63, FALSE, NULL);
return offset;
}
@@ -74174,7 +74174,7 @@ dissect_rrc_T_supportOfInter_RAT_PS_Handover(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_rrc_GSM_MS_RadioAccessCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 64, NULL);
+ 1, 64, FALSE, NULL);
return offset;
}
@@ -84445,7 +84445,7 @@ dissect_rrc_MBMS_PreferredFreqRequest_r6(tvbuff_t *tvb _U_, int offset _U_, asn1
static int
dissect_rrc_OCTET_STRING_SIZE_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 0, 255, NULL);
+ 0, 255, FALSE, NULL);
return offset;
}
@@ -87663,7 +87663,7 @@ dissect_rrc_T_dl_mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_rrc_OCTET_STRING_SIZE_1_3000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 3000, NULL);
+ 1, 3000, FALSE, NULL);
return offset;
}
@@ -87879,7 +87879,7 @@ dissect_rrc_ToTargetRNC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_rrc_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
diff --git a/epan/dissectors/packet-rrlp.c b/epan/dissectors/packet-rrlp.c
index 9a23767f55..28cf0d12c5 100644
--- a/epan/dissectors/packet-rrlp.c
+++ b/epan/dissectors/packet-rrlp.c
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
-/* ./packet-rrlp.c */
-/* ../../tools/asn2wrs.py -p rrlp -c rrlp.cnf -s packet-rrlp-template RRLP-Messages.asn RRLP-Components.asn ../gsmmap/MAP-ExtensionDataTypes.asn ../gsmmap/MAP-LCS-DataTypes.asn */
+/* packet-rrlp.c */
+/* ../../tools/asn2wrs.py -p rrlp -c rrlp.cnf -s packet-rrlp-template ../gsmmap/MAP-ExtensionDataTypes.asn ../gsmmap/MAP-LCS-DataTypes.asn RRLP-Messages.asn RRLP-Components.asn */
/* Input file: packet-rrlp-template.c */
@@ -72,6 +72,12 @@ static int proto_rrlp = -1;
/*--- Included file: packet-rrlp-hf.c ---*/
#line 1 "packet-rrlp-hf.c"
static int hf_rrlp_PDU_PDU = -1; /* PDU */
+static int hf_rrlp_privateExtensionList = -1; /* PrivateExtensionList */
+static int hf_rrlp_pcs_Extensions = -1; /* PCS_Extensions */
+static int hf_rrlp_PrivateExtensionList_item = -1; /* PrivateExtension */
+static int hf_rrlp_extId = -1; /* OBJECT_IDENTIFIER */
+static int hf_rrlp_extType = -1; /* T_extType */
+static int hf_rrlp_na_ESRK_Request = -1; /* NULL */
static int hf_rrlp_referenceNumber = -1; /* INTEGER_0_7 */
static int hf_rrlp_component = -1; /* RRLP_Component */
static int hf_rrlp_msrPositionReq = -1; /* MsrPosition_Req */
@@ -491,12 +497,6 @@ static int hf_rrlp_codePhase_01 = -1; /* INTEGER_0_2097151 */
static int hf_rrlp_integerCodePhase = -1; /* INTEGER_0_63 */
static int hf_rrlp_codePhaseRMSError = -1; /* INTEGER_0_63 */
static int hf_rrlp_adr = -1; /* INTEGER_0_33554431 */
-static int hf_rrlp_privateExtensionList = -1; /* PrivateExtensionList */
-static int hf_rrlp_pcs_Extensions = -1; /* PCS_Extensions */
-static int hf_rrlp_PrivateExtensionList_item = -1; /* PrivateExtension */
-static int hf_rrlp_extId = -1; /* OBJECT_IDENTIFIER */
-static int hf_rrlp_extType = -1; /* T_extType */
-static int hf_rrlp_na_ESRK_Request = -1; /* NULL */
/* named bits */
static int hf_rrlp_GANSSPositioningMethod_gps = -1;
static int hf_rrlp_GANSSPositioningMethod_galileo = -1;
@@ -512,6 +512,11 @@ static gint ett_rrlp = -1;
/*--- Included file: packet-rrlp-ett.c ---*/
#line 1 "packet-rrlp-ett.c"
+static gint ett_rrlp_ExtensionContainer = -1;
+static gint ett_rrlp_PrivateExtensionList = -1;
+static gint ett_rrlp_PrivateExtension = -1;
+static gint ett_rrlp_PCS_Extensions = -1;
+static gint ett_rrlp_SLR_Arg_PCS_Extensions = -1;
static gint ett_rrlp_PDU = -1;
static gint ett_rrlp_RRLP_Component = -1;
static gint ett_rrlp_MsrPosition_Req = -1;
@@ -663,11 +668,6 @@ static gint ett_rrlp_GANSS_SgnTypeElement = -1;
static gint ett_rrlp_SeqOfGANSS_SgnElement = -1;
static gint ett_rrlp_GANSS_SgnElement = -1;
static gint ett_rrlp_Rel7_AssistanceData_Extension = -1;
-static gint ett_rrlp_ExtensionContainer = -1;
-static gint ett_rrlp_PrivateExtensionList = -1;
-static gint ett_rrlp_PrivateExtension = -1;
-static gint ett_rrlp_PCS_Extensions = -1;
-static gint ett_rrlp_SLR_Arg_PCS_Extensions = -1;
/*--- End of included file: packet-rrlp-ett.c ---*/
#line 68 "packet-rrlp-template.c"
@@ -676,10 +676,10 @@ static gint ett_rrlp_SLR_Arg_PCS_Extensions = -1;
/*--- Included file: packet-rrlp-val.h ---*/
#line 1 "packet-rrlp-val.h"
-#define maxGPSAssistanceData 40
-#define maxGANSSAssistanceData 40
#define maxNumOfPrivateExtensions 10
#define maxExt_GeographicalInformation 20
+#define maxGPSAssistanceData 40
+#define maxGANSSAssistanceData 40
/*--- End of included file: packet-rrlp-val.h ---*/
#line 71 "packet-rrlp-template.c"
@@ -691,6 +691,133 @@ static gint ett_rrlp_SLR_Arg_PCS_Extensions = -1;
static int
+dissect_rrlp_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_T_extType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t PrivateExtension_sequence[] = {
+ { &hf_rrlp_extId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OBJECT_IDENTIFIER },
+ { &hf_rrlp_extType , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_T_extType },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_PrivateExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_PrivateExtension, PrivateExtension_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PrivateExtensionList_sequence_of[1] = {
+ { &hf_rrlp_PrivateExtensionList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_PrivateExtension },
+};
+
+static int
+dissect_rrlp_PrivateExtensionList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_PrivateExtensionList, PrivateExtensionList_sequence_of,
+ 1, maxNumOfPrivateExtensions);
+
+ return offset;
+}
+
+
+static const per_sequence_t PCS_Extensions_sequence[] = {
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_PCS_Extensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_PCS_Extensions, PCS_Extensions_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t ExtensionContainer_sequence[] = {
+ { &hf_rrlp_privateExtensionList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_PrivateExtensionList },
+ { &hf_rrlp_pcs_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_PCS_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_ExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_ExtensionContainer, ExtensionContainer_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+
+
+static const per_sequence_t SLR_Arg_PCS_Extensions_sequence[] = {
+ { &hf_rrlp_na_ESRK_Request, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_NULL },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_SLR_Arg_PCS_Extensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SLR_Arg_PCS_Extensions, SLR_Arg_PCS_Extensions_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_Ext_GeographicalInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 34 "rrlp.cnf"
+
+tvbuff_t *parameter_tvb = NULL;
+
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 1, maxExt_GeographicalInformation, FALSE, &parameter_tvb);
+
+
+ if(parameter_tvb)
+ dissect_geographical_description(parameter_tvb, actx->pinfo, tree);
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_VelocityEstimate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 4, 7, FALSE, NULL);
+
+ return offset;
+}
+
+
+
+static int
dissect_rrlp_INTEGER_0_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 7U, NULL, FALSE);
@@ -865,25 +992,6 @@ dissect_rrlp_TimeSlotScheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
-dissect_rrlp_Ext_GeographicalInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 34 "rrlp.cnf"
-
-tvbuff_t *parameter_tvb = NULL;
-
- offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, maxExt_GeographicalInformation, &parameter_tvb);
-
-
- if(parameter_tvb)
- dissect_geographical_description(parameter_tvb, actx->pinfo, tree);
-
-
- return offset;
-}
-
-
-
-static int
dissect_rrlp_BTSPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_rrlp_Ext_GeographicalInformation(tvb, offset, actx, tree, hf_index);
@@ -1036,15 +1144,6 @@ dissect_rrlp_MsrAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
}
-
-static int
-dissect_rrlp_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
-
- return offset;
-}
-
-
static const per_sequence_t AssistBTSData_sequence[] = {
{ &hf_rrlp_bsic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BSIC },
{ &hf_rrlp_multiFrameOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_MultiFrameOffset },
@@ -1999,81 +2098,6 @@ dissect_rrlp_GPS_AssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
-dissect_rrlp_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
-
- return offset;
-}
-
-
-
-static int
-dissect_rrlp_T_extType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL);
-
- return offset;
-}
-
-
-static const per_sequence_t PrivateExtension_sequence[] = {
- { &hf_rrlp_extId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OBJECT_IDENTIFIER },
- { &hf_rrlp_extType , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_T_extType },
- { NULL, 0, 0, NULL }
-};
-
-static int
-dissect_rrlp_PrivateExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_rrlp_PrivateExtension, PrivateExtension_sequence);
-
- return offset;
-}
-
-
-static const per_sequence_t PrivateExtensionList_sequence_of[1] = {
- { &hf_rrlp_PrivateExtensionList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_PrivateExtension },
-};
-
-static int
-dissect_rrlp_PrivateExtensionList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
- ett_rrlp_PrivateExtensionList, PrivateExtensionList_sequence_of,
- 1, maxNumOfPrivateExtensions);
-
- return offset;
-}
-
-
-static const per_sequence_t PCS_Extensions_sequence[] = {
- { NULL, 0, 0, NULL }
-};
-
-static int
-dissect_rrlp_PCS_Extensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_rrlp_PCS_Extensions, PCS_Extensions_sequence);
-
- return offset;
-}
-
-
-static const per_sequence_t ExtensionContainer_sequence[] = {
- { &hf_rrlp_privateExtensionList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_PrivateExtensionList },
- { &hf_rrlp_pcs_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_PCS_Extensions },
- { NULL, 0, 0, NULL }
-};
-
-static int
-dissect_rrlp_ExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_rrlp_ExtensionContainer, ExtensionContainer_sequence);
-
- return offset;
-}
-
-
-
-static int
dissect_rrlp_ExpectedOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 1250U, NULL, FALSE);
@@ -3966,7 +3990,7 @@ dissect_rrlp_LocErrorReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_rrlp_GPSAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, maxGPSAssistanceData, NULL);
+ 1, maxGPSAssistanceData, FALSE, NULL);
return offset;
}
@@ -3976,7 +4000,7 @@ dissect_rrlp_GPSAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_rrlp_GANSSAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, maxGANSSAssistanceData, NULL);
+ 1, maxGANSSAssistanceData, FALSE, NULL);
return offset;
}
@@ -4152,16 +4176,6 @@ dissect_rrlp_Rel_5_MsrPosition_Rsp_Extension(tvbuff_t *tvb _U_, int offset _U_,
}
-
-static int
-dissect_rrlp_VelocityEstimate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 4, 7, NULL);
-
- return offset;
-}
-
-
static const per_sequence_t ReferenceFrame_sequence[] = {
{ &hf_rrlp_referenceFN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
{ &hf_rrlp_referenceFNMSB , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_63 },
@@ -4572,20 +4586,6 @@ dissect_rrlp_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_
return offset;
}
-
-static const per_sequence_t SLR_Arg_PCS_Extensions_sequence[] = {
- { &hf_rrlp_na_ESRK_Request, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_NULL },
- { NULL, 0, 0, NULL }
-};
-
-static int
-dissect_rrlp_SLR_Arg_PCS_Extensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_rrlp_SLR_Arg_PCS_Extensions, SLR_Arg_PCS_Extensions_sequence);
-
- return offset;
-}
-
/*--- PDUs ---*/
static void dissect_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
@@ -4612,6 +4612,30 @@ void proto_register_rrlp(void) {
{ "PDU", "rrlp.PDU",
FT_NONE, BASE_NONE, NULL, 0,
"rrlp.PDU", HFILL }},
+ { &hf_rrlp_privateExtensionList,
+ { "privateExtensionList", "rrlp.privateExtensionList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.PrivateExtensionList", HFILL }},
+ { &hf_rrlp_pcs_Extensions,
+ { "pcs-Extensions", "rrlp.pcs_Extensions",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.PCS_Extensions", HFILL }},
+ { &hf_rrlp_PrivateExtensionList_item,
+ { "Item", "rrlp.PrivateExtensionList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.PrivateExtension", HFILL }},
+ { &hf_rrlp_extId,
+ { "extId", "rrlp.extId",
+ FT_OID, BASE_NONE, NULL, 0,
+ "rrlp.OBJECT_IDENTIFIER", HFILL }},
+ { &hf_rrlp_extType,
+ { "extType", "rrlp.extType",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.T_extType", HFILL }},
+ { &hf_rrlp_na_ESRK_Request,
+ { "na-ESRK-Request", "rrlp.na_ESRK_Request",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.NULL", HFILL }},
{ &hf_rrlp_referenceNumber,
{ "referenceNumber", "rrlp.referenceNumber",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -6288,30 +6312,6 @@ void proto_register_rrlp(void) {
{ "adr", "rrlp.adr",
FT_UINT32, BASE_DEC, NULL, 0,
"rrlp.INTEGER_0_33554431", HFILL }},
- { &hf_rrlp_privateExtensionList,
- { "privateExtensionList", "rrlp.privateExtensionList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "rrlp.PrivateExtensionList", HFILL }},
- { &hf_rrlp_pcs_Extensions,
- { "pcs-Extensions", "rrlp.pcs_Extensions",
- FT_NONE, BASE_NONE, NULL, 0,
- "rrlp.PCS_Extensions", HFILL }},
- { &hf_rrlp_PrivateExtensionList_item,
- { "Item", "rrlp.PrivateExtensionList_item",
- FT_NONE, BASE_NONE, NULL, 0,
- "rrlp.PrivateExtension", HFILL }},
- { &hf_rrlp_extId,
- { "extId", "rrlp.extId",
- FT_OID, BASE_NONE, NULL, 0,
- "rrlp.OBJECT_IDENTIFIER", HFILL }},
- { &hf_rrlp_extType,
- { "extType", "rrlp.extType",
- FT_NONE, BASE_NONE, NULL, 0,
- "rrlp.T_extType", HFILL }},
- { &hf_rrlp_na_ESRK_Request,
- { "na-ESRK-Request", "rrlp.na_ESRK_Request",
- FT_NONE, BASE_NONE, NULL, 0,
- "rrlp.NULL", HFILL }},
{ &hf_rrlp_GANSSPositioningMethod_gps,
{ "gps", "rrlp.gps",
FT_BOOLEAN, 8, NULL, 0x80,
@@ -6343,6 +6343,11 @@ void proto_register_rrlp(void) {
/*--- Included file: packet-rrlp-ettarr.c ---*/
#line 1 "packet-rrlp-ettarr.c"
+ &ett_rrlp_ExtensionContainer,
+ &ett_rrlp_PrivateExtensionList,
+ &ett_rrlp_PrivateExtension,
+ &ett_rrlp_PCS_Extensions,
+ &ett_rrlp_SLR_Arg_PCS_Extensions,
&ett_rrlp_PDU,
&ett_rrlp_RRLP_Component,
&ett_rrlp_MsrPosition_Req,
@@ -6494,11 +6499,6 @@ void proto_register_rrlp(void) {
&ett_rrlp_SeqOfGANSS_SgnElement,
&ett_rrlp_GANSS_SgnElement,
&ett_rrlp_Rel7_AssistanceData_Extension,
- &ett_rrlp_ExtensionContainer,
- &ett_rrlp_PrivateExtensionList,
- &ett_rrlp_PrivateExtension,
- &ett_rrlp_PCS_Extensions,
- &ett_rrlp_SLR_Arg_PCS_Extensions,
/*--- End of included file: packet-rrlp-ettarr.c ---*/
#line 89 "packet-rrlp-template.c"
diff --git a/epan/dissectors/packet-sabp.c b/epan/dissectors/packet-sabp.c
index 95a9472e1a..06e3e53629 100644
--- a/epan/dissectors/packet-sabp.c
+++ b/epan/dissectors/packet-sabp.c
@@ -1,6 +1,6 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
-/* ./packet-sabp.c */
+/* packet-sabp.c */
/* ../../tools/asn2wrs.py -p sabp -c sabp.cnf -s packet-sabp-template SABP-CommonDataTypes.asn SABP-Constants.asn SABP-Containers.asn SABP-IEs.asn SABP-PDU-Contents.asn SABP-PDU-Descriptions.asn */
/* Input file: packet-sabp-template.c */
@@ -630,7 +630,7 @@ dissect_sabp_Data_Coding_Scheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_sabp_OCTET_STRING_SIZE_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, NULL);
+ 3, 3, FALSE, NULL);
return offset;
}
@@ -640,7 +640,7 @@ dissect_sabp_OCTET_STRING_SIZE_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_sabp_OCTET_STRING_SIZE_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 2, 2, NULL);
+ 2, 2, FALSE, NULL);
return offset;
}
diff --git a/epan/dissectors/packet-t38.c b/epan/dissectors/packet-t38.c
index a011c768c7..71442159b8 100644
--- a/epan/dissectors/packet-t38.c
+++ b/epan/dissectors/packet-t38.c
@@ -658,7 +658,7 @@ dissect_t38_T_field_type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
"[RECEIVED END OF FRAGMENT W/OUT ANY FRAGMENT DATA]");
}
if (check_col(actx->pinfo->cinfo, COL_INFO)){
- col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [Malformed?]");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " [Malformed?]");
}
actx->pinfo->fragmented = save_fragmented;
}
@@ -684,7 +684,7 @@ dissect_t38_T_field_data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
guint32 value_len;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 65535, &value_tvb);
+ 1, 65535, FALSE, &value_tvb);
value_len = tvb_length(value_tvb);
@@ -875,7 +875,7 @@ dissect_t38_INTEGER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
static int
dissect_t38_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
+ NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
@@ -1124,7 +1124,7 @@ dissect_t38_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
if (check_col(pinfo->cinfo, COL_INFO)){
- col_append_fstr(pinfo->cinfo, COL_INFO, "UDP: UDPTLPacket ");
+ col_append_str(pinfo->cinfo, COL_INFO, "UDP: UDPTLPacket ");
}
offset = dissect_UDPTLPacket_PDU(tvb, pinfo, tr);
@@ -1135,7 +1135,7 @@ dissect_t38_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
"[MALFORMED PACKET or wrong preference settings]");
}
if (check_col(pinfo->cinfo, COL_INFO)){
- col_append_fstr(pinfo->cinfo, COL_INFO, " [Malformed?]");
+ col_append_str(pinfo->cinfo, COL_INFO, " [Malformed?]");
}
}
}
@@ -1173,7 +1173,7 @@ dissect_t38_tcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
if (check_col(pinfo->cinfo, COL_INFO)){
- col_append_fstr(pinfo->cinfo, COL_INFO, "TCP: IFPPacket");
+ col_append_str(pinfo->cinfo, COL_INFO, "TCP: IFPPacket");
}
while(tvb_length_remaining(tvb,offset)>0)
@@ -1189,7 +1189,7 @@ dissect_t38_tcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
"[MALFORMED PACKET or wrong preference settings]");
}
if (check_col(pinfo->cinfo, COL_INFO)){
- col_append_fstr(pinfo->cinfo, COL_INFO, " [Malformed?]");
+ col_append_str(pinfo->cinfo, COL_INFO, " [Malformed?]");
}
break;
}
diff --git a/epan/dissectors/packet-ulp.c b/epan/dissectors/packet-ulp.c
index 340c734c71..a271ffe570 100644
--- a/epan/dissectors/packet-ulp.c
+++ b/epan/dissectors/packet-ulp.c
@@ -1,6 +1,6 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
-/* ./packet-ulp.c */
+/* packet-ulp.c */
/* ../../tools/asn2wrs.py -p ulp -c ulp.cnf -s packet-ulp-template ULP.asn SUPL.asn ULP-Components.asn */
/* Input file: packet-ulp-template.c */
@@ -385,7 +385,7 @@ dissect_ulp_T_msisdn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
/* "Hide" the first dissection to avoid double tree entries */
hf_index = -1;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 8, 8, &parameter_tvb);
+ 8, 8, FALSE, &parameter_tvb);
if(!parameter_tvb)
@@ -404,7 +404,7 @@ if(!parameter_tvb)
static int
dissect_ulp_OCTET_STRING_SIZE_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 8, 8, NULL);
+ 8, 8, FALSE, NULL);
return offset;
}
@@ -430,7 +430,7 @@ dissect_ulp_T_imsi(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot
/* "Hide" the first dissection to avoid double tree entries */
hf_index = -1;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 8, 8, &parameter_tvb);
+ 8, 8, FALSE, &parameter_tvb);
if(!parameter_tvb)
@@ -458,7 +458,7 @@ dissect_ulp_IA5String_SIZE_1_1000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_ulp_OCTET_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 4, 4, NULL);
+ 4, 4, FALSE, NULL);
return offset;
}
@@ -468,7 +468,7 @@ dissect_ulp_OCTET_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_ulp_OCTET_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 16, 16, NULL);
+ 16, 16, FALSE, NULL);
return offset;
}
@@ -668,7 +668,7 @@ dissect_ulp_EncodingType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_ulp_OCTET_STRING_SIZE_1_maxReqLength(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, maxReqLength, NULL);
+ 1, maxReqLength, FALSE, NULL);
return offset;
}
@@ -700,7 +700,7 @@ dissect_ulp_FormatIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_ulp_OCTET_STRING_SIZE_1_maxClientLength(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, maxClientLength, NULL);
+ 1, maxClientLength, FALSE, NULL);
return offset;
}
@@ -1881,7 +1881,7 @@ dissect_ulp_Position(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_ulp_OCTET_STRING_SIZE_1_8192(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 8192, NULL);
+ 1, 8192, FALSE, NULL);
return offset;
}
@@ -1894,7 +1894,7 @@ dissect_ulp_T_rrlpPayload(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
tvbuff_t *rrlp_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 8192, &rrlp_tvb);
+ 1, 8192, FALSE, &rrlp_tvb);
if (rrlp_tvb && rrlp_handle) {
diff --git a/epan/libwireshark.def b/epan/libwireshark.def
index 22047e49f4..784f3e38cd 100644
--- a/epan/libwireshark.def
+++ b/epan/libwireshark.def
@@ -190,6 +190,8 @@ dissect_ndr_uint8
dissect_ndr_uuid_t
dissect_nt_64bit_time
dissect_per_bit_string
+dissect_per_bit_string_containing_pdu
+dissect_per_bit_string_containing_pdu_new
dissect_per_BMPString
dissect_per_boolean
dissect_per_choice
@@ -197,6 +199,7 @@ dissect_per_constrained_sequence_of
dissect_per_constrained_set_of
dissect_per_constrained_integer
dissect_per_enumerated
+dissect_per_external_type
dissect_per_GeneralString
dissect_per_IA5String
dissect_per_integer
@@ -205,7 +208,13 @@ dissect_per_NumericString
dissect_per_object_identifier_str
dissect_per_object_identifier
dissect_per_octet_string
+dissect_per_octet_string_containing_pdu
+dissect_per_octet_string_containing_pdu_new
+dissect_per_open_type
+dissect_per_open_type_pdu
+dissect_per_open_type_pdu_new
dissect_per_PrintableString
+dissect_per_real
dissect_per_restricted_character_string
dissect_per_sequence_of
dissect_per_sequence
diff --git a/tools/asn2wrs.py b/tools/asn2wrs.py
index d8816af8ce..5ede5b1928 100755
--- a/tools/asn2wrs.py
+++ b/tools/asn2wrs.py
@@ -269,7 +269,7 @@ reserved_words = {
'PRESENT' : 'PRESENT',
'PRIVATE' : 'PRIVATE',
'REAL' : 'REAL',
-# 'RELATIVE-OID' : 'RELATIVE-OID',
+ 'RELATIVE-OID' : 'RELATIVE_OID',
'SEQUENCE' : 'SEQUENCE',
'SET' : 'SET',
'SIZE' : 'SIZE',
@@ -4787,11 +4787,11 @@ class OctetStringType (Type):
if self.HasContentsConstraint():
body = ectx.eth_fn_call('dissect_%(ER)s_octet_string_containing%(FN_VARIANT)s', ret='offset',
par=(('%(TVB)s', '%(OFFSET)s', '%(ACTX)s', '%(TREE)s', '%(HF_INDEX)s'),
- ('%(MIN_VAL)s', '%(MAX_VAL)s', '%(TYPE_REF_FN)s',),))
+ ('%(MIN_VAL)s', '%(MAX_VAL)s', '%(EXT)s', '%(TYPE_REF_FN)s',),))
else:
body = ectx.eth_fn_call('dissect_%(ER)s_octet_string', ret='offset',
par=(('%(TVB)s', '%(OFFSET)s', '%(ACTX)s', '%(TREE)s', '%(HF_INDEX)s'),
- ('%(MIN_VAL)s', '%(MAX_VAL)s', '%(VAL_PTR)s',),))
+ ('%(MIN_VAL)s', '%(MAX_VAL)s', '%(EXT)s', '%(VAL_PTR)s',),))
else:
body = '#error Can not decode %s' % (tname)
return body
@@ -5031,6 +5031,35 @@ class NamedNumListBase(Node):
return "asn1.%s_class ([%s])" % (self.asn1_typ,",".join (
map (lambda x: x.to_python (ctx), self.named_list)))
+#--- RelativeOIDType ----------------------------------------------------------
+class RelativeOIDType (Type):
+
+ def eth_tname(self):
+ return 'RELATIVE_OID'
+
+ def eth_ftype(self, ectx):
+ return ('FT_BYTES', 'BASE_HEX')
+
+ def GetTTag(self, ectx):
+ return ('BER_CLASS_UNI', 'BER_UNI_TAG_RELATIVE_OID')
+
+ def eth_type_default_pars(self, ectx, tname):
+ pars = Type.eth_type_default_pars(self, ectx, tname)
+ pars['FN_VARIANT'] = ectx.default_oid_variant
+ return pars
+
+ def eth_type_default_body(self, ectx, tname):
+ if (ectx.Ber()):
+ body = ectx.eth_fn_call('dissect_%(ER)s_relative_oid%(FN_VARIANT)s', ret='offset',
+ par=(('%(IMPLICIT_TAG)s', '%(ACTX)s', '%(TREE)s', '%(TVB)s', '%(OFFSET)s', '%(HF_INDEX)s', '%(VAL_PTR)s',),))
+ elif (ectx.Per()):
+ body = ectx.eth_fn_call('dissect_%(ER)s_relative_oid%(FN_VARIANT)s', ret='offset',
+ par=(('%(TVB)s', '%(OFFSET)s', '%(ACTX)s', '%(TREE)s', '%(HF_INDEX)s', '%(VAL_PTR)s',),))
+ else:
+ body = '#error Can not decode %s' % (tname)
+ return body
+
+
#--- IntegerType --------------------------------------------------------------
class IntegerType (Type):
def to_python (self, ctx):
@@ -5594,6 +5623,7 @@ def p_BuiltinType (t):
| ObjectIdentifierType
| OctetStringType
| RealType
+ | RelativeOIDType
| SequenceType
| SequenceOfType
| SetType
@@ -6115,7 +6145,15 @@ def p_NameAndNumberForm (t):
| LCASE_IDENT LPAREN NumberForm RPAREN'''
t[0] = Node('name_and_number', ident = t[1], number = t[3])
-# 33 Notation for the embedded-pdv type -------------------------------------------
+# 32 Notation for the relative object identifier type -------------------------
+
+# 32.1
+def p_RelativeOIDType (t):
+ 'RelativeOIDType : RELATIVE_OID'
+ t[0] = RelativeOIDType()
+
+# 33 Notation for the embedded-pdv type ---------------------------------------
+
# 33.1
def p_EmbeddedPDVType (t):
'EmbeddedPDVType : EMBEDDED PDV'
@@ -7135,6 +7173,7 @@ def p_ContentsConstraint (t):
# 8.1
def p_ParameterizedAssignment (t):
'''ParameterizedAssignment : ParameterizedTypeAssignment
+ | ParameterizedObjectClassAssignment
| ParameterizedObjectAssignment
| ParameterizedObjectSetAssignment'''
t[0] = t[1]
@@ -7145,6 +7184,14 @@ def p_ParameterizedTypeAssignment (t):
t[0] = t[4]
t[0].SetName(t[1]) # t[0].SetName(t[1] + 'xxx')
+def p_ParameterizedObjectClassAssignment (t):
+ '''ParameterizedObjectClassAssignment : CLASS_IDENT ParameterList ASSIGNMENT ObjectClass
+ | UCASE_IDENT ParameterList ASSIGNMENT ObjectClass'''
+ t[0] = t[4]
+ t[0].SetName(t[1])
+ if isinstance(t[0], ObjectClassDefn):
+ t[0].reg_types()
+
def p_ParameterizedObjectAssignment (t):
'ParameterizedObjectAssignment : objectreference ParameterList DefinedObjectClass ASSIGNMENT Object'
t[0] = ObjectAssignment (ident = t[1], cls=t[3].val, val=t[5])