Cannot Compile LTE Testsuite with Titan 6.1.0 [message #1764755] |
Fri, 02 June 2017 02:23  |
Eclipse User |
|
|
|
Hi All,
While converting LTE TTCN test cases with latest Titan 6.1.0 to generate .cc files, I am getting the below-mentioned error:
EUTRA_RRC_ASN1_Definitions.asn:1786: error: Cannot determine the encoding rules for ASN.1 type `@EUTRA-RRC-ASN1-Definitions.SystemInformationBlockType1-v8h0-IEs'. No encoding external function found
EUTRA_RRC_ASN1_Definitions.asn:69: error: Cannot determine the encoding rules for ASN.1 type `@EUTRA-RRC-ASN1-Definitions.DL-CCCH-Message'. No encoding external function found
EUTRA_RRC_ASN1_Definitions.asn:84: error: Cannot determine the encoding rules for ASN.1 type `@EUTRA-RRC-ASN1-Definitions.DL-DCCH-Message'. No encoding external function found
I am using below command to generate makefile:
makefilegen -f -MRU type *.ttcn */*.ttcn */*/*.ttcn */*/*.asn
With Titan 5.5.0, encoding and decoding functions were written explicitly to avoid this error. I thought with Titan 6.1.0, no separate encval/decval would be needed.
Kindly guide and correct me if my understand is wrong.
Thanks and Regads,
MeGo
|
|
|
|
|
|
|
Re: Cannot Compile LTE Testsuite with Titan 6.1.0 [message #1765047 is a reply to message #1765041] |
Tue, 06 June 2017 03:04  |
Eclipse User |
|
|
|
Hi MeGo,
I'm afraid it does not add PER ; this is what it does:
-before this change it was not possible to invoke encvalue/decvalue for ASN.1 types at all; this change makes that possible under the following conditions:
An encoder external function must be declared for an ASN.1 type for encvalue to work on its values. This function only serves to identify which codec to use when encoding values of the ASN.1 type.
This encoder function can use any prototype, and uses the regular stream type associated with the codec (octetstring or charstring), even though the resulting encvalue call uses the prototype 'convert' and bitstring as stream.
When encvalue/decvalue/decmatch/@decoded is called for an ASN.1 instance, Titan will call the auto-generated BER encoder or decoder function with the type of coding specified in an external function
declaration for the type. The return value of the encoding and the inout parameter of the decoding function shall be octetstring; e.g.:
ASN.1 definition:
CAM ::= SEQUENCE {
header ItsPduHeader,
cam CoopAwareness
}
External function declarations:
external function fx_enc_CAM (in CAM pdu) return octetstring
with {extension "prototype(convert) encode(BER:BER_ENCODE_DER)"}
external function fx_dec_CAM (inout octetstring stream, out CAM pdu) return integer with {extension "prototype(sliding) decode(BER:BER_ACCEPT_ALL)"}
-In Titan 6.2 (to be released soon, source code already available in github, so one can build from source) the following connected new features have been added:
1) In the external function declarations it is also allowed to use bitstring as return value and inout parameter; this will change the runtime behaviour only, i.e. add implicit octetstring/bitstring conversion if the function is called directly as it is done already in case of encvalue/decvalue .
2) If the encode and decode attribute value of the external function is "PER" for an ASN.1 type, there shall be a manually implemented C++ function for each such external function declaration.
One ASN.1 type shall have at most one external function declaration with an encode and one with a decode attribute. No other attribute values than "BER:..." or "PER" shall be allowed.
Example:
external function fx_enc_CAM (in CAM pdu) return bitstring
with {extension "prototype(convert) encode(PER)"}
external function fx_dec_CAM (inout bitstring stream, out CAM pdu) return integer with {extension "prototype(sliding) decode(PER)"}
When an instance of an ASN.1 type is used in encvalue/decvalue/decmatch/@decoded, and the type has an
external function declaration with the encode/decode attribute PER, the manually implemented external function shall be called implicitly, in the same way it is done for TTCN-3 types with user defined TTCN-3 encode attribute strings.
All these changes will only make easier to use external PER codecs.
I hope this clarifies the issue
Best regards
Elemer
|
|
|
Powered by
FUDForum. Page generated in 0.04276 seconds