aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/s1ap
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2009-11-05 20:34:56 +0000
committerAnders Broman <anders.broman@ericsson.com>2009-11-05 20:34:56 +0000
commit110a5be310239218a3015999a0ec979ece02d1bc (patch)
treef9eaef025195916878a5d974c36cf0d4806ad496 /asn1/s1ap
parent01c31f7d2a104f036fec438b3dabe31e5fe3a81b (diff)
Dissect Source-ToTarget-TransparentContainer in the intra LTE case.
svn path=/trunk/; revision=30837
Diffstat (limited to 'asn1/s1ap')
-rw-r--r--asn1/s1ap/packet-s1ap-template.c3
-rw-r--r--asn1/s1ap/s1ap.cnf66
2 files changed, 65 insertions, 4 deletions
diff --git a/asn1/s1ap/packet-s1ap-template.c b/asn1/s1ap/packet-s1ap-template.c
index 3827568b31..d7e6ed5eed 100644
--- a/asn1/s1ap/packet-s1ap-template.c
+++ b/asn1/s1ap/packet-s1ap-template.c
@@ -81,6 +81,7 @@ static guint32 ProcedureCode;
static guint32 ProtocolIE_ID;
static guint32 ProtocolExtensionID;
static guint gbl_s1apSctpPort=SCTP_PORT_S1AP;
+static guint32 handover_type_value;
/* Dissector tables */
static dissector_table_t s1ap_ies_dissector_table;
@@ -101,6 +102,8 @@ static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, pro
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+static int dissect_s1ap_SourceeNB_ToTargeteNB_TransparentContainer(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
+
#include "packet-s1ap-fn.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
diff --git a/asn1/s1ap/s1ap.cnf b/asn1/s1ap/s1ap.cnf
index de91ab31c6..33c8c287db 100644
--- a/asn1/s1ap/s1ap.cnf
+++ b/asn1/s1ap/s1ap.cnf
@@ -12,6 +12,7 @@ ALIGNED
#.PDU_NEW
S1AP-PDU
+SourceeNB-ToTargeteNB-TransparentContainer
#.MAKE_ENUM
ProcedureCode
@@ -31,14 +32,10 @@ Presence
L3-Information
OldBSS-ToNewBSS-Information
SourceBSS-ToTargetBSS-TransparentContainer
-SourceeNB-ToTargeteNB-TransparentContainer
SourceRNC-ToTargetRNC-TransparentContainer
TargeteNB-ToSourceeNB-TransparentContainer
TargetRNC-ToSourceRNC-TransparentContainer
TargetBSS-ToSourceBSS-TransparentContainer
-RRC-Container
-E-RABInformationList
-UE-HistoryInformation
#.END
@@ -243,6 +240,67 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
#.FN_HDR UplinkNASTransport
/* Set the direction of the message */
actx->pinfo->link_dir=P2P_DIR_UL;
+
+#.FN_BODY HandoverType VAL_PTR = &handover_type_value
+
+%(DEFAULT_BODY)s
+
+#Zero the value before use
+#.FN_HDR HandoverRequired
+ handover_type_value = 0;
+#.FN_HDR HandoverCommand
+ handover_type_value = 0;
+#.FN_HDR HandoverRequest
+ handover_type_value = 0;
+
+#.FN_BODY Source-ToTarget-TransparentContainer
+
+# Annex A
+# ...Therefore the container content is encoded according to the
+# rules which are specified for the target radio system. In section 8.4.1.2,
+# it is described how the container shall be encoded with respect to the scenario
+# in which it is used.
+ switch(handover_type_value){
+ /*
+ HandoverType ::= ENUMERATED {
+ intralte,
+ ltetoutran,
+ ltetogeran,
+ utrantolte,
+ gerantolte,
+ ...
+ } */
+ case 0:
+ /* intralte
+ Intra E-UTRAN handover Source eNB to Target eNB
+ Transparent Container 36.413
+ */
+ dissect_s1ap_SourceeNB_ToTargeteNB_TransparentContainer(tvb , offset, actx ,tree , hf_s1ap_SourceeNB_ToTargeteNB_TransparentContainer_PDU );
+ break;
+ case 1:
+ /* ltetoutran
+ Source RNC to Target RNC
+ Transparent Container 25.413
+ */
+ break;
+ case 2:
+ /* ltetogeran
+ Source BSS to Target BSS
+ Transparent Container 48.018
+ */
+ break;
+ case 3:
+ /* utrantolte */
+ break;
+ case 4:
+ /* gerantolte */
+ break;
+ default:
+ DISSECTOR_ASSERT_NOT_REACHED();
+ break;
+ }
+
+
#.TYPE_ATTR
ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(s1ap_ProtocolIE_ID_vals)