From Vincent Helfre:

LTE RRC

svn path=/trunk/; revision=27010
This commit is contained in:
Anders Broman 2008-12-15 21:18:12 +00:00
parent 0817daf0c7
commit dbea27fe5e
7 changed files with 3002 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,224 @@
-- 3GPP TS 36.331 V8.3.0 Release 8
-- $Id:$
--
EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
ConnectedModeSpeedDependentScalingParameters,
CDMA2000-SystemTimeInfo,
MeasId,
MeasIdToAddModifyList,
MeasObjectToAddModifyList,
MobilityStateParameters,
PhysicalCellIdentity,
QuantityConfig,
ReportConfigToAddModifyList,
maxCellMeas,
maxMeasId
FROM EUTRA-RRC-Definitions;
VarMeasurementConfiguration ::= SEQUENCE {
-- Measurement identities
measIdList MeasIdToAddModifyList OPTIONAL,
-- Measurement objects
measObjectList MeasObjectToAddModifyList OPTIONAL,
-- Reporting configurations
reportConfigList ReportConfigToAddModifyList OPTIONAL,
-- Other parameters
quantityConfig QuantityConfig OPTIONAL,
s-Measure INTEGER (0) OPTIONAL,
cdma2000-SystemTimeInfo CDMA2000-SystemTimeInfo OPTIONAL,
mbsfn-NeighbourCellConfig SEQUENCE {} OPTIONAL, -- 2-bit field FFS
speedDependentParameters SEQUENCE {
mobilityStateParameters MobilityStateParameters,
speedDependentScalingParameters ConnectedModeSpeedDependentScalingParameters
}
}
VarMeasurementReports ::= SEQUENCE (SIZE (1..maxMeasId)) OF SEQUENCE {
-- List of measurement that have been triggered
measId MeasId,
cellsTriggeredList CellsTriggeredList,
numberOfReportsSent INTEGER
}
CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF SEQUENCE {
cellIdentity PhysicalCellIdentity
}
END
EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
MasterInformationBlock,
MeasurementConfiguration,
NextHopChainingCount,
PhysicalCellIdentity,
RadioResourceConfigDedicated,
DL-DCCH-Message,
SecurityConfiguration,
SystemInformationBlockType1,
SystemInformationBlockType2,
UECapabilityInformation,
UE-RelatedInformation
FROM EUTRA-RRC-Definitions;
InterNode-Message ::= SEQUENCE {
message InterNode-MessageType
}
InterNode-MessageType ::= CHOICE {
c1 CHOICE {
interRAT-Message InterRAT-Message,
handoverCommand HandoverCommand,
handoverPreparationInformation HandoverPreparationInformation,
ueRadioAccessCapabilityInformation UERadioAccessCapabilityInformation
},
messageClassExtension SEQUENCE {}
}
InterRAT-Message ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
interRAT-Message-r8 InterRAT-Message-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensions SEQUENCE {}
}
}
InterRAT-Message-r8-IEs ::= SEQUENCE {
interRAT-Message OCTET STRING,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
HandoverCommand ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
handoverCommand-r8 HandoverCommand-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensions SEQUENCE {}
}
}
HandoverCommand-r8-IEs ::= SEQUENCE {
handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
HandoverPreparationInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensions SEQUENCE {}
}
}
HandoverPreparationInformation-r8-IEs ::= SEQUENCE {
as-Configuration AS-Configuration OPTIONAL,
rrm-Configuration RRM-Configuration OPTIONAL,
as-Context AS-Context,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
UERadioAccessCapabilityInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
ueRadioAccessCapabilityInformation-r8
UERadioAccessCapabilityInformation-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensions SEQUENCE {}
}
}
UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE {
ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
AS-Configuration ::= SEQUENCE {
sourceMeasurementConfiguration MeasurementConfiguration,
sourceRadioResourceConfiguration RadioResourceConfigDedicated,
sourceSecurityConfiguration SecurityConfiguration,
sourceUE-RelatedInformation UE-RelatedInformation,
sourceMasterInformationBlock MasterInformationBlock,
sourceSystemInformationBlockType1 SystemInformationBlockType1,
sourceSystemInformationBlockType2 SystemInformationBlockType2,
...
}
AS-Context ::= SEQUENCE {
ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation),
ue-SecurityCapabilityInfo OCTET STRING,
reestablishmentInfo ReestablishmentInfo,
securityContextInfo SecurityContextInfo
}
Key-eNodeB-Star ::= SEQUENCE {
-- Enter the IEs here. FFS
}
ReestablishmentInfo ::= SEQUENCE {
sourcePhysicalCellIdentity PhysicalCellIdentity,
sourceShortMAC-I BIT STRING (SIZE (16)),
...
}
RRM-Configuration ::= SEQUENCE {
ue-InactiveTime ENUMERATED {
v1sec, v2sec, v3sec, v5sec, v7sec, v10sec, v15sec, v20sec,
v25sec, v30sec, v40sec, v50sec, v1min, v1min20sec, v1min40sec,
v2min, v2min30sec, v3min, v3min30sec, v4min, v5min, v6min,
v7min, v8min, v9min, v10min, v12min, v14min, v17min, v20min,
v24min, v28min, v33min, v38min, v44min, v50min, v1hr,
v1hr30min, v2hr, v2hr30min, v3hr, v3hr30min, v4hr, v5hr, v6hr,
v8hr, v10hr, v13hr, v16hr, v20hr, v1day, v1day12hr, v2day,
v2day12hr, v3day, v4day, v5day, v7day, v10day, v14day, v19day,
v24day, v30day, morethan30day} OPTIONAL,
...
}
SecurityContextInfo ::= SEQUENCE {
key-eNodeB-Star Key-eNodeB-Star,
indexIncreaseIndicator BOOLEAN,
nextHopChainingCount NextHopChainingCount
}
END

