Logo etsi

ETSI's Bug Tracker

Notice: information submitted on the ETSI issue Tracker may be incorporated in ETSI publication(s) and therefore subject to the ETSI IPR policy.

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0007742Ext Pack: Advanced Matching (ES 203 022)New Featurepublic25-01-2018 17:0305-01-2019 12:26
ReporterJacob Wieland - Spirent 
Assigned ToGyorgy Rethy 
PrioritynormalSeverityminorReproducibilityhave not tried
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Versionv1.3.1 (ongoing) 
Summary0007742: Allow passing instances of templates with out parameters/value redirects as specially marked actual template in parameters
DescriptionAt the moment, instances of templates with out parameters or inline templates with value redirects are allowed to be used only in a match operation, select case or receive operation template.

They cannot be assigned to variables or returned from a function.
The reason for this is that if that were allowed, it cannot be controlled where the template ends up and whether the variables bound to it are still valid at the point when the template is used for matching.

This restriction should be lessened to allow passing such template instances to template-in-parameters of functions with a special modifier (e.g. @redirect or @match). Such in parameters would be subject to the same restriction as these instances have, i.e. they can be used only for matching or as @match-in-parameters of called functions.

Any template instance using a @match-parameter automatically becomes a redirect template and thus is also limited to these restrictions.
Steps To ReproduceWe had a use-case with a deeply nested template with several decmatch-layers where each layer potentially could contribute redirected values.

At the moment, it is not possible to pass an instance of such a template to a general-purpose function which tries to receive a message matching the template and deal with timeouts or other messages in a different way.

Since that template-instance lives only as long (or shorter) as the variables it uses as its out parameters, there is no harm in such a usage and thus it should be allowed.
TagsNo tags attached.
Clause Reference(s)?
Source (company - Author)Spirent - Jacob Wieland
TS version1
Attached Filesdocx file icon CR7742.docx [^] (374,856 bytes) 11-10-2018 11:34
docx file icon CR7742-v2.docx [^] (427,898 bytes) 11-10-2018 15:15

- Relationships

-  Notes
(0015129)
Jens Grabowski (manager)
16-07-2018 13:40

STF discussion: Some examples are needed.
(0015246)
Jacob Wieland - Spirent (reporter)
11-10-2018 09:15

Suppose you have a general purpose function

function f_receiveMessage(template(present) MsgType p_expectedMsg, out MsgType p_result) runs on Mtc return MsgType {
   timer t := 5.0;
   t.start;
   alt {
   [] msgPort.receive(p_expectedMsg) -> value p_result { }
   [] msgPort.receive { setverdict(fail); }
   [] t.timeout { setverdict(inconc); }
   }
}

You then have a template with variable assignments of type MsgType

template MsgType mySpecialTemplate(out integer p_deepNestedField) := {

... ... ... ... ? -> p_deepNestedField
... ... ... ...
}

Now, because of the out parameter, it's not possible to call

f_receiveMessage(mySpecialTemplate(v_fieldresult), v_msg)

even though the template instance mySpecialTemplate(v_fieldresult) lives only as long as the function call (and never longer than the scope of v_fieldResult, if it is a local variable because you cannot return such an inline template).

The purpose of the CR is to allow adding a @match modifier in front of parameters and variables so that they are allowed to store templates that can only be used for matching and assignment to variables/parameters that also have the @match modifier and nothing else.

The restriction that templates with out parameters/contained redirect symbols cannot be used as actual parameters can be lessened with the exception that they can be used as in parameters with modifier @match.
(0015252)
Jacob Wieland - Spirent (reporter)
11-10-2018 11:36

I have uploaded a proposal which both restricts the general passing around of value-retrieval templates (which wasn't done properly before now) and allows special cases when the newly introduced @match modifier is used.

Please review
(0015257)
Tomas Urban (developer)
11-10-2018 15:16

I made some modifications to the first proposal. Please check.
(0015261)
Jacob Wieland - Spirent (reporter)
11-10-2018 16:48

Changes are fine. I consider this resolved.
(0015320)
Gyorgy Rethy (reporter)
05-01-2019 12:26

Added to draft v1.2.2

- Issue History
Date Modified Username Field Change
25-01-2018 17:03 Jacob Wieland - Spirent New Issue
16-07-2018 13:40 Jens Grabowski Note Added: 0015129
16-07-2018 13:41 Jens Grabowski Assigned To => Jacob Wieland - Spirent
16-07-2018 13:41 Jens Grabowski Status new => assigned
11-10-2018 09:15 Jacob Wieland - Spirent Note Added: 0015246
11-10-2018 11:34 Jacob Wieland - Spirent File Added: CR7742.docx
11-10-2018 11:36 Jacob Wieland - Spirent Note Added: 0015252
11-10-2018 11:36 Jacob Wieland - Spirent Assigned To Jacob Wieland - Spirent => Tomas Urban
11-10-2018 11:36 Jacob Wieland - Spirent Status assigned => confirmed
11-10-2018 15:15 Tomas Urban File Added: CR7742-v2.docx
11-10-2018 15:16 Tomas Urban Note Added: 0015257
11-10-2018 15:16 Tomas Urban Assigned To Tomas Urban => Jacob Wieland - Spirent
11-10-2018 16:48 Jacob Wieland - Spirent Note Added: 0015261
11-10-2018 16:48 Jacob Wieland - Spirent Status confirmed => resolved
11-10-2018 16:48 Jacob Wieland - Spirent Resolution open => fixed
11-10-2018 16:48 Jacob Wieland - Spirent Assigned To Jacob Wieland - Spirent => Tomas Urban
11-10-2018 16:48 Jacob Wieland - Spirent Assigned To Tomas Urban => Jens Grabowski
11-10-2018 16:48 Jacob Wieland - Spirent Status resolved => feedback
11-10-2018 16:48 Jacob Wieland - Spirent Resolution fixed => reopened
11-10-2018 16:48 Jacob Wieland - Spirent Status feedback => resolved
11-10-2018 16:48 Jacob Wieland - Spirent Resolution reopened => fixed
05-01-2019 12:26 Gyorgy Rethy Note Added: 0015320
05-01-2019 12:26 Gyorgy Rethy Status resolved => closed
05-01-2019 12:26 Gyorgy Rethy Assigned To Jens Grabowski => Gyorgy Rethy
05-01-2019 12:26 Gyorgy Rethy Fixed in Version => v1.3.1 (ongoing)


MantisBT 1.2.14 [^]
Copyright © 2000 - 2024 MantisBT Team
Powered by Mantis Bugtracker