From Pascal Quantin.
LTE Positioning Protocol dissector https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6460 svn path=/trunk/; revision=39436
This commit is contained in:
parent
37f853b220
commit
56c3bd0686
|
@ -66,6 +66,7 @@ SUBDIRS = \
|
|||
lcsap \
|
||||
ldap \
|
||||
logotypecertextn \
|
||||
lpp \
|
||||
lte-rrc \
|
||||
mms \
|
||||
mpeg-audio \
|
||||
|
|
|
@ -120,6 +120,7 @@ PER_LIST= \
|
|||
h501 \
|
||||
hnbap \
|
||||
lcsap \
|
||||
lpp \
|
||||
lte-rrc \
|
||||
nbap \
|
||||
mpeg-audio \
|
||||
|
|
|
@ -44,6 +44,7 @@ EXTRA_DIST = \
|
|||
Makefile.nmake \
|
||||
$(ASN_FILE_LIST) \
|
||||
packet-$(PROTOCOL_NAME)-template.c \
|
||||
packet-$(PROTOCOL_NAME)-template.h \
|
||||
$(PROTOCOL_NAME).cnf
|
||||
|
||||
SRC_FILES = \
|
||||
|
|
|
@ -9,6 +9,7 @@ ALIGNED
|
|||
#.END
|
||||
|
||||
#.EXPORTS
|
||||
Correlation-ID_PDU
|
||||
|
||||
#.PDU_NEW
|
||||
LCS-AP-PDU
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,26 @@
|
|||
# $Id$
|
||||
#
|
||||
#
|
||||
# Wireshark - Network traffic analyzer
|
||||
# By Gerald Combs <gerald@wireshark.org>
|
||||
# Copyright 1998 Gerald Combs
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
|
||||
include ../Makefile.preinc
|
||||
include Makefile.common
|
||||
include ../Makefile.inc
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
# $Id$
|
||||
#
|
||||
#
|
||||
# Wireshark - Network traffic analyzer
|
||||
# By Gerald Combs <gerald@wireshark.org>
|
||||
# Copyright 1998 Gerald Combs
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
|
||||
PROTOCOL_NAME = lpp
|
||||
|
||||
EXT_ASN_FILE_LIST =
|
||||
|
||||
ASN_FILE_LIST = \
|
||||
LPP.asn
|
||||
|
||||
EXTRA_DIST = \
|
||||
Makefile.nmake \
|
||||
$(ASN_FILE_LIST) \
|
||||
packet-$(PROTOCOL_NAME)-template.c \
|
||||
$(PROTOCOL_NAME).cnf
|
||||
|
||||
SRC_FILES = \
|
||||
$(EXTRA_DIST) \
|
||||
$(EXT_ASN_FILE_LIST)
|
||||
|
||||
A2W_FLAGS =
|
||||
|
||||
EXTRA_CNF =
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
#
|
||||
# Wireshark - Network traffic analyzer
|
||||
# By Gerald Combs <gerald@wireshark.org>
|
||||
# Copyright 1998 Gerald Combs
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
|
||||
include ../../config.nmake
|
||||
include ../Makefile.preinc.nmake
|
||||
include Makefile.common
|
||||
include ../Makefile.inc.nmake
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
# lpp.cnf
|
||||
# llp conformation file
|
||||
# Copyright 2011 Pascal Quantin
|
||||
# $Id$
|
||||
|
||||
#.OPT
|
||||
PER
|
||||
UNALIGNED
|
||||
#.END
|
||||
|
||||
#.PDU_NEW
|
||||
LPP-Message
|
||||
|
||||
#.FN_HDR LPP-Message
|
||||
|
||||
proto_tree_add_item(tree, proto_lpp, tvb, 0, -1, ENC_NA);
|
||||
|
||||
col_append_str(actx->pinfo->cinfo, COL_PROTOCOL, "/LPP");
|
||||
#.END
|
||||
|
||||
# Handle 64 bit constraint
|
||||
#.FN_PARS NavModelCNAV-KeplerianSet/cnavMo FN_VARIANT = _64b
|
||||
#.FN_PARS NavModelCNAV-KeplerianSet/cnavE FN_VARIANT = _64b
|
||||
#.FN_PARS NavModelCNAV-KeplerianSet/cnavOmega FN_VARIANT = _64b
|
||||
#.FN_PARS NavModelCNAV-KeplerianSet/cnavOMEGA0 FN_VARIANT = _64b
|
||||
#.FN_PARS NavModelCNAV-KeplerianSet/cnavIo FN_VARIANT = _64b
|
||||
|
||||
#.FN_HDR RequestCapabilities
|
||||
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Capabilities");
|
||||
|
||||
#.FN_HDR ProvideCapabilities
|
||||
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Capabilities");
|
||||
|
||||
#.FN_HDR RequestAssistanceData
|
||||
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Assistance Data");
|
||||
|
||||
#.FN_HDR ProvideAssistanceData
|
||||
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Assistance Data");
|
||||
|
||||
#.FN_HDR RequestLocationInformation
|
||||
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Location Information");
|
||||
|
||||
#.FN_HDR ProvideLocationInformation
|
||||
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Location Information");
|
||||
|
||||
#.FN_HDR Abort
|
||||
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Abort");
|
||||
|
||||
#.FN_HDR Error
|
||||
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Error");
|
||||
|
|
@ -0,0 +1,99 @@
|
|||
/* packet-lpp.c
|
||||
* Routines for 3GPP LTE Positioning Protocol (LLP) packet dissection
|
||||
* Copyright 2011, Pascal Quantin <pascal.quantin@gmail.com>
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@wireshark.org>
|
||||
* Copyright 1998 Gerald Combs
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Ref 3GPP TS 36.355 version 9.7.0 Release 9
|
||||
* http://www.3gpp.org
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include <glib.h>
|
||||
#include <epan/packet.h>
|
||||
#include <epan/asn1.h>
|
||||
|
||||
#include "packet-per.h"
|
||||
|
||||
#define PNAME "LTE Positioning Protocol (LLP)"
|
||||
#define PSNAME "LPP"
|
||||
#define PFNAME "lpp"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
|
||||
#pragma warning(disable:4146)
|
||||
#endif
|
||||
|
||||
/* Initialize the protocol and registered fields */
|
||||
static int proto_lpp = -1;
|
||||
|
||||
#include "packet-lpp-hf.c"
|
||||
|
||||
/* Initialize the subtree pointers */
|
||||
static gint ett_lpp = -1;
|
||||
#include "packet-lpp-ett.c"
|
||||
|
||||
/* Include constants */
|
||||
#include "packet-lpp-val.h"
|
||||
|
||||
|
||||
#include "packet-lpp-fn.c"
|
||||
|
||||
|
||||
/*--- proto_register_lpp -------------------------------------------*/
|
||||
void proto_register_lpp(void) {
|
||||
|
||||
/* List of fields */
|
||||
static hf_register_info hf[] = {
|
||||
|
||||
#include "packet-lpp-hfarr.c"
|
||||
};
|
||||
|
||||
/* List of subtrees */
|
||||
static gint *ett[] = {
|
||||
&ett_lpp,
|
||||
#include "packet-lpp-ettarr.c"
|
||||
};
|
||||
|
||||
|
||||
/* Register protocol */
|
||||
proto_lpp = proto_register_protocol(PNAME, PSNAME, PFNAME);
|
||||
new_register_dissector("lpp", dissect_LPP_Message_PDU, proto_lpp);
|
||||
|
||||
/* Register fields and subtrees */
|
||||
proto_register_field_array(proto_lpp, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*--- proto_reg_handoff_lpp ---------------------------------------*/
|
||||
void
|
||||
proto_reg_handoff_lpp(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -1929,6 +1929,7 @@ AC_OUTPUT(
|
|||
asn1/lcsap/Makefile
|
||||
asn1/ldap/Makefile
|
||||
asn1/logotypecertextn/Makefile
|
||||
asn1/lpp/Makefile
|
||||
asn1/lte-rrc/Makefile
|
||||
asn1/mms/Makefile
|
||||
asn1/mpeg-audio/Makefile
|
||||
|
|
|
@ -178,6 +178,7 @@ DIRTY_ASN1_DISSECTOR_SRC = \
|
|||
packet-gprscdr.c \
|
||||
packet-gsm_map.c \
|
||||
packet-ldap.c \
|
||||
packet-lpp.c \
|
||||
packet-lte-rrc.c \
|
||||
packet-nbap.c \
|
||||
packet-p1.c \
|
||||
|
|
|
@ -119,7 +119,7 @@ static int proto_lcsap = -1;
|
|||
/*--- Included file: packet-lcsap-hf.c ---*/
|
||||
#line 1 "../../asn1/lcsap/packet-lcsap-hf.c"
|
||||
static int hf_lcsap_Accuracy_Fulfillment_Indicator_PDU = -1; /* Accuracy_Fulfillment_Indicator */
|
||||
static int hf_lcsap_Correlation_ID_PDU = -1; /* Correlation_ID */
|
||||
static int hf_lcsap_lcsap_Correlation_ID_PDU = -1; /* Correlation_ID */
|
||||
static int hf_lcsap_E_CGI_PDU = -1; /* E_CGI */
|
||||
static int hf_lcsap_Geographical_Area_PDU = -1; /* Geographical_Area */
|
||||
static int hf_lcsap_IMSI_PDU = -1; /* IMSI */
|
||||
|
@ -340,7 +340,7 @@ dissect_lcsap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
|
|||
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
|
||||
0U, 255U, &ProcedureCode, FALSE);
|
||||
|
||||
#line 64 "../../asn1/lcsap/lcsap.cnf"
|
||||
#line 65 "../../asn1/lcsap/lcsap.cnf"
|
||||
|
||||
if (check_col(actx->pinfo->cinfo, COL_INFO))
|
||||
{
|
||||
|
@ -418,7 +418,7 @@ dissect_lcsap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
|
|||
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
|
||||
0U, 65535U, &ProtocolIE_ID, FALSE);
|
||||
|
||||
#line 52 "../../asn1/lcsap/lcsap.cnf"
|
||||
#line 53 "../../asn1/lcsap/lcsap.cnf"
|
||||
if (tree) {
|
||||
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(lcsap_ProtocolIE_ID_vals), "unknown (%d)"));
|
||||
}
|
||||
|
@ -646,7 +646,7 @@ dissect_lcsap_DegreesLongitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
|
|||
|
||||
static int
|
||||
dissect_lcsap_PLMN_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 135 "../../asn1/lcsap/lcsap.cnf"
|
||||
#line 136 "../../asn1/lcsap/lcsap.cnf"
|
||||
tvbuff_t *parameter_tvb=NULL;
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
3, 3, FALSE, ¶meter_tvb);
|
||||
|
@ -1791,11 +1791,11 @@ static int dissect_Accuracy_Fulfillment_Indicator_PDU(tvbuff_t *tvb _U_, packet_
|
|||
offset += 7; offset >>= 3;
|
||||
return offset;
|
||||
}
|
||||
static int dissect_Correlation_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
|
||||
int dissect_lcsap_Correlation_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
|
||||
int offset = 0;
|
||||
asn1_ctx_t asn1_ctx;
|
||||
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
|
||||
offset = dissect_lcsap_Correlation_ID(tvb, offset, &asn1_ctx, tree, hf_lcsap_Correlation_ID_PDU);
|
||||
offset = dissect_lcsap_Correlation_ID(tvb, offset, &asn1_ctx, tree, hf_lcsap_lcsap_Correlation_ID_PDU);
|
||||
offset += 7; offset >>= 3;
|
||||
return offset;
|
||||
}
|
||||
|
@ -2077,7 +2077,7 @@ proto_reg_handoff_lcsap(void)
|
|||
dissector_add_uint("lcsap.ies", id_Destination_ID, new_create_dissector_handle(dissect_Network_Element_PDU, proto_lcsap));
|
||||
dissector_add_uint("lcsap.ies", id_Source_Identity, new_create_dissector_handle(dissect_Network_Element_PDU, proto_lcsap));
|
||||
dissector_add_uint("lcsap.ies", id_Location_Estimate, new_create_dissector_handle(dissect_Geographical_Area_PDU, proto_lcsap));
|
||||
dissector_add_uint("lcsap.ies", id_Correlation_ID, new_create_dissector_handle(dissect_Correlation_ID_PDU, proto_lcsap));
|
||||
dissector_add_uint("lcsap.ies", id_Correlation_ID, new_create_dissector_handle(dissect_lcsap_Correlation_ID_PDU, proto_lcsap));
|
||||
dissector_add_uint("lcsap.ies", id_Location_Type, new_create_dissector_handle(dissect_Location_Type_PDU, proto_lcsap));
|
||||
dissector_add_uint("lcsap.ies", id_E_UTRAN_Cell_Identifier, new_create_dissector_handle(dissect_E_CGI_PDU, proto_lcsap));
|
||||
dissector_add_uint("lcsap.ies", id_LCS_Priority, new_create_dissector_handle(dissect_LCS_Priority_PDU, proto_lcsap));
|
||||
|
@ -2132,7 +2132,7 @@ void proto_register_lcsap(void) {
|
|||
{ "Accuracy-Fulfillment-Indicator", "lcsap.Accuracy_Fulfillment_Indicator",
|
||||
FT_UINT32, BASE_DEC, VALS(lcsap_Accuracy_Fulfillment_Indicator_vals), 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_lcsap_Correlation_ID_PDU,
|
||||
{ &hf_lcsap_lcsap_Correlation_ID_PDU,
|
||||
{ "Correlation-ID", "lcsap.Correlation_ID",
|
||||
FT_BYTES, BASE_NONE, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
/* Do not modify this file. */
|
||||
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
|
||||
/* packet-lcsap.h */
|
||||
/* ../../tools/asn2wrs.py -p lcsap -c ./lcsap.cnf -s ./packet-lcsap-template -D . -O ../../epan/dissectors LCS-AP-CommonDataTypes.asn LCS-AP-Constants.asn LCS-AP-Containers.asn LCS-AP-IEs.asn LCS-AP-PDU-Contents.asn LCS-AP-PDU-Descriptions.asn */
|
||||
|
||||
/* Input file: packet-lcsap-template.h */
|
||||
|
||||
#line 1 "../../asn1/lcsap/packet-lcsap-template.h"
|
||||
/* packet-lcsap.c
|
||||
* Routines for LCS-AP packet dissembly.
|
||||
*
|
||||
* Copyright (c) 2011 by Spenser Sheng <spenser.sheng@ericsson.com>
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@wireshark.org>
|
||||
* Copyright 1999 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.
|
||||
* References:
|
||||
* ETSI TS 129 171 V9.2.0 (2010-10)
|
||||
*/
|
||||
|
||||
#ifndef PACKET_LCSAP_H
|
||||
#define PACKET_LCSAP_H
|
||||
|
||||
|
||||
/*--- Included file: packet-lcsap-exp.h ---*/
|
||||
#line 1 "../../asn1/lcsap/packet-lcsap-exp.h"
|
||||
int dissect_lcsap_Correlation_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);
|
||||
|
||||
/*--- End of included file: packet-lcsap-exp.h ---*/
|
||||
#line 33 "../../asn1/lcsap/packet-lcsap-template.h"
|
||||
|
||||
#endif /* PACKET_LCSAP_H */
|
File diff suppressed because it is too large
Load Diff
|
@ -37,6 +37,7 @@
|
|||
#include "packet-gsm_map.h"
|
||||
#include "packet-gsm_a_common.h"
|
||||
#include "packet-e212.h"
|
||||
#include "packet-lcsap.h"
|
||||
|
||||
#define PNAME "Non-Access-Stratum (NAS)PDU"
|
||||
#define PSNAME "NAS-EPS"
|
||||
|
@ -47,6 +48,7 @@ static int proto_nas_eps = -1;
|
|||
|
||||
/* Dissector handles */
|
||||
static dissector_handle_t gsm_a_dtap_handle;
|
||||
static dissector_handle_t lpp_handle;
|
||||
|
||||
/* Forward declaration */
|
||||
static void disect_nas_eps_esm_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset);
|
||||
|
@ -195,7 +197,8 @@ static int hf_nas_eps_service_type = -1;
|
|||
|
||||
static int hf_nas_eps_nas_msg_cont = -1;
|
||||
static int hf_nas_eps_gen_msg_cont = -1;
|
||||
static int hf_nas_eps_emm_add_info = -1;
|
||||
|
||||
static int hf_nas_eps_cmn_add_info = -1;
|
||||
|
||||
/* ESM */
|
||||
static int hf_nas_eps_msg_esm_type = -1;
|
||||
|
@ -207,6 +210,7 @@ static int ett_nas_eps = -1;
|
|||
static int ett_nas_eps_esm_msg_cont = -1;
|
||||
static int ett_nas_eps_nas_msg_cont = -1;
|
||||
static int ett_nas_eps_gen_msg_cont = -1;
|
||||
static int ett_nas_eps_cmn_add_info = -1;
|
||||
|
||||
/* Global variables */
|
||||
static packet_info *gpinfo;
|
||||
|
@ -379,9 +383,25 @@ nas_eps_common_elem_idx_t;
|
|||
|
||||
/* 9.9.2.0 Additional information */
|
||||
static guint16
|
||||
de_eps_cmn_add_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
de_eps_cmn_add_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
proto_tree_add_item(tree, hf_nas_eps_emm_add_info, tvb, offset, len, ENC_NA);
|
||||
proto_item *item;
|
||||
proto_tree *sub_tree;
|
||||
tvbuff_t *new_tvb;
|
||||
|
||||
item = proto_tree_add_item(tree, hf_nas_eps_cmn_add_info, tvb, offset, len, ENC_NA);
|
||||
sub_tree = proto_item_add_subtree(item, ett_nas_eps_cmn_add_info);
|
||||
|
||||
new_tvb = tvb_new_subset(tvb, offset, len, len);
|
||||
|
||||
switch (eps_nas_gen_msg_cont_type) {
|
||||
case 1:
|
||||
/* LPP */
|
||||
dissect_lcsap_Correlation_ID_PDU(new_tvb, pinfo, sub_tree);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return(len);
|
||||
}
|
||||
|
@ -1940,6 +1960,9 @@ de_emm_gen_msg_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
|
|||
switch (eps_nas_gen_msg_cont_type) {
|
||||
case 1:
|
||||
/* LPP */
|
||||
if (lpp_handle) {
|
||||
call_dissector(lpp_handle, new_tvb, pinfo, sub_tree);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
/* Location services */
|
||||
|
@ -2651,7 +2674,7 @@ nas_emm_attach_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
|
|||
/* 59 T3423 value GPRS timer 9.9.3.16 O TV 2 */
|
||||
ELEM_OPT_TV(0x59, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER, " - T3423 value");
|
||||
/* 4A Equivalent PLMNs PLMN list 9.9.2.8 O TLV 5-47 */
|
||||
ELEM_OPT_TLV(0x4a, NAS_PDU_TYPE_COMMON, DE_EPS_CMN_PLM_LST, " - Equivalent PLMNs");
|
||||
ELEM_OPT_TLV(0x4a, NAS_PDU_TYPE_COMMON, DE_PLMN_LIST, " - Equivalent PLMNs");
|
||||
/* 34 Emergency Number List 9.9.3.37 O TLV 5-50 */
|
||||
ELEM_OPT_TLV(0x34, GSM_A_PDU_TYPE_DTAP, DE_EMERGENCY_NUM_LIST, NULL);
|
||||
/* 64 EPS network feature support EPS network feature support 9.9.3.12A O TLV 3 */
|
||||
|
@ -3390,7 +3413,7 @@ nas_emm_trac_area_upd_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U
|
|||
/* 59 T3423 value GPRS timer 9.9.3.16 O TV 2 */
|
||||
ELEM_OPT_TV(0x59, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER, " - T3423 value");
|
||||
/* 4A Equivalent PLMNs PLMN list 9.9.2.8 O TLV 5-47 */
|
||||
ELEM_OPT_TLV(0x4a, NAS_PDU_TYPE_COMMON, DE_EPS_CMN_PLM_LST, " - PLMN list");
|
||||
ELEM_OPT_TLV(0x4a, NAS_PDU_TYPE_COMMON, DE_PLMN_LIST, " - PLMN list");
|
||||
/* 34 Emergency Number List Emergency Number List 9.9.3.37 O TLV 5-50 */
|
||||
ELEM_OPT_TLV(0x34, GSM_A_PDU_TYPE_DTAP, DE_EMERGENCY_NUM_LIST, NULL);
|
||||
/* 64 EPS network feature support EPS network feature support 9.9.3.12A O TLV 3 */
|
||||
|
@ -5332,8 +5355,8 @@ void proto_register_nas_eps(void) {
|
|||
FT_BYTES, BASE_NONE, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_nas_eps_emm_add_info,
|
||||
{ "Additional information content", "nas_eps.emm.add_info",
|
||||
{ &hf_nas_eps_cmn_add_info,
|
||||
{ "Additional information content", "nas_eps.cmn.add_info",
|
||||
FT_BYTES, BASE_NONE, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
@ -5361,7 +5384,7 @@ void proto_register_nas_eps(void) {
|
|||
};
|
||||
|
||||
/* Setup protocol subtree array */
|
||||
#define NUM_INDIVIDUAL_ELEMS 4
|
||||
#define NUM_INDIVIDUAL_ELEMS 5
|
||||
gint *ett[NUM_INDIVIDUAL_ELEMS +
|
||||
NUM_NAS_EPS_COMMON_ELEM +
|
||||
NUM_NAS_MSG_EMM + NUM_NAS_EMM_ELEM+
|
||||
|
@ -5371,6 +5394,7 @@ void proto_register_nas_eps(void) {
|
|||
ett[1] = &ett_nas_eps_esm_msg_cont;
|
||||
ett[2] = &ett_nas_eps_nas_msg_cont;
|
||||
ett[3] = &ett_nas_eps_gen_msg_cont;
|
||||
ett[4] = &ett_nas_eps_cmn_add_info;
|
||||
|
||||
last_offset = NUM_INDIVIDUAL_ELEMS;
|
||||
|
||||
|
@ -5421,7 +5445,6 @@ void proto_register_nas_eps(void) {
|
|||
void
|
||||
proto_reg_handoff_nas_eps(void)
|
||||
{
|
||||
|
||||
gsm_a_dtap_handle = find_dissector("gsm_a_dtap");
|
||||
|
||||
lpp_handle = find_dissector("lpp");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue