Newer
Older
* @version $URL$
* $Id$
* @desc GeoNetworking Templates
* @copyright ETSI Copyright Notification
* No part may be reproduced except as authorized by written permission.
* The copyright and the foregoing restriction extend to reproduction in all media.
* All rights reserved.
module LibItsGeoNetworking_Templates {
// Libcommon
import from LibCommon_BasicTypesAndValues all;
import from LibCommon_DataStrings all;
import from LibItsCommon_TypesAndValues all;
import from LibItsExternal_TypesAndValues all;
// LibItsBtp
// import from LibItsBtp_Templates all;
// LibItsSecurity
import from LibItsSecurity_TypesAndValues all;
//import from LibItsIpv6OverGeoNetworking_TypesAndValues all;
//import from LibItsIpv6OverGeoNetworking_Templates all;
// import from LibItsGeoNetworking_EncdecDeclarations all;
group geoNwPrimitivesTemplates {
/**
* @desc Send template for GeoNetworking packet (GeonetworkingPort Primitive)
* @param p_geoNwMsg GeoNetworking packet to be sent
* @param p_its_aid ITS-AID used in secured mode. Default: 0, means unused
template (omit) GeoNetworkingReq m_geoNwReq_linkLayerBroadcast(
in template (value) GeoNetworkingPdu p_geoNwMsg,
in template (value) UInt32 p_its_aid := 0
msgOut := p_geoNwMsg,
macDestinationAddress := c_llBroadcast,
/**
* @desc Send template for GeoNetworking packet (GeonetworkingPort Primitive)
* @param p_geoNwMsg GeoNetworking packet to be sent
* @param p_its_aid ITS-AID used in secured mode. Default: 0, means unused
* @param p_llDestinationAdress Link-layer destination address
template (omit) GeoNetworkingReq m_geoNwReq_withLinkLayerDestination(
in template (value) GeoNetworkingPdu p_geoNwMsg,
in template (value) UInt32 p_its_aid := 0,
in template (value) MacAddress p_llDestinationAdress
macDestinationAddress := p_llDestinationAdress
/**
* @desc Receive template for GeoNetworking packet (GeonetworkingPort Primitive)
* @param p_geoNwMsg GeoNetworking packet to be received
template GeoNetworkingInd mw_geoNwInd(
msgIn := p_geoNwMsg,
macDestinationAddress := ?,
ssp := *,
its_aid := *
/**
* @desc Receive template for GeoNetworking packet (GeonetworkingPort Primitive)
* @param p_geoNwMsg GeoNetworking packet to be received
* @param p_llDestinationAdress Link-layer destination address
template GeoNetworkingInd mw_geoNwInd_withLinkLayerDestination(
template (present) MacAddress p_llDestinationAdress
) modifies mw_geoNwInd := {
/**
* @desc Request IUT to send a GeoUnicast message to a specific destination
* @param p_destinationGnAddr Destination of the GeoUnicast message
template (value) UtGnTrigger m_generateGeoUnicastMessage(GN_Address p_destinationGnAddr) := {
tepelmann
committed
gnAddress := p_destinationGnAddr,
trafficClass := valueof(m_trafficClass),
/**
* @desc Request IUT to send a GeoUnicast message to a specific destination with specific lifetime
* @param p_destinationGnAddr Destination of the GeoUnicast message
* @param p_trafficClass TrafficClass of the GeoUnicast message
* @see m_generateGeoUnicastMessage
*/
template (value) UtGnTrigger m_generateGeoUnicastMessageWithTrafficClass(
GN_Address p_destinationGnAddr,
TrafficClass p_trafficClass
) modifies m_generateGeoUnicastMessage := {
geoUnicast := {
trafficClass := p_trafficClass
}
}
/**
* @desc Request IUT to send a GeoUnicast message to a specific destination with specific lifetime
* @param p_destinationGnAddr Destination of the GeoUnicast message
* @param p_lifetime Lifetime of the GeoUnicast message
template (value) UtGnTrigger m_generateGeoUnicastMessageWithLifetime(
GN_Address p_destinationGnAddr,
) modifies m_generateGeoUnicastMessage := {
tepelmann
committed
geoUnicast := {
lifetime := p_lifetime
}
/**
* @desc Request IUT to send a GeoUnicast message to a specific destination with a payload
* @param p_destinationGnAddr Destination of the GeoUnicast message
* @param p_payload Payload of the GeoUnicast message
template (value) UtGnTrigger m_generateGeoUnicastMessageWithPayload(
GN_Address p_destinationGnAddr,
tepelmann
committed
) modifies m_generateGeoUnicastMessage := {
geoUnicast := {
tepelmann
committed
}
/**
* @desc Request IUT to send a GeoUnicast message to a specific destination with specific lifetime with specific payload
* @param p_destinationGnAddr Destination of the GeoUnicast message
* @param p_lifetime Lifetime of the GeoUnicast message
* @param p_payload Payload of the GeoUnicast message
* @see m_generateGeoUnicastMessage
*/
template (value) UtGnTrigger m_generateGeoUnicastMessageWithLifetimeWithPayload(
octetstring p_payload
) modifies m_generateGeoUnicastMessageWithLifetime := {
tepelmann
committed
geoUnicast := {
tepelmann
committed
}
reinaortega
committed
/**
* @desc Request IUT to send a GeoBroadcast message to a specific area
* @param p_geoArea Destination area of the message
GeoArea p_geoArea
tepelmann
committed
geoBroadcast := {
trafficClass := valueof(m_trafficClass),
reserved := c_uInt24Zero,
area := p_geoArea.area,
tepelmann
committed
}
}
/**
* @desc Request IUT to send a GeoBroadcast message to a specific area
* @param p_geoArea Destination area of the message
* @param p_trafficClass TrafficClass of the GeoUnicast message
*/
template (value) UtGnTrigger m_generateGeoBroadcastMessageWithTrafficClass(
GeoArea p_geoArea,
TrafficClass p_trafficClass
) modifies m_generateGeoBroadcastMessage := {
geoBroadcast := {
trafficClass := p_trafficClass
}
}
/**
* @desc Request IUT to send a GeoBroadcast message to a specific area
* @param p_geoArea Destination area of the message
template (value) UtGnTrigger m_generateGeoBroadcastMessageWithLifetime(
GeoArea p_geoArea,
tepelmann
committed
geoBroadcast := {
lifetime := p_lifetime
}
/**
* @desc Request IUT to send a GeoBroadcast message to a specific area with a payload
* @param p_geoArea Destination area of the message
* @param p_payload Payload of the GeoBroadcast message
template (value) UtGnTrigger m_generateGeoBroadcastMessageWithPayload(
GeoArea p_geoArea,
) modifies m_generateGeoBroadcastMessage := {
tepelmann
committed
geoBroadcast := {
tepelmann
committed
}
/**
* @desc Request IUT to send a GeoAnycast message to a specific area
* @param p_geoArea Destination area of the message
GeoArea p_geoArea
tepelmann
committed
geoAnycast := {
trafficClass := valueof(m_trafficClass),
reserved := c_uInt24Zero,
area := p_geoArea.area,
tepelmann
committed
}
/**
* @desc Request IUT to send a GeoAnycast message to a specific area with a payload
* @param p_geoArea Destination area of the message
* @param p_trafficClass TrafficClass of the GeoUnicast message
* @see m_generateGeoAnycastMessage
*/
template (value) UtGnTrigger m_generateGeoAnycastMessageWithTrafficClass(
GeoArea p_geoArea,
TrafficClass p_trafficClass
) modifies m_generateGeoAnycastMessage := {
geoAnycast := {
trafficClass := p_trafficClass
}
}
/**
* @desc Request IUT to send a GeoAnycast message to a specific area with a payload
* @param p_geoArea Destination area of the message
* @param p_payload Payload of the GeoAnycast message
template (value) UtGnTrigger m_generateGeoAnycastMessageWithPayload(
GeoArea p_geoArea,
) modifies m_generateGeoAnycastMessage := {
tepelmann
committed
geoAnycast := {
tepelmann
committed
}
/**
* @desc Request IUT to send a SHB message
tepelmann
committed
shb := {
trafficClass := valueof(m_trafficClass),
tepelmann
committed
}
/**
* @desc Request IUT to send a SHB message with a payload
* @param p_trafficClass TrafficClass of the GeoUnicast message
* @see m_generateShbMessage
*/
template (value) UtGnTrigger m_generateShbMessageWithTrafficClass(
TrafficClass p_trafficClass
) modifies m_generateShbMessage := {
shb := {
trafficClass := p_trafficClass
}
}
/**
* @desc Request IUT to send a SHB message with a payload
tepelmann
committed
shb := {
tepelmann
committed
}
/**
* @desc Request IUT to send a TSB message
tepelmann
committed
tsb := {
lifetime := c_lifetime,
trafficClass := valueof(m_trafficClass),
tepelmann
committed
}
}
/**
* @desc Request IUT to send a TSB message
* @param p_lifetime Packet's lifetime
*/
template (value) UtGnTrigger m_generateTsbMessageWithLifetime(
UInt16 p_lifetime
) modifies m_generateTsbMessage := {
tsb := {
lifetime := p_lifetime
}
}
/**
* @desc Request IUT to send a TSB message
* @param p_trafficClass TrafficClass of the GeoUnicast message
*/
template (value) UtGnTrigger m_generateTsbMessageWithTrafficClass(
TrafficClass p_trafficClass
) modifies m_generateTsbMessage := {
tsb := {
trafficClass := p_trafficClass
}
}
/**
* @desc Request IUT to change its position
*/
template (value) UtGnChangePosition m_changePosition := {
latitude := 1000,
longitude := 0,
elevation := 0
/**
* @desc Testsystem will start beaconing for the given neighbor
* @param p_beaconHeader The neighbor information
template (value) AcGnPrimitive m_startBeaconing(
template (value) BeaconHeader p_beaconHeader
) := {
beaconPacket := m_geoNwPdu(valueof(m_geoNwBeaconPacket(valueof(p_beaconHeader.srcPosVector))), -, c_hopLimit1)
/**
* @desc Testsystem will stop beaconing for the given neighbor
* @param p_compName The neighbor
stopBeaconing:= {
}
}
/**
* @desc Testsystem will pass received to the TTCN-3
* @param p_beaconHeader The neighbor information
*/
template (value) BeaconHeader p_beaconHeader
) := {
startPassBeaconing := {
beaconHeader := p_beaconHeader
}
}
/**
* @desc Testsystem will stop passing beacon information to the TTCN-3
*/
template AcGnPrimitive m_stopPassBeaconing := {
stopPassBeaconing := {
}
}
* @desc Testsystem will start beaconing for multiple neighbors
* @param p_beaconHeader The neighbor information
* @param p_numberOfNeighbour The number of ITS stations for which TS will send beacons
template (value) AcGnPrimitive m_startBeaconingMultipleNeighbour(
template (value) BeaconHeader p_beaconHeader,
integer p_numberOfNeighbour
) := {
startBeaconingMultipleNeighbour := {
beaconPacket := m_geoNwPdu(valueof(m_geoNwBeaconPacket(valueof(p_beaconHeader.srcPosVector))), -, c_hopLimit1),
numberOfNeighbour := p_numberOfNeighbour
}
}
/**
* @desc Testsystem will stop beaconing for multiple neighbors
* @param p_compName The neighbor
*/
template AcGnPrimitive m_stopBeaconingMultipleNeighbour := {
stopBeaconingMultipleNeighbour:= {
}
* @desc Testsystem will reply the LongPosVector including the requested GN address
* found in received beacon information to the TTCN-3
* @param p_gnAddress The GN address included in the LongPosVector
template AcGnPrimitive m_getLongPosVector(GN_Address p_gnAddress) := {
getLongPosVector := {
gnAddress := p_gnAddress
}
}
/**
* @desc Receive template adapter control result for long position vector with specific GN_Address
* @param p_gnAddress GN_Address to be contained in the long position vector
*/
template AcGnResponse mw_getLongPosVectorAny(template (present) GN_Address p_gnAddress) := {
getLongPosVector := mw_longPosVectorAny(p_gnAddress)
}
} // geoNwPrimitivesTemplates
group geoNwPduTemplates {
* @desc Send template for GeoNetworking PDU
* @param p_packet GnNonSecuredPacket of GeoNetworking message
* @param p_lifeTime Lifetime of GeoNetworking message (Default: m_defaultLifetime)
* @param p_hopLimit Router Hop limit of GeoNetworking message (Default: c_defaultHopLimit)
*/
template (value) GeoNetworkingPdu m_geoNwPdu(
in template (value) GnNonSecuredPacket p_packet,
in template (value) Lifetime p_lifeTime := m_defaultLifetime,
in template (value) UInt8 p_hopLimit := c_defaultHopLimit
) := {
basicHeader := m_basicHeader(p_lifeTime, p_hopLimit),
gnPacket := {
packet := p_packet,
securedMsg := omit
}
}
/**
* @desc Receive template for GeoNetworking PDU
* @param p_packet GnNonSecuredPacket of GeoNetworking message
* @param p_lifeTime Lifetime of GeoNetworking message (Default: ?)
* @param p_hopLimit Router Hop limit of GeoNetworking message (Default: ?)
*/
template (present) GeoNetworkingPdu mw_geoNwPdu(
in template (present) GnNonSecuredPacket p_packet,
in template (present) Lifetime p_lifeTime := ?,
in template (present) UInt8 p_hopLimit := ?
) := {
basicHeader := mw_basicHeader(p_lifeTime, p_hopLimit),
gnPacket := {
packet := p_packet,
securedMsg := *
/**
* @desc Receive template for secured GeoNetworking PDU
* @param p_secMsg Secured message
* @param p_packet Clear-text version of the packet
*/
template (present) GeoNetworkingPdu mw_geoNwSecPdu(
in template (present) SecuredMessage p_secMsg,
in template (present) GnNonSecuredPacket p_packet := ?
) := {
gnPacket := {
packet := p_packet,
securedMsg := p_secMsg
}
}
/**
* @desc Send template for secured GeoNetworking PDU
* @param p_packet Clear-text version of the packet
* @param p_secMsg Secured message
*/
template (value) GeoNetworkingPdu m_geoNwSecPdu(
garciay
committed
in template (value) GnNonSecuredPacket p_packet,
in template (value) SecuredMessage p_secMsg
gnPacket := {
packet := p_packet,
securedMsg := p_secMsg
}
}
} // end geoNwPduTemplates
group geoNwPacketTemplates {
/**
* @desc Send template for GeoNetworking Packet
* @param p_basicHeader Common header of GeoNetworking packet
* @param p_extHeader Extended header of GeoNetworking packet
template (value) GeoNetworkingPacket m_geoNwPacket(
in template (value) CommonHeader p_commonHeader,
in template (value) ExtendedHeader p_extHeader
packet := {
commonHeader := valueof(p_commonHeader),
extendedHeader := valueof(p_extHeader),
payload := char2oct("DEFAULT_PAYLOAD")
}
/**
* @desc Send template for GeoNetworking Packet with no payload
* @param p_basicHeader Common header of GeoNetworking packet
* @param p_extHeader Extended header of GeoNetworking packet
template (value) GeoNetworkingPacket m_geoNwPacketNoPayload(
in template (value) CommonHeader p_commonHeader,
in template (value) ExtendedHeader p_extHeader
) modifies m_geoNwPacket := {
packet := {
payload := omit
}
* @desc Send template for GeoNetworking Packet with payload
* @param p_basicHeader Common header of GeoNetworking packet
* @param p_extHeader Extended header of GeoNetworking packet
* @param p_payload Payload
template (value) GeoNetworkingPacket m_geoNwPacketWithPayload(
in template (value) CommonHeader p_commonHeader,
in template (value) ExtendedHeader p_extHeader,
in template (value) GnRawPayload p_payload
) modifies m_geoNwPacket := {
packet := {
payload := p_payload
}
* @desc Receive template for GeoNetworking Packet
* @param p_basicHeader Common header of GeoNetworking packet
* @param p_extHeader Extended header of GeoNetworking packet
template (present) GeoNetworkingPacket mw_geoNwPacket(
in template (present) CommonHeader p_commonHeader,
in template (present) ExtendedHeader p_extHeader
packet := {
commonHeader := p_commonHeader,
extendedHeader := p_extHeader,
payload := *
},
securedMsg := *
* @desc Receive template for GeoNetworking Packet with any payload
* @param p_basicHeader Common header of GeoNetworking packet
* @param p_extHeader Extended header of GeoNetworking packet
//FIXME RGY template restriction can be the same as its base template: template is not used currently
// template GeoNetworkingPacket mw_geoNwPduAnyPayload(
template(present) GeoNetworkingPacket mw_geoNwPduAnyPayload(
in template (present) ExtendedHeader p_extHeader
) modifies mw_geoNwPacket := {
packet := {
payload := ?
}
}
* @desc Receive template for GeoNetworking PDU with octetstring payload
* @param p_basicHeader Common header of GeoNetworking packet
* @param p_extHeader Extended header of GeoNetworking packet
* @param p_payload Octetstring payload
//FIXME RGY template restriction can be the same as its base template: template is not used currently
// template GeoNetworkingPacket mw_geoNwPduWithOctetstringPayload(
template(present) GeoNetworkingPacket mw_geoNwPduWithOctetstringPayload(
in template (present) ExtendedHeader p_extHeader,
/**
* @desc Receive template for GeoNetworking PDU with payload
* @param p_basicHeader Common header of GeoNetworking packet
* @param p_extHeader Extended header of GeoNetworking packet
* @param p_payload Payload
//FIXME RGY template restriction can be the same as its base template: used in TC_SEC_ITSS_SND_CAM_02_01_BV only, where is called with parameters
// template GeoNetworkingPacket mw_geoNwPduWithPayload(
template(present) GeoNetworkingPacket mw_geoNwPduWithPayload(
in template (present) ExtendedHeader p_extHeader,
in template (present) GnRawPayload p_payload
) modifies mw_geoNwPacket := {
packet := {
payload := p_payload
}
}
group geoNwPacketTemplates_ {
/**
* @desc Receive template for any GeoNetworking Packet
*/
template (present) GnNonSecuredPacket mw_geoNwAnyPacket := {
commonHeader := mw_commonHeader(
?,
?
),
extendedHeader := *,
payload := *
}
/**
* @desc Receive template for any GeoNetworking Packet with Payload
* @param payload Expected GN payload
*/
template (present) GnNonSecuredPacket mw_geoNwAnyPacket_withPayload(
template (present) GnRawPayload p_payload
) := {
commonHeader := mw_commonHeader(
?,
?
),
extendedHeader := *,
payload := p_payload
}
} // end group geoNwPacketTemplates_
group geoNwPacketUnicastTemplates {
/**
* @desc Send template for GeoNetworking Unicast Packet
* @param p_sourceLongPosVec Long position vector of source
* @param p_destinationShortPosVec Short position vector of destination
* @param p_seqNumber Sequence number of GeoUnicast packet
tepelmann
committed
* @param p_hopLimit Maximum number of hops (Default: c_defaultHopLimit)
* @param p_trafficClass Traffic Class
*/
template (value) GnNonSecuredPacket m_geoNwUnicastPacket(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) ShortPosVector p_destinationShortPosVec,
tepelmann
committed
in template (value) UInt16 p_seqNumber,
in template (value) UInt8 p_hopLimit := c_defaultHopLimit,
in template (value) TrafficClass p_trafficClass := m_trafficClass
commonHeader := valueof(m_commonHeader(
tepelmann
committed
p_hopLimit
)),
extendedHeader := valueof(m_geoUnicastHeader(
p_sourceLongPosVec,
p_destinationShortPosVec,
p_seqNumber
payload := valueof(char2oct("DEFAULT_PAYLOAD"))
}
/**
* @desc Receive template for GeoNetworking Unicast Packet
* @param p_destinationShortPosVec Short position vector of destination
* @param p_seqNumber Sequence number of GeoUnicast packet
*/
template (present) GnNonSecuredPacket mw_geoNwUnicastPacket(
in template (present) ShortPosVector p_destinationShortPosVec,
in template (present) UInt16 p_seqNumber
) := {
commonHeader := mw_commonHeader(
PX_GN_UPPER_LAYER,
mw_geoUnicastHeaderType
),
extendedHeader := mw_geoUnicastHeader(
p_destinationShortPosVec,
p_seqNumber
),
payload := ?
}
/**
* @desc Receive template for GeoNetworking Unicast Packet
* @param p_destinationShortPosVec Short position vector of destination
* @param p_seqNumber Sequence number of GeoUnicast packet
* @param p_hopLimit Maximum number of hops (Default: ?)
* @see mw_geoNwUnicastPacket
*/
template (present) GnNonSecuredPacket mw_geoNwUnicastPacketWithHl(
in template (present) ShortPosVector p_destinationShortPosVec,
in template (present) UInt16 p_seqNumber,
in template (present) UInt8 p_hopLimit := ?
) modifies mw_geoNwUnicastPacket := {
commonHeader := mw_commonHeaderWithHopLimit(
PX_GN_UPPER_LAYER,
mw_geoUnicastHeaderType,
p_hopLimit
),
extendedHeader := mw_geoUnicastHeader(
p_destinationShortPosVec,
p_seqNumber
),
payload := ?
}
/**
* @desc Receive template for GeoNetworking Unicast Packet
* @param p_destinationShortPosVec Short position vector of destination
* @param p_seqNumber Sequence number of GeoUnicast packet
* @param p_srcLongPosVec Long position vector of source
*/
template (present) GnNonSecuredPacket mw_geoNwUnicastPacketWithSourcePv(
in template (present) ShortPosVector p_destinationShortPosVec,
in template (present) UInt16 p_seqNumber,
in template (present) LongPosVector p_srcLongPosVec
) modifies mw_geoNwUnicastPacket := {
extendedHeader := mw_geoUnicastHeaderWithSourcePv(
p_destinationShortPosVec,
p_seqNumber,
p_srcLongPosVec
)
}
/**
* @desc Receive template for GeoNetworking Unicast Packet
* @param p_destinationShortPosVec Short position vector of destination
* @param p_seqNumber Sequence number of GeoUnicast packet
* @param p_nextHeader Id of next header
*/
template (present) GnNonSecuredPacket mw_geoNwUnicastPacketWithNextHeader(
in template (present) ShortPosVector p_destinationShortPosVec,
in template (present) UInt16 p_seqNumber,
in template (present) NextHeader p_nextHeader
) modifies mw_geoNwUnicastPacket := {
commonHeader := {
nextHeader := p_nextHeader
}
}
} // end group geoNwPacketUnicastTemplates
group geoNwPacketAnycastTemplates {
/**
* @desc Send template for GeoNetworking Anycast Packet
* @param p_sourceLongPosVec Long position vector of source
* @param p_seqNumber Sequence number of GeoAnycast packet
* @param p_anycastArea Destination GeoArea
tepelmann
committed
* @param p_hopLimit Maximum number of hops (Default: c_defaultHopLimit)
* @param p_trafficClass Traffic Class
*/
template (value) GnNonSecuredPacket m_geoNwAnycastPacket(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) UInt16 p_seqNumber,
tepelmann
committed
in template (value) GeoAnycastArea p_anycastArea,
in template (value) UInt8 p_hopLimit := c_defaultHopLimit,
in template (value) TrafficClass p_trafficClass := m_trafficClass
commonHeader := valueof(m_commonHeader(
m_geoAnycastHeaderType(valueof(p_anycastArea.geoAnycastSubType)),
tepelmann
committed
p_hopLimit
)),
extendedHeader := valueof(m_geoAnycastHeader(
p_sourceLongPosVec,
p_seqNumber,
p_anycastArea
payload := valueof(char2oct("DEFAULT_PAYLOAD"))
}
/**
* @desc Receive template for GeoNetworking Anycast Packet
* @param p_seqNumber Sequence number of GeoAnycast packet
*/
template (present) GnNonSecuredPacket mw_geoNwAnycastPacket(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) UInt16 p_seqNumber
) := {
commonHeader := mw_commonHeader(
PX_GN_UPPER_LAYER,
mw_geoAnycastHeaderType
),
extendedHeader := mw_geoAnycastHeader(
p_sourceLongPosVec,
p_seqNumber
),
payload := ?
}
/**
* @desc Receive template for GeoNetworking Anycast Packet
* @param p_seqNumber Sequence number of GeoAnycast packet
* @param p_anycastArea Destination GeoArea
*/
template (present) GnNonSecuredPacket mw_geoNwAnycastPacketWithArea(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) UInt16 p_seqNumber,
in template (present) GeoAnycastArea p_anycastArea
) := {
commonHeader := mw_commonHeader(
PX_GN_UPPER_LAYER,
mw_geoAnycastHeaderTypeWithSubType(p_anycastArea.geoAnycastSubType)
),
extendedHeader := mw_geoAnycastHeaderWithArea(
p_sourceLongPosVec,
p_seqNumber,
p_anycastArea
),
payload := ?
}
tepelmann
committed
/**
* @desc Receive template for GeoNetworking Anycast Packet
tepelmann
committed
* @param p_seqNumber Sequence number of GeoAnycast packet
* @param p_anycastArea Destination GeoArea
* @param p_maxHopLimit Maximum number of hops (Default := ?)
*/
template (present) GnNonSecuredPacket mw_geoNwAnycastPacketWithAreaAndHl(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) UInt16 p_seqNumber,
in template (present) GeoAnycastArea p_anycastArea,
in template (present) UInt8 p_maxHopLimit := ?
) modifies mw_geoNwAnycastPacketWithArea := {
commonHeader := mw_commonHeaderWithHopLimit(
PX_GN_UPPER_LAYER,
mw_geoAnycastHeaderTypeWithSubType(p_anycastArea.geoAnycastSubType),
p_maxHopLimit
)
}
/**
* @desc Receive template for GeoNetworking Anycast Packet
* @param p_seqNumber Sequence number of GeoAnycast packet
* @param p_anycastArea Destination GeoArea
* @param p_nextHeader Id of next header
*/
template (present) GnNonSecuredPacket mw_geoNwAnycastPacketWithAreaWithNextHeader(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) UInt16 p_seqNumber,
in template (present) GeoAnycastArea p_anycastArea,
in template (present) NextHeader p_nextHeader
) modifies mw_geoNwAnycastPacketWithArea := {
commonHeader := {
nextHeader := p_nextHeader
}
}
} // end group geoNwPacketAnycastTemplates
group geoNwPacketBroadcastTemplates {
/**
* @desc Send template for GeoNetworking Broadcast Packet
* @param p_sourceLongPosVec Long position vector of source
* @param p_seqNumber Sequence number of GeoBroadcast packet
* @param p_broadcastArea Destination GeoArea
* @param p_hopLimit Maximum number of hops (Default: c_defaultHopLimit)
* @param p_trafficClass Traffic Class
*/
template (value) GnNonSecuredPacket m_geoNwBroadcastPacket(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) UInt16 p_seqNumber,
tepelmann
committed
in template (value) GeoBroadcastArea p_broadcastArea,
in template (value) UInt8 p_hopLimit := c_defaultHopLimit,
in template (value) TrafficClass p_trafficClass := m_trafficClass
commonHeader := valueof(m_commonHeader(
m_geoBroadcastHeaderType(valueof(p_broadcastArea.geoBroadcastSubType)),
tepelmann
committed
p_hopLimit
)),
extendedHeader := valueof(m_geoBroadcastHeader(
p_sourceLongPosVec,
p_seqNumber,
p_broadcastArea
payload := valueof(char2oct("DEFAULT_PAYLOAD"))
}
/**
* @desc Receive template for GeoNetworking Broadcast Packet
* @param p_seqNumber Sequence number of GeoBroadcast packet
*/
template (present) GnNonSecuredPacket mw_geoNwBroadcastPacket(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) UInt16 p_seqNumber
) := {
commonHeader := mw_commonHeader(
PX_GN_UPPER_LAYER,
mw_geoBroadcastHeaderType
),
extendedHeader := mw_geoBroadcastHeader(
p_sourceLongPosVec,
p_seqNumber
),
payload := ?
}
/**
* @desc Receive template for GeoNetworking Broadcast Packet
* @param p_seqNumber Sequence number of GeoBroadcast packet
* @param p_nextHeader Id of next header
*/
template (present) GnNonSecuredPacket mw_geoNwBroadcastPacketWithNextHeader(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) UInt16 p_seqNumber,
in template (present) NextHeader p_nextHeader
) modifies mw_geoNwBroadcastPacket := {
commonHeader := mw_commonHeader(
p_nextHeader,
mw_geoBroadcastHeaderType
)
}
/**
* @desc Receive template for GeoNetworking Broadcast Packet
* @param p_sourceLongPosVec Long position vector of source
* @param p_seqNumber Sequence number of GeoBroadcast packet
* @param p_nextHeader Id of next header
* @param p_payload payload
*/
template (present) GnNonSecuredPacket mw_geoNwBroadcastPacketWithNextHeaderAndPayload(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) UInt16 p_seqNumber,
in template (present) NextHeader p_nextHeader,
in template (present) GnRawPayload p_payload
) modifies mw_geoNwBroadcastPacketWithNextHeader := {
payload := p_payload
}
/**
* @desc Receive template for GeoNetworking Broadcast Packet