Commit 89532b62 authored by fischerjo's avatar fischerjo
Browse files

ATSP ToDo List:

10, 24, 35, 36, 44-50, 64, 88
parent edd475f8
Loading
Loading
Loading
Loading
+220 −31
Original line number Diff line number Diff line
@@ -9,9 +9,10 @@ module LibItsAtsp_Functions {
	import from LibCommon_Sync all;
    import from CALMllsap language "ASN.1:1997" {
        type 
			UserPriority,
			UserPriority, VCIserialNumber, EUI64,
			LLserviceAddr, INdata, IN_SAPaddress, 
			CIstatus, Link_ID, MedType, Errors
			CIstatus, Link_ID, MedType, Errors, 
			I_Param, I_ParamNo, MedID
    };
	
	import from CALMmsap language "ASN.1:1997" { 
@@ -22,6 +23,11 @@ module LibItsAtsp_Functions {
			CommandRef
	};
	
	import from CALMmanagement language "ASN.1:1997" { 
        type 	
			ITS_scuId
	};
	
	import from LibItsCalm_Interface { 
        type 
            ItsCalm
@@ -49,6 +55,7 @@ module LibItsAtsp_Functions {
	import from LibItsMgt_Functions {
		function f_getNextCommandRef
	};
	import from LibCommon_BasicTypesAndValues all;
	
	group preambles {
        
@@ -78,7 +85,7 @@ module LibItsAtsp_Functions {
				v_CIstatus := f_cnGetCiStatusParameterValueCI( f_get_CI_LinkID());
			}
			// check again CI status after activation of IUT
			if( (v_CIstatus != c_ciStatusActive))
			if( v_CIstatus != c_ciStatusActive)
			{
				log("*** f_initialCIstateActive: ERROR: Invalid initial CI status returned ***", v_CIstatus);
               	f_selfOrClientSyncAndVerdict("error", e_timeout);  // Might be just a time-out error
@@ -93,6 +100,35 @@ module LibItsAtsp_Functions {
			// End of function f_initialCIstateActive

        /**
         * @desc Checks whether the IUT is in the initial CI state "active" or connected.
         */
        function f_initialCIstateActiveConnected() runs on ItsCalm return CIstatus {
			var CIstatus v_CIstatus;
			//  CI status has to be "active"
			v_CIstatus := f_cnGetCiStatusParameterValueCI( f_get_CI_LinkID());
			if( (v_CIstatus != c_ciStatusActive) and (v_CIstatus != c_ciStatusConnected))
			// wrong status 
			{
				// Request operator to switch on the SUT or to activate the IUT
				action("Switch on SUT or activate IUT");
				v_CIstatus := f_cnGetCiStatusParameterValueCI( f_get_CI_LinkID());
			}
			// check again CI status after activation of IUT
			if( (v_CIstatus != c_ciStatusActive) and (v_CIstatus != c_ciStatusConnected))
			{
				log("*** f_initialCIstateActive: ERROR: Invalid initial CI status returned ***", v_CIstatus);
               	f_selfOrClientSyncAndVerdict("error", e_timeout);  // Might be just a time-out error
				stop;
			}
			else
			{
				log("*** f_initialCIstateActive: Allowed initial CI status returned ***", v_CIstatus);
			}
			return v_CIstatus
		}
			// End of function f_initialCIstateActiveConnected

		/**
         * @desc Checks whether the IUT is in an operational initial CI state 
		 * i.e. not in "not-existent", "existent", "unknown".
         */
@@ -727,6 +763,95 @@ module LibItsAtsp_Functions {
				}
			}// End of function f_utSendIN_UNITDATA_Request
			
			/**
	         * @desc Check proper executing of MI-SET.command for a single I-Parameter
	         * @param   p_cfSetErrorList Error list returned in MI-SET.confirm
			 * @return  Boolean: TRUE = success
	         */
			function f_cnCheckOneIparamSetSuccess( 
				in I_ParamNo p_IparmNo,
	            in Errors p_cfSetErrorList
	        ) runs on ItsCalm return boolean {
				//local variable(s)
				var boolean v_returnValue;
	
				if(lengthof(p_cfSetErrorList) == 0){
					// no error occured
					v_returnValue := true;
				}
				else if(lengthof(p_cfSetErrorList) == 1){
					// correct number or error statuses reported
						if(p_cfSetErrorList[0].paramNo == p_IparmNo) {
							// report for correct parameter
							if (p_cfSetErrorList[0].errStatus == c_ciErrStatusSuccess) {
								// success reported
								v_returnValue := true;
							}
							else {
								// Error reported
								log("*** f_cnCheckOneIparamSetSuccess: ERROR: writing I-Parameter. Error code: ", p_cfSetErrorList[0].errStatus, " ***");
								v_returnValue := false;
							}
						}
						else {
							// Report for incorrect parameter
							log("*** f_cnCheckOneIparamSetSuccess: ERROR: writing I-Parameter: wrong I-ParamNo: ", p_cfSetErrorList[0].paramNo, " ***");
							v_returnValue := false;
						}
				}
				else {
					// Incorrect size of Error list
					log("*** f_cnCheckOneIparamSetSuccess: ERROR: writing I-Parameter: too many errors: ", lengthof(p_cfSetErrorList), " ***");
					v_returnValue := false;
				}
								
				return v_returnValue;
			}// End of function f_cnCheckOneIparamSetSuccess
			

			/**
	         * @desc Check proper executing of MI-GET.command for a single I-Parameter
	         * @param   p_returnedValues Value list returned in MI-GET.confirm
			 * @return  Boolean: TRUE = success
	         */
			function f_cnCheckOneIparamGetSuccess( 
				in I_ParamNo p_IparmNo,
	            in IParamList p_IparameterList,
				out I_Param p_Iparam
	        ) runs on ItsCalm return boolean {
				//local variable(s)
				var boolean v_returnValue;
	
				if(lengthof(p_IparameterList) == 1){
					// correct number or returned values
						if(p_IparameterList[0].paramNo == p_IparmNo) {
							// correct parameter returned
							p_Iparam := p_IparameterList[0];
							log("*** f_cnCheckOneIparamGetSuccess: INFO: reading I-Parameter: ", p_IparmNo, " was correctly done: ", p_IparameterList[0].parameter, " ***");
							v_returnValue := true;
						}
						else {
							v_returnValue := false;
							// Report for incorrect parameter
							if(p_IparameterList[0].paramNo==c_ciIParamNoErrors){
								// Error Code was returned
								log("*** f_cnCheckOneIparamGetSuccess: ERROR: reading I-Parameter error: ", p_IparameterList[0].parameter, " was reported ***");
							}
							else {
								log("*** f_cnCheckOneIparamGetSuccess: ERROR: the following I-Parameter: ", p_IparameterList[0].paramNo, " was was returned ***");
							}
						}
					}
					else {
						// incorrect number or returned values
						log("*** f_cnCheckOneIparamGetSuccess: ERROR: writing I-Parameter: too many errors: ", lengthof(p_IparameterList), " ***");
						v_returnValue := false;
					}
								
				return v_returnValue;
			}// End of function f_cnCheckOneIparamGetSuccess
			

		} // End of group utPort
		
		group atspPort {
@@ -837,7 +962,26 @@ module LibItsAtsp_Functions {
	
	group atspPIXITHelperFunctions
	{
		//used to address CI in IUT itself
        /**
         * @desc used to address a VCI in IUT, e.g. to be deleted
         */
		function f_get_VCI_LinkID(
						in EUI64 p_remoteCIID
		) return Link_ID {
			if(PICS_MAC48)
			{
	        	return {remoteCIID := p_remoteCIID, localCIID := PX_LOCAL_CIID}
			}
			else
			{
		        return {	remoteCIID := p_remoteCIID, 
							localCIID := f_get_EUI64_LegacyCI(0, PX_ITS_SCU_ID, PX_Med_ID, 0)}
			}
	    } // end 

		/**
         * @desc used to address CI in IUT itself.
         */
		function f_get_CI_LinkID() return Link_ID{
			if(PICS_MAC48)
			{
@@ -845,12 +989,14 @@ module LibItsAtsp_Functions {
			}
			else
			{
			//TODO: LegacyCIIDs
				return {remoteCIID := PX_REMOTE_CIID_LOCAL_CI, localCIID := PX_LOCAL_CIID};
		        return {	remoteCIID := f_get_EUI64_LegacyCI(0, PX_ITS_SCU_ID, PX_Med_ID, 0), 
							localCIID := f_get_EUI64_LegacyCI(0, PX_ITS_SCU_ID, PX_Med_ID, 0)}
			}
	    } // end 
		
		//used to address CI in the Test System itself
        /**
         * @desc used to address CI in the Test System itself
         */
		function f_get_TesterCI_LinkID() return Link_ID{
			if(PICS_MAC48)
			{
@@ -858,16 +1004,20 @@ module LibItsAtsp_Functions {
			}
			else
			{
			//TODO: LegacyCIIDs
				return {remoteCIID := PX_TESTER_REMOTE_CIID_LOCAL_CI, localCIID := PX_TESTER_LOCAL_CIID};
		        return {	remoteCIID := f_get_EUI64_LegacyCI(0, 0, 0, 0), 
							localCIID := f_get_EUI64_LegacyCI(0, 0, 0, 0)}
			}
	    } // end 
		
		// used to send via a UC-VCI
        /**
         * @desc used to send via a UC-VCI
         */
		// source_address field
		// use f_get_CI_LinkID
		
		// used to send via a UC-VCI in the IUT
        /**
         * @desc used to send via a UC-VCI in the IUT
         */
		// destination_address field
		function f_get_DestinationVCI_UC_LinkID() return Link_ID{
	        if(PICS_MAC48)
@@ -876,12 +1026,14 @@ module LibItsAtsp_Functions {
			}
			else
			{
			//TODO: LegacyCIIDs
				return {remoteCIID := PX_REMOTE_CIID_UC, localCIID := PX_LOCAL_CIID};
		        return {	remoteCIID := f_get_EUI64_LegacyCI(0, PX_ITS_SCU_ID, PX_Med_ID, PX_VCI_SERIAL_NUMBER), 
							localCIID := f_get_EUI64_LegacyCI(0, PX_ITS_SCU_ID, PX_Med_ID, 0)}
			}
	    } // End of function f_get_DestinationVCI_UC_LinkID
		
		// used to send via a UC-VCI in the Test System to the IUT
        /**
         * @desc used to send via a UC-VCI in the Test System to the IUT
         */
		// destination_address field
		function f_get_TesterDestinationVCI_UC_LinkID() return Link_ID{
	        if(PICS_MAC48)
@@ -890,16 +1042,20 @@ module LibItsAtsp_Functions {
			}
			else
			{
			//TODO: LegacyCIIDs
				return {remoteCIID := PX_TESTER_REMOTE_CIID_UC, localCIID := PX_TESTER_LOCAL_CIID};
		        return {	remoteCIID := f_get_EUI64_LegacyCI(0, 0, 0, 255),  
							localCIID := f_get_EUI64_LegacyCI(0, 0, 0, 0)}
			}
	    } // End of function f_get_DestinationVCI_UC_LinkID

		// used to send via a BC-VCI in the IUT
        /**
         * @desc used to send via a BC-VCI in the IUT
         */
		// source_address field
		// use f_get_CI_LinkID
		
		// used to send via a BC-VCI
        /**
         * @desc used to send via a BC-VCI
         */
		// destination_address field
		function f_get_DestinationVCI_BC_LinkID() return Link_ID{
	        if(PICS_MAC48)
@@ -908,12 +1064,14 @@ module LibItsAtsp_Functions {
			}
			else
			{
			//LegacyCIIDs
		        return {remoteCIID := PX_REMOTE_CIID_BC, localCIID := PX_LOCAL_CIID}
		        return {	remoteCIID := f_get_EUI64_LegacyCI(63, PX_ITS_SCU_ID, PX_Med_ID, 65535), 
							localCIID := f_get_EUI64_LegacyCI(0, PX_ITS_SCU_ID, PX_Med_ID, 0)}
			}
		} // End of function f_get_DestinationVCI_BC_LinkID

		// used to send via a BC-VCI in the Test System to the IUT
        /**
         * @desc used to send via a BC-VCI in the Test System to the IUT
         */
		// destination_address field
		function f_get_TesterDestinationVCI_BC_LinkID() return Link_ID{
	        if(PICS_MAC48)
@@ -922,16 +1080,20 @@ module LibItsAtsp_Functions {
			}
			else
			{
			//LegacyCIIDs
		        return {remoteCIID := PX_REMOTE_CIID_BC, localCIID := PX_TESTER_LOCAL_CIID}
		        return {	remoteCIID := f_get_EUI64_LegacyCI(63, 0, 0, 65535), 
							localCIID := f_get_EUI64_LegacyCI(0, 0, 0, 0)}
			}
		} // End of function f_get_TesterDestinationVCI_BC_LinkID
		
		// used to send via a BC-VCI in the IUT
        /**
         * @desc used to send via a BC-VCI in the IUT
         */
		// source_address field
		// use f_get_CI_LinkID
		
		// used to send via a MC-VCI
        /**
         * @desc used to send via a MC-VCI
         */
		// destination_address field
		function f_get_DestinationVCI_MC_LinkID() return Link_ID{
	        if(PICS_MAC48)
@@ -940,13 +1102,15 @@ module LibItsAtsp_Functions {
			}
			else
			{
			//LegacyCIIDs
		        return {remoteCIID := PX_REMOTE_CIID_MC, localCIID := PX_LOCAL_CIID}
		        return {	remoteCIID := f_get_EUI64_LegacyCI(PX_LEGACY_VCI_MC_GROUP_ID, PX_ITS_SCU_ID, PX_Med_ID, PX_VCI_SERIAL_NUMBER_MC), 
							localCIID := f_get_EUI64_LegacyCI(0, PX_ITS_SCU_ID, PX_Med_ID, 0)}
			}

		} // End of function f_get_DestinationVCI_MC_LinkID
		
		// used to send via a MC-VCI in the Test System to the IUT
        /**
         * @desc used to send via a MC-VCI in the Test System to the IUT
         */
		// destination_address field
		function f_get_TesterDestinationVCI_MC_LinkID() return Link_ID{
	        if(PICS_MAC48)
@@ -955,12 +1119,37 @@ module LibItsAtsp_Functions {
			}
			else
			{
			//LegacyCIIDs
		        return {remoteCIID := PX_REMOTE_CIID_MC, localCIID := PX_TESTER_LOCAL_CIID}
		        return {	remoteCIID := f_get_EUI64_LegacyCI(PX_LEGACY_VCI_MC_GROUP_ID, 0, 0, PX_VCI_SERIAL_NUMBER_MC), 
							localCIID := f_get_EUI64_LegacyCI(0, 0, 0, 0)}
			}

		} // End of function f_get_TesterDestinationVCI_MC_LinkID
		
        /**
         * @desc used to create the EUI64 format of a legacy CI
		 * @param   p_uCmCbCnumber		63 for BC, 0 for UC, 1-62 for MC group
		 * @param	p_iTS_scuID			ITS-SCU-ID
		 * @param	p_medID				MedID
		 * @param	p_vCIserialNumber	Serial number unique in CI
         */
		function f_get_EUI64_LegacyCI (
				in UInt6 p_uCmCbCnumber,
				in ITS_scuId p_iTS_scuID, 
				in MedID p_medID,
				in VCIserialNumber p_vCIserialNumber
			) return EUI64 {
				var UInt8 v_U8Integer;
				var EUI64 v_returnValue;
				
				v_U8Integer:= p_uCmCbCnumber * 4 +3; // 'shift left' two bits and set two lowest bits to one.
				v_returnValue := 	int2oct(v_U8Integer,1) & 
									int2oct(p_iTS_scuID,2) &
									'FFFE'O &
									int2oct(p_medID,1) &
									int2oct(p_vCIserialNumber,2);
				return v_returnValue;
		} // End of function f_get_EUI64_LegacyCI
		
	} // End of group atspPIXITHelperFunctions
	
} // End of module LibItsAtsp_Functions
+49 −3
Original line number Diff line number Diff line
@@ -23,6 +23,11 @@ module LibItsAtsp_Pixits {
	
	import from LibItsAtsp_TypesAndValues all;
	
	import from LibCommon_BasicTypesAndValues {
        type
			UInt8, UInt6
    };
	
	group Iparameter {
		/**
	     * @desc Expected ITS-SCU-ID of the IUT CI
@@ -31,6 +36,13 @@ module LibItsAtsp_Pixits {
	     */
		modulepar ITS_scuId PX_ITS_SCU_ID := 0;

		/**
	     * @desc Expected MedID of the IUT CI
	     * @see ISO 21218 - Clause 6.2 Link Identifier 
		 * I-Parameter No c_ciIParamNoMedID
	     */
		modulepar MedID PX_Med_ID := 0;

		/**
	     * @desc Expected MedType of the IUT CI
	     * @see ISO 21218 - Clause 6.3 Link Identifier 
@@ -38,6 +50,13 @@ module LibItsAtsp_Pixits {
	     */
	    modulepar MedID PX_CI_MED_TYPE := 5;

		/**
	     * @desc MedType of potential interferer
	     * @see ISO 21218 - Clause 6.3 Link Identifier 
		 * used in PrioReg
	     */
	    modulepar MedID PX_CI_INTERFERER_MED_TYPE := 5;

		/**
	     * @desc Unknown I-Parameter No
	     * @see ISO 21218 - Clause 6.3 Link Identifier 
@@ -48,7 +67,15 @@ module LibItsAtsp_Pixits {
	     * @desc Not supported I-Parameter
	     * @see ISO 21218 - Clause 6.3 Link Identifier 
	     */
	    modulepar I_Param PX_CI_NO_SUPPORT_PARAM := {paramNo := c_ciIParamNoMinPrioCrossCI, parameter := {UserPriority := 0} };
	    modulepar I_Param PX_CI_NO_SUPPORT_PARAM := {paramNo := PX_CI_NO_SUPPORT_PARAM_NO, parameter := {UserPriority := 0} };
		modulepar I_ParamNo PX_CI_NO_SUPPORT_PARAM_NO := c_ciIParamNoMinPrioCrossCI;
	
		/**
	     * @desc Supported I-Parameter with write or read/write access
	     * @see ISO 21218 - Clause 6.3 Link Identifier 
	     */
	    modulepar I_Param PX_CI_SUPPORT_PARAM_WR := {paramNo := PX_CI_SUPPORT_PARAM_WR_NO, parameter := {DataRate := 125} };
		modulepar I_ParamNo PX_CI_SUPPORT_PARAM_WR_NO := 125;

		/**
	     * @desc Supported Read-Only or Notify-Only I-Parameter
@@ -59,6 +86,12 @@ module LibItsAtsp_Pixits {

	} // End of group Iparameter
	
	/**
     * @desc T_DummyAckReq timer for prioritization procedure
     * @see ISO 21218 - Clause 6.4.11.3 
     */
	modulepar float PX_TIMER_DUMMYAckReq := 0.1; // in seconds In reality the value has to be smaller

	/**
     * @desc Expected IN-SAP address
     * @see ISO 21218 - Clause 8.2 Addressing
@@ -68,11 +101,24 @@ module LibItsAtsp_Pixits {
	modulepar IN_SAPaddress PX_IN_SAP_ADDRESS := 186;

	/**
     * @desc Expected VCIserialNumber of the IUT CI
     * @desc Expected VCIserialNumber of the IUT UC-VCI
     * @see ISO 21218 - Clause 6.3 Link Identifier 
     */
	modulepar VCIserialNumber PX_VCI_SERIAL_NUMBER := 0;
	
	/**
     * @desc Expected VCIserialNumber of the IUT MC-VCI
     * @see ISO 21218 - Clause 6.3 Link Identifier 
     */
	modulepar VCIserialNumber PX_VCI_SERIAL_NUMBER_MC := 0;

	/**
     * @desc MultiCast group ID of the IUT legacy CI
     * @see ISO 21218 - Clause 6.3 Link Identifier
	 * Range from 1 through 62
     */
	modulepar UInt6 PX_LEGACY_VCI_MC_GROUP_ID := 1;

	/**
     * Wait until the IUT is in a stable situation
     */
+107 −21
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ module LibItsAtsp_Templates {
        type 
			CIstateChng, WakeUp, RIcmd, RI,
			RegCmd, RegReq, Events21218, 
			PrioReg, RTSreq,RTSackCmd, RTScmd, RTSackReq,
			E21218_3, E21218_4, E21218_5, E21218_7,
            StationID, CommandRef, ErrStatus, 
            MI_Command_request, MI_Command_confirm,
@@ -175,7 +176,7 @@ module LibItsAtsp_Templates {
                ) := { 
                   	linkID := p_linkID,
					commandRef := p_commandRef, 
					ref := c_miCmdReqRegCmd,
					ref := c_miCmd_regCmd,
					command_param := {RegCmd := p_regCmd}
                } // End of template m_miRegistrationCommandRequest
				
@@ -192,7 +193,7 @@ module LibItsAtsp_Templates {
                ) := { 
                   	linkID := p_linkID,
					commandRef := p_commandRef, 
					ref := c_miCmdReqUnitData,
					ref := c_miCmd_unitDataCmd,
					command_param := {UnitData := p_unitData}
                } // End of template MI_Command_request m_miUnitDataCmdCommandRequest

@@ -215,6 +216,23 @@ module LibItsAtsp_Templates {
				/**
                * @desc Send template for MI-COMMAND.request containing state change command service primitive
                * @param   p_linkID		   	Link-ID of VCI / CI. 
                * @param   p_commandRef    	Unique cyclic reference number of command. 
				* @param   p_stateChng		State change primitive
                */
				template (value) MI_Command_request m_miRTSackCmdCommandRequest( 
					in template (value) Link_ID p_linkID, 
					in template (value) CommandRef p_commandRef,  
                   	in template (value) RTSackCmd p_rTSackCmd 
                ) := { 
                   	linkID := p_linkID,
					commandRef := p_commandRef, 
					ref := c_miCmd_rTSackCmd,
					command_param := {RTSackCmd := p_rTSackCmd}
                } // End of template m_miRTSackCmdCommandRequest
					
				/**
                * @desc Send template for MI-COMMAND.request containing state change command service primitive
                * @param   p_linkID		   	Link-ID of VCI / CI. 
                * @param   p_commandRef    	Unique cyclic reference number of command. 
				* @param   p_stateChng		State change primitive
                */
@@ -225,7 +243,7 @@ module LibItsAtsp_Templates {
                ) := { 
                   	linkID := p_linkID,
					commandRef := p_commandRef, 
					ref := c_miCmdReqCIstateChng,
					ref := c_miCmd_ciState,
					command_param := {CIstateChng := p_stateChng}
                } // End of template m_miStateChangeCommandRequest

@@ -278,7 +296,7 @@ module LibItsAtsp_Templates {
                ) := { 
                   	linkID := p_linkID,
					commandRef := p_commandRef, 
					ref := c_miCmdReqCONcmd,
					ref := c_miCmd_cONcmd,
					command_param := {CONcmd := p_conCMD}
                } // End of template m_miCONcmdCommandRequest

@@ -295,7 +313,7 @@ module LibItsAtsp_Templates {
                ) := { 
                   	linkID := p_linkID,
					commandRef := p_commandRef, 
					ref := c_miCmdReqWakeUp,
					ref := c_miCmd_wakeUp,
					command_param := {WakeUp := p_wakeUp}
                } // End of template m_miWakeUpCommandRequest
					
@@ -312,7 +330,7 @@ module LibItsAtsp_Templates {
                ) := { 
                   	linkID := p_linkID,
					commandRef := p_commandRef, 
					ref := c_miCmdReqRIcmd,
					ref := c_miCmd_rIcmd,
					command_param := {RIcmd := p_riCmd}
                } // End of template m_miRICmdCommandRequest
					
@@ -342,7 +360,7 @@ module LibItsAtsp_Templates {
                ) := { 
                   	linkID := p_linkID,
					commandRef := p_commandRef, 
					ref := c_miCmdReqCIstateChng,
					ref := c_miCmd_ciState,
					command_param := {VciCmd := p_vciCmd}
                } // End of template m_miVCIcmdCommandRequest

@@ -357,18 +375,10 @@ module LibItsAtsp_Templates {
                ) := { 
                   	linkID := p_linkID,
					commandRef := p_commandRef, 
					ref := 254,
					ref := c_miCmd_UnknownCmd,
					command_param := {UnknownCommand := 100}
                } // End of template m_miUnknownCommandRequest
				
				
				
				
				
			
				
				

			} // End of group cfPortTools
			
			group atspPort {
@@ -591,7 +601,7 @@ module LibItsAtsp_Templates {
               	) := { 
                   	linkID := p_linkID,
					commandRef := p_commandRef, 
					ref := 1,
					ref := c_miReq_regReq,
					request_param := {
						RegReq := p_regReq
					}
@@ -653,7 +663,7 @@ module LibItsAtsp_Templates {
				template E21218_5 mw_miCIStatusParam(
					in template CIstatus p_ciStatus
               	) := { 
					paramNo := 13,
					paramNo := c_ciIParamNoCiStatus,
					parameter := {
						CIstatus := p_ciStatus
					}
@@ -672,12 +682,88 @@ module LibItsAtsp_Templates {
               	) := { 
                   	linkID := p_linkID,
					commandRef := p_commandRef, 
					ref := 5,
					ref := c_miReq_events,
					request_param := {
						Events21218 := p_event
					}
               	} // End of template mw_miEventsRequest
				
				/**
               	* @desc Generic receive template for prioritization registration request in MI-REQUEST.request service primitive
				* @param   p_linkID		   Link-ID of VCI / CI. 
				* @param   p_commandRef    Unique cyclic reference number of command. 
				* @param   p_regReq		   Registration request primitive
               	*/
				template MI_Request_request mw_miPrioRegRequest( 
					in template Link_ID p_linkID, 
					in template CommandRef p_commandRef, 
                   	in template PrioReg p_prioReg 
               	) := { 
                   	linkID := p_linkID,
					commandRef := p_commandRef, 
					ref := c_miReq_prioReg,
					request_param := {
						PrioReg := p_prioReg
					}
               	} // End of template mw_miPrioRegRequest

				/**
               	* @desc Generic receive template for prioritization registration request in MI-REQUEST.request service primitive
				* @param   p_linkID		   Link-ID of VCI / CI. 
				* @param   p_commandRef    Unique cyclic reference number of command. 
				* @param   p_regReq		   Registration request primitive
               	*/
				template MI_Request_request mw_miRTSackReqRequest( 
					in template Link_ID p_linkID, 
					in template CommandRef p_commandRef, 
                   	in template RTSackReq p_rTSackReq 
               	) := { 
                   	linkID := p_linkID,
					commandRef := p_commandRef, 
					ref := c_miReq_rTSackReq,
					request_param := {
						RTSackReq := p_rTSackReq
					}
               	} // End of template mw_miRTSackReqRequest
				
				/**
               	* @desc Generic receive template for prioritization request in MI-REQUEST.request service primitive
				* @param   p_linkID		   Link-ID of VCI / CI. 
				* @param   p_commandRef    Unique cyclic reference number of command. 
				* @param   p_regReq		   Registration request primitive
               	*/
				template MI_Request_request mw_miRTSreqRequest( 
					in template Link_ID p_linkID, 
					in template CommandRef p_commandRef, 
                   	in template RTSreq p_rTSreq 
               	) := { 
                   	linkID := p_linkID,
					commandRef := p_commandRef, 
					ref := c_miReq_prioReg,
					request_param := {
						RTSreq := p_rTSreq
					}
               	} // End of template mw_miRTSreqRequest
				
				/**
               	* @desc Generic receive template for prioritization request in MI-REQUEST.request service primitive
				* @param   p_linkID		   Link-ID of VCI / CI. 
				* @param   p_commandRef    Unique cyclic reference number of command. 
				* @param   p_regReq		   Registration request primitive
               	*/
				template MI_Request_request mw_miRTScmdRequest( 
					in template Link_ID p_linkID, 
					in template CommandRef p_commandRef, 
                   	in template RTScmd p_rTScmd 
               	) := { 
                   	linkID := p_linkID,
					commandRef := p_commandRef, 
					ref := c_miCmd_rTScmd,
					request_param := {
						RTScmd := p_rTScmd
					}
               	} // End of template mw_miRTScmdRequest

				/**
    	        * @desc Generic receive template for MI-SET.confirm service primitive
        	    * @param   p_linkID        Link ID of the peer station
+35 −15

File changed.

Preview size limit exceeded, changes collapsed.