diff options
author | Anders Broman <anders.broman@ericsson.com> | 2009-11-05 20:34:56 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2009-11-05 20:34:56 +0000 |
commit | 110a5be310239218a3015999a0ec979ece02d1bc (patch) | |
tree | f9eaef025195916878a5d974c36cf0d4806ad496 /asn1/s1ap | |
parent | 01c31f7d2a104f036fec438b3dabe31e5fe3a81b (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.c | 3 | ||||
-rw-r--r-- | asn1/s1ap/s1ap.cnf | 66 |
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) |