Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse Titan » TTCN-3 standard compliancy(TTCN-3 3GPP NGAP ASN.1 anytype)
TTCN-3 standard compliancy [message #1861835] Tue, 07 November 2023 13:59 Go to next message
Yann Garcia is currently offline Yann GarciaFriend
Messages: 145
Registered: June 2016
Senior Member
Dear Support,

We are working on an ETSI projects about 5G Ngap (3GPP TS 38.413 V17.5.0 (2023-06) NGAP-PDU-Contents).
We found a misalignment between TTworkbench and TITAN (release 9.0.0) regarding the way to create template for ASN.1 parameterized types.
The issue is at value_ field level. With TITAN, we need to use the field name, with TTworkbench, we have to use the Type name:
value_ := { aMF_UE_NGAP_ID := p_amfUeNgapID }
against
value_ := { NGAP_IEs.AMF_UE_NGAP_ID := p_amfUeNgapID }


Regarding TTCN-3 Core Language standard Clause 6.2.6 (https://www.etsi.org/deliver/etsi_es/201800_201899/20187301/04.15.01_60/es_20187301v041501p.pdf#page=70), we are thinking that TITAN is not inline with the standard.
Are we correct?

Details:
Using TITAN, we have the following template declaration:
//9.2.1.1
                        template (value) InitiatingMessage m_n2_PDUSessionResourceSetupRequest(
                                                                                 in template (value) AMF_UE_NGAP_ID p_amfUeNgapID,
                                                                                 in template (value) RAN_UE_NGAP_ID p_ranUeNgapID,
                                                                                 in template (value) PDUSessionResourceSetupListSUReq p_pduSessResSetL
                             ) := {
                                    procedureCode := id_PDUSessionResourceSetup,
                                    criticality   := reject,
                                    value_        := {
                                           PDUSessionResourceSetupRequest := {
                                                  protocolIEs := {
                                                         {
                                                           id := id_AMF_UE_NGAP_ID,
                                                           criticality := reject,
                                                           value_ := { aMF_UE_NGAP_ID := p_amfUeNgapID }
                                                         },
                                                         {
                                                           id := id_RAN_UE_NGAP_ID,
                                                           criticality := reject,
                                                           value_ := { rAN_UE_NGAP_ID := p_ranUeNgapID }
                                                         },
                                                         {
                                                           id := id_PDUSessionResourceSetupListSUReq,
                                                           criticality := ignore,
                                                           value_ := { pDUSessionResourceSetupListSUReq := p_pduSessResSetL}
                                                         }
                                                   }
                                           }
                                    }
                         }//end of template m_n2_PDUSessionResourceSetupRequest


Using TTworkbench, we have the following template declaration:
//9.2.1.1
                        template (value) InitiatingMessage m_n2_PDUSessionResourceSetupRequest(
                                                                                 in template (value) AMF_UE_NGAP_ID p_amfUeNgapID,
                                                                                 in template (value) RAN_UE_NGAP_ID p_ranUeNgapID,
                                                                                 in template (value) PDUSessionResourceSetupListSUReq p_pduSessResSetL
                             ) := {
                                    procedureCode := id_PDUSessionResourceSetup,
                                    criticality   := reject,
                                    value_        := {
                                           PDUSessionResourceSetupRequest := {
                                                  protocolIEs := {
                                                         {
                                                           id := id_AMF_UE_NGAP_ID,
                                                           criticality := reject,
                                                           value_ := { NGAP_IEs.AMF_UE_NGAP_ID := p_amfUeNgapID }
                                                         },
                                                         {
                                                           id := id_RAN_UE_NGAP_ID,
                                                           criticality := reject,
                                                           value_ := {  NGAP_IEs.RAN_UE_NGAP_ID := p_ranUeNgapID }
                                                          },
                                                         {
                                                           id := id_PDUSessionResourceSetupListSUReq,
                                                           criticality := ignore,
                                                           value_ := {  NGAP_IEs.PDUSessionResourceSetupListSUReq := p_pduSessResSetL}
                                                         }
                                                    }
                                           }
                                    }
                         }//end of template m_n2_PDUSessionResourceSetupRequest


Thanks,

Best Regards,

Yann Garcia
FSCOM
Re: TTCN-3 standard compliancy [message #1861857 is a reply to message #1861835] Wed, 08 November 2023 11:03 Go to previous messageGo to next message
Adam Knapp is currently offline Adam KnappFriend
Messages: 54
Registered: November 2020
Member
Hi Yann,

Please check the related section of Titan's reference guide: https://gitlab.eclipse.org/eclipse/titan/titan.core/-/blob/master/usrguide/referenceguide/4-ttcn3_language_extensions.adoc?ref_type=heads#user-content-the-anytype
Earlier only the type name starting with lowercase was accepted, however both versions should work now, i.e. both value_ := { aMF_UE_NGAP_ID := p_amfUeNgapID } and value_ := { AMF_UE_NGAP_ID := p_amfUeNgapID } should be accepted.
As I see from the TS 38.413, the NGAP_IEs is the ASN.1 module name. The TTCN standard does not define to use module names when referencing the type of an anytype, I assume that TTworkbench handles that syntax to be able to clearly recognize what type definition to use. Contrarily, Titan does not have this feature, the user must be aware of type name clashes, i.e. if there is a local definition of AMF_UE_NGAP_ID then it will be used instead of the one imported from NGAP_IEs. Otherwise (if there is no naming clash) it is obvious what to use. See also the NOTE 1 from the TTCN standard: "The fieldnames of the anytype shall be uniquely identified by the corresponding type names.
NOTE 1: As a result of this requirement imported types with clashing names (either with an identifier of a definition in the importing module or with an identifier imported from a third module) cannot be reached via the anytype of the importing module. "
So, in case of Titan, you need to remove the module name and the dot, when referencing the type, as this syntax is not accepted.
Hope it clarifies this behavior!
Re: TTCN-3 standard compliancy [message #1861863 is a reply to message #1861857] Wed, 08 November 2023 13:49 Go to previous message
Yann Garcia is currently offline Yann GarciaFriend
Messages: 145
Registered: June 2016
Senior Member
Hello Adam,

Many thanks for your quick answer. It's really helping us and it clarifies the behavior.

Best Regards,

Yann Garcia
FSCOM
Previous Topic:Native ASN.1 PER encoding/decoding
Next Topic:Compiler issue: compilation is blocked using 100% of the CPU
Goto Forum:
  


Current Time: Sun Oct 13 20:10:43 GMT 2024

Powered by FUDForum. Page generated in 0.03697 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top