/** * @author ETSI / STF422_EETS * @version $URL$ * $Id$ * @desc Templates definitions for Fast service advertisement protocol (ISO 24102-5) */ module LibItsFsap_Templates { // LibIts import from CALMmanagement language "ASN.1:1997" { type ITS_scuId, StationID }; import from CITSapplMgmtApplReg language "ASN.1:1997" { type ITSaid }; import from CALMmsap language "ASN.1:1997" { type MF_Command_request, MF_Command_confirm, MF_Command, MF_Request_request, MF_Request }; import from CALMllsap language "ASN.1:1997" { type LLserviceAddr, Link_ID, UserPriority }; import from CALMfntp language "ASN.1:1997" { type PortNumber }; import from CALMfsap language "ASN.1:1997" { type ApplicationID, GCctxTxCmd, GCregServer, GCregClient, GCderegClient, GCschedule, ServiceDataReg, ServiceData, ContextData, ServiceList, ServiceInfo, NonipContext, SAMserviceData, CTXserviceData, SAM, SAMrxNot, CTX, CTXrxNot }; import from LibItsFntp_Templates { template m_fntpInSapAddress_src_command }; import from LibItsFsap_Pixits { modulepar PX_FMTID_CTX, PX_VERSION_FSAP, PX_FMTID_SAM, PX_USER_PRIORITY }; import from LibItsCalm_Interface all; group fsapPrimitives { group utPrimitives { /** * @desc Initializes the FSAP IUT */ template (value) UtInitialize m_fsapInitialize := { utFsapInitialize := { } } // End of template m_fsapInitialize /** * @desc Send template to generate a REQUEST.request primitive * @param p_mfRequestReq Command issued by the ITS-S facilities layer and sent to the ITS-S management entity via the MF-SAP * @see ISO 24102-3 Clause 7.3.2 */ template (value) UtCommandRequest m_generateMfRequestReq( in template (value) MF_Request_request p_mfRequestReq ) := { utFsapCommandRequest := { mfRequestReq := p_mfRequestReq } // End of field 'utFsapCommandRequest' } // End of template m_generateMfRequestReq } // End of group utPrimitives group taPrimitives { } // End of group taPrimitives /** * @desc Receive template for MF-SAP service primitives * @param p_mfCommandRequestIn MF-COMMAND.request service primitive to receive */ template (present) FsapReq mw_fsapReq_mfCommandRequest( in template (present) MF_Command_request p_mfCommandRequestIn ) := { mfCommandRequestIn := p_mfCommandRequestIn } // End of template mw_fsapReq_mfCommandRequest /** * @desc Receive template for MF-SAP service primitives * @param p_mfCommandConfirmIn MF-COMMAND.confirm service primitive to receive */ template (present) FsapReq mw_fsapReq_mfCommandConfirm( in template (present) MF_Command_confirm p_mfCommandConfirmIn ) := { mfCommandConfirmIn := p_mfCommandConfirmIn } // End of template mw_fsapReq_mfCommandConfirm group cregServerMessage { group cregServerMessageSend { /** * @desc Send a GCregServer registration request for an ITS-S application * @param p_applicationId The Application ID * @param p_gCschedule A set of scheduling information * @param p_serviceDataReg Additional service data information * @see ISO 24102-3 Table C.1 — MF-REQUESTs * @see ISO 24102-5 Clause 8.2.1 Groupcast registration */ template (value) MF_Request m_mfRequestGcregServer( in template (value) ApplicationID p_applicationId, in template (value) GCschedule p_gCschedule, in template (value) ServiceDataReg p_serviceDataReg ) := { fill := '0000'B, mfReq := { gCregServer := { applicationID := p_applicationId, gCschedule := p_gCschedule, priority := PX_USER_PRIORITY, serviceDataReg := p_serviceDataReg } // End of field 'gCregServer' } // End of field 'mfReq' } // End of template m_mfRequestGcregServer } // End of group cregServerMessageSend group cregServerMessageRecv { /** * @desc Generic receive GCregServer template * Used for: *
  • modifying restrictif template
  • *
  • default altstep
  • * @see ISO 24102-3 Table C.1 — MF-REQUESTs * @see ISO 24102-5 Clause 8.2.1 Groupcast registration */ template GCregServer mw_gCregServer_any := { applicationID := { hostITS_scuId := ?, seqNumber := ? }, // End of field applicationID'' gCschedule := ?, priority := ?, serviceDataReg := { fill := ?, datareg := { nonipData := ? } // End of field 'datareg' } // End of field 'serviceDataReg' } // End of template mw_gCregServer } // End of group cregServerMessageRecv } // End of group cregServerMessage group cregClientMessage { group cregClientMessageSend { /** * @desc Send template for a GCregClient without a session, CTX is not requested * @param p_applicationId The Application ID * @param p_serviceId The globally unique ITS-AID of the ITS-S application * @see ISO 24102-5 Clause 8.5 */ template (value) MF_Request m_mfRequest_gCregClientWithNoSessionAndNoCtx( in template (value) ApplicationID p_applicationId, in template (value) ITSaid p_serviceId ) := { fill := '0000'B, mfReq := { gCregClient := { applicationID := p_applicationId, priority := PX_USER_PRIORITY, serviceID := p_serviceId, contextData := ''O } // End of field 'gCregClient' } // End of field 'mfReq' } // End of template m_mfRequest_gCregClientWithNoSessionAndNoCtx /** * @desc Send template for a GCregClient without a session, CTX is requested * @param p_applicationId The Application ID * @param p_serviceId The globally unique ITS-AID of the ITS-S application * @see ISO 24102-5 Clause 8.3.1 Groupcast registration */ template (value) MF_Request m_mfRequest_gCregClientWithSessionAndCtx( in template (value) ApplicationID p_applicationId, in template (value) ITSaid p_serviceId ) := { fill := '0000'B, mfReq := { gCregClient := { applicationID := p_applicationId, priority := PX_USER_PRIORITY, serviceID := p_serviceId, contextData := ''O } // End of field 'gCregClient' } // End of field 'mfReq' } // End of template m_mfRequest_gCregClientWithSessionAndCtx } // End of group cregClientMessageSend } // End of group cregClientMessage group samMessage { group samMessageSend { /** * @desc Send template for a SAM from a service user ITS station, notified by the groupcast communication manager to the groupcast manager * @param p_link Source_address * @param p_serverId Server identifier * @param p_serviceList Service list descroption * @see ISO 24102-5 Clause 8.3.4 Reception of SAM and transmission of CTX */ template (value) MF_Request m_mfRequest_samRxNot( in template (value) LLserviceAddr p_link, in template (value) StationID p_serverId, in template (value) ServiceList p_serviceList ) := { fill := '0000'B, mfReq := { sAMrxNot := { link := p_link, sam := { fmtID := PX_FMTID_SAM, version := PX_VERSION_FSAP, serverID := p_serverId, serviceList := p_serviceList, channelList := { }, ipServList := { } } // End of field 'sam' } // End of field 'sAMrxNot' } // End of field 'mfReq' } // End of template m_mfRequest_samRxNot } // End of group samMessageSend group samMessageRecv { /** * @desc Generic receive MF-COMMAND template * Used for: *
  • modifying restrictif template
  • *
  • default altstep
  • * @see ISO 24102-3 Clause 8.2.1 */ template (present) MF_Command mw_mfCommand_any := { fill := ?, mfCmd := ? } // End of template mw_mfCommand_any /** * @desc Receive template for SAM * @param p_applicationId The Application ID * @param p_serverId Server identifier * @param p_serviceData Additional SAM service data information * @see ISO 24102-5 Clause 8.3.4 Reception of SAM and transmission of CTX */ template (present) MF_Command mdw_mfCommand_gcSam( in template (present) ApplicationID p_applicationId, in template (present) StationID p_serverId, in template (present) SAMserviceData p_serviceData ) modifies mw_mfCommand_any := { mfCmd := { gCsam := { applicationID := p_applicationId, serverID := p_serverId, serviceData := p_serviceData } // End of header 'gCsam' } // End of header 'mfCmd' } // End of template mw_mfCommand_gCSAM /** * @desc Receive template for GCsamctx * @param p_applicationId The Application ID * @param p_serverId Server identifier * @param p_serviceInfo Additional service data information * @see ISO 24102-5 Clause 8.3.4 Reception of SAM and transmission of CTX */ template (present) MF_Command mdw_mfCommand_gcSamCtx( in template (present) ApplicationID p_applicationId, in template (present) StationID p_serverId, in template (present) ServiceInfo p_serviceInfo ) modifies mw_mfCommand_any := { mfCmd := { gCsamctx := { applicationID := p_applicationId, serverID := p_serverId, serviceInfo := p_serviceInfo } // End of header 'gCsam' } // End of header 'mfCmd' } // End of template mdw_mfCommand_gcSamCtx /** * @desc Receive template for SAMserviceData * @param p_serviceId Service identifier * @param p_serviceData Additional service data information * @param p_providerPort Service user port number */ template (present) SAMserviceData mw_samDataServerciceWithAccessTechAndNonIp( in template (present) ITSaid p_serviceId, in template (present) ServiceData p_serviceData, in template (present) PortNumber p_providerPort ) := { fill := ?, servData := { nonipService := { serviceID := p_serviceId, serviceData := p_serviceData, providerPort := p_providerPort } // End of field 'nonipService' } // End of field 'servData' } // End of template mw_samDataServerciceWithAccessTechAndNonIP } // End of group samMessageRecv } // End of group samMessage group ctxMessage { group ctxMessageSend { /** * @desc Send "CTX" in reply to SAM * @param p_linkID Source address * @param p_ctx CTX information * @see ISO 24102-5 Clause 8.2.6 * @see ISO 21218 Clause 5.4.2.1 & 5.4.2.2 */ template (value) MF_Request m_mfRequest_ctx( in template (value) LLserviceAddr p_linkId, in template (value) CTX p_ctx ) := { fill := '0000'B, mfReq := { cTXrxNot := { link := p_linkId, ctx := p_ctx } // // End of field 'cTXrxNot' } // End of field 'mfReq' } // End of template m_mfRequest_ctx /** * @desc Send template for CTX * @param p_clientID Client identifier * @see ISO 24102-5 Clause 8.2.6 Reception of CTX */ template (value) CTX m_ctx( in template (value) StationID p_clientId ) := { fmtID := PX_FMTID_CTX, version := PX_VERSION_FSAP, clientID := p_clientId, servContextList := { }, ipContextList := { } } // End of template m_ctx } // End of group ctxMessageSend group ctxMessageRecv { /** * @desc Receive template for GCctx * @param p_applicationId The application ID * @param p_clientID Client identifier * @param p_serviceContext Additional service context information * @see ISO 24102-5 Clause 8.2.6 Reception of CTX */ template (present) MF_Command mdw_mfCommand_gCctx( in template (present) ApplicationID p_applicationId, in template (present) StationID p_clientId, in template (present) CTXserviceData p_serviceContext ) modifies mw_mfCommand_any := { mfCmd := { gCctx := { applicationID := p_applicationId, clientID := p_clientId, serviceContext := p_serviceContext } // End of header 'gCctx' } // End of header 'mfCmd' } // End of template mw_mfCommand_gCctx /** * @desc Receive template for GCctxTxCmd * @param p_link Source address * @param p_ctx CTX information * @see ISO 24102-5 Clause 8.3.4 Reception of SAM and transmission of CTX */ template (present) MF_Command mdw_mfCommand_gcCtxTxCmd( in template (present) CALMllsap.LLserviceAddr p_link, in template (present) CTX p_ctx ) modifies mw_mfCommand_any := { mfCmd := { gCctxTxCmd := { link := p_link, ctx := p_ctx } // End of header 'gCctxTxCmd' } // End of header 'mfCmd' } // End of template mdw_mfCommand_gcCtxTxCmd /** * @desc Generic receive template for CTX. * Used for: *
  • modifying restrictif template
  • *
  • default altstep
  • * @see ISO 24102-5 Clause 8.2.6 Reception of CTX */ template (present) CTX mw_ctx_any := { fmtID := PX_FMTID_CTX, version := PX_VERSION_FSAP, clientID := ?, servContextList := ?, ipContextList := ? } // End of template mw_ctx_any /** * @desc Receive template for CTX with non-ip service context * @param p_servContext Additional service data information for non-IP based services (timeout information) * @see ISO2410-5 Clause 8.2.1 Groupcast registration * @see ISO2410-5 Figure 9 — serviceList */ template (present) CTX mdw_ctx_nonIpContext( in template (present) NonipContext p_servContext ) modifies mw_ctx_any := { servContextList := ? // FIXME To be reviewed during validation superset(p_servContext) } // End of template mdw_ctx_nonIpContext /** * @desc Receive template for CTX in non-ip context * @param p_serviceId The globally unique ITS-AID of the ITS-S application * @param p_userPort Service port number * @see ISO2410-5 Clause 8.2.1 Groupcast registration * @see ISO2410-5 Figure 9 — serviceList */ template (present) NonipContext mw_nonIpContext( in template (present) ITSaid p_serviceId, in template (present) PortNumber p_userPort ) := { serviceID := p_serviceId, contextData := ?, userPort := p_userPort } // End of template mw_nonIpContext /** * @desc Generic receive template for CTXserviceData * Used for: *
  • modifying restrictif template
  • *
  • default altstep
  • */ template (present) CTXserviceData mw_ctxDataServercice_any := { fill := ?, servData := ? } // End of template mw_ctxDataServercice_any /** * @desc Receive template for CTXserviceData * @param p_serviceId The globally unique ITS-AID of the ITS-S application * @param p_contextData Additional context data information for non-IP based services (timeout information) * @param p_userPort Service port number */ template (present) CTXserviceData mdw_ctxServiceDataNonIp( in template (present) ITSaid p_serviceId, in template (present) ContextData p_contextData, in template (present) PortNumber p_userPort ) modifies mw_ctxDataServercice_any := { servData := { nonipContext := { serviceID := p_serviceId, contextData := p_contextData, userPort := p_userPort } // End of field 'nonipService' } // End of field 'servData' } // End of template mdw_ctxServiceDataNonIp } // End of group ctxMessageRecv } // End of group ctxMessage } // End of group fsapPrimitives } // End of module LibItsFsap_Templates