Newer
Older
/**
* @author ETSI / STF405
* @version $URL$
* $Id$
* @desc GeoNetworking Templates
*
*/
module LibItsGeoNetworking_Templates {
// Libcommon
import from LibCommon_BasicTypesAndValues all;
import from LibCommon_DataStrings all;
// LibIts
import from LibIts_Interface all;
import from LibItsGeoNetworking_TypesAndValues all;
group geoNwPrimitivesTemplates {
template (value) GeoNetworkingReq m_geoNwReq(
template (value) GeoNetworkingPacket p_geoNwMsg
) := {
msgOut := p_geoNwMsg
}
template GeoNetworkingInd mw_geoNwInd(
template (present) GeoNetworkingPacket p_geoNwMsg
) := {
msgIn := p_geoNwMsg
}
} // geoNwPrimitivesTemplates
group geoNwPduTemplates {
template (value) GeoNetworkingPacket m_geoNwPdu(in template (value) Header p_header) := {
header := p_header,
secHeader := omit,
payload := omit
}
template (value) GeoNetworkingPacket m_geoNwPduWithPayload(in template (value) Header p_header, in template (value) Payload p_payload) := {
header := p_header,
secHeader := omit,
payload := p_payload
}
template GeoNetworkingPacket mw_geoNwPdu(in template (present) Header p_header) := {
header := p_header,
template GeoNetworkingPacket mw_geoNwPduAnyPayload(in template (present) Header p_header) := {
header := p_header,
secHeader := *,
payload := ?
}
template GeoNetworkingPacket mw_geoNwPduWithPayload(in template (present) Header p_header, in template (present) Payload p_payload) := {
header := p_header,
secHeader := *,
payload := p_payload
}
} // end geoNwPduTemplates
group geoNwHeadersTemplates {
group geoNwCommonHeaderTemplates {
template (value) CommonHeader m_commonHeader (
in template (value) NextHeader p_nextHeader,
in template (value) HeaderTST p_headerTST,
in template (value) TrafficClass p_trafficClass,
in template (value) UInt8 p_hopLimit,
in template (value) LongPosVector p_longPosVec,
in template (value) StationTypeIdentifier p_stationType
) := {
version := c_geoNwProtocolVersion,
nextHeader := p_nextHeader,
headerTST := p_headerTST,
reserved := c_uInt8Zero,
flags := m_flags(p_stationType),
plLength := 0, // will be computed by Codec
trafficClass := p_trafficClass,
hopLimit := p_hopLimit,
senderPosVector := p_longPosVec
}
template CommonHeader mw_commonHeader (
in template (present) LongPosVector p_senderLongPosVec,
in template (present) NextHeader p_nextHeader,
in template (present) HeaderTST p_headerTST,
in template (present) StationTypeIdentifier p_stationType
version := c_geoNwProtocolVersion,
headerTST := p_headerTST,
flags := mw_flags(p_stationType),
plLength := ?,
trafficClass := ?,
hopLimit := ?,
senderPosVector := p_senderLongPosVec
template CommonHeader mw_commonHeaderBeacon (
in template (present) StationTypeIdentifier p_stationType,
in template (present) TrafficClass p_trafficClass,
in template (present) UInt8 p_hopLimit,
in template (present) LongPosVector p_senderLongPosVec
version := c_geoNwProtocolVersion,
nextHeader := e_any, // 0
headerTST := {
beaconHdr := { headerType := e_beacon, // 0
headerSubType := 0}
},
reserved := c_uInt8Zero,
flags := mw_flags(p_stationType),
plLength := 0,
trafficClass := p_trafficClass,
hopLimit := p_hopLimit,
senderPosVector := p_senderLongPosVec
template CommonHeader mw_commonHeaderWithHopLimit (
in template (present) LongPosVector p_senderLongPosVec,
in template (present) NextHeader p_nextHeader,
in template (present) HeaderTST p_headerTST,
in template (present) StationTypeIdentifier p_stationType,
in template (present) UInt8 p_hopLimit
) modifies mw_commonHeader := {
hopLimit := p_hopLimit
}
template CommonHeader mw_commonHeaderWithTrafficClass (
in template (present) LongPosVector p_senderLongPosVec,
in template (present) NextHeader p_nextHeader,
in template (present) HeaderTST p_headerTST,
in template (present) StationTypeIdentifier p_stationType,
in template (present) TrafficClass p_trafficClass
) modifies mw_commonHeader := {
trafficClass := p_trafficClass
}
template (value) Flags m_flags(
in template (value) StationTypeIdentifier p_stationType
) := {
reserved := c_uInt6Zero,
stationType := p_stationType,
reserved2 := c_uInt1Zero
}
template Flags mw_flags(
in template (present) StationTypeIdentifier p_stationType
) := {
reserved := c_uInt6Zero,
stationType := p_stationType,
reserved2 := c_uInt1Zero
}
template (value) TrafficClass m_trafficClass := {
reserved := c_uInt1Zero,
relevance := c_uInt3Zero,
reliability := e_veryHigh,
latency := e_veryLow
}
in template (present) Reliability p_reliability,
in template (present) Latency p_latency
) := {
reserved := c_uInt1Zero,
relevance := c_uInt3Zero,
reliability := p_reliability,
latency := p_latency
}
template GN_Address mw_gnAddressAny := {
typeOfAddress := ?,
stationType := ?,
stationSubType := ?,
stationCountryCode := ?,
mid := ?
}
template GN_Address mw_gnAddress(
in template (present) StationType p_stationType,
in template (present) StationSubType p_stationSubType,
in template (present) UInt10 p_stationCountryCode
) := {
typeOfAddress := ?,
stationType := p_stationType,
stationSubType := p_stationSubType,
stationCountryCode := p_stationCountryCode,
mid := ?
}
Loading full blame...