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
}
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
group utPrimitives {
template UtGNEvent m_generateGeoUnicastMessage(GN_Address p_destinationGnAddr) := {
geoUnicast := {
gnAddress := p_destinationGnAddr,
lifetime := omit,
payload := omit
}
}
template UtGNEvent m_generateGeoUnicastMessageWithLifetime(
GN_Address p_destinationGnAddr,
integer p_lifetime
) modifies m_generateGeoUnicastMessage := {
geoUnicast := {
lifetime := p_lifetime
}
}
template UtGNEvent m_generateGeoUnicastMessageWithPayload(
GN_Address p_destinationGnAddr,
Payload p_payload
) modifies m_generateGeoUnicastMessage := {
geoUnicast := {
payload := p_payload
}
}
template UtGNEvent m_generateGeoBroadcastMessage(
charstring p_area
) := {
geoBroadcast := {
area := p_area,
payload := omit
}
}
template UtGNEvent m_generateGeoBroadcastMessageWithPayload(
charstring p_area,
Payload p_payload
) modifies m_generateGeoBroadcastMessage := {
geoBroadcast := {
payload := p_payload
}
}
template UtGNEvent m_generateGeoAnycastMessage(
charstring p_area
) := {
geoAnycast := {
area := p_area,
payload := omit
}
}
template UtGNEvent m_generateGeoAnycastMessageWithPayload(
charstring p_area,
Payload p_payload
) modifies m_generateGeoAnycastMessage := {
geoAnycast := {
payload := p_payload
}
}
template UtGNEvent m_generateSHBMessage := {
shb := {
payload := omit
}
}
template UtGNEvent m_generateSHBMessageWithPayload(
Payload p_payload
) modifies m_generateSHBMessage := {
shb := {
payload := p_payload
}
}
template UtGNEvent m_generateTSBMessage := {
tsb := {
payload := omit
}
}
} // end utPrimitives
/**
* @desc Testsystem will start beaconing for the given neighbor
* @param p_beaconHeader The neighbor information
template (value) AcGNEvent m_startBeaconing(template (value) BeaconHeader p_beaconHeader) := {
startBeaconing := {
beaconHeader := p_beaconHeader
}
}
/**
* @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 AcGNEvent m_startPassBeaconing(template (value) BeaconHeader p_beaconHeader) := {
startPassBeaconing := {
beaconHeader := p_beaconHeader
}
}
/**
* @desc Testsystem will stop passing beacon information to the TTCN-3
*/
tepelmann
committed
template AcGNEvent m_stopPassBeaconing := {
stopPassBeaconing := {
}
}
} // end taPrimitives
} // 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,
nextHeader := p_nextHeader,
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 := ?
}
template LongPosVector mw_longPosVectorAny(
in template (present) GN_Address p_gnAddress
) := {
gnAddr := p_gnAddress,
timestamp := ?,
longitude := ?,
speed := ?,
heading := ?,
altitude := ?,
timeAccuracy := ?,
posAccuracy := ?,
speedAccuracy := ?,
headingAccuracy := ?,
altitudeAccuracy := ?
}
} // end geoNwCommonHeaderTemplates
group geoUnicastHeaderTemplates {
template (value) Header m_geoUnicastHeader(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) ShortPosVector p_destinationLongPosVec,
in template (value) LongPosVector p_senderLongPosVec,
in template (value) StationTypeIdentifier p_stationType,
in template (value) UInt16 p_seqNumber
) := {
geoUnicastHeader := {
commonHeader := m_commonHeader(
m_geoUnicastHeaderType,
m_trafficClass,
c_defaultHopLimit,
p_senderLongPosVec,
p_stationType
),
seqNumber := p_seqNumber,
lifetime := m_defaultLifetime,
reserved := c_uInt8Zero,
srcPosVector := p_sourceLongPosVec,
dstPosVector := p_destinationLongPosVec
}
}
tepelmann
committed
template (value) Header m_geoUnicastHeaderWithHopLimit(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) ShortPosVector p_destinationLongPosVec,
in template (value) LongPosVector p_senderLongPosVec,
in template (value) StationTypeIdentifier p_stationType,
in template (value) UInt16 p_seqNumber,
in template (value) UInt8 p_hopLimit
) modifies m_geoUnicastHeader := {
tepelmann
committed
geoUnicastHeader := {
commonHeader := {
hopLimit := p_hopLimit
}
}
template Header mw_geoUnicastHeader(
in template (present) LongPosVector p_senderLongPosVec,
in template (present) ShortPosVector p_destinationShortPosVec,
in template (present) StationTypeIdentifier p_stationType,
in template (present) UInt16 p_seqNumber
) := {
geoUnicastHeader := {
commonHeader := mw_commonHeader(
mw_geoUnicastHeaderType,
p_stationType
),
seqNumber := p_seqNumber,
lifetime := ?,
dstPosVector := p_destinationShortPosVec
template Header mw_geoUnicastHeaderWithSourcePv(
in template (present) LongPosVector p_senderLongPosVec,
in template (present) ShortPosVector p_destinationShortPosVec,
in template (present) StationTypeIdentifier p_stationType,
in template (present) UInt16 p_seqNumber,
in template (present) LongPosVector p_srcLongPosVec
) modifies mw_geoUnicastHeader := {
geoUnicastHeader := {
srcPosVector := p_srcLongPosVec
}
}
template Header mw_geoUnicastHeaderWithHopLimit(
in template (present) LongPosVector p_senderLongPosVec,
in template (present) ShortPosVector p_destinationShortPosVec,
in template (present) StationTypeIdentifier p_stationType,
in template (present) UInt16 p_seqNumber,
in template (present) UInt8 p_hopLimit
) modifies mw_geoUnicastHeader := {
geoUnicastHeader := {
//TODO use a better name
template Header mw_geoUnicastHeaderWithAreaWithChWithLt(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) ShortPosVector p_destinationLongPosVec,
in template (present) UInt16 p_seqNumber,
in template (present) CommonHeader p_commonHeader,
in template (present) Lifetime p_lifetime
) := {
geoUnicastHeader := {
commonHeader := p_commonHeader,
seqNumber := p_seqNumber,
lifetime := p_lifetime,
reserved := c_uInt8Zero,
srcPosVector := p_sourceLongPosVec,
dstPosVector := p_destinationLongPosVec
}
}
template (value) HeaderTST m_geoUnicastHeaderType := {
geoUnicastHdr := {
headerType := e_geoUnicast,
}
}
template HeaderTST mw_geoUnicastHeaderType := {
geoUnicastHdr := {
headerType := e_geoUnicast,
}
}
} // end geoUnicastHeaderTemplates
group geoBroadcastHeaderTemplates {
template (value) Header m_geoBroadcastHeader(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) LongPosVector p_senderLongPosVec,
in template (value) StationTypeIdentifier p_stationType,
in template (value) UInt16 p_seqNumber,
in template (value) GeoBroadcastArea p_broadcastArea
) := {
geoBroadcastHeader := {
commonHeader := m_commonHeader(
e_btp,
m_geoBroadcastHeaderType(p_broadcastArea.geoBroadcastSubType),
m_trafficClass,
c_defaultHopLimit,
p_senderLongPosVec,
p_stationType
),
seqNumber := p_seqNumber,
lifetime := m_defaultLifetime,
reserved := c_uInt8Zero,
srcPosVector := p_sourceLongPosVec,
geoAreaPosLatitude := p_broadcastArea.geoBroadcastArea.geoAreaPosLatitude,
geoAreaPosLongitude := p_broadcastArea.geoBroadcastArea.geoAreaPosLongitude,
distanceA := p_broadcastArea.geoBroadcastArea.distanceA,
distanceB := p_broadcastArea.geoBroadcastArea.distanceB,
angle := p_broadcastArea.geoBroadcastArea.angle,
reserved2 := c_uInt24Zero
}
}
template (value) Header m_geoBroadcastHeaderWithHopLimit(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) LongPosVector p_senderLongPosVec,
in template (value) StationTypeIdentifier p_stationType,
in template (value) UInt16 p_seqNumber,
in template (value) GeoBroadcastArea p_broadcastArea,
in template (value) UInt8 p_hopLimit
) modifies m_geoBroadcastHeader := {
geoBroadcastHeader := {
commonHeader := m_commonHeader(
e_btp,
m_geoBroadcastHeaderType(p_broadcastArea.geoBroadcastSubType),
m_trafficClass,
p_hopLimit,
p_senderLongPosVec,
p_stationType
)
}
}
template Header mw_geoBroadcastHeader(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) LongPosVector p_senderLongPosVec,
in template (present) StationTypeIdentifier p_stationType,
in template (present) UInt16 p_seqNumber
) := {
geoBroadcastHeader := {
commonHeader := mw_commonHeader(
p_senderLongPosVec,
?,
mw_geoBroadcastHeaderType,
p_stationType
),
seqNumber := p_seqNumber,
lifetime := ?,
reserved := c_uInt8Zero,
geoAreaPosLatitude := ?,
geoAreaPosLongitude := ?,
distanceA := ?,
distanceB := ?,
angle := ?,
reserved2 := c_uInt24Zero
}
}
template Header mw_geoBroadcastHeaderWithArea (
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) LongPosVector p_senderLongPosVec,
in template (present) StationTypeIdentifier p_stationType,
in template (present) UInt16 p_seqNumber,
in template (present) GeoBroadcastArea p_broadcastArea
) modifies mw_geoBroadcastHeader := {
geoBroadcastHeader := {
commonHeader := mw_commonHeader(
p_senderLongPosVec,
mw_geoBroadcastHeaderTypeWithSubType(p_broadcastArea.geoBroadcastSubType),
geoAreaPosLatitude := p_broadcastArea.geoBroadcastArea.geoAreaPosLatitude,
geoAreaPosLongitude := p_broadcastArea.geoBroadcastArea.geoAreaPosLongitude,
distanceA := p_broadcastArea.geoBroadcastArea.distanceA,
distanceB := p_broadcastArea.geoBroadcastArea.distanceB,
angle := p_broadcastArea.geoBroadcastArea.angle
template Header mw_geoBroadcastHeaderWithAreaWithHopLimit(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) LongPosVector p_senderLongPosVec,
in template (present) StationTypeIdentifier p_stationType,
in template (present) UInt16 p_seqNumber,
in template (present) GeoBroadcastArea p_broadcastArea,
in template (present) UInt8 p_hopLimit
) modifies mw_geoBroadcastHeaderWithArea := {
geoBroadcastHeader := {
commonHeader := mw_commonHeaderWithHopLimit(
p_senderLongPosVec,
?,
mw_geoBroadcastHeaderType,
p_stationType,
p_hopLimit
)
}
}
//TODO use a better name
template Header mw_geoBroadcastHeaderWithAreaWithChWithLt(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) UInt16 p_seqNumber,
in template (present) GeoBroadcastArea p_broadcastArea,
in template (present) CommonHeader p_commonHeader,
in template (present) Lifetime p_lifetime
) := {
geoBroadcastHeader := {
commonHeader := p_commonHeader,
seqNumber := p_seqNumber,
lifetime := p_lifetime,
reserved := c_uInt8Zero,
srcPosVector := p_sourceLongPosVec,
geoAreaPosLatitude := p_broadcastArea.geoBroadcastArea.geoAreaPosLatitude,
geoAreaPosLongitude := p_broadcastArea.geoBroadcastArea.geoAreaPosLongitude,
distanceA := p_broadcastArea.geoBroadcastArea.distanceA,
distanceB := p_broadcastArea.geoBroadcastArea.distanceB,
angle := p_broadcastArea.geoBroadcastArea.angle,
reserved2 := c_uInt24Zero
}
}
template (value) HeaderTST m_geoBroadcastHeaderType(
in template (value) HeaderSubTypeGeoBroadcast p_headerSubType
) := {
geoBroadcastHdr := {
headerType := e_geoBroadcast,
headerSubType := p_headerSubType
}
}
template HeaderTST mw_geoBroadcastHeaderType := {
geoBroadcastHdr := {
headerType := e_geoBroadcast,
headerSubType := ?
}
}
template HeaderTST mw_geoBroadcastHeaderTypeWithSubType(
in template (present) HeaderSubTypeGeoBroadcast p_headerSubType
) modifies mw_geoBroadcastHeaderType := {
geoBroadcastHdr := {
headerSubType := p_headerSubType
}
}
template (value) Lifetime m_defaultLifetime := {
template (present) Lifetime mw_lifetime0 := {
multiplier := 0,
ltBase := ?
}
} // end geoBroadcastHeaderTemplates
group geoAnycastHeaderTemplates {
template (value) Header m_geoAnycastHeader(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) LongPosVector p_senderLongPosVec,
in template (value) StationTypeIdentifier p_stationType,
in template (value) UInt16 p_seqNumber,
in template (value) GeoAnycastArea p_anycastArea
) := {
geoAnycastHeader := {
commonHeader := m_commonHeader(
e_btp,
m_geoAnycastHeaderType(p_anycastArea.geoAnycastSubType),
m_trafficClass,
c_defaultHopLimit,
p_senderLongPosVec,
p_stationType
),
seqNumber := p_seqNumber,
lifetime := m_defaultLifetime,
reserved := c_uInt8Zero,
srcPosVector := p_sourceLongPosVec,
geoAreaPosLatitude := p_anycastArea.geoAnycastArea.geoAreaPosLatitude,
geoAreaPosLongitude := p_anycastArea.geoAnycastArea.geoAreaPosLongitude,
distanceA := p_anycastArea.geoAnycastArea.distanceA,
distanceB := p_anycastArea.geoAnycastArea.distanceB,
angle := p_anycastArea.geoAnycastArea.angle,
reserved2 := c_uInt24Zero
}
}
template (value) Header m_geoAnycastHeaderWithHopLimit(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) LongPosVector p_senderLongPosVec,
in template (value) StationTypeIdentifier p_stationType,
in template (value) UInt16 p_seqNumber,
in template (value) GeoAnycastArea p_anycastArea,
in template (value) UInt8 p_hopLimit
) modifies m_geoAnycastHeader := {
geoAnycastHeader := {
commonHeader := m_commonHeader(
e_btp,
m_geoAnycastHeaderType(p_anycastArea.geoAnycastSubType),
m_trafficClass,
p_hopLimit,
p_senderLongPosVec,
p_stationType
)
}
}
template Header mw_geoAnycastHeader(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) LongPosVector p_senderLongPosVec,
in template (present) StationTypeIdentifier p_stationType,
in template (present) UInt16 p_seqNumber
) := {
geoAnycastHeader := {
commonHeader := mw_commonHeader(
p_senderLongPosVec,
),
seqNumber := p_seqNumber,
lifetime := ?,
reserved := c_uInt8Zero,
srcPosVector := p_sourceLongPosVec,
geoAreaPosLatitude := ?,
geoAreaPosLongitude := ?,
distanceA := ?,
distanceB := ?,
angle := ?,
reserved2 := c_uInt24Zero
}
}
template Header mw_geoAnycastHeaderWithArea (
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) LongPosVector p_senderLongPosVec,
in template (present) StationTypeIdentifier p_stationType,
in template (present) UInt16 p_seqNumber,
in template (present) GeoAnycastArea p_anycastArea
) modifies mw_geoAnycastHeader := {
geoAnycastHeader := {
commonHeader := mw_commonHeader(
p_senderLongPosVec,
?,
mw_geoAnycastHeaderTypeWithSubType(p_anycastArea.geoAnycastSubType),
),
geoAreaPosLatitude := p_anycastArea.geoAnycastArea.geoAreaPosLatitude,
geoAreaPosLongitude := p_anycastArea.geoAnycastArea.geoAreaPosLongitude,
distanceA := p_anycastArea.geoAnycastArea.distanceA,
distanceB := p_anycastArea.geoAnycastArea.distanceB,
angle := p_anycastArea.geoAnycastArea.angle
}
}
template Header mw_geoAnycastHeaderWithAreaWithHopLimit(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) LongPosVector p_senderLongPosVec,
in template (present) StationTypeIdentifier p_stationType,
in template (present) UInt16 p_seqNumber,
in template (present) GeoAnycastArea p_anycastArea,
in template (present) UInt8 p_hopLimit
) modifies mw_geoAnycastHeaderWithArea := {
geoAnycastHeader := {
commonHeader := mw_commonHeaderWithHopLimit(
p_senderLongPosVec,
?,
mw_geoAnycastHeaderType,
p_stationType,
p_hopLimit
)
}
}
//TODO use a better name
template Header mw_geoAnycastHeaderWithAreaWithChWithLt(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) UInt16 p_seqNumber,
in template (present) GeoAnycastArea p_anycastArea,
in template (present) CommonHeader p_commonHeader,
in template (present) Lifetime p_lifetime
) := {
geoAnycastHeader := {
commonHeader := p_commonHeader,
seqNumber := p_seqNumber,
lifetime := p_lifetime,
reserved := c_uInt8Zero,
srcPosVector := p_sourceLongPosVec,
geoAreaPosLatitude := p_anycastArea.geoAnycastArea.geoAreaPosLatitude,
geoAreaPosLongitude := p_anycastArea.geoAnycastArea.geoAreaPosLongitude,
distanceA := p_anycastArea.geoAnycastArea.distanceA,
distanceB := p_anycastArea.geoAnycastArea.distanceB,
angle := p_anycastArea.geoAnycastArea.angle,
reserved2 := c_uInt24Zero
}
}
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
template (value) HeaderTST m_geoAnycastHeaderType(
in template (value) HeaderSubTypeGeoAnycast p_headerSubType
) := {
geoAnycastHdr := {
headerType := e_geoAnycast,
headerSubType := p_headerSubType
}
}
template HeaderTST mw_geoAnycastHeaderType := {
geoAnycastHdr := {
headerType := e_geoAnycast,
headerSubType := ?
}
}
template HeaderTST mw_geoAnycastHeaderTypeWithSubType(
in template (present) HeaderSubTypeGeoAnycast p_headerSubType
) modifies mw_geoAnycastHeaderType := {
geoAnycastHdr := {
headerSubType := p_headerSubType
}
}
} // end geoAnycastHeaderTemplates
group lsRequestHeaderTemplates {
template (value) Header m_lsRequestHeader(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) LongPosVector p_senderLongPosVec,
in template (value) StationTypeIdentifier p_stationType,
in template (value) UInt16 p_seqNumber,
in template (value) GN_Address p_gnAddress
) := {
lsRequestHeader := {
commonHeader := m_commonHeader(
e_btp,
m_lsRequestHeaderType,
m_trafficClass,
c_defaultHopLimit,
p_senderLongPosVec,
p_stationType
),
seqNumber := p_seqNumber,
lifetime := m_defaultLifetime,
reserved := c_uInt8Zero,
srcPosVector := p_sourceLongPosVec,
gnAddress := p_gnAddress
}
}
template Header mw_lsRequestHeader(
in template (present) StationTypeIdentifier p_stationType,
in template (present) UInt16 p_seqNumber,
in template (present) GN_Address p_gnAddress
) := {
lsRequestHeader := {
commonHeader := mw_commonHeader(
e_any,
mw_lsRequestHeaderType,
p_stationType
),
seqNumber := p_seqNumber,
lifetime := ?,
reserved := ?,
srcPosVector := ?,
gnAddress := p_gnAddress
}
}
tepelmann
committed
template Header mw_lsRequestHeader_withHopLimit(
in template (present) StationTypeIdentifier p_stationType,
in template (present) UInt16 p_seqNumber,
in template (present) GN_Address p_gnAddress,
in template (present) UInt8 p_hopLimit
tepelmann
committed
) modifies mw_lsRequestHeader := {
lsRequestHeader := {
tepelmann
committed
}
}
template (value) HeaderTST m_lsRequestHeaderType := {
lsHdr := {
headerType := e_locationService,
headerSubType := e_lsRequest
}
}
template HeaderTST mw_lsRequestHeaderType := {
lsHdr := {
headerType := e_locationService,
headerSubType := e_lsRequest
}
}
} // end lsRequestHeaderTemplates
group lsReplyHeaderTemplates {
template (value) Header m_lsReplyHeader(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) LongPosVector p_destinationLongPosVec,
in template (value) LongPosVector p_senderLongPosVec,
in template (value) StationTypeIdentifier p_stationType,
in template (value) UInt16 p_seqNumber
) := {
lsReplyHeader := {
commonHeader := m_commonHeader(
e_btp,
m_lsRequestHeaderType,
m_trafficClass,
c_defaultHopLimit,
p_senderLongPosVec,
p_stationType
),
seqNumber := p_seqNumber,
lifetime := m_defaultLifetime,
reserved := c_uInt8Zero,
srcPosVector := p_sourceLongPosVec,
dstPosVector := p_destinationLongPosVec
}
}
template Header mw_lsReplyHeaderAny(
in template (present) StationTypeIdentifier p_stationType,
in template (present) UInt16 p_seqNumber
) := {
lsReplyHeader := {
commonHeader := mw_commonHeader(
?,
e_any,
m_lsReplyHeaderType,
p_stationType
),
seqNumber := p_seqNumber,
lifetime := ?,
reserved := ?,
srcPosVector := ?,
dstPosVector := ?
}
}
template Header mw_lsReplyHeader(
in template (present) StationTypeIdentifier p_stationType,
in template (present) UInt16 p_seqNumber,
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) LongPosVector p_destinationLongPosVec)
modifies mw_lsReplyHeaderAny := {
lsReplyHeader := {
srcPosVector := p_sourceLongPosVec,
dstPosVector := p_destinationLongPosVec
}
template (value) HeaderTST m_lsReplyHeaderType := {
lsHdr := {
headerType := e_locationService,
headerSubType := e_lsReply
}
}
} // end lsRequestHeaderTemplates
group beaconHeaderTemplates {
template (value) Header m_beaconHeader(
in template (value) LongPosVector p_senderLongPosVec
) := {
beaconHeader := {
commonHeader := m_commonHeader(
e_btp,
m_beaconHeaderType,
m_trafficClass,
c_defaultHopLimit,
p_senderLongPosVec,
)
}
}
template Header mw_beaconHeader(
in template (present) StationTypeIdentifier p_stationType,
in template (present) TrafficClass p_trafficClass,
in template (present) UInt8 p_hopLimit,
in template (present) LongPosVector p_senderLongPosVec
p_stationType,
p_trafficClass,
p_hopLimit,
p_senderLongPosVec
)
}
}
template (value) HeaderTST m_beaconHeaderType := {
beaconHdr := {
headerType := e_beacon,
}
}
template HeaderTST mw_beaconHeaderType := {
beaconHdr := {
headerType := e_beacon,