26
asn1/lte-rrc/Makefile.am Normal file
View File

@ -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

View File

@ -0,0 +1,49 @@
# $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 = lte-rrc
DISSECTOR_FILES = \
packet-$(PROTOCOL_NAME).c
# NEED_PACKET_PROTO_H =
EXT_ASN_FILE_LIST =
ASN_FILE_LIST = \
EUTRA-RRC-Definitions.asn \
EUTRA-UE-Variables.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 =

View File

@ -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

31
asn1/lte-rrc/lte-rrc.cnf Normal file
View File

@ -0,0 +1,31 @@
# lte-rrc.cnf
# lte-rrc conformation file
# Copyright 2008 Vincent Helfre
# $Id$
#.OPT
PER
UNALIGNED
#.END
#.OMIT_ASSIGNMENT
#.END
#.PDU
BCCH-BCH-Message @bcch.bch
BCCH-DL-SCH-Message @bcch.dl.sch
PCCH-Message @pcch
DL-CCCH-Message @dl.ccch
DL-DCCH-Message @dl.dcch
UL-CCCH-Message @ul.ccch
UL-DCCH-Message @ul.dcch
#.END
#.FN_BODY NAS-DedicatedInformation VAL_PTR = &nas_eps_tvb
tvbuff_t *nas_eps_tvb=NULL;
%(DEFAULT_BODY)s
if (nas_eps_tvb)
call_dissector(nas_eps_handle,nas_eps_tvb,%(ACTX)s->pinfo, proto_tree_get_root(tree));

View File

@ -0,0 +1,125 @@
/* packet-lte-rrc-template.c
* Routines for Evolved Universal Terrestrial Radio Access (E-UTRA);
* Radio Resource Control (RRC) protocol specification
* (3GPP TS 36.331 V8.3.0 Release 8) packet dissection
* Copyright 2008, Vincent Helfre
*
* $Id$
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <glib.h>
#include <epan/packet.h>
#include <epan/conversation.h>
#include <epan/asn1.h>
#include <stdio.h>
#include <string.h>
#include "packet-ber.h"
#include "packet-per.h"
#define PNAME "LTE Radio Resource Control (RRC) protocol"
#define PSNAME "LTE RRC"
#define PFNAME "lte_rrc"
static dissector_handle_t nas_eps_handle;
/* Include constants */
#include "packet-lte-rrc-val.h"
/* Initialize the protocol and registered fields */
static int proto_lte_rrc = -1;
#include "packet-lte-rrc-hf.c"
/* Initialize the subtree pointers */
static int ett_lte_rrc = -1;
#include "packet-lte-rrc-ett.c"
/* Global variables */
static proto_tree *top_tree;
#include "packet-lte-rrc-fn.c"
static void
dissect_lte_rrc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
proto_item *lte_rrc_item = NULL;
proto_tree *lte_rrc_tree = NULL;
top_tree = tree;
/* make entry in the Protocol column on summary display */
if (check_col(pinfo->cinfo, COL_PROTOCOL))
col_set_str(pinfo->cinfo, COL_PROTOCOL, "RRC");
/* create the rrc protocol tree */
lte_rrc_item = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, FALSE);
lte_rrc_tree = proto_item_add_subtree(lte_rrc_item, ett_lte_rrc);
}
/*--- proto_register_rrc -------------------------------------------*/
void proto_register_lte_rrc(void) {
/* List of fields */
static hf_register_info hf[] = {
#include "packet-lte-rrc-hfarr.c"
};
/* List of subtrees */
static gint *ett[] = {
&ett_lte_rrc,
#include "packet-lte-rrc-ettarr.c"
};
/* Register protocol */
proto_lte_rrc = proto_register_protocol(PNAME, PSNAME, PFNAME);
/* Register fields and subtrees */
proto_register_field_array(proto_lte_rrc, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
register_dissector("lte_rrc", dissect_lte_rrc, proto_lte_rrc);
#include "packet-lte-rrc-dis-reg.c"
}
/*--- proto_reg_handoff_rrc ---------------------------------------*/
void
proto_reg_handoff_lte_rrc(void)
{
nas_eps_handle = find_dissector("nas_eps");
}