summaryrefslogtreecommitdiffstats
path: root/wireshark-dect/patches/wireshark-1.0.5_dect.patch
diff options
context:
space:
mode:
authordedected <dedected@8d8ab74c-27aa-4a3d-9bde-523a2bc1f624>2008-12-29 00:48:27 +0000
committerdedected <dedected@8d8ab74c-27aa-4a3d-9bde-523a2bc1f624>2008-12-29 00:48:27 +0000
commitd652a68cd9a6cb73af329170865814ba29cc60d9 (patch)
tree0e785c13ac5d27e619c56c53c014e2e8e5e3dd72 /wireshark-dect/patches/wireshark-1.0.5_dect.patch
parent9521af95962ff8423fc8c3e44b803890ec5172f2 (diff)
initial commit for dect plugin based on wireshark-1.0.5
md5sum 99ac9a9d2c1445658039f1f34c89e3f6 wireshark-1.0.5.tar.gz sha1sum 1651026e377aab2a4b7f07a9539f5754f034790c wireshark-1.0.5.tar.gz git-svn-id: https://dedected.org/svn/trunk@2 8d8ab74c-27aa-4a3d-9bde-523a2bc1f624
Diffstat (limited to 'wireshark-dect/patches/wireshark-1.0.5_dect.patch')
-rw-r--r--wireshark-dect/patches/wireshark-1.0.5_dect.patch3512
1 files changed, 3512 insertions, 0 deletions
diff --git a/wireshark-dect/patches/wireshark-1.0.5_dect.patch b/wireshark-dect/patches/wireshark-1.0.5_dect.patch
new file mode 100644
index 0000000..9d26634
--- /dev/null
+++ b/wireshark-dect/patches/wireshark-1.0.5_dect.patch
@@ -0,0 +1,3512 @@
+diff --git a/README.DECT b/README.DECT
+new file mode 100644
+index 0000000..052e3b4
+--- /dev/null
++++ b/README.DECT
+@@ -0,0 +1,37 @@
++
++Authors:
++========
++- Andreas Schuler <krater (A) badterrorist.com>
++- Matthias Wenzel <dect (A) mazzoo.de>
++
++Description:
++============
++DECT pcap files can be obtained by using tools coming with the linux
++kernel driver for the Dosch-and-Amand COM-ON-AIR cards. The driver is
++called com-on-air_cs.
++
++Wireshark itself cannot directy record from the DECT HW, as the driver
++currently lacks a virtual network interface.
++
++To nicely view DECT pcap files in wireshark, set up a custom layout:
++
++Edit->Preferences...
++ User Interface
++ Colums
++
++ No. | Number
++ Time | Time (format as specified)
++ Protocol | Protocol
++ TA | HP-UX Subsystem
++ A-Field | Network src addr
++ B-Field | Network dest addr
++ Info | Information
++ OK
++
++
++Edit->Configuration Profiles...
++ New
++ Profile Name = dect
++ OK
++
++
+diff --git a/aclocal.m4 b/aclocal.m4
+index 2354619..f93461f 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -21,7 +21,7 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
+
+ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+
+-# serial 52 Debian 1.5.26-1ubuntu1 AC_PROG_LIBTOOL
++# serial 52 Debian 1.5.26-4 AC_PROG_LIBTOOL
+
+
+ # AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+diff --git a/configure b/configure
+index ceacc2f..822cbae 100755
+--- a/configure
++++ b/configure
+@@ -34837,7 +34837,7 @@ rm -f confcache
+
+ ac_config_headers="$ac_config_headers config.h"
+
+-ac_config_files="$ac_config_files Makefile doxygen.cfg asn1/Makefile asn1/acp133/Makefile asn1/acse/Makefile asn1/ansi_map/Makefile asn1/ansi-tcap/Makefile asn1/camel/Makefile asn1/cdt/Makefile asn1/cmip/Makefile asn1/cms/Makefile asn1/dap/Makefile asn1/disp/Makefile asn1/dop/Makefile asn1/dsp/Makefile asn1/ess/Makefile asn1/ftam/Makefile asn1/gnm/Makefile asn1/gsmmap/Makefile asn1/h225/Makefile asn1/h235/Makefile asn1/h245/Makefile asn1/h248/Makefile asn1/h282/Makefile asn1/h283/Makefile asn1/h323/Makefile asn1/h450/Makefile asn1/h450-ros/Makefile asn1/h460/Makefile asn1/h501/Makefile asn1/inap/Makefile asn1/ldap/Makefile asn1/logotype-cert-extn/Makefile asn1/mms/Makefile asn1/mpeg-audio/Makefile asn1/mpeg-pes/Makefile asn1/nbap/Makefile asn1/ns-cert-exts/Makefile asn1/ocsp/Makefile asn1/p7/Makefile asn1/pcap/Makefile asn1/pkcs1/Makefile asn1/pkcs12/Makefile asn1/pkinit/Makefile asn1/pkix1explicit/Makefile asn1/pkix1implicit/Makefile asn1/pkixcmp/Makefile asn1/pkixcrmf/Makefile asn1/pkixproxy/Makefile asn1/pkixqualified/Makefile asn1/pkixtsp/Makefile asn1/pres/Makefile asn1/q932/Makefile asn1/q932-ros/Makefile asn1/qsig/Makefile asn1/ranap/Makefile asn1/rnsap/Makefile asn1/ros/Makefile asn1/rrc/Makefile asn1/rrlp/Makefile asn1/rtse/Makefile asn1/s1ap/Makefile asn1/s4406/Makefile asn1/sabp/Makefile asn1/smrse/Makefile asn1/snmp/Makefile asn1/spnego/Makefile asn1/t125/Makefile asn1/t38/Makefile asn1/tcap/Makefile asn1/ulp/Makefile asn1/wlancertextn/Makefile asn1/x2ap/Makefile asn1/x411/Makefile asn1/x420/Makefile asn1/x509af/Makefile asn1/x509ce/Makefile asn1/x509if/Makefile asn1/x509sat/Makefile asn1/x721/Makefile doc/Makefile epan/Makefile epan/crypt/Makefile epan/doxygen.cfg epan/dfilter/Makefile epan/dissectors/Makefile epan/ftypes/Makefile epan/wslua/Makefile codecs/Makefile gtk/Makefile gtk/doxygen.cfg help/Makefile packaging/Makefile packaging/macosx/Info.plist packaging/nsis/Makefile packaging/rpm/Makefile packaging/rpm/SPECS/Makefile packaging/rpm/SPECS/wireshark.spec packaging/svr4/Makefile packaging/svr4/checkinstall packaging/svr4/pkginfo plugins/Makefile plugins/agentx/Makefile plugins/artnet/Makefile plugins/asn1/Makefile plugins/ciscosm/Makefile plugins/docsis/Makefile plugins/enttec/Makefile plugins/ethercat/Makefile plugins/giop/Makefile plugins/gryphon/Makefile plugins/infiniband/Makefile plugins/irda/Makefile plugins/lwres/Makefile plugins/m2m/Makefile plugins/mate/Makefile plugins/opcua/Makefile plugins/opsi/Makefile plugins/pcli/Makefile plugins/profinet/Makefile plugins/rlm/Makefile plugins/rtnet/Makefile plugins/rudp/Makefile plugins/sbus/Makefile plugins/stats_tree/Makefile plugins/unistim/Makefile plugins/v5ua/Makefile plugins/wimax/Makefile plugins/wimaxasncp/Makefile tools/Makefile tools/idl2wrs.sh tools/lemon/Makefile wiretap/Makefile"
++ac_config_files="$ac_config_files Makefile doxygen.cfg asn1/Makefile asn1/acp133/Makefile asn1/acse/Makefile asn1/ansi_map/Makefile asn1/ansi-tcap/Makefile asn1/camel/Makefile asn1/cdt/Makefile asn1/cmip/Makefile asn1/cms/Makefile asn1/dap/Makefile asn1/disp/Makefile asn1/dop/Makefile asn1/dsp/Makefile asn1/ess/Makefile asn1/ftam/Makefile asn1/gnm/Makefile asn1/gsmmap/Makefile asn1/h225/Makefile asn1/h235/Makefile asn1/h245/Makefile asn1/h248/Makefile asn1/h282/Makefile asn1/h283/Makefile asn1/h323/Makefile asn1/h450/Makefile asn1/h450-ros/Makefile asn1/h460/Makefile asn1/h501/Makefile asn1/inap/Makefile asn1/ldap/Makefile asn1/logotype-cert-extn/Makefile asn1/mms/Makefile asn1/mpeg-audio/Makefile asn1/mpeg-pes/Makefile asn1/nbap/Makefile asn1/ns-cert-exts/Makefile asn1/ocsp/Makefile asn1/p7/Makefile asn1/pcap/Makefile asn1/pkcs1/Makefile asn1/pkcs12/Makefile asn1/pkinit/Makefile asn1/pkix1explicit/Makefile asn1/pkix1implicit/Makefile asn1/pkixcmp/Makefile asn1/pkixcrmf/Makefile asn1/pkixproxy/Makefile asn1/pkixqualified/Makefile asn1/pkixtsp/Makefile asn1/pres/Makefile asn1/q932/Makefile asn1/q932-ros/Makefile asn1/qsig/Makefile asn1/ranap/Makefile asn1/rnsap/Makefile asn1/ros/Makefile asn1/rrc/Makefile asn1/rrlp/Makefile asn1/rtse/Makefile asn1/s1ap/Makefile asn1/s4406/Makefile asn1/sabp/Makefile asn1/smrse/Makefile asn1/snmp/Makefile asn1/spnego/Makefile asn1/t125/Makefile asn1/t38/Makefile asn1/tcap/Makefile asn1/ulp/Makefile asn1/wlancertextn/Makefile asn1/x2ap/Makefile asn1/x411/Makefile asn1/x420/Makefile asn1/x509af/Makefile asn1/x509ce/Makefile asn1/x509if/Makefile asn1/x509sat/Makefile asn1/x721/Makefile doc/Makefile epan/Makefile epan/crypt/Makefile epan/doxygen.cfg epan/dfilter/Makefile epan/dissectors/Makefile epan/ftypes/Makefile epan/wslua/Makefile codecs/Makefile gtk/Makefile gtk/doxygen.cfg help/Makefile packaging/Makefile packaging/macosx/Info.plist packaging/nsis/Makefile packaging/rpm/Makefile packaging/rpm/SPECS/Makefile packaging/rpm/SPECS/wireshark.spec packaging/svr4/Makefile packaging/svr4/checkinstall packaging/svr4/pkginfo plugins/Makefile plugins/agentx/Makefile plugins/artnet/Makefile plugins/asn1/Makefile plugins/ciscosm/Makefile plugins/docsis/Makefile plugins/enttec/Makefile plugins/ethercat/Makefile plugins/giop/Makefile plugins/gryphon/Makefile plugins/infiniband/Makefile plugins/irda/Makefile plugins/lwres/Makefile plugins/m2m/Makefile plugins/mate/Makefile plugins/opcua/Makefile plugins/opsi/Makefile plugins/pcli/Makefile plugins/profinet/Makefile plugins/rlm/Makefile plugins/rtnet/Makefile plugins/rudp/Makefile plugins/sbus/Makefile plugins/stats_tree/Makefile plugins/unistim/Makefile plugins/v5ua/Makefile plugins/wimax/Makefile plugins/wimaxasncp/Makefile plugins/dect/Makefile tools/Makefile tools/idl2wrs.sh tools/lemon/Makefile wiretap/Makefile"
+
+ cat >confcache <<\_ACEOF
+ # This file is a shell script that caches the results of configure
+@@ -35652,6 +35652,7 @@ do
+ "plugins/v5ua/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/v5ua/Makefile" ;;
+ "plugins/wimax/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/wimax/Makefile" ;;
+ "plugins/wimaxasncp/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/wimaxasncp/Makefile" ;;
++ "plugins/dect/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/dect/Makefile" ;;
+ "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
+ "tools/idl2wrs.sh") CONFIG_FILES="$CONFIG_FILES tools/idl2wrs.sh" ;;
+ "tools/lemon/Makefile") CONFIG_FILES="$CONFIG_FILES tools/lemon/Makefile" ;;
+diff --git a/configure.in b/configure.in
+index e4f5867..a49b40c 100644
+--- a/configure.in
++++ b/configure.in
+@@ -1723,6 +1723,7 @@ AC_OUTPUT(
+ plugins/v5ua/Makefile
+ plugins/wimax/Makefile
+ plugins/wimaxasncp/Makefile
++ plugins/dect/Makefile
+ tools/Makefile
+ tools/idl2wrs.sh
+ tools/lemon/Makefile
+diff --git a/ltmain.sh b/ltmain.sh
+index e420fac..0bf3848 100644
+--- a/ltmain.sh
++++ b/ltmain.sh
+@@ -43,7 +43,7 @@ EXIT_FAILURE=1
+
+ PROGRAM=ltmain.sh
+ PACKAGE=libtool
+-VERSION="1.5.26 Debian 1.5.26-1ubuntu1"
++VERSION="1.5.26 Debian 1.5.26-4"
+ TIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)"
+
+ # Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
+diff --git a/plugins/Makefile.am b/plugins/Makefile.am
+index 3209fea..2c6ac57 100644
+--- a/plugins/Makefile.am
++++ b/plugins/Makefile.am
+@@ -48,7 +48,8 @@ SUBDIRS = \
+ unistim \
+ v5ua \
+ wimax \
+- wimaxasncp
++ wimaxasncp \
++ dect
+
+
+ plugindir = @plugindir@
+diff --git a/plugins/Makefile.in b/plugins/Makefile.in
+index b57a81d..180e51e 100644
+--- a/plugins/Makefile.in
++++ b/plugins/Makefile.in
+@@ -350,7 +350,8 @@ SUBDIRS = \
+ unistim \
+ v5ua \
+ wimax \
+- wimaxasncp
++ wimaxasncp \
++ dect
+
+ EXTRA_DIST = \
+ Makefile.nmake
+diff --git a/plugins/Makefile.nmake b/plugins/Makefile.nmake
+index 0a8b61f..c262cfc 100644
+--- a/plugins/Makefile.nmake
++++ b/plugins/Makefile.nmake
+@@ -110,6 +110,9 @@ process-plugins:
+ cd wimaxasncp
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake $(PLUGIN_TARGET)
+ cd ..
++ cd dect
++ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake $(PLUGIN_TARGET)
++ cd ..
+ if exist Custom.nmake $(MAKE) /$(MAKEFLAGS) -f Custom.nmake $(PLUGIN_TARGET)
+
+ ################################################################################
+@@ -148,6 +151,7 @@ install-plugins:
+ xcopy v5ua\*.dll $(VERSION) /d
+ xcopy wimax\*.dll $(VERSION) /d
+ xcopy wimaxasncp\*.dll $(VERSION) /d
++ xcopy dect\*.dll $(VERSION) /d
+ if exist Custom.nmake $(MAKE) /$(MAKEFLAGS) -f Custom.nmake install-plugins
+ !ENDIF
+
+diff --git a/plugins/dect/Makefile.am b/plugins/dect/Makefile.am
+new file mode 100644
+index 0000000..ef4d106
+--- /dev/null
++++ b/plugins/dect/Makefile.am
+@@ -0,0 +1,125 @@
++# Makefile.am
++# Automake file for H.223 plugin
++#
++# $Id: Makefile.am 21961 2007-05-27 18:35:55Z guy $
++#
++# Wireshark - Network traffic analyzer
++# By Gerald Combs <gerald@wireshark.org>
++# Copyright 1998 Gerald Combs
++#
++# This program is free software; you can redistribute it and/or
++# modify it under the terms of the GNU General Public License
++# as published by the Free Software Foundation; either version 2
++# of the License, or (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++#
++
++INCLUDES = -I$(top_srcdir) -I$(includedir)
++
++include Makefile.common
++
++if HAVE_WARNINGS_AS_ERRORS
++AM_CFLAGS = -Werror
++endif
++
++plugindir = @plugindir@
++
++plugin_LTLIBRARIES = dect.la
++dect_la_SOURCES = \
++ plugin.c \
++ moduleinfo.h \
++ $(DISSECTOR_SRC) \
++ $(DISSECTOR_SUPPORT_SRC) \
++ $(DISSECTOR_INCLUDES)
++dect_la_LDFLAGS = -module -avoid-version
++dect_la_LIBADD = @PLUGIN_LIBS@
++
++# Libs must be cleared, or else libtool won't create a shared module.
++# If your module needs to be linked against any particular libraries,
++# add them here.
++LIBS =
++
++#
++# Build plugin.c, which contains the plugin version[] string, a
++# function plugin_register() that calls the register routines for all
++# protocols, and a function plugin_reg_handoff() that calls the handoff
++# registration routines for all protocols.
++#
++# We do this by scanning sources. If that turns out to be too slow,
++# maybe we could just require every .o file to have an register routine
++# of a given name (packet-aarp.o -> proto_register_aarp, etc.).
++#
++# Formatting conventions: The name of the proto_register_* routines an
++# proto_reg_handoff_* routines must start in column zero, or must be
++# preceded only by "void " starting in column zero, and must not be
++# inside #if.
++#
++# DISSECTOR_SRC is assumed to have all the files that need to be scanned.
++#
++# For some unknown reason, having a big "for" loop in the Makefile
++# to scan all the files doesn't work with some "make"s; they seem to
++# pass only the first few names in the list to the shell, for some
++# reason.
++#
++# Therefore, we have a script to generate the plugin.c file.
++# The shell script runs slowly, as multiple greps and seds are run
++# for each input file; this is especially slow on Windows. Therefore,
++# if Python is present (as indicated by PYTHON being defined), we run
++# a faster Python script to do that work instead.
++#
++# The first argument is the directory in which the source files live.
++# The second argument is "plugin", to indicate that we should build
++# a plugin.c file for a plugin.
++# All subsequent arguments are the files to scan.
++#
++plugin.c: $(DISSECTOR_SRC) $(top_srcdir)/tools/make-dissector-reg \
++ $(top_srcdir)/tools/make-dissector-reg.py
++ @if test -n $(PYTHON); then \
++ echo Making plugin.c with python ; \
++ $(PYTHON) $(top_srcdir)/tools/make-dissector-reg.py $(srcdir) \
++ plugin $(DISSECTOR_SRC) ; \
++ else \
++ echo Making plugin.c with shell script ; \
++ $(top_srcdir)/tools/make-dissector-reg $(srcdir) \
++ $(plugin_src) plugin $(DISSECTOR_SRC) ; \
++ fi
++
++#
++# Currently plugin.c can be included in the distribution because
++# we always build all protocol dissectors. We used to have to check
++# whether or not to build the snmp dissector. If we again need to
++# variably build something, making plugin.c non-portable, uncomment
++# the dist-hook line below.
++#
++# Oh, yuk. We don't want to include "plugin.c" in the distribution, as
++# its contents depend on the configuration, and therefore we want it
++# to be built when the first "make" is done; however, Automake insists
++# on putting *all* source into the distribution.
++#
++# We work around this by having a "dist-hook" rule that deletes
++# "plugin.c", so that "dist" won't pick it up.
++#
++#dist-hook:
++# @rm -f $(distdir)/plugin.c
++
++CLEANFILES = \
++ dect \
++ *~
++
++MAINTAINERCLEANFILES = \
++ Makefile.in \
++ dect.c
++
++EXTRA_DIST = \
++ Makefile.common \
++ Makefile.nmake \
++ moduleinfo.nmake \
++ plugin.rc.in
+diff --git a/plugins/dect/Makefile.common b/plugins/dect/Makefile.common
+new file mode 100644
+index 0000000..ecf26e3
+--- /dev/null
++++ b/plugins/dect/Makefile.common
+@@ -0,0 +1,39 @@
++# Makefile.common for H.223 plugin
++# Contains the stuff from Makefile.am and Makefile.nmake that is
++# a) common to both files and
++# b) portable between both files
++#
++# $Id: Makefile.common 18197 2006-05-21 05:12:17Z sahlberg $
++#
++# Wireshark - Network traffic analyzer
++# By Gerald Combs <gerald@wireshark.org>
++# Copyright 1998 Gerald Combs
++#
++# This program is free software; you can redistribute it and/or
++# modify it under the terms of the GNU General Public License
++# as published by the Free Software Foundation; either version 2
++# of the License, or (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++
++# the name of the plugin
++PLUGIN_NAME = dect
++
++# the dissector sources (without any helpers)
++DISSECTOR_SRC = \
++ dect.c
++
++# corresponding headers
++DISSECTOR_INCLUDES =
++
++# Dissector helpers. They're included in the source files in this
++# directory, but they're not dissectors themselves, i.e. they're not
++# used to generate "register.c").
++DISSECTOR_SUPPORT_SRC =
+diff --git a/plugins/dect/Makefile.in b/plugins/dect/Makefile.in
+new file mode 100644
+index 0000000..79bf131
+--- /dev/null
++++ b/plugins/dect/Makefile.in
+@@ -0,0 +1,765 @@
++# Makefile.in generated by automake 1.10.1 from Makefile.am.
++# @configure_input@
++
++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
++# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
++# This Makefile.in is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
++# PARTICULAR PURPOSE.
++
++@SET_MAKE@
++
++# Makefile.am
++# Automake file for H.223 plugin
++#
++# $Id: Makefile.am 21961 2007-05-27 18:35:55Z guy $
++#
++# Wireshark - Network traffic analyzer
++# By Gerald Combs <gerald@wireshark.org>
++# Copyright 1998 Gerald Combs
++#
++# This program is free software; you can redistribute it and/or
++# modify it under the terms of the GNU General Public License
++# as published by the Free Software Foundation; either version 2
++# of the License, or (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++#
++
++# Makefile.common for H.223 plugin
++# Contains the stuff from Makefile.am and Makefile.nmake that is
++# a) common to both files and
++# b) portable between both files
++#
++# $Id: Makefile.common 18197 2006-05-21 05:12:17Z sahlberg $
++#
++# Wireshark - Network traffic analyzer
++# By Gerald Combs <gerald@wireshark.org>
++# Copyright 1998 Gerald Combs
++#
++# This program is free software; you can redistribute it and/or
++# modify it under the terms of the GNU General Public License
++# as published by the Free Software Foundation; either version 2
++# of the License, or (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++
++VPATH = @srcdir@
++pkgdatadir = $(datadir)/@PACKAGE@
++pkglibdir = $(libdir)/@PACKAGE@
++pkgincludedir = $(includedir)/@PACKAGE@
++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
++install_sh_DATA = $(install_sh) -c -m 644
++install_sh_PROGRAM = $(install_sh) -c
++install_sh_SCRIPT = $(install_sh) -c
++INSTALL_HEADER = $(INSTALL_DATA)
++transform = $(program_transform_name)
++NORMAL_INSTALL = :
++PRE_INSTALL = :
++POST_INSTALL = :
++NORMAL_UNINSTALL = :
++PRE_UNINSTALL = :
++POST_UNINSTALL = :
++build_triplet = @build@
++host_triplet = @host@
++target_triplet = @target@
++DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.common \
++ $(srcdir)/Makefile.in
++subdir = plugins/dect
++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
++am__aclocal_m4_deps = $(top_srcdir)/aclocal-fallback/glib-2.0.m4 \
++ $(top_srcdir)/aclocal-fallback/glib.m4 \
++ $(top_srcdir)/aclocal-fallback/gtk-2.0.m4 \
++ $(top_srcdir)/aclocal-fallback/gtk.m4 \
++ $(top_srcdir)/aclocal-fallback/iconv.m4 \
++ $(top_srcdir)/aclocal-fallback/libgcrypt.m4 \
++ $(top_srcdir)/aclocal-fallback/libgnutls.m4 \
++ $(top_srcdir)/aclocal-fallback/libsmi.m4 \
++ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
++ $(ACLOCAL_M4)
++mkinstalldirs = $(install_sh) -d
++CONFIG_HEADER = $(top_builddir)/config.h
++CONFIG_CLEAN_FILES =
++am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
++am__vpath_adj = case $$p in \
++ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
++ *) f=$$p;; \
++ esac;
++am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
++am__installdirs = "$(DESTDIR)$(plugindir)"
++pluginLTLIBRARIES_INSTALL = $(INSTALL)
++LTLIBRARIES = $(plugin_LTLIBRARIES)
++dect_la_DEPENDENCIES =
++am__objects_1 = dect.lo
++am__objects_2 =
++am_dect_la_OBJECTS = plugin.lo $(am__objects_1) $(am__objects_2) \
++ $(am__objects_2)
++dect_la_OBJECTS = $(am_dect_la_OBJECTS)
++dect_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
++ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(dect_la_LDFLAGS) \
++ $(LDFLAGS) -o $@
++DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
++depcomp = $(SHELL) $(top_srcdir)/depcomp
++am__depfiles_maybe = depfiles
++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
++LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
++ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
++CCLD = $(CC)
++LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
++ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
++ $(LDFLAGS) -o $@
++SOURCES = $(dect_la_SOURCES)
++DIST_SOURCES = $(dect_la_SOURCES)
++ETAGS = etags
++CTAGS = ctags
++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
++ACLOCAL = @ACLOCAL@
++ADNS_LIBS = @ADNS_LIBS@
++AMTAR = @AMTAR@
++AR = @AR@
++AUTOCONF = @AUTOCONF@
++AUTOHEADER = @AUTOHEADER@
++AUTOMAKE = @AUTOMAKE@
++AWK = @AWK@
++CC = @CC@
++CCDEPMODE = @CCDEPMODE@
++CC_FOR_BUILD = @CC_FOR_BUILD@
++CFLAGS = @CFLAGS@
++CPP = @CPP@
++CPPFLAGS = @CPPFLAGS@
++CXX = @CXX@
++CXXCPP = @CXXCPP@
++CXXDEPMODE = @CXXDEPMODE@
++CXXFLAGS = @CXXFLAGS@
++CYGPATH_W = @CYGPATH_W@
++DEFS = @DEFS@
++DEPDIR = @DEPDIR@
++DOXYGEN = @DOXYGEN@
++DSYMUTIL = @DSYMUTIL@
++ECHO = @ECHO@
++ECHO_C = @ECHO_C@
++ECHO_N = @ECHO_N@
++ECHO_T = @ECHO_T@
++EGREP = @EGREP@
++ENABLE_STATIC = @ENABLE_STATIC@
++EXEEXT = @EXEEXT@
++F77 = @F77@
++FFLAGS = @FFLAGS@
++FLEX_PATH = @FLEX_PATH@
++FOP = @FOP@
++FRAMEWORKS = @FRAMEWORKS@
++GETOPT_C = @GETOPT_C@
++GETOPT_O = @GETOPT_O@
++GLIB_CFLAGS = @GLIB_CFLAGS@
++GLIB_CONFIG = @GLIB_CONFIG@
++GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
++GLIB_LIBS = @GLIB_LIBS@
++GLIB_MKENUMS = @GLIB_MKENUMS@
++GOBJECT_QUERY = @GOBJECT_QUERY@
++GREP = @GREP@
++GTK_CFLAGS = @GTK_CFLAGS@
++GTK_CONFIG = @GTK_CONFIG@
++GTK_LIBS = @GTK_LIBS@
++G_ASCII_STRCASECMP_C = @G_ASCII_STRCASECMP_C@
++G_ASCII_STRCASECMP_LO = @G_ASCII_STRCASECMP_LO@
++G_ASCII_STRCASECMP_O = @G_ASCII_STRCASECMP_O@
++G_ASCII_STRTOULL_C = @G_ASCII_STRTOULL_C@
++G_ASCII_STRTOULL_LO = @G_ASCII_STRTOULL_LO@
++G_ASCII_STRTOULL_O = @G_ASCII_STRTOULL_O@
++HAVE_BLESS = @HAVE_BLESS@
++HAVE_DOXYGEN = @HAVE_DOXYGEN@
++HAVE_DPKG_BUILDPACKAGE = @HAVE_DPKG_BUILDPACKAGE@
++HAVE_FOP = @HAVE_FOP@
++HAVE_HDIUTIL = @HAVE_HDIUTIL@
++HAVE_HHC = @HAVE_HHC@
++HAVE_OSX_PACKAGING = @HAVE_OSX_PACKAGING@
++HAVE_PKGMK = @HAVE_PKGMK@
++HAVE_PKGPROTO = @HAVE_PKGPROTO@
++HAVE_PKGTRANS = @HAVE_PKGTRANS@
++HAVE_RPM = @HAVE_RPM@
++HAVE_SVR4_PACKAGING = @HAVE_SVR4_PACKAGING@
++HAVE_XCODEBUILD = @HAVE_XCODEBUILD@
++HAVE_XMLLINT = @HAVE_XMLLINT@
++HAVE_XSLTPROC = @HAVE_XSLTPROC@
++HHC = @HHC@
++HTML_VIEWER = @HTML_VIEWER@
++INET_ATON_C = @INET_ATON_C@
++INET_ATON_LO = @INET_ATON_LO@
++INET_ATON_O = @INET_ATON_O@
++INET_NTOP_C = @INET_NTOP_C@
++INET_NTOP_LO = @INET_NTOP_LO@
++INET_NTOP_O = @INET_NTOP_O@
++INET_PTON_C = @INET_PTON_C@
++INET_PTON_LO = @INET_PTON_LO@
++INET_PTON_O = @INET_PTON_O@
++INSTALL = @INSTALL@
++INSTALL_DATA = @INSTALL_DATA@
++INSTALL_PROGRAM = @INSTALL_PROGRAM@
++INSTALL_SCRIPT = @INSTALL_SCRIPT@
++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
++KRB5_CONFIG = @KRB5_CONFIG@
++KRB5_LIBS = @KRB5_LIBS@
++LDFLAGS = @LDFLAGS@
++LDFLAGS_SHAREDLIB = @LDFLAGS_SHAREDLIB@
++LEX = @LEX@
++LEXDUMMY = @LEXDUMMY@
++LEXLIB = @LEXLIB@
++LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
++LIBCAP_LIBS = @LIBCAP_LIBS@
++LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
++LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
++LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
++LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@
++LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@
++LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@
++LIBICONV = @LIBICONV@
++LIBOBJS = @LIBOBJS@
++
++# Libs must be cleared, or else libtool won't create a shared module.
++# If your module needs to be linked against any particular libraries,
++# add them here.
++LIBS =
++LIBSMI_CFLAGS = @LIBSMI_CFLAGS@
++LIBSMI_LDFLAGS = @LIBSMI_LDFLAGS@
++LIBSMI_VERSION = @LIBSMI_VERSION@
++LIBTOOL = @LIBTOOL@
++LIBTOOL_DEPS = @LIBTOOL_DEPS@
++LN_S = @LN_S@
++LTLIBOBJS = @LTLIBOBJS@
++LUA_INCLUDES = @LUA_INCLUDES@
++LUA_LIBS = @LUA_LIBS@
++MAKEINFO = @MAKEINFO@
++MKDIR_P = @MKDIR_P@
++MKSTEMP_C = @MKSTEMP_C@
++MKSTEMP_O = @MKSTEMP_O@
++NMEDIT = @NMEDIT@
++NSL_LIBS = @NSL_LIBS@
++OBJEXT = @OBJEXT@
++PACKAGE = @PACKAGE@
++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
++PACKAGE_NAME = @PACKAGE_NAME@
++PACKAGE_STRING = @PACKAGE_STRING@
++PACKAGE_TARNAME = @PACKAGE_TARNAME@
++PACKAGE_VERSION = @PACKAGE_VERSION@
++PATH_SEPARATOR = @PATH_SEPARATOR@
++PCAP_LIBS = @PCAP_LIBS@
++PCRE_LIBS = @PCRE_LIBS@
++PERL = @PERL@
++PKG_CONFIG = @PKG_CONFIG@
++PLUGIN_LIBS = @PLUGIN_LIBS@
++POD2HTML = @POD2HTML@
++POD2MAN = @POD2MAN@
++PORTAUDIO_INCLUDES = @PORTAUDIO_INCLUDES@
++PORTAUDIO_LIBS = @PORTAUDIO_LIBS@
++PYTHON = @PYTHON@
++RANLIB = @RANLIB@
++SED = @SED@
++SET_MAKE = @SET_MAKE@
++SHELL = @SHELL@
++SOCKET_LIBS = @SOCKET_LIBS@
++SSL_LIBS = @SSL_LIBS@
++STRCASECMP_C = @STRCASECMP_C@
++STRCASECMP_O = @STRCASECMP_O@
++STRERROR_C = @STRERROR_C@
++STRERROR_O = @STRERROR_O@
++STRIP = @STRIP@
++STRNCASECMP_C = @STRNCASECMP_C@
++STRNCASECMP_O = @STRNCASECMP_O@
++STRPTIME_C = @STRPTIME_C@
++STRPTIME_O = @STRPTIME_O@
++VERSION = @VERSION@
++XMLLINT = @XMLLINT@
++XSLTPROC = @XSLTPROC@
++YACC = @YACC@
++YACCDUMMY = @YACCDUMMY@
++YFLAGS = @YFLAGS@
++abs_builddir = @abs_builddir@
++abs_srcdir = @abs_srcdir@
++abs_top_builddir = @abs_top_builddir@
++abs_top_srcdir = @abs_top_srcdir@
++ac_ct_CC = @ac_ct_CC@
++ac_ct_CXX = @ac_ct_CXX@
++ac_ct_F77 = @ac_ct_F77@
++ac_cv_wireshark_have_rpm = @ac_cv_wireshark_have_rpm@
++am__include = @am__include@
++am__leading_dot = @am__leading_dot@
++am__quote = @am__quote@
++am__tar = @am__tar@
++am__untar = @am__untar@
++bindir = @bindir@
++build = @build@
++build_alias = @build_alias@
++build_cpu = @build_cpu@
++build_os = @build_os@
++build_vendor = @build_vendor@
++builddir = @builddir@
++capinfos_bin = @capinfos_bin@
++capinfos_man = @capinfos_man@
++datadir = @datadir@
++datarootdir = @datarootdir@
++dftest_bin = @dftest_bin@
++docdir = @docdir@
++dumpcap_bin = @dumpcap_bin@
++dumpcap_man = @dumpcap_man@
++dvidir = @dvidir@
++editcap_bin = @editcap_bin@
++editcap_man = @editcap_man@
++exec_prefix = @exec_prefix@
++host = @host@
++host_alias = @host_alias@
++host_cpu = @host_cpu@
++host_os = @host_os@
++host_vendor = @host_vendor@
++htmldir = @htmldir@
++idl2wrs_bin = @idl2wrs_bin@
++idl2wrs_man = @idl2wrs_man@
++includedir = @includedir@
++infodir = @infodir@
++install_sh = @install_sh@
++libdir = @libdir@
++libexecdir = @libexecdir@
++localedir = @localedir@
++localstatedir = @localstatedir@
++mandir = @mandir@
++mergecap_bin = @mergecap_bin@
++mergecap_man = @mergecap_man@
++mkdir_p = @mkdir_p@
++oldincludedir = @oldincludedir@
++pdfdir = @pdfdir@
++plugindir = @plugindir@
++prefix = @prefix@
++program_transform_name = @program_transform_name@
++psdir = @psdir@
++randpkt_bin = @randpkt_bin@
++rawshark_bin = @rawshark_bin@
++rawshark_man = @rawshark_man@
++rdps_bin = @rdps_bin@
++sbindir = @sbindir@
++sharedstatedir = @sharedstatedir@
++srcdir = @srcdir@
++sysconfdir = @sysconfdir@
++target = @target@
++target_alias = @target_alias@
++target_cpu = @target_cpu@
++target_os = @target_os@
++target_vendor = @target_vendor@
++text2pcap_bin = @text2pcap_bin@
++text2pcap_man = @text2pcap_man@
++top_builddir = @top_builddir@
++top_srcdir = @top_srcdir@
++tshark_bin = @tshark_bin@
++tshark_man = @tshark_man@
++wireshark_SUBDIRS = @wireshark_SUBDIRS@
++wireshark_bin = @wireshark_bin@
++wireshark_man = @wireshark_man@
++wiresharkfilter_man = @wiresharkfilter_man@
++INCLUDES = -I$(top_srcdir) -I$(includedir)
++
++# the name of the plugin
++PLUGIN_NAME = dect
++
++# the dissector sources (without any helpers)
++DISSECTOR_SRC = \
++ dect.c
++
++
++# corresponding headers
++DISSECTOR_INCLUDES =
++
++# Dissector helpers. They're included in the source files in this
++# directory, but they're not dissectors themselves, i.e. they're not
++# used to generate "register.c").
++DISSECTOR_SUPPORT_SRC =
++@HAVE_WARNINGS_AS_ERRORS_TRUE@AM_CFLAGS = -Werror
++plugin_LTLIBRARIES = dect.la
++dect_la_SOURCES = \
++ plugin.c \
++ moduleinfo.h \
++ $(DISSECTOR_SRC) \
++ $(DISSECTOR_SUPPORT_SRC) \
++ $(DISSECTOR_INCLUDES)
++
++dect_la_LDFLAGS = -module -avoid-version
++dect_la_LIBADD = @PLUGIN_LIBS@
++
++#
++# Currently plugin.c can be included in the distribution because
++# we always build all protocol dissectors. We used to have to check
++# whether or not to build the snmp dissector. If we again need to
++# variably build something, making plugin.c non-portable, uncomment
++# the dist-hook line below.
++#
++# Oh, yuk. We don't want to include "plugin.c" in the distribution, as
++# its contents depend on the configuration, and therefore we want it
++# to be built when the first "make" is done; however, Automake insists
++# on putting *all* source into the distribution.
++#
++# We work around this by having a "dist-hook" rule that deletes
++# "plugin.c", so that "dist" won't pick it up.
++#
++#dist-hook:
++# @rm -f $(distdir)/plugin.c
++CLEANFILES = \
++ dect \
++ *~
++
++MAINTAINERCLEANFILES = \
++ Makefile.in \
++ dect.c
++
++EXTRA_DIST = \
++ Makefile.common \
++ Makefile.nmake \
++ moduleinfo.nmake \
++ plugin.rc.in
++
++all: all-am
++
++.SUFFIXES:
++.SUFFIXES: .c .lo .o .obj
++$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/Makefile.common $(am__configure_deps)
++ @for dep in $?; do \
++ case '$(am__configure_deps)' in \
++ *$$dep*) \
++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
++ && exit 0; \
++ exit 1;; \
++ esac; \
++ done; \
++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/dect/Makefile'; \
++ cd $(top_srcdir) && \
++ $(AUTOMAKE) --gnu plugins/dect/Makefile
++.PRECIOUS: Makefile
++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
++ @case '$?' in \
++ *config.status*) \
++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
++ *) \
++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
++ esac;
++
++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++
++$(top_srcdir)/configure: $(am__configure_deps)
++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++$(ACLOCAL_M4): $(am__aclocal_m4_deps)
++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
++ @$(NORMAL_INSTALL)
++ test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)"
++ @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
++ if test -f $$p; then \
++ f=$(am__strip_dir) \
++ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(pluginLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(plugindir)/$$f'"; \
++ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(pluginLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(plugindir)/$$f"; \
++ else :; fi; \
++ done
++
++uninstall-pluginLTLIBRARIES:
++ @$(NORMAL_UNINSTALL)
++ @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
++ p=$(am__strip_dir) \
++ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$p'"; \
++ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$p"; \
++ done
++
++clean-pluginLTLIBRARIES:
++ -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
++ @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
++ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
++ test "$$dir" != "$$p" || dir=.; \
++ echo "rm -f \"$${dir}/so_locations\""; \
++ rm -f "$${dir}/so_locations"; \
++ done
++dect.la: $(dect_la_OBJECTS) $(dect_la_DEPENDENCIES)
++ $(dect_la_LINK) -rpath $(plugindir) $(dect_la_OBJECTS) $(dect_la_LIBADD) $(LIBS)
++
++mostlyclean-compile:
++ -rm -f *.$(OBJEXT)
++
++distclean-compile:
++ -rm -f *.tab.c
++
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dect.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin.Plo@am__quote@
++
++.c.o:
++@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(COMPILE) -c $<
++
++.c.obj:
++@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
++
++.c.lo:
++@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
++
++mostlyclean-libtool:
++ -rm -f *.lo
++
++clean-libtool:
++ -rm -rf .libs _libs
++
++ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
++ END { if (nonempty) { for (i in files) print i; }; }'`; \
++ mkid -fID $$unique
++tags: TAGS
++
++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
++ $(TAGS_FILES) $(LISP)
++ tags=; \
++ here=`pwd`; \
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++ END { if (nonempty) { for (i in files) print i; }; }'`; \
++ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
++ test -n "$$unique" || unique=$$empty_fix; \
++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
++ $$tags $$unique; \
++ fi
++ctags: CTAGS
++CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
++ $(TAGS_FILES) $(LISP)
++ tags=; \
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++ END { if (nonempty) { for (i in files) print i; }; }'`; \
++ test -z "$(CTAGS_ARGS)$$tags$$unique" \
++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
++ $$tags $$unique
++
++GTAGS:
++ here=`$(am__cd) $(top_builddir) && pwd` \
++ && cd $(top_srcdir) \
++ && gtags -i $(GTAGS_ARGS) $$here
++
++distclean-tags:
++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
++
++distdir: $(DISTFILES)
++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++ list='$(DISTFILES)'; \
++ dist_files=`for file in $$list; do echo $$file; done | \
++ sed -e "s|^$$srcdirstrip/||;t" \
++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
++ case $$dist_files in \
++ */*) $(MKDIR_P) `echo "$$dist_files" | \
++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
++ sort -u` ;; \
++ esac; \
++ for file in $$dist_files; do \
++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
++ if test -d $$d/$$file; then \
++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
++ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
++ fi; \
++ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
++ else \
++ test -f $(distdir)/$$file \
++ || cp -p $$d/$$file $(distdir)/$$file \
++ || exit 1; \
++ fi; \
++ done
++check-am: all-am
++check: check-am
++all-am: Makefile $(LTLIBRARIES)
++installdirs:
++ for dir in "$(DESTDIR)$(plugindir)"; do \
++ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
++ done
++install: install-am
++install-exec: install-exec-am
++install-data: install-data-am
++uninstall: uninstall-am
++
++install-am: all-am
++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
++
++installcheck: installcheck-am
++install-strip:
++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
++ `test -z '$(STRIP)' || \
++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
++mostlyclean-generic:
++
++clean-generic:
++ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
++
++distclean-generic:
++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
++
++maintainer-clean-generic:
++ @echo "This command is intended for maintainers to use"
++ @echo "it deletes files that may require special tools to rebuild."
++ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
++clean: clean-am
++
++clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \
++ mostlyclean-am
++
++distclean: distclean-am
++ -rm -rf ./$(DEPDIR)
++ -rm -f Makefile
++distclean-am: clean-am distclean-compile distclean-generic \
++ distclean-tags
++
++dvi: dvi-am
++
++dvi-am:
++
++html: html-am
++
++info: info-am
++
++info-am:
++
++install-data-am: install-pluginLTLIBRARIES
++
++install-dvi: install-dvi-am
++
++install-exec-am:
++
++install-html: install-html-am
++
++install-info: install-info-am
++
++install-man:
++
++install-pdf: install-pdf-am
++
++install-ps: install-ps-am
++
++installcheck-am:
++
++maintainer-clean: maintainer-clean-am
++ -rm -rf ./$(DEPDIR)
++ -rm -f Makefile
++maintainer-clean-am: distclean-am maintainer-clean-generic
++
++mostlyclean: mostlyclean-am
++
++mostlyclean-am: mostlyclean-compile mostlyclean-generic \
++ mostlyclean-libtool
++
++pdf: pdf-am
++
++pdf-am:
++
++ps: ps-am
++
++ps-am:
++
++uninstall-am: uninstall-pluginLTLIBRARIES
++
++.MAKE: install-am install-strip
++
++.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
++ clean-libtool clean-pluginLTLIBRARIES ctags distclean \
++ distclean-compile distclean-generic distclean-libtool \
++ distclean-tags distdir dvi dvi-am html html-am info info-am \
++ install install-am install-data install-data-am install-dvi \
++ install-dvi-am install-exec install-exec-am install-html \
++ install-html-am install-info install-info-am install-man \
++ install-pdf install-pdf-am install-pluginLTLIBRARIES \
++ install-ps install-ps-am install-strip installcheck \
++ installcheck-am installdirs maintainer-clean \
++ maintainer-clean-generic mostlyclean mostlyclean-compile \
++ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
++ tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
++
++
++#
++# Build plugin.c, which contains the plugin version[] string, a
++# function plugin_register() that calls the register routines for all
++# protocols, and a function plugin_reg_handoff() that calls the handoff
++# registration routines for all protocols.
++#
++# We do this by scanning sources. If that turns out to be too slow,
++# maybe we could just require every .o file to have an register routine
++# of a given name (packet-aarp.o -> proto_register_aarp, etc.).
++#
++# Formatting conventions: The name of the proto_register_* routines an
++# proto_reg_handoff_* routines must start in column zero, or must be
++# preceded only by "void " starting in column zero, and must not be
++# inside #if.
++#
++# DISSECTOR_SRC is assumed to have all the files that need to be scanned.
++#
++# For some unknown reason, having a big "for" loop in the Makefile
++# to scan all the files doesn't work with some "make"s; they seem to
++# pass only the first few names in the list to the shell, for some
++# reason.
++#
++# Therefore, we have a script to generate the plugin.c file.
++# The shell script runs slowly, as multiple greps and seds are run
++# for each input file; this is especially slow on Windows. Therefore,
++# if Python is present (as indicated by PYTHON being defined), we run
++# a faster Python script to do that work instead.
++#
++# The first argument is the directory in which the source files live.
++# The second argument is "plugin", to indicate that we should build
++# a plugin.c file for a plugin.
++# All subsequent arguments are the files to scan.
++#
++plugin.c: $(DISSECTOR_SRC) $(top_srcdir)/tools/make-dissector-reg \
++ $(top_srcdir)/tools/make-dissector-reg.py
++ @if test -n $(PYTHON); then \
++ echo Making plugin.c with python ; \
++ $(PYTHON) $(top_srcdir)/tools/make-dissector-reg.py $(srcdir) \
++ plugin $(DISSECTOR_SRC) ; \
++ else \
++ echo Making plugin.c with shell script ; \
++ $(top_srcdir)/tools/make-dissector-reg $(srcdir) \
++ $(plugin_src) plugin $(DISSECTOR_SRC) ; \
++ fi
++# Tell versions [3.59,3.63) of GNU make to not export all variables.
++# Otherwise a system limit (for SysV at least) may be exceeded.
++.NOEXPORT:
+diff --git a/plugins/dect/Makefile.nmake b/plugins/dect/Makefile.nmake
+new file mode 100644
+index 0000000..6f0cfe4
+--- /dev/null
++++ b/plugins/dect/Makefile.nmake
+@@ -0,0 +1,96 @@
++# Makefile.nmake
++# nmake file for Wireshark plugin
++#
++# $Id: Makefile.nmake 21963 2007-05-27 18:56:39Z guy $
++#
++
++include ..\..\config.nmake
++include moduleinfo.nmake
++
++include Makefile.common
++
++CFLAGS=/WX /DHAVE_CONFIG_H /I../.. /I../../wiretap $(GLIB_CFLAGS) \
++ /I$(PCAP_DIR)\include -D_U_="" $(LOCAL_CFLAGS)
++
++LDFLAGS = $(PLUGIN_LDFLAGS)
++
++!IFDEF ENABLE_LIBWIRESHARK
++LINK_PLUGIN_WITH=..\..\epan\libwireshark.lib
++CFLAGS=/DHAVE_WIN32_LIBWIRESHARK_LIB /D_NEED_VAR_IMPORT_ $(CFLAGS)
++
++DISSECTOR_OBJECTS = $(DISSECTOR_SRC:.c=.obj)
++
++DISSECTOR_SUPPORT_OBJECTS = $(DISSECTOR_SUPPORT_SRC:.c=.obj)
++
++OBJECTS = $(DISSECTOR_OBJECTS) $(DISSECTOR_SUPPORT_OBJECTS) plugin.obj
++
++RESOURCE=$(PLUGIN_NAME).res
++
++all: $(PLUGIN_NAME).dll
++
++$(PLUGIN_NAME).rc : moduleinfo.nmake
++ sed -e s/@PLUGIN_NAME@/$(PLUGIN_NAME)/ \
++ -e s/@RC_MODULE_VERSION@/$(RC_MODULE_VERSION)/ \
++ -e s/@RC_VERSION@/$(RC_VERSION)/ \
++ -e s/@MODULE_VERSION@/$(MODULE_VERSION)/ \
++ -e s/@PACKAGE@/$(PACKAGE)/ \
++ -e s/@VERSION@/$(VERSION)/ \
++ -e s/@MSVC_VARIANT@/$(MSVC_VARIANT)/ \
++ < plugin.rc.in > $@
++
++$(PLUGIN_NAME).dll $(PLUGIN_NAME).exp $(PLUGIN_NAME).lib : $(OBJECTS) $(LINK_PLUGIN_WITH) $(RESOURCE)
++ link -dll /out:$(PLUGIN_NAME).dll $(LDFLAGS) $(OBJECTS) $(LINK_PLUGIN_WITH) \
++ $(GLIB_LIBS) $(RESOURCE)
++
++#
++# Build plugin.c, which contains the plugin version[] string, a
++# function plugin_register() that calls the register routines for all
++# protocols, and a function plugin_reg_handoff() that calls the handoff
++# registration routines for all protocols.
++#
++# We do this by scanning sources. If that turns out to be too slow,
++# maybe we could just require every .o file to have an register routine
++# of a given name (packet-aarp.o -> proto_register_aarp, etc.).
++#
++# Formatting conventions: The name of the proto_register_* routines an
++# proto_reg_handoff_* routines must start in column zero, or must be
++# preceded only by "void " starting in column zero, and must not be
++# inside #if.
++#
++# DISSECTOR_SRC is assumed to have all the files that need to be scanned.
++#
++# For some unknown reason, having a big "for" loop in the Makefile
++# to scan all the files doesn't work with some "make"s; they seem to
++# pass only the first few names in the list to the shell, for some
++# reason.
++#
++# Therefore, we have a script to generate the plugin.c file.
++# The shell script runs slowly, as multiple greps and seds are run
++# for each input file; this is especially slow on Windows. Therefore,
++# if Python is present (as indicated by PYTHON being defined), we run
++# a faster Python script to do that work instead.
++#
++# The first argument is the directory in which the source files live.
++# The second argument is "plugin", to indicate that we should build
++# a plugin.c file for a plugin.
++# All subsequent arguments are the files to scan.
++#
++plugin.c: $(DISSECTOR_SRC) ../../tools/make-dissector-reg.py ../../tools/make-dissector-reg
++!IFDEF PYTHON
++ @echo Making plugin.c (using python)
++ @$(PYTHON) "../../tools/make-dissector-reg.py" . plugin $(DISSECTOR_SRC)
++!ELSE
++ @echo Making plugin.c (using sh)
++ @$(SH) ../../tools/make-dissector-reg . plugin $(DISSECTOR_SRC)
++!ENDIF
++
++!ENDIF
++
++clean:
++ rm -f $(OBJECTS) $(RESOURCE) plugin.c *.pdb \
++ $(PLUGIN_NAME).dll $(PLUGIN_NAME).dll.manifest $(PLUGIN_NAME).lib \
++ $(PLUGIN_NAME).exp $(PLUGIN_NAME).rc
++
++distclean: clean
++
++maintainer-clean: distclean
+diff --git a/plugins/dect/dect.c b/plugins/dect/dect.c
+new file mode 100644
+index 0000000..11a3972
+--- /dev/null
++++ b/plugins/dect/dect.c
+@@ -0,0 +1,1919 @@
++#ifdef HAVE_CONFIG_H
++# include "config.h"
++#endif
++
++#include <epan/packet.h>
++#include <epan/prefs.h>
++#include <epan/etypes.h>
++#include <string.h>
++
++#define ETHERTYPE_DECT 0x2323 //sollte später in epan/etypes.h definiert werden
++
++guint16 calc_rcrc(guint8* data);
++guint8 calc_xcrc(guint8* data,guint8 length);
++unsigned char getbit(guint8 *data,int bit);
++void setbit(guint8 *data,int bit,guint8 value);
++
++void proto_register_dect();
++void proto_reg_handoff_dect();
++static void dissect_dect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
++
++//scramble table
++guint8 scrt[8][31]=
++{
++ {0x3b,0xcd,0x21,0x5c,0x77,0x9a,0x42,0xb8,0xef,0x34,0x85,0x71,0xde,0x69,0x0a,0xe3,0xbc,0xd2,0x15,0xc7,0x79,0xa4,0x2b,0x8e,0xf3,0x48,0x57,0x1d,0xe6,0x90,0xae},
++ {0x32,0xde,0xa2,0x76,0x65,0xbd,0x44,0xec,0xcb,0x7a,0x89,0xd9,0x96,0xf5,0x13,0xb3,0x2d,0xea,0x27,0x66,0x5b,0xd4,0x4e,0xcc,0xb7,0xa8,0x9d,0x99,0x6f,0x51,0x3b},
++ {0x2d,0xea,0x27,0x78,0x5b,0xd4,0x4e,0xf0,0xb7,0xa8,0x9d,0xe1,0x6f,0x51,0x3b,0xc2,0xde,0xa2,0x77,0x85,0xbd,0x44,0xef,0x0b,0x7a,0x89,0xde,0x16,0xf5,0x13,0xbc},
++ {0x27,0x79,0xa4,0x2a,0x4e,0xf3,0x48,0x54,0x9d,0xe6,0x90,0xa9,0x3b,0xcd,0x21,0x52,0x77,0x9a,0x42,0xa4,0xef,0x34,0x85,0x49,0xde,0x69,0x0a,0x93,0xbc,0xd2,0x15},
++ {0x19,0x6f,0x51,0x3a,0x32,0xde,0xa2,0x74,0x65,0xbd,0x44,0xe8,0xcb,0x7a,0x89,0xd1,0x96,0xf5,0x13,0xa3,0x2d,0xea,0x27,0x46,0x5b,0xd4,0x4e,0x8c,0xb7,0xa8,0x9d},
++ {0x13,0xbc,0xd2,0x14,0x27,0x79,0xa4,0x28,0x4e,0xf3,0x48,0x50,0x9d,0xe6,0x90,0xa1,0x3b,0xcd,0x21,0x42,0x77,0x9a,0x42,0x84,0xef,0x34,0x85,0x09,0xde,0x69,0x0a},
++ {0x0c,0xb7,0xa8,0x9c,0x19,0x6f,0x51,0x38,0x32,0xde,0xa2,0x70,0x65,0xbd,0x44,0xe0,0xcb,0x7a,0x89,0xc1,0x96,0xf5,0x13,0x83,0x2d,0xea,0x27,0x06,0x5b,0xd4,0x4e},
++ {0x79,0xa4,0x2b,0xb0,0xf3,0x48,0x57,0x61,0xe6,0x90,0xae,0xc3,0xcd,0x21,0x5d,0x87,0x9a,0x42,0xbb,0x0f,0x34,0x85,0x76,0x1e,0x69,0x0a,0xec,0x3c,0xd2,0x15,0xd8}
++};
++
++
++#ifndef BOOL
++# define BOOL int
++#endif
++
++struct dect_afield
++{
++ guint8 Header;
++ guint8 Tail[5];
++ guint16 RCRC;
++};
++
++struct dect_bfield
++{
++ guint8 Data[128];
++ guint8 Length;
++};
++
++void dissect_decttype(BOOL type,struct dect_afield *pkt_afield,struct dect_bfield *pkt_bfield,packet_info *pinfo,guint8 *pkt_ptr,tvbuff_t *tvb,proto_item *ti,proto_tree *DectTree);
++gint dissect_bfield(BOOL type,struct dect_afield *pkt_afield,struct dect_bfield *pkt_bfield,packet_info *pinfo,guint8 *pkt_ptr,tvbuff_t *tvb,proto_item *ti,proto_tree *DectTree,gint offset);
++
++
++
++static int proto_dect = -1;
++static dissector_handle_t dect_handle;
++
++static int proto_dect2 = -1;
++
++
++static gint subtree_dect = -1;
++static gint subtree_afield = -1;
++static gint subtree_ahead = -1;
++static gint subtree_atail = -1;
++static gint subtree_aqt = -1;
++
++static gint subtree_bfield = -1;
++
++
++static int hf_dect_transceivermode = -1;
++static int hf_dect_preamble = -1;
++static int hf_dect_type = -1;
++static int hf_dect_channel = -1;
++static int hf_dect_framenumber = -1;
++static int hf_dect_rssi = -1;
++static int hf_dect_slot = -1;
++static int hf_dect_A = -1;
++static int hf_dect_A_Head = -1;
++static int hf_dect_A_Head_TA = -1;
++static int hf_dect_A_Head_Q1 = -1;
++static int hf_dect_A_Head_BA = -1;
++static int hf_dect_A_Head_Q2 = -1;
++static int hf_dect_A_Tail = -1;
++static int hf_dect_A_Tail_Nt = -1;
++static int hf_dect_A_Tail_Qt_Qh = -1;
++static int hf_dect_A_Tail_Qt_0_Sn = -1;
++static int hf_dect_A_Tail_Qt_0_Nr = -1;
++static int hf_dect_A_Tail_Qt_0_Sp = -1;
++static int hf_dect_A_Tail_Qt_0_Esc = -1;
++static int hf_dect_A_Tail_Qt_0_Txs = -1;
++static int hf_dect_A_Tail_Qt_0_Mc = -1;
++static int hf_dect_A_Tail_Qt_0_Spr1 = -1;
++static int hf_dect_A_Tail_Qt_0_Cn = -1;
++static int hf_dect_A_Tail_Qt_0_Spr2 = -1;
++static int hf_dect_A_Tail_Qt_0_PSCN = -1;
++static int hf_dect_A_Tail_Qt_3_A12 = -1;
++static int hf_dect_A_Tail_Qt_3_A13 = -1;
++static int hf_dect_A_Tail_Qt_3_A14 = -1;
++static int hf_dect_A_Tail_Qt_3_A15 = -1;
++static int hf_dect_A_Tail_Qt_3_A16 = -1;
++static int hf_dect_A_Tail_Qt_3_A17 = -1;
++static int hf_dect_A_Tail_Qt_3_A18 = -1;
++static int hf_dect_A_Tail_Qt_3_A19 = -1;
++static int hf_dect_A_Tail_Qt_3_A20 = -1;
++static int hf_dect_A_Tail_Qt_3_A21 = -1;
++static int hf_dect_A_Tail_Qt_3_A22 = -1;
++static int hf_dect_A_Tail_Qt_3_A23 = -1;
++static int hf_dect_A_Tail_Qt_3_A24 = -1;
++static int hf_dect_A_Tail_Qt_3_A25 = -1;
++static int hf_dect_A_Tail_Qt_3_A26 = -1;
++static int hf_dect_A_Tail_Qt_3_A27 = -1;
++static int hf_dect_A_Tail_Qt_3_A28 = -1;
++static int hf_dect_A_Tail_Qt_3_A29 = -1;
++static int hf_dect_A_Tail_Qt_3_A30 = -1;
++static int hf_dect_A_Tail_Qt_3_A31 = -1;
++static int hf_dect_A_Tail_Mt_Mh = -1;
++static int hf_dect_A_Tail_Mt_BasicConCtrl = -1;
++static int hf_dect_A_Tail_Mt_Encr_Cmd1 = -1;
++static int hf_dect_A_Tail_Mt_Encr_Cmd2 = -1;
++static int hf_dect_A_Tail_Pt_ExtFlag = -1;
++static int hf_dect_A_Tail_Pt_SDU = -1;
++static int hf_dect_A_Tail_Pt_InfoType = -1;
++static int hf_dect_A_Tail_Pt_Fill_Fillbits = -1;
++static int hf_dect_A_Tail_Pt_Bearer_Sn = -1;
++static int hf_dect_A_Tail_Pt_Bearer_Cn = -1;
++static int hf_dect_A_Tail_Pt_Bearer_Sp = -1;
++
++static int hf_dect_A_RCRC = -1;
++
++
++static int hf_dect_B = -1;
++static int hf_dect_B_Data = -1;
++static int hf_dect_B_XCRC = -1;
++
++
++const value_string tranceiver_mode[]=
++{
++ {0,"Receive"},
++ {1,"Send"},
++ {0,NULL}
++};
++
++
++const value_string TA_vals[]=
++{
++ {0,"Ct Next Data Packet"},
++ {1,"Ct First Data Packet"},
++ {2,"Nt Identities Information on Connectionless Bearer"},
++ {3,"Nt Identities Information"},
++ {4,"Qt Multiframe Synchronisation and System Information"},
++ {5,"Escape"},
++ {6,"Mt MAC Layer Control"},
++ {7,"Pt Paging Tail"},
++ {0,NULL}
++};
++
++const value_string BA_vals[]=
++{
++ {0,"U-Type, In, SIn or Ip Packet No. 0 or No Valid Ip_error_detect Channel Data"},
++ {1,"U-Type, Ip_error_detect or Ip Packet No. 1 or SIn or No Valid In Channel Data"},
++ {2,"Double-Slot Required / E-Type, all Cf or CLf, Packet No. 0"},
++ {3,"E-Type, All Cf, Packet No. 1"},
++ {4,"Half-Slot Required / E-Type, not all Cf or CLf, Cf Packet No. 0"},
++ {5,"E-Type, not all Cf, Cf Packet No. 1"},
++ {6,"E-Type, All MAC control (unnumbered)"},
++ {7,"No B-Field"},
++ {0,NULL}
++};
++
++
++const value_string QTHead_vals[]=
++{
++ {0,"Static System Info"},
++ {1,"Static System Info"},
++ {2,"Extended RF Carriers Part 1"},
++ {3,"Fixed Part Capabilities"},
++ {4,"Extended Fixed Part Capabilities"},
++ {5,"SARI List Contents"},
++ {6,"Multi-Frame No."},
++ {7,"Escape"},
++ {8,"Obsolete"},
++ {9,"Extended RF Carriers Part 2"},
++ {10,"Reserved(?)"},
++ {11,"Transmit Information(?)"},
++ {12,"Reserved"},
++ {13,"Reserved"},
++ {14,"Reserved"},
++ {15,"Reserved"},
++ {0,NULL}
++};
++
++const value_string QTNormalReverse_vals[]=
++{
++ {0,"Normal RFP Transmit Half-Frame"},
++ {1,"Normal PP Transmit Half-Frame"},
++ {0,NULL}
++};
++
++const value_string QTSlotNumber_vals[]=
++{
++ {0,"Slot Pair 0/12"},
++ {1,"Slot Pair 1/13"},
++ {2,"Slot Pair 2/14"},
++ {3,"Slot Pair 3/15"},
++ {4,"Slot Pair 4/16"},
++ {5,"Slot Pair 5/17"},
++ {6,"Slot Pair 6/18"},
++ {7,"Slot Pair 7/19"},
++ {8,"Slot Pair 8/20"},
++ {9,"Slot Pair 9/21"},
++ {10,"Slot Pair 10/22"},
++ {11,"Slot Pair 11/23"},
++ {12,"Reserved"},
++ {13,"Reserved"},
++ {14,"Reserved"},
++ {15,"Reserved"},
++ {0,NULL}
++};
++
++const value_string QTStartPosition_vals[]=
++{
++ {0,"S-Field starts at Bit F0"},
++ {1,"Reserved for Future Use"},
++ {2,"S-Field starts at Bit F240"},
++ {3,"Reserved for Future Use"},
++ {0,NULL}
++};
++
++const value_string QTEscape_vals[]=
++{
++ {0,"No QT Escape is broadcast"},
++ {1,"The QT Escape is broadcast"},
++ {0,NULL}
++};
++
++const value_string QTTranceiver_vals[]=
++{
++ {0,"RFP has 1 Transceiver"},
++ {1,"RFP has 2 Transceiver"},
++ {2,"RFP has 3 Transceiver"},
++ {3,"RFP has 4 or more Transceiver"},
++ {0,NULL}
++};
++
++const value_string QTExtendedCarrier_vals[]=
++{
++ {0,"No Extended RF Carrier Information Message"},
++ {1,"Extended RF Carrier Information Message shall be transmitted in the next Multiframe"},
++ {0,NULL}
++};
++
++const value_string QTSpr_vals[]=
++{
++ {0,"OK"},
++ {1,"Reserved"},
++ {2,"Reserved"},
++ {3,"Reserved"},
++ {0,NULL}
++};
++
++
++const value_string QTCarrierNumber_vals[]=
++{
++ {0,"RF Carrier 0"},
++ {1,"RF Carrier 1"},
++ {2,"RF Carrier 2"},
++ {3,"RF Carrier 3"},
++ {4,"RF Carrier 4"},
++ {5,"RF Carrier 5"},
++ {6,"RF Carrier 6"},
++ {7,"RF Carrier 7"},
++ {8,"RF Carrier 8"},
++ {9,"RF Carrier 9"},
++ {10,"RF Carrier 10"},
++ {11,"RF Carrier 11"},
++ {12,"RF Carrier 12"},
++ {13,"RF Carrier 13"},
++ {14,"RF Carrier 14"},
++ {15,"RF Carrier 15"},
++ {16,"RF Carrier 16"},
++ {17,"RF Carrier 17"},
++ {18,"RF Carrier 18"},
++ {19,"RF Carrier 19"},
++ {20,"RF Carrier 20"},
++ {21,"RF Carrier 21"},
++ {22,"RF Carrier 22"},
++ {23,"RF Carrier 23"},
++ {24,"RF Carrier 24"},
++ {25,"RF Carrier 25"},
++ {26,"RF Carrier 26"},
++ {27,"RF Carrier 27"},
++ {28,"RF Carrier 28"},
++ {29,"RF Carrier 29"},
++ {30,"RF Carrier 30"},
++ {31,"RF Carrier 31"},
++ {32,"RF Carrier 32"},
++ {33,"RF Carrier 33"},
++ {34,"RF Carrier 34"},
++ {35,"RF Carrier 35"},
++ {36,"RF Carrier 36"},
++ {37,"RF Carrier 37"},
++ {38,"RF Carrier 38"},
++ {39,"RF Carrier 39"},
++ {40,"RF Carrier 40"},
++ {41,"RF Carrier 41"},
++ {42,"RF Carrier 42"},
++ {43,"RF Carrier 43"},
++ {44,"RF Carrier 44"},
++ {45,"RF Carrier 45"},
++ {46,"RF Carrier 46"},
++ {47,"RF Carrier 47"},
++ {48,"RF Carrier 48"},
++ {49,"RF Carrier 49"},
++ {50,"RF Carrier 50"},
++ {51,"RF Carrier 51"},
++ {52,"RF Carrier 52"},
++ {53,"RF Carrier 53"},
++ {54,"RF Carrier 54"},
++ {55,"RF Carrier 55"},
++ {56,"RF Carrier 56"},
++ {57,"RF Carrier 57"},
++ {58,"RF Carrier 58"},
++ {59,"RF Carrier 59"},
++ {60,"RF Carrier 60"},
++ {61,"RF Carrier 61"},
++ {62,"RF Carrier 62"},
++ {63,"RF Carrier 63"},
++ {0,NULL}
++};
++
++const value_string QTScanCarrierNum_vals[]=
++{
++ {0,"Primary Scan next on RF Carrier 0"},
++ {1,"Primary Scan next on RF Carrier 1"},
++ {2,"Primary Scan next on RF Carrier 2"},
++ {3,"Primary Scan next on RF Carrier 3"},
++ {4,"Primary Scan next on RF Carrier 4"},
++ {5,"Primary Scan next on RF Carrier 5"},
++ {6,"Primary Scan next on RF Carrier 6"},
++ {7,"Primary Scan next on RF Carrier 7"},
++ {8,"Primary Scan next on RF Carrier 8"},
++ {9,"Primary Scan next on RF Carrier 9"},
++ {10,"Primary Scan next on RF Carrier 10"},
++ {11,"Primary Scan next on RF Carrier 11"},
++ {12,"Primary Scan next on RF Carrier 12"},
++ {13,"Primary Scan next on RF Carrier 13"},
++ {14,"Primary Scan next on RF Carrier 14"},
++ {15,"Primary Scan next on RF Carrier 15"},
++ {16,"Primary Scan next on RF Carrier 16"},
++ {17,"Primary Scan next on RF Carrier 17"},
++ {18,"Primary Scan next on RF Carrier 18"},
++ {19,"Primary Scan next on RF Carrier 19"},
++ {20,"Primary Scan next on RF Carrier 20"},
++ {21,"Primary Scan next on RF Carrier 21"},
++ {22,"Primary Scan next on RF Carrier 22"},
++ {23,"Primary Scan next on RF Carrier 23"},
++ {24,"Primary Scan next on RF Carrier 24"},
++ {25,"Primary Scan next on RF Carrier 25"},
++ {26,"Primary Scan next on RF Carrier 26"},
++ {27,"Primary Scan next on RF Carrier 27"},
++ {28,"Primary Scan next on RF Carrier 28"},
++ {29,"Primary Scan next on RF Carrier 29"},
++ {30,"Primary Scan next on RF Carrier 30"},
++ {31,"Primary Scan next on RF Carrier 31"},
++ {32,"Primary Scan next on RF Carrier 32"},
++ {33,"Primary Scan next on RF Carrier 33"},
++ {34,"Primary Scan next on RF Carrier 34"},
++ {35,"Primary Scan next on RF Carrier 35"},
++ {36,"Primary Scan next on RF Carrier 36"},
++ {37,"Primary Scan next on RF Carrier 37"},
++ {38,"Primary Scan next on RF Carrier 38"},
++ {39,"Primary Scan next on RF Carrier 39"},
++ {40,"Primary Scan next on RF Carrier 40"},
++ {41,"Primary Scan next on RF Carrier 41"},
++ {42,"Primary Scan next on RF Carrier 42"},
++ {43,"Primary Scan next on RF Carrier 43"},
++ {44,"Primary Scan next on RF Carrier 44"},
++ {45,"Primary Scan next on RF Carrier 45"},
++ {46,"Primary Scan next on RF Carrier 46"},
++ {47,"Primary Scan next on RF Carrier 47"},
++ {48,"Primary Scan next on RF Carrier 48"},
++ {49,"Primary Scan next on RF Carrier 49"},
++ {50,"Primary Scan next on RF Carrier 50"},
++ {51,"Primary Scan next on RF Carrier 51"},
++ {52,"Primary Scan next on RF Carrier 52"},
++ {53,"Primary Scan next on RF Carrier 53"},
++ {54,"Primary Scan next on RF Carrier 54"},
++ {55,"Primary Scan next on RF Carrier 55"},
++ {56,"Primary Scan next on RF Carrier 56"},
++ {57,"Primary Scan next on RF Carrier 57"},
++ {58,"Primary Scan next on RF Carrier 58"},
++ {59,"Primary Scan next on RF Carrier 59"},
++ {60,"Primary Scan next on RF Carrier 60"},
++ {61,"Primary Scan next on RF Carrier 61"},
++ {62,"Primary Scan next on RF Carrier 62"},
++ {63,"Primary Scan next on RF Carrier 63"},
++ {0,NULL}
++};
++
++
++const value_string Qt_A12_vals[]=
++{
++ {0,""},
++ {1,"Extended FP Info"},
++ {0,NULL}
++};
++
++const value_string Qt_A13_vals[]=
++{
++ {0,""},
++ {1,"Double Duplex Bearer Connections"},
++ {0,NULL}
++};
++
++const value_string Qt_A14_vals[]=
++{
++ {0,""},
++ {1,"Reserved"},
++ {0,NULL}
++};
++
++const value_string Qt_A15_vals[]=
++{
++ {0,""},
++ {1,"Double Slot"},
++ {0,NULL}
++};
++
++const value_string Qt_A16_vals[]=
++{
++ {0,""},
++ {1,"Half Slot"},
++ {0,NULL}
++};
++
++const value_string Qt_A17_vals[]=
++{
++ {0,""},
++ {1,"Full Slot"},
++ {0,NULL}
++};
++
++const value_string Qt_A18_vals[]=
++{
++ {0,""},
++ {1,"Frequency Control"},
++ {0,NULL}
++};
++
++const value_string Qt_A19_vals[]=
++{
++ {0,""},
++ {1,"Page Repetition"},
++ {0,NULL}
++};
++
++const value_string Qt_A20_vals[]=
++{
++ {0,""},
++ {1,"C/O Setup on Dummy allowed"},
++ {0,NULL}
++};
++
++const value_string Qt_A21_vals[]=
++{
++ {0,""},
++ {1,"C/L Uplink"},
++ {0,NULL}
++};
++
++const value_string Qt_A22_vals[]=
++{
++ {0,""},
++ {1,"C/L Downlink"},
++ {0,NULL}
++};
++
++const value_string Qt_A23_vals[]=
++{
++ {0,""},
++ {1,"Basic A-Field Set-Up"},
++ {0,NULL}
++};
++
++const value_string Qt_A24_vals[]=
++{
++ {0,""},
++ {1,"Advanced A-Field Set-Up"},
++ {0,NULL}
++};
++
++const value_string Qt_A25_vals[]=
++{
++ {0,""},
++ {1,"B-field Set-Up"},
++ {0,NULL}
++};
++
++const value_string Qt_A26_vals[]=
++{
++ {0,""},
++ {1,"Cf Messages"},
++ {0,NULL}
++};
++
++const value_string Qt_A27_vals[]=
++{
++ {0,""},
++ {1,"In Minimum Delay"},
++ {0,NULL}
++};
++
++const value_string Qt_A28_vals[]=
++{
++ {0,""},
++ {1,"In Normal Delay"},
++ {0,NULL}
++};
++
++const value_string Qt_A29_vals[]=
++{
++ {0,""},
++ {1,"Ip Error Detection"},
++ {0,NULL}
++};
++
++const value_string Qt_A30_vals[]=
++{
++ {0,""},
++ {1,"Ip Error Correction"},
++ {0,NULL}
++};
++
++const value_string Qt_A31_vals[]=
++{
++ {0,""},
++ {1,"Multibearer Connections"},
++ {0,NULL}
++};
++
++
++
++const value_string MTHead_vals[]=
++{
++ {0,"Basic Connection Control"},
++ {1,"Advanced Connection Control"},
++ {2,"MAC Layer Test Messages"},
++ {3,"Quality Control"},
++ {4,"Broadcast and Connectionless Services"},
++ {5,"Encryption Control"},
++ {6,"Tail for use with the first Transmission of a B-Field \"bearer request\" Message"},
++ {7,"Escape"},
++ {8,"TARI Message"},
++ {9,"REP Connection Control"},
++ {10,"Reserved"},
++ {11,"Reserved"},
++ {12,"Reserved"},
++ {13,"Reserved"},
++ {14,"Reserved"},
++ {15,"Reserved"},
++ {0,NULL}
++};
++
++const value_string MTBasicConCtrl_vals[]=
++{
++ {0,"Access Request"},
++ {1,"Bearer Handover Request"},
++ {2,"Connection Handover Request"},
++ {3,"Unconfirmed Access Request"},
++ {4,"Bearer Confirm"},
++ {5,"Wait"},
++ {6,"Attributes T Request"},
++ {7,"Attributes T Confirm"},
++ {8,"Reserved"},
++ {9,"Reserved"},
++ {10,"Reserved"},
++ {11,"Reserved"},
++ {12,"Reserved"},
++ {13,"Reserved"},
++ {14,"Reserved"},
++ {15,"Release"},
++ {0,NULL}
++};
++
++const value_string MTEncrCmd1_vals[]=
++{
++ {0,"Start Encryption"},
++ {1,"Stop Encryption"},
++ {2,"reserved"},
++ {3,"reserved"},
++ {0,NULL}
++};
++
++const value_string MTEncrCmd2_vals[]=
++{
++ {0,"Request"},
++ {1,"Confirm"},
++ {2,"Grant"},
++ {3,"Reserved"},
++ {0,NULL}
++};
++
++const value_string PTExtFlag_vals[]=
++{
++ {0,"bla1"},
++ {1,"bla2"},
++ {0,NULL}
++};
++
++const value_string PTSDU_vals[]=
++{
++ {0,"Zero Length Page"},
++ {1,"Short Page"},
++ {2,"Full Page"},
++ {3,"MAC resume page"},
++ {4,"Not the last 36 Bits of a Long Page"},
++ {5,"The first 36 Bits of a Long Page"},
++ {6,"The last 36 Bits of a Long Page"},
++ {7,"All of a Long Page (first and last)"},
++ {0,NULL}
++};
++
++const value_string PTInfoType_vals[]=
++{
++ {0,"Fill Bits"},
++ {1,"Blind Full Slot Information for Circuit Mode Service"},
++ {2,"Other Bearer"},
++ {3,"Recommended Other Bearer"},
++ {4,"Good RFP Bearer"},
++ {5,"Dummy or connectionless Bearer Position"},
++ {6,"Extended Modulation Types"},
++ {7,"Escape"},
++ {8,"Dummy or connectionless Bearer Marker"},
++ {9,"Bearer Handover/Replacement Information"},
++ {10,"RFP Status and Modulation Types"},
++ {11,"Active Carriers"},
++ {12,"Connectionless Bearer Position"},
++ {13,"RFP Power Level"},
++ {14,"Blind Double Slot/RFP-FP Interface Resource Information"},
++ {15,"Blind Full Slot Information for Packet Mode Service"},
++ {0,NULL}
++};
++
++
++const value_string PTRFPPower_vals[]=
++{
++ {0,"0 dBm"},
++ {1,"2 dBm"},
++ {2,"4 dBm"},
++ {3,"6 dBm"},
++ {4,"8 dBm"},
++ {5,"10 dBm"},
++ {6,"12 dBm"},
++ {7,"14 dBm"},
++ {8,"16 dBm"},
++ {9,"18 dBm"},
++ {10,"20 dBm"},
++ {11,"22 dBm"},
++ {12,"24 dBm"},
++ {13,"26 dBm"},
++ {14,"28 dBm"},
++ {15,"30 dBm"}
++};
++
++
++
++void proto_register_dect(void)
++{
++ static hf_register_info hf[]=
++ {
++ {
++ &hf_dect_transceivermode,
++ {"Tranceiver-Mode","dect.tranceivermode",FT_UINT8,BASE_HEX,VALS(tranceiver_mode),0x0,NULL,HFILL}
++ },
++
++ {
++ &hf_dect_channel,
++ {"Channel","dect.channel",FT_UINT8,BASE_DEC,NULL,0x0,NULL,HFILL}
++ },
++
++ {
++ &hf_dect_framenumber,
++ {"Frame#","dect.framenumber",FT_UINT16,BASE_DEC,NULL,0x0,NULL,HFILL}
++ },
++
++ {
++ &hf_dect_rssi,
++ {"RSSI","dect.rssi",FT_UINT8,BASE_DEC,NULL,0x0,NULL,HFILL}
++ },
++
++ {
++ &hf_dect_slot,
++ {"Slot","dect.slot",FT_UINT16,BASE_DEC,NULL,0x0,NULL,HFILL}
++ },
++
++ {
++ &hf_dect_preamble,
++ {"Preamble","dect.preamble",FT_BYTES,BASE_NONE,NULL,0x0,NULL,HFILL}
++ },
++
++ {
++ &hf_dect_type,
++ {"Packet-Type","dect.type",FT_BYTES,BASE_NONE,NULL,0x0,NULL,HFILL}
++ },
++
++
++
++ // *********************************************** A-Field ***********************************************
++
++
++ //***** Header *****
++ {
++ &hf_dect_A,
++ {"A-Field","dect.afield", FT_UINT8, BASE_DEC, NULL, 0x0,"", HFILL}
++ },
++
++ {
++ &hf_dect_A_Head,
++ {"A-Field Header","dect.afield.head",FT_UINT8,BASE_DEC, NULL, 0x0,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Head_TA,
++ {"TA","dect.afield.head.TA",FT_UINT8,BASE_DEC,VALS(TA_vals),0xE0,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Head_Q1,
++ {"Q1","dect.afield.head.Q1",FT_UINT8,BASE_DEC,NULL ,0x10,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Head_BA,
++ {"BA","dect.afield.head.BA",FT_UINT8,BASE_DEC,VALS(BA_vals),0x0E,"",HFILL}
++ },
++
++
++ {
++ &hf_dect_A_Head_Q2,
++ {"Q2","dect.afield.head.Q2",FT_UINT8,BASE_DEC,NULL ,0x01,"",HFILL}
++ },
++
++ //***** Tail *****
++ {
++ &hf_dect_A_Tail,
++ {"A-Field Tail","dect.afield.tail",FT_UINT8,BASE_DEC, NULL, 0x0,"",HFILL}
++ },
++
++ //Nt
++ {
++ &hf_dect_A_Tail_Nt,
++ {"A-Field Header","dect.afield.tail.Nt",FT_UINT8,BASE_DEC, NULL, 0x0,"",HFILL}
++ },
++
++
++ //Qt
++ {
++ &hf_dect_A_Tail_Qt_Qh,
++ {"Qh","dect.afield.tail.Qt.Qh",FT_UINT8,BASE_DEC,VALS(QTHead_vals) ,0xF0,"",HFILL}
++ },
++
++ // Qt Static System Information
++
++ //Byte 0
++ {
++ &hf_dect_A_Tail_Qt_0_Nr,
++ {"NR","dect.afield.tail.Qt.NR",FT_UINT8,BASE_DEC,VALS(QTNormalReverse_vals) ,0x10,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_0_Sn,
++ {"SN","dect.afield.tail.Qt.SN",FT_UINT8,BASE_DEC,VALS(QTSlotNumber_vals) ,0x0F,"",HFILL}
++ },
++
++ //Byte 1
++ {
++ &hf_dect_A_Tail_Qt_0_Sp,
++ {"SP","dect.afield.tail.Qt.SP",FT_UINT8,BASE_DEC,VALS(QTStartPosition_vals) ,0xC0,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_0_Esc,
++ {"Esc","dect.afield.tail.Qt.Esc",FT_UINT8,BASE_DEC,VALS(QTEscape_vals) ,0x20,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_0_Txs,
++ {"Txs","dect.afield.tail.Qt.Txs",FT_UINT8,BASE_DEC,VALS(QTTranceiver_vals) ,0x18,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_0_Mc,
++ {"Mc","dect.afield.tail.Qt.Mc",FT_UINT8,BASE_DEC,VALS(QTExtendedCarrier_vals) ,0x04,"",HFILL}
++ },
++
++ //Byte 3
++ {
++ &hf_dect_A_Tail_Qt_0_Spr1,
++ {"Spr","dect.afield.tail.Qt.Spr1",FT_UINT8,BASE_DEC,VALS(QTSpr_vals) ,0xC0,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_0_Cn,
++ {"CN","dect.afield.tail.Qt.CN",FT_UINT8,BASE_DEC,VALS(QTCarrierNumber_vals) ,0x2F,"",HFILL}
++ },
++
++ //Byte 4
++ {
++ &hf_dect_A_Tail_Qt_0_Spr2,
++ {"Spr","dect.afield.tail.Qt.Spr2",FT_UINT8,BASE_DEC,VALS(QTSpr_vals) ,0xC0,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_0_PSCN,
++ {"PSCN","dect.afield.tail.Qt.PSCN",FT_UINT8,BASE_DEC,VALS(QTScanCarrierNum_vals) ,0x3F,"",HFILL}
++ },
++
++
++ // Qt Fixed Part Capabilities
++
++ {
++ &hf_dect_A_Tail_Qt_3_A12,
++ {"A12","dect.afield.tail.Qt.Fp.A12",FT_UINT8,BASE_DEC,VALS(Qt_A12_vals) ,0x08,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A13,
++ {"A13","dect.afield.tail.Qt.Fp.A13",FT_UINT8,BASE_DEC,VALS(Qt_A13_vals) ,0x04,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A14,
++ {"A14","dect.afield.tail.Qt.Fp.A14",FT_UINT8,BASE_DEC,VALS(Qt_A14_vals) ,0x02,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A15,
++ {"A15","dect.afield.tail.Qt.Fp.A15",FT_UINT8,BASE_DEC,VALS(Qt_A15_vals) ,0x01,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A16,
++ {"A16","dect.afield.tail.Qt.Fp.A16",FT_UINT8,BASE_DEC,VALS(Qt_A16_vals) ,0x80,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A17,
++ {"A17","dect.afield.tail.Qt.Fp.A17",FT_UINT8,BASE_DEC,VALS(Qt_A17_vals) ,0x40,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A18,
++ {"A18","dect.afield.tail.Qt.Fp.A18",FT_UINT8,BASE_DEC,VALS(Qt_A18_vals) ,0x20,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A19,
++ {"A19","dect.afield.tail.Qt.Fp.A19",FT_UINT8,BASE_DEC,VALS(Qt_A19_vals) ,0x10,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A20,
++ {"A20","dect.afield.tail.Qt.Fp.A20",FT_UINT8,BASE_DEC,VALS(Qt_A20_vals) ,0x08,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A21,
++ {"A21","dect.afield.tail.Qt.Fp.A21",FT_UINT8,BASE_DEC,VALS(Qt_A21_vals) ,0x04,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A22,
++ {"A22","dect.afield.tail.Qt.Fp.A22",FT_UINT8,BASE_DEC,VALS(Qt_A22_vals) ,0x02,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A23,
++ {"A23","dect.afield.tail.Qt.Fp.A23",FT_UINT8,BASE_DEC,VALS(Qt_A23_vals) ,0x01,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A24,
++ {"A24","dect.afield.tail.Qt.Fp.A24",FT_UINT8,BASE_DEC,VALS(Qt_A24_vals) ,0x80,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A25,
++ {"A25","dect.afield.tail.Qt.Fp.A25",FT_UINT8,BASE_DEC,VALS(Qt_A25_vals) ,0x40,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A26,
++ {"A26","dect.afield.tail.Qt.Fp.A26",FT_UINT8,BASE_DEC,VALS(Qt_A26_vals) ,0x20,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A27,
++ {"A27","dect.afield.tail.Qt.Fp.A27",FT_UINT8,BASE_DEC,VALS(Qt_A27_vals) ,0x10,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A28,
++ {"A28","dect.afield.tail.Qt.Fp.A28",FT_UINT8,BASE_DEC,VALS(Qt_A28_vals) ,0x08,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A29,
++ {"A29","dect.afield.tail.Qt.Fp.A29",FT_UINT8,BASE_DEC,VALS(Qt_A29_vals) ,0x04,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A30,
++ {"A30","dect.afield.tail.Qt.Fp.A30",FT_UINT8,BASE_DEC,VALS(Qt_A30_vals) ,0x02,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Qt_3_A31,
++ {"A31","dect.afield.tail.Qt.Fp.A31",FT_UINT8,BASE_DEC,VALS(Qt_A31_vals) ,0x01,"",HFILL}
++ },
++
++
++ //Mt
++ {
++ &hf_dect_A_Tail_Mt_Mh,
++ {"Mh","dect.afield.tail.Mt.Mh",FT_UINT8,BASE_DEC,VALS(MTHead_vals) ,0xF0,"",HFILL}
++ },
++
++ // Mt Basic Connection Control
++ {
++ &hf_dect_A_Tail_Mt_BasicConCtrl,
++ {"Cmd","dect.afield.tail.Mt.BasicConCtrl",FT_UINT8,BASE_DEC,VALS(MTBasicConCtrl_vals) ,0x0F,"",HFILL}
++ },
++
++ // Mt Encryption Control
++ {
++ &hf_dect_A_Tail_Mt_Encr_Cmd1,
++ {"Cmd1","dect.afield.tail.Mt.Encr.Cmd1",FT_UINT8,BASE_DEC,VALS(MTEncrCmd1_vals) ,0x0C,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Mt_Encr_Cmd2,
++ {"Cmd2","dect.afield.tail.Mt.Encr.Cmd2",FT_UINT8,BASE_DEC,VALS(MTEncrCmd2_vals) ,0x03,"",HFILL}
++ },
++
++ //Pt
++ {
++ &hf_dect_A_Tail_Pt_ExtFlag,
++ {"ExtFlag","dect.afield.tail.Pt.ExtFlag",FT_UINT8,BASE_DEC,VALS(PTExtFlag_vals) ,0x80,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Pt_SDU,
++ {"SDU","dect.afield.tail.Pt.SDU",FT_UINT8,BASE_DEC,VALS(PTSDU_vals) ,0x70,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Pt_InfoType,
++ {"InfoType","dect.afield.tail.Pt.InfoType",FT_UINT8,BASE_DEC,VALS(PTInfoType_vals) ,0xF0,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Pt_Fill_Fillbits,
++ {"FillBits","dect.afield.tail.Pt.InfoType.FillBits",FT_UINT8,BASE_DEC,NULL ,0xFF,"",HFILL}
++ },
++
++
++ {
++ &hf_dect_A_Tail_Pt_Bearer_Sn,
++ {"SN","dect.afield.tail.Pt.SN",FT_UINT8,BASE_DEC,VALS(QTSlotNumber_vals) ,0x0F,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Pt_Bearer_Sp,
++ {"SP","dect.afield.tail.Pt.SP",FT_UINT8,BASE_DEC,VALS(QTStartPosition_vals) ,0xC0,"",HFILL}
++ },
++
++ {
++ &hf_dect_A_Tail_Pt_Bearer_Cn,
++ {"CN","dect.afield.tail.Pt.CN",FT_UINT8,BASE_DEC,VALS(QTCarrierNumber_vals) ,0x2F,"",HFILL}
++ },
++
++
++ //***** R-CRC *****
++ {
++ &hf_dect_A_RCRC,
++ {"A-Field R-CRC","dect.afield.rcrc",FT_UINT8,BASE_DEC, NULL, 0x0,"",HFILL}
++ },
++
++
++
++
++ // *********************************************** B-Field ***********************************************
++
++ {
++ &hf_dect_B,
++ {"B-Field","dect.bfield", FT_UINT8, BASE_DEC, NULL, 0x0,"", HFILL}
++ },
++
++ {
++ &hf_dect_B_Data,
++ {"B-Field","dect.bfield.data", FT_UINT8, BASE_DEC, NULL, 0x0,"", HFILL}
++ },
++
++ //***** X-CRC *****
++ {
++ &hf_dect_B_XCRC,
++ {"B-Field X-CRC","dect.bfield.xcrc",FT_UINT8,BASE_DEC, NULL, 0x0,"",HFILL}
++ }
++ };
++
++
++ /* Setup protocol subtree array */
++ static gint *subtree[]=
++ {
++ &subtree_dect,
++ &subtree_ahead,
++ &subtree_afield,
++ &subtree_atail,
++ &subtree_aqt,
++
++ &subtree_bfield
++ };
++
++
++ if(proto_dect==-1)
++ {
++ proto_dect=proto_register_protocol("DECT Protocol","DECT","dect");
++ }
++
++
++ proto_register_field_array(proto_dect,hf,array_length(hf));
++ proto_register_subtree_array(subtree,array_length(subtree));
++}
++
++void proto_reg_handoff_dect(void)
++{
++ static int initialized=FALSE;
++
++ if(!initialized)
++ {
++ dect_handle = create_dissector_handle(dissect_dect,proto_dect);
++ dissector_add("ethertype",ETHERTYPE_DECT ,dect_handle);
++ }
++}
++
++static void dissect_dect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
++{
++ guint16 type;
++ guint16 pkt_len;
++ guint8 *pkt_ptr;
++ struct dect_afield pkt_afield;
++ struct dect_bfield pkt_bfield;
++
++ //Packet pointer holen
++ pkt_len=tvb_length(tvb);
++
++ if(pkt_len>140)
++ pkt_len=140;
++
++ if(pkt_len<13)
++ {
++ if(check_col(pinfo->cinfo,COL_PROTOCOL))
++ {
++ col_set_str(pinfo->cinfo,COL_PROTOCOL,"No Data");
++ }
++ return;
++ }
++
++ pkt_ptr=(guint8*)tvb_get_ptr(tvb,11,pkt_len-11);
++
++
++ //A-Field füllen
++ pkt_afield.Header=pkt_ptr[0];
++ memcpy((char*)(&(pkt_afield.Tail)),(char*)(pkt_ptr+1),5);
++ pkt_afield.RCRC=(((guint16)pkt_ptr[6])<<8)|pkt_ptr[7];
++
++
++ //B-Field füllen
++ if(pkt_len>13)
++ memcpy((char*)(&(pkt_bfield.Data)),(char*)(pkt_ptr+8),pkt_len-5-8);
++ else
++ memset((char*)(&(pkt_bfield.Data)),0,128);
++
++ pkt_bfield.Length=pkt_len-13;
++
++
++
++ if(check_col(pinfo->cinfo,COL_PROTOCOL))
++ col_set_str(pinfo->cinfo, COL_PROTOCOL,"DECT");
++
++ /* Clear out stuff in the info column */
++ if(check_col(pinfo->cinfo,COL_INFO))
++ {
++ col_clear(pinfo->cinfo,COL_INFO);
++ }
++
++ if(tree)
++ {
++ proto_item *ti =NULL;
++ proto_item *typeti =NULL;
++ proto_tree *DectTree =NULL;
++
++
++ gint offset=0;
++
++ ti=proto_tree_add_item(tree,proto_dect,tvb,0,-1,FALSE);
++
++ DectTree=proto_item_add_subtree(ti,subtree_dect);
++ proto_tree_add_item(DectTree,hf_dect_transceivermode,tvb,offset,1,FALSE);
++ offset++;
++
++ proto_tree_add_item(DectTree,hf_dect_channel,tvb,offset,1,FALSE);
++ offset++;
++
++ proto_tree_add_item(DectTree,hf_dect_slot,tvb,offset,2,FALSE);
++ offset+=2;
++
++ proto_tree_add_item(DectTree,hf_dect_framenumber,tvb,offset,1,FALSE);
++ offset++;
++
++ proto_tree_add_item(DectTree,hf_dect_rssi,tvb,offset,1,FALSE);
++ offset++;
++
++ proto_tree_add_item(DectTree,hf_dect_preamble,tvb,offset,3,FALSE);
++ offset+=3;
++
++ typeti=proto_tree_add_item(DectTree,hf_dect_type,tvb,offset,2,FALSE);
++
++ type=tvb_get_ntohs(tvb, offset);
++ offset+=2;
++
++
++
++ switch(type)
++ {
++ case 0x1675:
++ if(check_col(pinfo->cinfo,COL_PROTOCOL))
++ {
++ col_set_str(pinfo->cinfo,COL_PROTOCOL,"DECT PP");
++ }
++
++ proto_item_append_text(typeti," Phone Packet");
++ dissect_decttype(0,&pkt_afield,&pkt_bfield,pinfo,pkt_ptr,tvb,ti,DectTree);
++ break;
++
++ case 0xe98a:
++ if(check_col(pinfo->cinfo,COL_PROTOCOL))
++ {
++ col_set_str(pinfo->cinfo,COL_PROTOCOL,"DECT RFP");
++ }
++
++ proto_item_append_text(typeti," Station Packet");
++ dissect_decttype(1,&pkt_afield,&pkt_bfield,pinfo,pkt_ptr,tvb,ti,DectTree);
++ break;
++
++
++ default:
++ if(check_col(pinfo->cinfo,COL_PROTOCOL))
++ {
++ col_set_str(pinfo->cinfo,COL_PROTOCOL,"DECT Unk");
++ }
++
++ proto_item_append_text(typeti," Unknown Packet");
++ break;
++ }
++
++
++
++
++
++ }
++}
++
++
++
++void dissect_decttype(BOOL type,struct dect_afield *pkt_afield,struct dect_bfield *pkt_bfield,packet_info *pinfo,guint8 *pkt_ptr,tvbuff_t *tvb,proto_item *ti,proto_tree *DectTree)
++{
++ char string[30];
++
++ guint16 rcrc;
++ guint8 rcrcdat[8];
++ gint offset=11;
++
++ proto_item *afieldti =NULL;
++ proto_item *aheadti =NULL;
++ proto_item *atailti =NULL;
++ proto_item *arcrc =NULL;
++ proto_item *aqtti =NULL;
++
++
++ proto_tree *AField =NULL;
++ proto_tree *AHead =NULL;
++ proto_tree *ATail =NULL;
++ proto_tree *AQT =NULL;
++
++
++ //******************************************** A-Field ********************************************
++
++ //A-Feld anlegen
++ afieldti = proto_tree_add_uint_format(DectTree,hf_dect_A,tvb,offset,8,0/*0x2323*/,"A-Field");
++ AField = proto_item_add_subtree(afieldti,subtree_afield);
++
++
++ //Header anlegen und füllen
++ aheadti = proto_tree_add_uint_format(afieldti,hf_dect_A_Head,tvb,offset,1,0x2323,"Header");
++ AHead = proto_item_add_subtree(aheadti,subtree_ahead);
++
++
++ proto_tree_add_uint(AHead,hf_dect_A_Head_TA,tvb,offset,1,pkt_afield->Header);
++ proto_tree_add_uint(AHead,hf_dect_A_Head_Q1,tvb,offset,1,pkt_afield->Header);
++ proto_tree_add_uint(AHead,hf_dect_A_Head_BA,tvb,offset,1,pkt_afield->Header);
++ proto_tree_add_uint(AHead,hf_dect_A_Head_Q2,tvb,offset,1,pkt_afield->Header);
++
++ offset++;
++
++
++ //Tail anlegen und füllen
++ atailti = proto_tree_add_uint_format(afieldti,hf_dect_A_Tail,tvb,offset,5,0x2323,"Tail: %s",TA_vals[(pkt_afield->Header&0xE0)>>5].strptr);
++ ATail = proto_item_add_subtree(atailti,subtree_atail);
++
++ switch((pkt_afield->Header&0xE0)>>5)
++ {
++ case 0: //Ct
++ case 1:
++ if(check_col(pinfo->cinfo,COL_HPUX_SUBSYS))
++ col_set_str(pinfo->cinfo,COL_HPUX_SUBSYS,"[Ct]");
++
++ break;
++ case 2: //Nt
++ case 3: //Nt connectionless bearer
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ {
++ sprintf(string,"RFPI:%.2x%.2x%.2x%.2x%.2x"
++ ,pkt_afield->Tail[0],pkt_afield->Tail[1],pkt_afield->Tail[2]
++ ,pkt_afield->Tail[3],pkt_afield->Tail[4]);
++
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,string);
++
++ offset+=5;
++
++ //wegen addition weiter unten
++ offset-=5;
++ }
++
++
++
++ if(check_col(pinfo->cinfo,COL_HPUX_SUBSYS))
++ col_set_str(pinfo->cinfo,COL_HPUX_SUBSYS,"[Nt]");
++
++ proto_tree_add_uint_format(atailti,hf_dect_A_Tail_Nt,tvb,offset,5,0x2323,"RFPI:%.2x%.2x%.2x%.2x%.2x"
++ ,pkt_afield->Tail[0],pkt_afield->Tail[1],pkt_afield->Tail[2],pkt_afield->Tail[3]
++ ,pkt_afield->Tail[4]);
++ break;
++ case 4: //Qt
++ if(check_col(pinfo->cinfo,COL_HPUX_SUBSYS))
++ col_set_str(pinfo->cinfo,COL_HPUX_SUBSYS,"[Qt]");
++
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_Qh,tvb,offset,1,(pkt_afield->Tail[0]));
++
++ switch(pkt_afield->Tail[0]>>4)
++ {
++ case 0: //Static System Info
++ case 1:
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Static System Info");
++
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_0_Nr,tvb,offset,1,(pkt_afield->Tail[0]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_0_Sn,tvb,offset,1,(pkt_afield->Tail[0]));
++ offset++;
++
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_0_Sp,tvb,offset,1,(pkt_afield->Tail[1]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_0_Esc,tvb,offset,1,(pkt_afield->Tail[1]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_0_Txs,tvb,offset,1,(pkt_afield->Tail[1]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_0_Mc,tvb,offset,1,(pkt_afield->Tail[1]));
++ offset++;
++
++ proto_tree_add_uint_format(ATail,hf_dect_A_Tail_Mt_Mh,tvb,offset,2,0x2323," Carrier%s%s%s%s%s%s%s%s%s%s available",
++ (pkt_afield->Tail[1]&0x02)?" 0":"",(pkt_afield->Tail[1]&0x01)?" 1":"",(pkt_afield->Tail[2]&0x80)?" 2":"",
++ (pkt_afield->Tail[2]&0x40)?" 3":"",(pkt_afield->Tail[2]&0x20)?" 4":"",(pkt_afield->Tail[2]&0x10)?" 5":"",
++ (pkt_afield->Tail[2]&0x08)?" 6":"",(pkt_afield->Tail[2]&0x04)?" 7":"",(pkt_afield->Tail[2]&0x02)?" 8":"",
++ (pkt_afield->Tail[2]&0x01)?" 9":"");
++
++ offset++;
++
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_0_Spr1,tvb,offset,1,(pkt_afield->Tail[3]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_0_Cn,tvb,offset,1,(pkt_afield->Tail[3]));
++ offset++;
++
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_0_Spr2,tvb,offset,1,(pkt_afield->Tail[4]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_0_PSCN,tvb,offset,1,(pkt_afield->Tail[4]));
++ offset++;
++
++
++ //wegen addition weiter unten
++ offset-=5;
++
++ break;
++ case 2: //Extended RF Carriers Part 1
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Extended RF Carriers Part 1");
++ break;
++ case 3: //Fixed Part Capabilities
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Fixed Part Capabilities");
++
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A12,tvb,offset,1,(pkt_afield->Tail[0]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A13,tvb,offset,1,(pkt_afield->Tail[0]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A14,tvb,offset,1,(pkt_afield->Tail[0]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A15,tvb,offset,1,(pkt_afield->Tail[0]));
++ offset++;
++
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A16,tvb,offset,1,(pkt_afield->Tail[1]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A17,tvb,offset,1,(pkt_afield->Tail[1]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A18,tvb,offset,1,(pkt_afield->Tail[1]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A19,tvb,offset,1,(pkt_afield->Tail[1]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A20,tvb,offset,1,(pkt_afield->Tail[1]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A21,tvb,offset,1,(pkt_afield->Tail[1]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A22,tvb,offset,1,(pkt_afield->Tail[1]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A23,tvb,offset,1,(pkt_afield->Tail[1]));
++ offset++;
++
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A24,tvb,offset,1,(pkt_afield->Tail[2]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A25,tvb,offset,1,(pkt_afield->Tail[2]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A26,tvb,offset,1,(pkt_afield->Tail[2]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A27,tvb,offset,1,(pkt_afield->Tail[2]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A28,tvb,offset,1,(pkt_afield->Tail[2]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A29,tvb,offset,1,(pkt_afield->Tail[2]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A30,tvb,offset,1,(pkt_afield->Tail[2]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Qt_3_A31,tvb,offset,1,(pkt_afield->Tail[2]));
++ offset++;
++
++
++ offset+=2;
++
++
++ //wegen addition weiter unten
++ offset-=5;
++ break;
++ case 4: //Extended Fixed Part Capabilities
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Extended Fixed Part Capabilities");
++ break;
++ case 5: //SARI List Contents
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"SARI List Contents");
++ break;
++ case 6: //Multi-Frame No.
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Multi-Frame No.");
++ break;
++ case 7: //Escape
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Escape");
++ break;
++ case 8: //Obsolete
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Obsolete");
++ break;
++ case 9: //Extended RF Carriers Part 2
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Extended RF Carriers Part 2");
++ break;
++ case 10: //Reserved(?)
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Reserved(?)");
++ break;
++ case 11: //Transmit Information(?)
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Transmit Information(?)");
++ break;
++ case 12: //Reserved
++ case 13:
++ case 14:
++ case 15:
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Reserved");
++ break;
++
++
++ }
++ break;
++ case 5: //Escape
++ break;
++ case 6: //Mt
++ if(check_col(pinfo->cinfo,COL_HPUX_SUBSYS))
++ col_set_str(pinfo->cinfo,COL_HPUX_SUBSYS,"[Mt]");
++
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Mt_Mh,tvb,offset,1,(pkt_afield->Tail[0]));
++
++ switch(pkt_afield->Tail[0]>>4)
++ {
++ case 0: //Basic Connection Control
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Basic Connection Control");
++
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Mt_BasicConCtrl,tvb,offset,1,(pkt_afield->Tail[0]));
++ offset++;
++
++ if(((pkt_afield->Tail[0]&&0x0f)==6)||((pkt_afield->Tail[0]&&0x0f)==7))
++ {
++ proto_tree_add_uint_format(ATail,hf_dect_A_Tail_Mt_Mh,tvb,offset,5,0x2323,"hier sollten attribute stehn...");
++ }
++ else
++ {
++ proto_tree_add_uint_format(ATail,hf_dect_A_Tail_Mt_Mh,tvb,offset,2,0x2323,"FMID:%.3x",(pkt_afield->Tail[1]<<4)|(pkt_afield->Tail[2]>>4));
++ offset++;
++
++ proto_tree_add_uint_format(ATail,hf_dect_A_Tail_Mt_Mh,tvb,offset,3,0x2323,"PMID:%.5x",((pkt_afield->Tail[2]&0x0f)<<16)|(pkt_afield->Tail[3]<<8)|pkt_afield->Tail[4]);
++ offset+=3;
++ }
++
++ //wegen addition weiter unten
++ offset-=5;
++
++ break;
++ case 1: //Advanced Connection Control
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Advanced Connection Control");
++ break;
++ case 2: //MAC Layer Test Messages
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"MAC Layer Test Messages");
++ break;
++ case 3: //Quality Control
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Quality Control");
++ break;
++ case 4: //Broadcast and Connectionless Services
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Broadcast and Connectionless Services");
++ break;
++ case 5: //Encryption Control
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Encryption Control");
++
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Mt_Encr_Cmd1,tvb,offset,1,(pkt_afield->Tail[0]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Mt_Encr_Cmd2,tvb,offset,1,(pkt_afield->Tail[0]));
++ offset++;
++
++ proto_tree_add_uint_format(ATail,hf_dect_A_Tail_Mt_Mh,tvb,offset,2,0x2323,"FMID:%.3x",(pkt_afield->Tail[1]<<4)|(pkt_afield->Tail[2]>>4));
++ offset++;
++
++ proto_tree_add_uint_format(ATail,hf_dect_A_Tail_Mt_Mh,tvb,offset,3,0x2323,"PMID:%.5x",((pkt_afield->Tail[2]&0x0f)<<16)|(pkt_afield->Tail[3]<<8)|pkt_afield->Tail[4]);
++ offset+=3;
++
++
++ //wegen addition weiter unten
++ offset-=5;
++ break;
++ case 6: //Tail for use with the first Transmission of a B-Field \"bearer request\" Message
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Tail for use with the first Transmission of a B-Field \"bearer request\" Message");
++ break;
++ case 7: //Escape
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Escape");
++ break;
++ case 8: //TARI Message
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"TARI Message");
++ break;
++ case 9: //REP Connection Control
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"REP Connection Control");
++ break;
++ case 10: //Reserved
++ case 11:
++ case 12:
++ case 13:
++ case 14:
++ case 15:
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Reserved");
++ break;
++
++ }
++ break;
++ case 7: //Pt
++ if(check_col(pinfo->cinfo,COL_HPUX_SUBSYS))
++ col_set_str(pinfo->cinfo,COL_HPUX_SUBSYS,"[Pt]");
++
++
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Pt_ExtFlag,tvb,offset,1,(pkt_afield->Tail[0]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Pt_SDU,tvb,offset,1,(pkt_afield->Tail[0]));
++
++ switch((pkt_afield->Tail[0]&0x70)>>4)
++ {
++ case 0: //Zero Length Page
++ case 1: //Short Page
++ if(((pkt_afield->Tail[0]&0x70)>>4)==0)
++ {
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Zero Length Page: ");
++
++
++ proto_tree_add_uint_format(atailti,hf_dect_A_Tail_Pt_InfoType,tvb,offset,3,0x2323,"RFPI:xxxxx%.1x%.2x%.2x",(pkt_afield->Tail[0]&0x0f),pkt_afield->Tail[1],pkt_afield->Tail[2]);
++ offset+=3;
++
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Pt_InfoType,tvb,offset,1,(pkt_afield->Tail[3]));
++
++ }
++ else
++ {
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Short Page: ");
++
++
++ proto_tree_add_uint_format(atailti,hf_dect_A_Tail_Pt_InfoType,tvb,offset,3,0x2323,"Bs Data:%.1x%.2x%.2x",(pkt_afield->Tail[0]&0x0f),pkt_afield->Tail[1],pkt_afield->Tail[2]);
++ offset+=3;
++
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Pt_InfoType,tvb,offset,1,(pkt_afield->Tail[3]));
++ }
++
++
++ switch(pkt_afield->Tail[3]>>4)
++ {
++ case 0: //Fill Bits
++ proto_tree_add_uint_format(ATail,hf_dect_A_Tail_Pt_Fill_Fillbits,tvb,offset,2,0x2323,"Fillbits:%.1x%.2x",pkt_afield->Tail[3]&0x0f,pkt_afield->Tail[4]);
++
++ offset+=2;
++ break;
++ case 1: //Blind Full Slot Information for Circuit Mode Service
++ case 7: //Escape
++ case 8: //Dummy or connectionless Bearer Marker
++ proto_tree_add_uint_format(ATail,hf_dect_A_Tail_Pt_InfoType,tvb,offset,2,0x2323," Slot-Pairs:%s%s%s%s%s%s%s%s%s%s%s%s available",
++ (pkt_afield->Tail[3]&0x08)?" 0/12":"",(pkt_afield->Tail[3]&0x04)?" 1/13":"",(pkt_afield->Tail[3]&0x02)?" 2/14":"",
++ (pkt_afield->Tail[3]&0x01)?" 3/15":"",(pkt_afield->Tail[4]&0x80)?" 4/16":"",(pkt_afield->Tail[4]&0x40)?" 5/17":"",
++ (pkt_afield->Tail[4]&0x20)?" 6/18":"",(pkt_afield->Tail[4]&0x10)?" 7/19":"",(pkt_afield->Tail[4]&0x08)?" 8/20":"",
++ (pkt_afield->Tail[4]&0x04)?" 9/21":"",(pkt_afield->Tail[4]&0x02)?" 10/22":"",(pkt_afield->Tail[4]&0x01)?" 11/23":"");
++
++ offset+=2;
++ break;
++
++ case 2: //Other Bearer
++ case 3: //Recommended Other Bearer
++ case 4: //Good RFP Bearer
++ case 5: //Dummy or connectionless Bearer Position
++ case 12: //Connectionless Bearer Position
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Pt_Bearer_Sn,tvb,offset,1,(pkt_afield->Tail[3]));
++ offset++;
++
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Pt_Bearer_Sp,tvb,offset,1,(pkt_afield->Tail[4]));
++ proto_tree_add_uint(ATail,hf_dect_A_Tail_Pt_Bearer_Cn,tvb,offset,1,(pkt_afield->Tail[4]));
++ offset++;
++
++ break;
++ case 6: //Extended Modulation Types
++ offset+=2;
++ break;
++
++ case 9: //Bearer Handover/Replacement Information
++ offset+=2;
++ break;
++ case 10: //RFP Status and Modulation Types
++ offset+=2;
++ break;
++ case 11: //Active Carriers
++ offset+=2;
++ break;
++ case 13: //RFP Power Level
++ offset+=2;
++ break;
++ case 14: //Blind Double Slot/RFP-FP Interface Resource Information
++ offset+=2;
++ break;
++ case 15: //Blind Full Slot Information for Packet Mode Service
++ offset+=2;
++ break;
++ }
++
++
++ //wegen addition weiter unten
++ offset-=5;
++ break;
++ case 2: //Full Page
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Full Page: ");
++ break;
++ case 3: //MAC Resume Page
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"MAC Resume Page: ");
++ break;
++ case 4: //Not the Last 36 Bits of a Long Page
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"Not the Last 36 Bits: ");
++ break;
++ case 5: //The First 36 Bits of a Long Page
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"The First 36 Bits: ");
++ break;
++ case 6: //The Last 36 Bits of a Long Page
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"The Last 36 Bits: ");
++ break;
++ case 7: //All of a Long Page
++ if(check_col(pinfo->cinfo,COL_DEF_NET_SRC))
++ col_append_str(pinfo->cinfo,COL_DEF_NET_SRC,"All of a Long Page: ");
++ break;
++
++ }
++ break;
++
++ }
++
++
++ offset+=5;
++
++ //R-CRC anlegen und füllen
++
++ memcpy(rcrcdat,pkt_ptr,6);
++ rcrcdat[6]=0;
++ rcrcdat[7]=0;
++ rcrc=calc_rcrc(rcrcdat);
++ if(rcrc!=pkt_afield->RCRC)
++ proto_tree_add_uint_format(afieldti,hf_dect_A_RCRC,tvb,offset,2,0,"R-CRC Error (Calc:%0.4x,Recv:%.4x)",rcrc,pkt_afield->RCRC);
++ else
++ proto_tree_add_uint_format(afieldti,hf_dect_A_RCRC,tvb,offset,2,1,"R-CRC Match (Calc:%0.4x,Recv:%.4x)",rcrc,pkt_afield->RCRC);
++
++ offset+=2;
++
++
++ //******************************************** B-Field ********************************************
++
++ offset=dissect_bfield(type,pkt_afield,pkt_bfield,pinfo,pkt_ptr,tvb,ti,DectTree,offset);
++
++
++}
++
++
++gint dissect_bfield(BOOL type,struct dect_afield *pkt_afield,struct dect_bfield *pkt_bfield,packet_info *pinfo,guint8 *pkt_ptr,tvbuff_t *tvb,proto_item *ti,proto_tree *DectTree,gint offset)
++{
++ guint8 xcrc,xcrclen;
++ guint16 blen,x,y;
++
++ gint oldoffset,fn;
++
++
++ proto_item *bfieldti =NULL;
++ proto_item *bxcrc =NULL;
++
++
++ proto_tree *BField =NULL;
++
++
++ //B-Feld anlegen
++ switch((pkt_afield->Header&0x0E)>>1)
++ {
++ case 0:
++ case 1:
++ case 3:
++ case 5:
++ case 6:
++ blen=40;
++ xcrclen=4;
++
++ if(check_col(pinfo->cinfo,COL_DEF_NET_DST))
++ {
++ col_append_str(pinfo->cinfo,COL_DEF_NET_DST,"Full Slot");
++ }
++ break;
++ case 2:
++ blen=100;
++ xcrclen=4;
++
++ if(check_col(pinfo->cinfo,COL_DEF_NET_DST))
++ {
++ col_append_str(pinfo->cinfo,COL_DEF_NET_DST,"Double Slot");
++ }
++ break;
++ case 4:
++ blen=10;
++ xcrclen=4;
++
++ if(check_col(pinfo->cinfo,COL_DEF_NET_DST))
++ {
++ col_append_str(pinfo->cinfo,COL_DEF_NET_DST,"Half Slot");
++ }
++ break;
++ case 7:
++ blen=0;
++ xcrclen=0;
++
++ if(check_col(pinfo->cinfo,COL_DEF_NET_DST))
++ {
++ col_append_str(pinfo->cinfo,COL_DEF_NET_DST,"No B-Field");
++ }
++ break;
++ }
++
++
++ if(blen)
++ {
++ bfieldti = proto_tree_add_uint_format(DectTree,hf_dect_B,tvb,offset,40,0/*0x2323*/,"B-Field");
++ BField = proto_item_add_subtree(bfieldti,subtree_bfield);
++ }
++
++ oldoffset=offset;
++
++ if((blen+(xcrclen/8)+1)<=pkt_bfield->Length)
++ {
++ for(x=0;x<blen;x+=16)
++ {
++ char string[60];
++ string[0]=0;
++
++ y=0;
++ for(y=0;y<16;y++)
++ {
++ if((x+y)>=blen)
++ break;
++
++ sprintf(string,"%s%.2x ",string,pkt_bfield->Data[x+y]);
++ }
++
++ proto_tree_add_uint_format(BField,hf_dect_B_Data,tvb,offset,y,0x2323,"Data: %s",string);
++
++ if(y==16)
++ offset+=16;
++ else
++ offset+=16-y;
++
++ }
++
++
++
++ for(fn=0;fn<8;fn++)
++ {
++ guint16 bytecount=0;
++
++ proto_tree_add_uint_format(BField,hf_dect_B_Data,tvb,offset,y,0x2323,"\n");
++ offset=oldoffset;
++
++ proto_tree_add_uint_format(BField,hf_dect_B_Data,tvb,offset,y,0x2323,"Framenumber %u/%u",fn,fn+8);
++ for(x=0;x<blen;x+=16)
++ {
++ char string[60];
++ string[0]=0;
++
++ y=0;
++ for(y=0;y<16;y++)
++ {
++ if((x+y)>=blen)
++ break;
++
++ sprintf(string,"%s%.2x ",string,pkt_bfield->Data[x+y]^scrt[fn][bytecount%31]);
++ bytecount++;
++ }
++
++ proto_tree_add_uint_format(BField,hf_dect_B_Data,tvb,offset,y,0x2323,"Data: %s",string);
++
++ if(y==16)
++ offset+=16;
++ else
++ offset+=16-y;
++ }
++ }
++
++
++
++
++ xcrc=calc_xcrc(pkt_bfield->Data,83);
++
++ if(xcrc!=(pkt_bfield->Data[40]&0xf0))
++ proto_tree_add_uint_format(bfieldti,hf_dect_B_XCRC,tvb,offset,1,0,"X-CRC Error (Calc:%.2x,Recv:%.2x)",xcrc,pkt_bfield->Data[40]&0xf0);
++ else
++ proto_tree_add_uint_format(bfieldti,hf_dect_B_XCRC,tvb,offset,1,1,"X-CRC Match (Calc:%.2x,Recv:%.2x)",xcrc,pkt_bfield->Data[40]&0xf0);
++
++ }
++ else
++ proto_tree_add_uint_format(BField,hf_dect_B_Data,tvb,offset,0,0x2323,"Data too Short");
++
++
++ return offset;
++}
++
++
++
++
++guint8 calc_xcrc(guint8* data,guint8 length)
++{
++ guint8 bits[21];
++
++
++ guint8 gp=0x1;
++
++ guint8 div;
++ guint8 next;
++ int y,x;
++
++ for(y=0;y<80;y++)
++ {
++ setbit(bits,y,getbit(data,y+48*(1+(int)(y/16))));
++ }
++
++ length=10;
++
++
++
++ div=bits[0];
++
++ y=0;
++ while(y<length)
++ {
++ if(y<(length-1))
++ next=bits[y+1];
++ else
++ next=0;
++
++ y++;
++
++ x=0;
++ while(x<8)
++ {
++
++ while(!(div&0x80))
++ {
++ div<<=1;
++ div|=!!(next&0x80);
++ next<<=1;
++ x++;
++
++ if(x>7)
++ break;
++ }
++
++ if(x>7)
++ break;
++
++ div<<=1;
++ div|=!!(next&0x80);
++ next<<=1;
++ x++;
++
++ div^=(gp<<4);
++
++ }
++ }
++
++// div^=0x10;
++ return div;
++}
++
++
++
++
++
++guint16 calc_rcrc(guint8* data)
++{
++ guint16 gp=0x0589; //10000010110001001 ohne die 1 vorne
++
++ guint16 div;
++ guint8 next;
++ int y,x;
++
++ div=data[0]<<8|data[1];
++
++
++ y=0;
++ while(y<6)
++ {
++ next=data[2+y];
++ y++;
++
++ x=0;
++ while(x<8)
++ {
++
++ while(!(div&0x8000))
++ {
++ div<<=1;
++ div|=!!(next&0x80);
++ next<<=1;
++ x++;
++
++ if(x>7)
++ break;
++ }
++
++ if(x>7)
++ break;
++
++ div<<=1;
++ div|=!!(next&0x80);
++ next<<=1;
++ x++;
++
++ div^=gp;
++
++ }
++ }
++
++ div^=1;
++ return div;
++
++}
++
++
++
++unsigned char getbit(guint8 *data,int bit)
++{
++ guint8 c;
++ guint8 byte=data[bit/8];
++
++ c=1;
++ c<<=bit%8;
++
++ return (byte&c)>>bit%8;
++
++}
++
++void setbit(guint8 *data,int bit,guint8 value)
++{
++ if(!value)
++ data[bit/8]&=~(1<<(bit%8));
++ else
++ data[bit/8]|=(1<<(bit%8));
++}
+diff --git a/plugins/dect/moduleinfo.h b/plugins/dect/moduleinfo.h
+new file mode 100644
+index 0000000..abbf3ce
+--- /dev/null
++++ b/plugins/dect/moduleinfo.h
+@@ -0,0 +1,18 @@
++/* Included *after* config.h, in order to re-define these macros */
++
++#ifdef PACKAGE
++#undef PACKAGE
++#endif
++
++/* Name of package */
++#define PACKAGE "dect"
++
++
++#ifdef VERSION
++#undef VERSION
++#endif
++
++/* Version number of package */
++#define VERSION "0.1"
++
++
+diff --git a/plugins/dect/moduleinfo.nmake b/plugins/dect/moduleinfo.nmake
+new file mode 100644
+index 0000000..cfc77c5
+--- /dev/null
++++ b/plugins/dect/moduleinfo.nmake
+@@ -0,0 +1,28 @@
++#
++# $Id: moduleinfo.nmake 20036 2006-12-04 23:12:04Z jake $
++#
++
++# The name
++PACKAGE=dect
++
++# The version
++MODULE_VERSION_MAJOR=0
++MODULE_VERSION_MINOR=1
++MODULE_VERSION_MICRO=0
++MODULE_VERSION_EXTRA=0
++
++#
++# The RC_VERSION should be comma-separated, not dot-separated,
++# as per Graham Bloice's message in
++#
++# http://www.ethereal.com/lists/ethereal-dev/200303/msg00283.html
++#
++# "The RC_VERSION variable in config.nmake should be comma separated.
++# This allows the resources to be built correctly and the version
++# number to be correctly displayed in the explorer properties dialog
++# for the executables, and XP's tooltip, rather than 0.0.0.0."
++#
++
++MODULE_VERSION=$(MODULE_VERSION_MAJOR).$(MODULE_VERSION_MINOR).$(MODULE_VERSION_MICRO).$(MODULE_VERSION_EXTRA)
++RC_MODULE_VERSION=$(MODULE_VERSION_MAJOR),$(MODULE_VERSION_MINOR),$(MODULE_VERSION_MICRO),$(MODULE_VERSION_EXTRA)
++
+diff --git a/plugins/dect/plugin.c b/plugins/dect/plugin.c
+new file mode 100644
+index 0000000..fd300c7
+--- /dev/null
++++ b/plugins/dect/plugin.c
+@@ -0,0 +1,28 @@
++/* Do not modify this file. */
++/* It is created automatically by the Makefile. */
++
++#ifdef HAVE_CONFIG_H
++# include "config.h"
++#endif
++
++#include <gmodule.h>
++
++#include "moduleinfo.h"
++
++#ifndef ENABLE_STATIC
++G_MODULE_EXPORT const gchar version[] = VERSION;
++
++/* Start the functions we need for the plugin stuff */
++
++G_MODULE_EXPORT void
++plugin_register (void)
++{
++ {extern void proto_register_dect (void); proto_register_dect ();}
++}
++
++G_MODULE_EXPORT void
++plugin_reg_handoff(void)
++{
++ {extern void proto_reg_handoff_dect (void); proto_reg_handoff_dect ();}
++}
++#endif
+diff --git a/plugins/dect/plugin.rc.in b/plugins/dect/plugin.rc.in
+new file mode 100644
+index 0000000..72b4de0
+--- /dev/null
++++ b/plugins/dect/plugin.rc.in
+@@ -0,0 +1,34 @@
++#include "winver.h"
++
++VS_VERSION_INFO VERSIONINFO
++ FILEVERSION @RC_MODULE_VERSION@
++ PRODUCTVERSION @RC_VERSION@,0
++ FILEFLAGSMASK 0x0L
++#ifdef _DEBUG
++ FILEFLAGS VS_FF_PRERELEASE+VS_FF_DEBUG
++#else
++ FILEFLAGS VS_FF_PRERELEASE
++#endif
++ FILEOS VOS_NT_WINDOWS32
++ FILETYPE VFT_DLL
++BEGIN
++ BLOCK "StringFileInfo"
++ BEGIN
++ BLOCK "040904b0"
++ BEGIN
++ VALUE "CompanyName", "The Wireshark developer community, http://www.wireshark.org/\0"
++ VALUE "FileDescription", "@PACKAGE@ dissector\0"
++ VALUE "FileVersion", "@MODULE_VERSION@\0"
++ VALUE "InternalName", "@PACKAGE@ @MODULE_VERSION@\0"
++ VALUE "LegalCopyright", "Copyright © 1998 Gerald Combs <gerald@wireshark.org>, Gilbert Ramirez <gram@alumni.rice.edu> and others\0"
++ VALUE "OriginalFilename", "@PLUGIN_NAME@.dll\0"
++ VALUE "ProductName", "Wireshark\0"
++ VALUE "ProductVersion", "@VERSION@\0"
++ VALUE "Comments", "Build with @MSVC_VARIANT@\0"
++ END
++ END
++ BLOCK "VarFileInfo"
++ BEGIN
++ VALUE "Translation", 0x409, 1200
++ END
++END
+diff --git a/plugins/mate/mate_grammar.c b/plugins/mate/mate_grammar.c
+index c842580..96c3c0d 100644
+--- a/plugins/mate/mate_grammar.c
++++ b/plugins/mate/mate_grammar.c
+@@ -337,109 +337,109 @@ typedef union {
+ ** yy_default[] Default action for each state.
+ */
+ static const YYACTIONTYPE yy_action[] = {
+- /* 0 */ 282, 106, 187, 107, 232, 96, 148, 97, 62, 424,
+- /* 10 */ 426, 149, 161, 176, 123, 240, 241, 405, 200, 201,
+- /* 20 */ 202, 203, 430, 1, 146, 5, 246, 4, 208, 225,
+- /* 30 */ 405, 100, 206, 207, 19, 405, 405, 243, 244, 245,
+- /* 40 */ 102, 101, 348, 226, 4, 93, 87, 233, 211, 19,
+- /* 50 */ 3, 183, 184, 185, 186, 188, 189, 234, 235, 424,
+- /* 60 */ 426, 424, 426, 424, 426, 405, 405, 99, 239, 11,
+- /* 70 */ 254, 103, 264, 90, 261, 7, 8, 281, 260, 236,
+- /* 80 */ 238, 422, 158, 104, 279, 105, 264, 67, 210, 214,
+- /* 90 */ 215, 252, 253, 121, 122, 63, 66, 229, 257, 262,
+- /* 100 */ 158, 256, 259, 93, 14, 127, 231, 237, 168, 131,
+- /* 110 */ 130, 64, 71, 180, 135, 98, 119, 116, 110, 136,
+- /* 120 */ 137, 138, 143, 139, 42, 113, 43, 144, 145, 154,
+- /* 130 */ 155, 140, 74, 15, 156, 422, 44, 74, 20, 167,
+- /* 140 */ 169, 170, 171, 172, 181, 47, 45, 132, 108, 126,
+- /* 150 */ 22, 73, 48, 50, 124, 16, 18, 128, 27, 53,
+- /* 160 */ 51, 26, 54, 25, 55, 24, 23, 56, 30, 57,
+- /* 170 */ 29, 2, 28, 6, 147, 230, 100, 68, 228, 12,
+- /* 180 */ 242, 151, 10, 32, 59, 34, 33, 60, 152, 69,
+- /* 190 */ 141, 133, 157, 70, 160, 31, 275, 258, 263, 163,
+- /* 200 */ 89, 79, 78, 88, 164, 80, 87, 11, 39, 37,
+- /* 210 */ 81, 82, 38, 83, 36, 84, 85, 17, 86, 35,
+- /* 220 */ 165, 40, 21, 280, 190, 41, 91, 191, 94, 173,
+- /* 230 */ 174, 92, 175, 178, 109, 111, 192, 112, 115, 114,
+- /* 240 */ 193, 117, 194, 118, 182, 120, 195, 196, 197, 61,
+- /* 250 */ 150, 46, 224, 125, 198, 227, 9, 199, 49, 247,
+- /* 260 */ 75, 204, 65, 129, 205, 77, 209, 431, 153, 52,
+- /* 270 */ 13, 248, 134, 276, 58, 212, 76, 72, 213, 431,
+- /* 280 */ 142, 216, 166, 220, 217, 265, 221, 218, 266, 222,
+- /* 290 */ 219, 267, 223, 249, 268, 250, 251, 269, 431, 255,
+- /* 300 */ 270, 431, 431, 271, 159, 431, 272, 273, 162, 274,
+- /* 310 */ 431, 431, 277, 431, 179, 278, 177, 95,
++ /* 0 */ 282, 105, 186, 106, 230, 231, 256, 233, 3, 430,
++ /* 10 */ 1, 148, 160, 175, 122, 240, 241, 405, 199, 200,
++ /* 20 */ 201, 202, 237, 100, 145, 5, 246, 4, 207, 147,
++ /* 30 */ 405, 62, 205, 206, 96, 405, 405, 225, 4, 243,
++ /* 40 */ 244, 245, 348, 98, 239, 210, 254, 232, 224, 93,
++ /* 50 */ 87, 182, 183, 184, 185, 187, 188, 234, 235, 419,
++ /* 60 */ 11, 419, 14, 67, 90, 405, 405, 101, 19, 102,
++ /* 70 */ 264, 261, 7, 157, 260, 279, 8, 281, 63, 103,
++ /* 80 */ 228, 104, 264, 238, 66, 209, 213, 214, 252, 253,
++ /* 90 */ 120, 121, 418, 257, 418, 420, 262, 420, 19, 93,
++ /* 100 */ 157, 259, 99, 236, 126, 167, 129, 179, 64, 134,
++ /* 110 */ 71, 97, 118, 115, 130, 107, 112, 136, 43, 135,
++ /* 120 */ 74, 15, 137, 138, 142, 20, 42, 143, 109, 144,
++ /* 130 */ 153, 154, 155, 166, 74, 168, 169, 170, 171, 180,
++ /* 140 */ 44, 139, 45, 131, 123, 47, 73, 125, 48, 50,
++ /* 150 */ 22, 51, 18, 127, 16, 27, 53, 26, 54, 25,
++ /* 160 */ 55, 24, 23, 30, 56, 29, 57, 28, 2, 6,
++ /* 170 */ 146, 96, 68, 33, 227, 150, 242, 229, 10, 12,
++ /* 180 */ 70, 132, 32, 31, 156, 59, 34, 69, 60, 159,
++ /* 190 */ 151, 258, 263, 275, 162, 163, 140, 89, 78, 88,
++ /* 200 */ 11, 79, 39, 80, 84, 87, 81, 38, 82, 37,
++ /* 210 */ 83, 36, 85, 17, 86, 35, 164, 40, 280, 21,
++ /* 220 */ 189, 41, 91, 177, 94, 172, 108, 173, 174, 92,
++ /* 230 */ 190, 110, 191, 111, 113, 192, 114, 117, 116, 193,
++ /* 240 */ 194, 181, 119, 195, 196, 124, 197, 46, 198, 49,
++ /* 250 */ 203, 204, 128, 208, 52, 211, 212, 133, 215, 216,
++ /* 260 */ 217, 218, 65, 61, 58, 247, 141, 219, 9, 220,
++ /* 270 */ 221, 165, 222, 223, 152, 226, 75, 248, 249, 431,
++ /* 280 */ 250, 251, 149, 431, 255, 431, 431, 265, 431, 158,
++ /* 290 */ 266, 161, 431, 267, 77, 431, 268, 269, 431, 270,
++ /* 300 */ 72, 431, 76, 271, 13, 272, 273, 431, 274, 431,
++ /* 310 */ 178, 276, 431, 277, 278, 176, 95,
+ };
+ static const YYCODETYPE yy_lookahead[] = {
+- /* 0 */ 0, 1, 63, 3, 7, 8, 68, 10, 70, 5,
+- /* 10 */ 5, 11, 12, 13, 14, 29, 30, 5, 44, 45,
+- /* 20 */ 46, 47, 110, 111, 24, 65, 66, 67, 47, 5,
+- /* 30 */ 18, 8, 51, 52, 25, 23, 24, 26, 27, 28,
+- /* 40 */ 108, 109, 56, 66, 67, 53, 54, 50, 10, 25,
+- /* 50 */ 4, 112, 113, 114, 115, 116, 117, 60, 61, 55,
+- /* 60 */ 55, 57, 57, 59, 59, 53, 54, 106, 107, 24,
+- /* 70 */ 81, 102, 103, 86, 81, 82, 96, 97, 99, 5,
+- /* 80 */ 57, 5, 37, 104, 97, 102, 103, 98, 50, 48,
+- /* 90 */ 49, 35, 36, 7, 8, 55, 4, 57, 2, 2,
+- /* 100 */ 37, 8, 8, 53, 58, 74, 108, 108, 74, 72,
+- /* 110 */ 100, 69, 69, 100, 75, 6, 9, 11, 13, 75,
+- /* 120 */ 72, 72, 75, 72, 118, 12, 119, 75, 75, 75,
+- /* 130 */ 75, 11, 40, 59, 75, 59, 120, 40, 77, 75,
+- /* 140 */ 75, 72, 72, 72, 72, 123, 121, 12, 122, 13,
+- /* 150 */ 18, 55, 124, 135, 125, 21, 23, 136, 18, 129,
+- /* 160 */ 133, 19, 130, 20, 131, 16, 22, 132, 15, 133,
+- /* 170 */ 16, 4, 17, 56, 64, 107, 8, 76, 105, 33,
+- /* 180 */ 105, 103, 101, 17, 126, 34, 16, 127, 80, 78,
+- /* 190 */ 128, 134, 105, 79, 103, 39, 8, 99, 103, 73,
+- /* 200 */ 42, 85, 84, 43, 105, 86, 54, 24, 18, 20,
+- /* 210 */ 98, 90, 19, 91, 16, 92, 87, 21, 88, 22,
+- /* 220 */ 89, 18, 23, 8, 2, 4, 98, 2, 71, 105,
+- /* 230 */ 105, 94, 105, 95, 5, 9, 2, 10, 10, 9,
+- /* 240 */ 2, 9, 2, 10, 105, 10, 2, 2, 2, 8,
+- /* 250 */ 8, 4, 2, 5, 2, 2, 32, 2, 4, 2,
+- /* 260 */ 41, 2, 31, 5, 2, 4, 2, 137, 5, 4,
+- /* 270 */ 4, 2, 5, 2, 4, 2, 25, 38, 2, 137,
+- /* 280 */ 5, 2, 5, 2, 2, 2, 2, 2, 2, 2,
+- /* 290 */ 2, 2, 2, 2, 2, 2, 2, 2, 137, 2,
+- /* 300 */ 2, 137, 137, 2, 8, 137, 2, 2, 8, 2,
+- /* 310 */ 137, 137, 2, 137, 5, 2, 8, 2,
++ /* 0 */ 0, 1, 63, 3, 7, 8, 8, 10, 4, 110,
++ /* 10 */ 111, 11, 12, 13, 14, 29, 30, 5, 44, 45,
++ /* 20 */ 46, 47, 108, 109, 24, 65, 66, 67, 47, 68,
++ /* 30 */ 18, 70, 51, 52, 8, 23, 24, 66, 67, 26,
++ /* 40 */ 27, 28, 56, 106, 107, 10, 81, 50, 5, 53,
++ /* 50 */ 54, 112, 113, 114, 115, 116, 117, 60, 61, 55,
++ /* 60 */ 24, 57, 58, 98, 86, 53, 54, 5, 25, 102,
++ /* 70 */ 103, 81, 82, 37, 99, 97, 96, 97, 55, 104,
++ /* 80 */ 57, 102, 103, 57, 4, 50, 48, 49, 35, 36,
++ /* 90 */ 7, 8, 55, 2, 57, 55, 2, 57, 25, 53,
++ /* 100 */ 37, 8, 108, 108, 74, 74, 100, 100, 69, 75,
++ /* 110 */ 69, 6, 9, 11, 72, 122, 12, 72, 119, 75,
++ /* 120 */ 40, 59, 72, 72, 75, 77, 118, 75, 13, 75,
++ /* 130 */ 75, 75, 75, 75, 40, 75, 72, 72, 72, 72,
++ /* 140 */ 120, 11, 121, 12, 125, 123, 55, 13, 124, 135,
++ /* 150 */ 18, 133, 23, 136, 21, 18, 129, 19, 130, 20,
++ /* 160 */ 131, 16, 22, 15, 132, 16, 133, 17, 4, 56,
++ /* 170 */ 64, 8, 76, 16, 105, 103, 105, 107, 101, 33,
++ /* 180 */ 79, 134, 17, 39, 105, 126, 34, 78, 127, 103,
++ /* 190 */ 80, 99, 103, 8, 73, 105, 128, 42, 84, 43,
++ /* 200 */ 24, 85, 18, 86, 92, 54, 98, 19, 90, 20,
++ /* 210 */ 91, 16, 87, 21, 88, 22, 89, 18, 8, 23,
++ /* 220 */ 2, 4, 98, 95, 71, 105, 5, 105, 105, 94,
++ /* 230 */ 2, 9, 2, 10, 9, 2, 10, 10, 9, 2,
++ /* 240 */ 2, 105, 10, 2, 2, 5, 2, 4, 2, 4,
++ /* 250 */ 2, 2, 5, 2, 4, 2, 2, 5, 2, 2,
++ /* 260 */ 2, 2, 31, 8, 4, 2, 5, 2, 32, 2,
++ /* 270 */ 2, 5, 2, 2, 5, 2, 41, 2, 2, 137,
++ /* 280 */ 2, 2, 8, 137, 2, 137, 137, 2, 137, 8,
++ /* 290 */ 2, 8, 137, 2, 4, 137, 2, 2, 137, 2,
++ /* 300 */ 38, 137, 25, 2, 4, 2, 2, 137, 2, 137,
++ /* 310 */ 5, 2, 137, 2, 2, 8, 2,
+ };
+ #define YY_SHIFT_USE_DFLT (-27)
+-#define YY_SHIFT_MAX 182
++#define YY_SHIFT_MAX 181
+ static const short yy_shift_ofst[] = {
+- /* 0 */ -27, 0, 9, -3, -14, 24, 23, 45, -8, 93,
+- /* 10 */ 63, 94, 93, 50, -3, -3, -26, -26, -19, 11,
+- /* 20 */ 11, -19, 38, 41, 41, 38, 38, 38, 41, 41,
+- /* 30 */ 41, 41, 41, 41, 56, 41, 41, 38, 38, 38,
+- /* 40 */ 38, 109, 107, 106, 113, 105, 120, 135, 136, 132,
+- /* 50 */ 134, 133, 140, 142, 143, 149, 134, 144, 153, 154,
+- /* 60 */ 155, 167, 117, 168, 117, 93, 146, 151, 170, 166,
+- /* 70 */ 156, 117, 93, 94, 93, 188, 117, 158, 160, 152,
+- /* 80 */ 183, 190, 193, 189, 198, 196, 197, 117, 117, 117,
+- /* 90 */ 183, 203, 199, 215, 117, 12, 4, 5, 86, 40,
+- /* 100 */ 46, 74, 76, 92, 96, 97, 222, 221, 229, 225,
+- /* 110 */ 226, 227, 234, 230, 228, 238, 232, 233, 240, 235,
+- /* 120 */ 244, 245, 246, 247, 248, 252, 254, 255, 258, 259,
+- /* 130 */ 262, 264, 265, 267, 273, 276, 279, 282, 285, 288,
+- /* 140 */ 270, 275, 281, 284, 287, 290, 241, 250, 253, 242,
+- /* 150 */ 231, 224, 263, 257, 269, 291, 293, 294, 296, 239,
+- /* 160 */ 297, 300, 219, 251, 261, 277, 283, 286, 289, 292,
+- /* 170 */ 295, 298, 301, 304, 305, 307, 308, 266, 309, 271,
+- /* 180 */ 310, 313, 315,
++ /* 0 */ -27, 0, 73, -3, -14, 43, 26, 36, -4, -2,
++ /* 10 */ 63, 93, -2, 46, -3, -3, -26, -26, -19, 13,
++ /* 20 */ 13, -19, 35, 38, 38, 35, 35, 35, 38, 38,
++ /* 30 */ 38, 38, 38, 38, 53, 38, 38, 35, 35, 35,
++ /* 40 */ 35, 105, 103, 102, 104, 115, 130, 131, 134, 132,
++ /* 50 */ 133, 129, 137, 138, 139, 145, 133, 140, 148, 149,
++ /* 60 */ 150, 164, 113, 163, 113, -2, 146, 152, 157, 165,
++ /* 70 */ 144, 113, -2, 93, -2, 185, 113, 155, 156, 151,
++ /* 80 */ 176, 184, 188, 189, 195, 192, 193, 113, 113, 113,
++ /* 90 */ 176, 199, 196, 210, 113, 12, 4, 83, 23, 37,
++ /* 100 */ 62, 40, 80, 91, 94, 218, 217, 221, 228, 222,
++ /* 110 */ 223, 230, 225, 226, 233, 229, 227, 237, 232, 238,
++ /* 120 */ 241, 242, 243, 240, 244, 245, 246, 247, 248, 249,
++ /* 130 */ 251, 250, 252, 253, 254, 256, 257, 258, 259, 260,
++ /* 140 */ 261, 265, 267, 268, 270, 255, 271, 273, 274, 231,
++ /* 150 */ 236, 269, 263, 275, 276, 278, 279, 281, 262, 282,
++ /* 160 */ 283, 235, 277, 290, 266, 285, 288, 291, 294, 295,
++ /* 170 */ 297, 301, 303, 304, 306, 307, 300, 305, 309, 311,
++ /* 180 */ 312, 314,
+ };
+-#define YY_REDUCE_USE_DFLT (-89)
++#define YY_REDUCE_USE_DFLT (-102)
+ #define YY_REDUCE_MAX 94
+ static const short yy_reduce_ofst[] = {
+- /* 0 */ -88, -61, -40, -68, -62, -23, -39, -11, -13, -31,
+- /* 10 */ -7, -21, -17, -20, -2, -1, 31, 34, 10, 42,
+- /* 20 */ 43, 13, 37, 39, 44, 48, 49, 51, 47, 52,
+- /* 30 */ 53, 54, 55, 59, 61, 64, 65, 69, 70, 71,
+- /* 40 */ 72, 6, 7, 16, 25, 26, 22, 28, 29, 18,
+- /* 50 */ 27, 21, 30, 32, 33, 35, 36, 57, 58, 60,
+- /* 60 */ 62, 110, 73, 68, 75, 78, 81, 101, 111, 114,
+- /* 70 */ 108, 87, 91, 98, 95, 126, 99, 118, 116, 119,
+- /* 80 */ 112, 121, 122, 123, 129, 130, 131, 124, 125, 127,
+- /* 90 */ 128, 137, 138, 157, 139,
++ /* 0 */ -101, -61, -40, -86, -39, -29, -63, -35, -22, -33,
++ /* 10 */ -10, -25, -21, -20, -6, -5, 30, 31, 6, 39,
++ /* 20 */ 41, 7, 42, 34, 44, 45, 50, 51, 49, 52,
++ /* 30 */ 54, 55, 56, 57, 48, 58, 60, 64, 65, 66,
++ /* 40 */ 67, 8, -1, 20, 21, -7, 22, 24, 19, 14,
++ /* 50 */ 18, 17, 27, 28, 29, 32, 33, 47, 59, 61,
++ /* 60 */ 68, 106, 69, 70, 71, 72, 77, 96, 109, 101,
++ /* 70 */ 110, 79, 86, 92, 89, 121, 90, 114, 116, 117,
++ /* 80 */ 108, 118, 119, 112, 125, 126, 127, 120, 122, 123,
++ /* 90 */ 124, 135, 128, 153, 136,
+ };
+ static const YYACTIONTYPE yy_default[] = {
+ /* 0 */ 284, 429, 339, 429, 340, 339, 429, 410, 408, 429,
+@@ -452,7 +452,7 @@ static const YYACTIONTYPE yy_default[] = {
+ /* 70 */ 365, 429, 429, 429, 429, 429, 429, 373, 375, 408,
+ /* 80 */ 410, 381, 383, 385, 371, 377, 379, 429, 429, 429,
+ /* 90 */ 410, 399, 397, 429, 429, 429, 429, 429, 429, 429,
+- /* 100 */ 419, 429, 429, 429, 429, 429, 429, 429, 429, 429,
++ /* 100 */ 429, 429, 429, 429, 429, 429, 429, 429, 429, 429,
+ /* 110 */ 429, 429, 429, 429, 429, 429, 429, 429, 429, 429,
+ /* 120 */ 429, 429, 429, 429, 429, 429, 429, 429, 429, 429,
+ /* 130 */ 429, 429, 429, 429, 429, 429, 429, 429, 429, 429,
+@@ -460,12 +460,12 @@ static const YYACTIONTYPE yy_default[] = {
+ /* 150 */ 429, 429, 429, 429, 429, 429, 429, 429, 429, 429,
+ /* 160 */ 429, 429, 429, 429, 429, 429, 429, 429, 429, 429,
+ /* 170 */ 429, 429, 429, 429, 429, 429, 429, 429, 429, 429,
+- /* 180 */ 429, 429, 429, 283, 285, 286, 287, 288, 289, 290,
+- /* 190 */ 291, 292, 302, 300, 298, 296, 293, 294, 304, 323,
+- /* 200 */ 386, 387, 388, 389, 327, 331, 400, 401, 402, 329,
+- /* 210 */ 393, 394, 313, 325, 390, 391, 321, 319, 317, 315,
+- /* 220 */ 305, 311, 309, 307, 333, 334, 335, 337, 341, 414,
+- /* 230 */ 416, 418, 423, 425, 427, 428, 420, 421, 415, 417,
++ /* 180 */ 429, 429, 283, 285, 286, 287, 288, 289, 290, 291,
++ /* 190 */ 292, 302, 300, 298, 296, 293, 294, 304, 323, 386,
++ /* 200 */ 387, 388, 389, 327, 331, 400, 401, 402, 329, 393,
++ /* 210 */ 394, 313, 325, 390, 391, 321, 319, 317, 315, 305,
++ /* 220 */ 311, 309, 307, 333, 334, 335, 337, 341, 414, 416,
++ /* 230 */ 423, 424, 425, 426, 427, 428, 421, 422, 415, 417,
+ /* 240 */ 346, 347, 338, 343, 344, 345, 336, 349, 364, 362,
+ /* 250 */ 360, 353, 355, 356, 357, 359, 368, 409, 411, 413,
+ /* 260 */ 412, 358, 351, 366, 367, 369, 378, 376, 370, 384,
+diff --git a/svnversion.h b/svnversion.h
+index 46fba12..b3f53a6 100644
+--- a/svnversion.h
++++ b/svnversion.h
+@@ -1 +1 @@
+-#define SVNVERSION "SVN Rev 26954"
++/* #define SVNVERSION "" */
+diff --git a/tools/idl2wrs.sh b/tools/idl2wrs.sh
+index 9046f91..bca78f8 100644
+--- a/tools/idl2wrs.sh
++++ b/tools/idl2wrs.sh
+@@ -1,4 +1,4 @@
+-#! /bin/bash
++#! /bin/sh
+ #
+ # $Id: idl2wrs.sh.in 19742 2006-10-30 18:17:10Z jmayer $
+ #