/**
* @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, MF_Command_confirm,
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
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
// TODO To be removed
// group cregClientMessageRecv {
//
// /**
// * @desc Send template for GCregClient
// * @param p_hostITS_scuId The ITS-SCU-ID of the ITS-S host where the service provider ITS-S application resides
// * @param p_serviceID The globally unique ITS-AID of the ITS-S application
// * @see ISO/CD 24102-5 Clause 8.3.1 Groupcast registration
// */
// template (value) GCregClient m_gCregClient(
// in template (value) ITS_scuId p_hostITS_scuId,
// in template (value) ITSaid p_serviceID
// ) := {
// applicationID := {
// hostITS_scuId := p_hostITS_scuId,
// seqNumber := 0
// }, // End of 'applicationID' field
// priority := 0,
// serviceID := p_serviceID,
// contextData := ''O
// } // End of template m_gCregClient
//
// /**
// * @desc Confirmation of the ITS-S application shall deregistration
// * @param p_hostITS_scuId The ITS-SCU-ID of the ITS-S host where the service provider ITS-S application resides together with an ITS-S application reference number being unique at this ITS-SCU
// * @param p_serviceID The globally unique ITS-AID of the ITS-S application
// * @see ISO 24102-5 Clause 8.3.1
// */
// template (present) GCregClient mw_gCregClient(
// in template (present) ITS_scuId p_hostITS_scuId,
// in template (present) ITSaid p_serviceID
// ) := {
// applicationID := {
// hostITS_scuId := p_hostITS_scuId,
// seqNumber := ?
// }, // End of 'applicationID' field
// priority := ?,
// serviceID := p_serviceID,
// contextData := ?
// } // End of template mw_gCregClient
//
// } // End of group cregClientMessageRecv
} // End of group cregClientMessage
// TODO To be removed
// group cderegClientMessage {
//
// /**
// * @desc ITS-S application shall deregister its supported service at the groupcasting manager using the services of the groupcasting registration handler
// * @param p_hostITS_scuId The ITS-SCU-ID of the ITS-S host where the service provider ITS-S application resides together with an ITS-S application reference number being unique at this ITS-SCU
// * @see ISO 24102-5 Clause 8.3.3
// */
// template (value) GCderegClient m_gCderegClient(
// in template (value) ITS_scuId p_hostITS_scuId
// ) := {
// applicationID := {
// hostITS_scuId := p_hostITS_scuId,
// seqNumber := 0
// }
// } // End of template m_gCderegClient
//
// /**
// * @desc Confirmation of the ITS-S application shall deregistration
// * @param p_hostITS_scuId The ITS-SCU-ID of the ITS-S host where the service provider ITS-S application resides together with an ITS-S application reference number being unique at this ITS-SCU
// *
// @see ISO 29281-2 Clause 8.1
// @see ISO 24102-5 Clause 8.3.3
// */
// template GCderegClient mw_gCderegClient(
// in template (present) ITS_scuId p_hostITS_scuId
// ) := {
// applicationID := {
// hostITS_scuId := p_hostITS_scuId,
// seqNumber := ?
// }
// } // End of template mw_gCderegClient
//
// } // End of group cderegClientMessage
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
// TODO To be removed
// /**
// * @desc Send "Service Table Context" (STC) to FAST networking protocol for the purpose of unicast delivery to the selected peer station
// * @param p_csap Source address - see ISO 21218 Clause 5.4.2.1 & 5.4.2.2
// * @param p_linkID Destination link ID - see ISO 21218 Clause 5.4.2.2
// * @param p_clientID Station ID of the client ITS station
// *
// @see ISO 24102-5 Clause 7.2.3
// */
// template (value) GCctxTxCmd m_gCctxTxCmd(
// in template (value) IN_SAPaddress p_csap,
// in template (value) Link_ID p_linkId,
// in template (value) StationID p_clientID
// ) := {
// link := {
// csap := p_csap,
// linkID := p_linkID
// },
// ctx := {
// fmtID := 0, // FIXME Use PIXIT PX_FMTID_CTX
// version := 0, // FIXME Use PIXIT PX_VERSIONFSAP
// clientID := p_clientID,
// servContextList := { },
// ipContextList := { }
// }
// } // End of template m_gCctxTxCmd
//
// /**
// * @desc Send "CTX" in reply to SAM
// * @param p_csap Source address - see ISO 21218 Clause 5.4.2.1 & 5.4.2.2
// * @param p_linkID Destination link ID - see ISO 21218 Clause 5.4.2.2
// * @param p_clientID Station ID of the client ITS station
// *
// @see ISO 24102-5 Clause 7.2.3
// */
// template (value) CTXrxNot m_cTXrxNot(
// in template (value) IN_SAPaddress p_csap,
// in template (value) Link_ID p_linkId,
// in template (value) StationID p_clientID
// ) := {
// link := {
// csap := p_csap,
// linkID := p_linkID
// },
// ctx := {
// fmtID := 0, // FIXME Use PIXIT PX_FMTID_CTX
// version := 0, // FIXME Use PIXIT PX_VERSIONFSAP
// clientID := p_clientID,
// servContextList := { },
// ipContextList := { }
// }
// } // End of template m_cTXrxNot
} // 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 mw_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 mw_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 mw_ctx_NonipContext(
in template (present) NonipContext p_servContext
) modifies mw_ctx_any := {
servContextList := superset(p_servContext)
} // End of template mw_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
// TODO To be removed
// /**
// * @desc Confirmation of Service context message transmission
// * @param p_csap Source address - see ISO 21218 Clause 5.4.2.1 & 5.4.2.2
// * @param p_linkID Destination link ID - see ISO 21218 Clause 5.4.2.2
// * @param p_clientID Station ID of the client ITS station
// *
// @see ISO 24102-5 Clause 7.2.3
// */
// template GCctxTxCmd mw_gCctxTxCmd(
// in template (present) IN_SAPaddress p_csap,
// in template (present) Link_ID p_linkId,
// in template (present) StationID p_clientID
// ) := {
// link := {
// csap := p_csap,
// linkID := p_linkID
// },
// ctx := {
// fmtID := 0, // FIXME Use PIXIT PX_FMTID_CTX
// version := 0, // FIXME Use PIXIT PX_VERSIONFSAP
// clientID := p_clientID,
// servContextList := ?,
// ipContextList := ?
// }
// } // End of template mw_gCctxTxCmd
} // End of group ctxMessageRecv
} // End of group ctxMessage
} // End of group fsapPrimitives
} // End of module LibItsFsap_Templates