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 |
Yann Garcia 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 |
Adam Knapp 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!
|
|
| |
Goto Forum:
Current Time: Sun Oct 13 20:10:43 GMT 2024
Powered by FUDForum. Page generated in 0.03697 seconds
|