﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
54	Superfluous warning for unused timer formal parameters	phdmakk		"The issue seems to be related to incorrect search for timer references.

Original report:

The error reported is:

""..\ttcn\IMS\19\IMS_CC_EmergencyCallTestcases.ttcn: 48: WARNING: Code Style: Formal parameter ""p_TRegExpireMax"" in definition for ""fl_IMS_EmergencyReRegistration"" is never used! (6.11, checkNoUnusedFormalParameters)""

But within fl_IMS_EmergencyReRegistration the timer p_TRegExpireMax gets stopped i.e. it is used, probably stopping of a timer is not considered correctly by T3Qv2 on this rule as stopping it should be considered using the variable.

On the same delivery mentioned below, on ATS IMS_Testsuite_EUTRA, you can find on module ""..\IMS_EUTRA_IWD_17wk10\IMS\19\IMS_CC_EmergencyCallTestcases.ttcn"", line 83, the mentioned object fl_IMS_EmergencyReRegistration.

The code snippet of the function below:

//============================================================================

/*

* @desc Emergency Reregistration

* @param p_OldSecNotRequired (default value: true)

* @param p_RegisterExpiration (default value: tsc_IMS_RegisterExpiration)

* @param p_TRegExpireMax

* @return REGISTER_Request

* @status APPROVED (IMS)

*/

function fl_IMS_EmergencyReRegistration(boolean p_OldSecNotRequired := true,

charstring p_RegisterExpiration := tsc_IMS_RegisterExpiration,

timer p_TRegExpireMax) runs on IMS_PTC return REGISTER_Request // @sic R5-140037 sic@ @sic R5s160427 sic@

{

var IMS_DATA_REQ v_IMS_DATA_REQ;

var SecurityClientParams_Type v_SecurityClientParams;

var REGISTER_Request v_RegisterReq;

var boolean v_IsEmergency := true;

var integer v_NonceCount;

var template (value) IMS_RoutingInfo_Type v_RoutingInfo;

v_NonceCount := 2;

v_IMS_DATA_REQ := f_IMS_REGISTER_SubsequentRequest(-, v_IsEmergency, v_NonceCount);

v_RegisterReq := v_IMS_DATA_REQ.Request.Register;

p_TRegExpireMax.stop; // @sic R5s160427 sic@

v_SecurityClientParams := f_IMS_PTC_ReRegistration_SecurityClientParamsGet();

f_IMS_Register_SecurityInit(v_RegisterReq, not4b tsc_IMS_AuthRAND); /* generate a new RAND */

v_RoutingInfo := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo);

IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo, cs_Response(c_statusLine401, f_IMS_RegisterResponse401MessageHeaderTX(v_RegisterReq))));

v_NonceCount := 1; // nonce counter is reset to 1 due to re-authentication

v_IMS_DATA_REQ := f_IMS_REGISTER_SubsequentRequest(-, v_IsEmergency, v_NonceCount);

v_RegisterReq := v_IMS_DATA_REQ.Request.Register;

v_RoutingInfo := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); /* @sic R5s141326, R5s150245 change 1 sic@ */

if (p_OldSecNotRequired) { // @sic R5s141335 sic@

f_IMS_Register_SecurityRelease(); // @sic R5s140909; R5w150015: v_SecurityInfo is removed sic@

v_RoutingInfo.Security := protectedContext1; /* @sic R5s141326: by releasing the old security context the new one becomes context 1; R5s150245 change 1 sic@ */

}

IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo, cs_Response(c_statusLine200, f_IMS_RegisterResponse200MessageHeaderTX(v_RegisterReq, v_IsEmergency, p_RegisterExpiration)))); /* @sic R5s150809 sic@ */

return v_RegisterReq;

}

"	defect	closed	major	v2.0.0 Series	T3Q	2.0	fixed		
