Home » Eclipse Projects » Eclipse Titan » modifies keyword not working
|
Re: modifies keyword not working [message #1732982 is a reply to message #1732947] |
Mon, 23 May 2016 14:23 |
|
Hi Murli,
I think "modifies" works as it should, you just don't count in the impact of "implicit omit":
Without "implicit omit"
/* Defined in TS 34.108 clause 9. */
template UL_CCCH_Message cdr_RRC_ConnReqUE_Id(template EstablishmentCause p_EstCause) modifies cbr_108_RRC_ConnReq :=
{
message_ :=
{
rrcConnectionRequest :=
{
initialUE_Identity := (c_UE_IdDefIMSI, c_UE_IdDefTMSI, c_UE_IdDefP_TMSI) }
}
};
/* Defined in TS 34.108 clause 9. */
template UL_CCCH_Message cbr_108_RRC_ConnReq(template EstablishmentCause p_EstCause) :=
{
integrityCheckInfo := omit,
message_ := {rrcConnectionRequest :=
{
initialUE_Identity := ({imsi := ?},{tmsi_and_LAI := ?},{p_TMSI_and_RAI := ?},{imei := ?}),
establishmentCause := p_EstCause,
protocolErrorIndicator := noError,
measuredResultsOnRACH := * ,
v3d0NonCriticalExtensions := *
}
}
};
cdr_RRC_ConnReqUE_Id will modify only initialUE_Identity, leaving the rest of the fields intact.
With "implicit omit" though ,
measuredResultsOnRACH := * ,
v3d0NonCriticalExtensions := *
will change to
measuredResultsOnRACH := omit ,
v3d0NonCriticalExtensions := omit
as instructed by omission; subsequently the comparison between e.g. v3d0NonCriticalExtensions (having some value in both cbr_108_RRC_ConnReq_toMatchSameImsi and cbr_108_RRC_ConnReq_toMatch) and omit will fail:
15:59:59.078143 .message_.rrcConnectionRequest.v3d0NonCriticalExtensions{
rRCConnectionRequest_v3d0ext := {
uESpecificBehaviourInformation1idle := omit
},
v4b0NonCriticalExtensions := {
rrcConnectionRequest_v4b0ext := {
accessStratumReleaseIndicator := rel_8 (4)
},
v590NonCriticalExtensions := {
rrcConnectionRequest_v590ext := {
predefinedConfigStatusInfo := false
},
v690NonCriticalExtensions := {
rrcConnectionRequest_v690ext := {
ueCapabilityIndication := hsdch_edch (1),
measuredResultsOnRACHinterFreq := omit,
domainIndicator := {
ps_domain := NULL
}
},
v6b0NonCriticalExtensions := {
rrcConnectionRequest_v6b0ext := {
mbmsSelectedServices := omit
},
v6e0NonCriticalExtensions := {
rrcConnectionRequest_v6e0ext := {
supportForFDPCH := true_value (0)
},
v770NonCriticalExtensions := {
rrcConnectionRequest_v770ext := {
ueMobilityStateIndicator := omit,
hspdschReception_CellFach := true_value (0),
mac_ehsSupport := true_value (0),
discontinuousDpcchTransmission := true_value (0)
},
v7b0NonCriticalExtensions := {
rrcConnectionRequest_v7b0ext := {
supportForE_FDPCH := true_value (0)
},
v860NonCriticalExtensions := {
rrcConnectionRequest_v860ext := {
supportOfCommonEDCH := omit,
multiCellSupport := omit,
pre_redirectionInfo := omit,
supportOfMACiis := omit,
supportOfSPSOperation := omit
},
v7e0NonCriticalExtensions := omit
}
}
}
}
}
}
}
}
} with omit unmatched
I hope this clarifies it.
Best regards
Elemer
|
|
| | |
Re: modifies keyword not working [message #1734462 is a reply to message #1734405] |
Wed, 08 June 2016 14:23 |
|
Hi Murli,
I'm afraid what you want cannot be achieved within the boundaries of the standard. Problem is that along the workflow you don't assign any value to i;
I understand you may want to delay that for some reason, but as soon as you will want to send this template you have to assign a value to it.
What you can do is assign a dummy value, which can be an integer or even omit (!) , in the modifyType, and later overwrite it with any value that is meaningful.
template Type modifyType modifies fillType := {
t := {
i := omit,
j := 3
}
}
I hope this helps somewhat
Best regards
Elemer
|
|
| |
Re: modifies keyword not working [message #1734522 is a reply to message #1734513] |
Thu, 09 June 2016 07:14 |
|
Hi Murli,
you can also use parameterized templates:
template Type modifyType (in template integer p_int) modifies fillType := {
t := {
i:= p_int,
j := 3
}
}
and delay setting i until right before sending:
Best regards
Elemer
|
|
|
Goto Forum:
Current Time: Sat Apr 20 04:29:41 GMT 2024
Powered by FUDForum. Page generated in 0.03816 seconds
|