From ae4f800e2649aed353ff67b7f963c8767afb6248 Mon Sep 17 00:00:00 2001 From: kukosa Date: Mon, 29 Oct 2007 19:25:37 +0000 Subject: [PATCH] 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 git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@23309 f5534014-38df-0310-8fa8-9805f1628bb7 --- asn1/h323/Makefile.am | 52 ++--- asn1/h323/Makefile.common | 106 ++++----- asn1/h323/Makefile.nmake | 58 ++--- asn1/h323/RAS-PROTOCOL-TUNNEL.asn | 2 +- asn1/h323/ROBUSTNESS-DATA.asn | 2 +- asn1/h323/h323.cnf | 34 +-- asn1/h323/packet-h323-template.c | 290 +++++++++++------------ asn1/h323/packet-h323-template.h | 66 ++++++ asn1/ranap/ranap.cnf | 4 +- epan/dissectors/packet-h225.c | 50 ++-- epan/dissectors/packet-h235.c | 8 +- epan/dissectors/packet-h245.c | 40 ++-- epan/dissectors/packet-h323.c | 2 +- epan/dissectors/packet-h450.c | 8 +- epan/dissectors/packet-h460.c | 10 +- epan/dissectors/packet-h501.c | 4 +- epan/dissectors/packet-mpeg-audio.c | 12 +- epan/dissectors/packet-mpeg-pes.c | 4 +- epan/dissectors/packet-nbap.c | 4 +- epan/dissectors/packet-per.c | 23 +- epan/dissectors/packet-per.h | 4 +- epan/dissectors/packet-ranap.c | 86 +++---- epan/dissectors/packet-ranap.h | 2 +- epan/dissectors/packet-rnsap.c | 32 +-- epan/dissectors/packet-rrc.c | 30 +-- epan/dissectors/packet-rrlp.c | 346 ++++++++++++++-------------- epan/dissectors/packet-sabp.c | 6 +- epan/dissectors/packet-t38.c | 14 +- epan/dissectors/packet-ulp.c | 20 +- epan/libwireshark.def | 9 + tools/asn2wrs.py | 55 ++++- 31 files changed, 757 insertions(+), 626 deletions(-) create mode 100644 asn1/h323/packet-h323-template.h 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 -# 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 +# 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 -# 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 +# 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 -# 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 +# 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 - * 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 -#include -#include -#include -#include - -#include -#include - -#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 + * 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 +#include +#include +#include +#include + +#include +#include + +#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 + * 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/ + + GenericData/ + + MULTIMEDIA-SYSTEM-CONTROL + GenericInformation/[-] + + GenericMessage/[-] + + GenericCapability/ + collapsing/ + nonCollapsing/ + nonCollapsingRaw + EncryptionSync + + */ + 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, ¶meter_tvb); + 3, 3, FALSE, ¶meter_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, ¶meter_tvb); + 3, 3, FALSE, ¶meter_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" @@ -690,6 +690,133 @@ static gint ett_rrlp_SLR_Arg_PCS_Extensions = -1; #line 1 "packet-rrlp-fn.c" +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, ¶meter_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, @@ -864,25 +991,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, ¶meter_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 }, @@ -1998,81 +2097,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, @@ -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, ¶meter_tvb); + 8, 8, FALSE, ¶meter_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, ¶meter_tvb); + 8, 8, FALSE, ¶meter_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]) -- 2.34.1