Newer
Older
* @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) Payload p_payload
) modifies mw_geoNwBroadcastPacketWithNextHeader := {
payload := p_payload
}
/**
* @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_broadcastArea Destination GeoArea
*/
template (present) GnNonSecuredPacket mw_geoNwBroadcastPacketWithArea(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) UInt16 p_seqNumber,
in template (present) GeoBroadcastArea p_broadcastArea
) modifies mw_geoNwBroadcastPacket := {
commonHeader := mw_commonHeader(
PX_GN_UPPER_LAYER,
mw_geoBroadcastHeaderTypeWithSubType(p_broadcastArea.geoBroadcastSubType)
),
extendedHeader := mw_geoBroadcastHeaderWithArea(
p_sourceLongPosVec,
p_seqNumber,
p_broadcastArea
)
}
tepelmann
committed
/**
* @desc Receive template for GeoNetworking Broadcast Packet
* @param p_sourceLongPosVec Long position vector of source
tepelmann
committed
* @param p_seqNumber Sequence number of GeoBroadcast packet
* @param p_broadcastArea Destination GeoArea
* @param p_maxHopLimit Maximum number of hops (Default := ?)
*/
template (present) GnNonSecuredPacket mw_geoNwBroadcastPacketWithAreaAndHl(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) UInt16 p_seqNumber,
in template (present) GeoBroadcastArea p_broadcastArea,
in template (present) UInt8 p_maxHopLimit := ?
) modifies mw_geoNwBroadcastPacketWithArea := {
commonHeader := mw_commonHeaderWithHopLimit(
PX_GN_UPPER_LAYER,
mw_geoBroadcastHeaderTypeWithSubType(p_broadcastArea.geoBroadcastSubType),
p_maxHopLimit
)
}
/**
* @desc Receive template for GeoNetworking Broadcast Packet
* @param p_sourceLongPosVec Long position vector of source
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
* @param p_seqNumber Sequence number of GeoBroadcast packet
* @param p_broadcastArea Destination GeoArea
*/
template (present) GnNonSecuredPacket mw_geoNwBroadcastPacketWithAreaWithNextHeader(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) UInt16 p_seqNumber,
in template (present) GeoBroadcastArea p_broadcastArea,
in template (present) NextHeader p_nextHeader
) modifies mw_geoNwBroadcastPacketWithArea := {
commonHeader := {
nextHeader := p_nextHeader
}
}
} // end group geoNwPacketBroadcastTemplates
group geoNwPacketLsTemplates {
/**
* @desc Send template for GeoNetworking LS Request Packet
* @param p_sourceLongPosVec Long position vector of source
* @param p_seqNumber Sequence number of LS Request packet
* @param p_gnAddress Searched GN_Address
*/
template (value) GnNonSecuredPacket m_geoNwLsRequestPacket(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) UInt16 p_seqNumber,
in template (value) GN_Address p_gnAddress
) := {
commonHeader := m_commonHeader(
m_lsRequestHeaderType,
m_trafficClass,
c_defaultHopLimit
),
extendedHeader := m_lsRequestHeader(
p_sourceLongPosVec, p_seqNumber, p_gnAddress
),
payload := omit
}
/**
* @desc Receive template for GeoNetworking LS Request Packet
* @param p_seqNumber Sequence number of LS Request packet
* @param p_mid Searched GN_Address MID
*/
template (present) GnNonSecuredPacket mw_geoNwLsRequestPacket(
in template (present) UInt16 p_seqNumber,
in template (present) GN_Address.mid p_mid
) := {
commonHeader := mw_commonHeader(
m_lsRequestHeaderType
),
extendedHeader := mw_lsRequestHeader(
p_seqNumber,
p_mid
),
payload := {
decodedPayload := omit,
rawPayload := ''O
}
}
/**
* @desc Send template for GeoNetworking LS Reply Packet
* @param p_sourceLongPosVec Long position vector of source
* @param p_destinationLongPosVec Long position vector of destination
* @param p_seqNumber Sequence number of LS Reply packet
*/
template (value) GnNonSecuredPacket m_geoNwLsReplyPacket(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) ShortPosVector p_destinationLongPosVec,
in template (value) UInt16 p_seqNumber
) := {
commonHeader := m_commonHeader(
m_lsReplyHeaderType,
m_trafficClass,
c_defaultHopLimit
),
extendedHeader := m_lsReplyHeader(
p_sourceLongPosVec, p_destinationLongPosVec, p_seqNumber
),
payload := omit
}
/**
* @desc Receive template for GeoNetworking LS Reply Packet
* @param p_sourceLongPosVec Long position vector of source
* @param p_destinationLongPosVec Short position vector of destination
*/
template (present) GnNonSecuredPacket mw_geoNwLsReplyPacket(
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) ShortPosVector p_destinationLongPosVec
) := {
commonHeader := mw_commonHeader(
m_lsReplyHeaderType
),
extendedHeader := mw_lsReplyHeader(
p_sourceLongPosVec, p_destinationLongPosVec
),
payload := {
decodedPayload := omit,
rawPayload := ''O
}
}
} // end group geoNwPacketLsTemplates
group geoNwPacketBeaconTemplates {
/**
* @desc Send template for GeoNetworking Beacon Packet
* @param p_sourceLongPosVec Long position vector of source
*/
template (value) GnNonSecuredPacket m_geoNwBeaconPacket(
in template (value) LongPosVector p_sourceLongPosVec
) := {
commonHeader := m_commonHeader(
),
extendedHeader := m_beaconHeader(
p_sourceLongPosVec
),
payload := omit
}
/**
* @desc Receive template for GeoNetworking Beacon Packet
* @param p_sourceLongPosVec Long position vector of source (Default: ?)
* @param p_nextHeader Next header (Default: e_any)
*/
template (present) GnNonSecuredPacket mw_geoNwBeaconPacket(
in template (present) LongPosVector p_sourceLongPosVec := ?,
in template (present) NextHeader p_nextHeader := e_any
commonHeader := mw_commonHeader_noPayload(
p_nextHeader,
m_beaconHeaderType
),
extendedHeader := mw_beaconHeader(p_sourceLongPosVec),
payload := (
{
decodedPayload := omit,
rawPayload := ''O
},
{ // Ethernet testing requires minimum packet size of 60 bytes
decodedPayload := *,
rawPayload := '00000000000000000000'O
}
)
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
}
} // end group geoNwPacketBeaconTemplates
group geoNwPacketShbTemplates {
/**
* @desc Send template for GeoNetworking SHB Packet
* @param p_sourceLongPosVec Long position vector of source
*/
template (value) GnNonSecuredPacket m_geoNwShbPacket(
in template (value) LongPosVector p_sourceLongPosVec
) := {
commonHeader := m_commonHeader(
PX_GN_UPPER_LAYER,
m_shbHeaderType,
m_trafficClass,
c_defaultHopLimit
),
extendedHeader := m_shbHeader(
p_sourceLongPosVec
),
payload := f_adaptPayload_m(char2oct("DEFAULT_PAYLOAD"))
}
/**
* @desc Receive template for GeoNetworking SHB Packet
* @param p_sourceLongPosVec Long position vector of source (Default: ?)
* @param p_hopLimit Maximum number of hops (Default: ?)
*/
template (present) GnNonSecuredPacket mw_geoNwShbPacket(
in template (present) LongPosVector p_sourceLongPosVec := ?,
in template (present) UInt8 p_hopLimit := ?
commonHeader := mw_commonHeaderWithHopLimit(
m_shbHeaderType,
p_hopLimit
),
extendedHeader := mw_shbHeader(p_sourceLongPosVec),
payload := ?
}
} // end group geoNwPacketShbTemplates
group geoNwPacketTsbTemplates {
/**
* @desc Send template for GeoNetworking TSB Packet
* @param p_seqNumber Sequence number of TSB packet
* @param p_sourceLongPosVec Long position vector of source
* @param p_hopLimit The maximum number of hops (Default: c_defaultHopLimit)
*/
template (value) GnNonSecuredPacket m_geoNwTsbPacket(
in template (value) UInt16 p_seqNumber,
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) UInt8 p_hopLimit := c_defaultHopLimit,
in template (value) TrafficClass p_trafficClass := m_trafficClass
) := {
commonHeader := m_commonHeader(
PX_GN_UPPER_LAYER,
m_tsbHeaderType,
p_hopLimit
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
),
extendedHeader := m_tsbHeader(
p_seqNumber,
p_sourceLongPosVec
),
payload := f_adaptPayload_m(char2oct("DEFAULT_PAYLOAD"))
}
/**
* @desc Receive template for GeoNetworking TSB Packet
* @param p_seqNumber Sequence number of TSB packet (Default: ?)
* @param p_sourceLongPosVec Long position vector of source (Default: ?)
*/
template (present) GnNonSecuredPacket mw_geoNwTsbPacket(
in template (present) UInt16 p_seqNumber := ?,
in template (present) LongPosVector p_sourceLongPosVec := ?
) := {
commonHeader := mw_commonHeader(
PX_GN_UPPER_LAYER,
m_tsbHeaderType
),
extendedHeader := mw_tsbHeader(p_seqNumber, p_sourceLongPosVec),
payload := ?
}
tepelmann
committed
/**
* @desc Receive template for GeoNetworking TSB Packet
* @param p_seqNumber Sequence number of TSB packet (Default: ?)
* @param p_sourceLongPosVec Long position vector of source (Default: ?)
* @param p_hopLimit The maximum number of hops (Default: ?)
*/
template (present) GnNonSecuredPacket mw_geoNwTsbPacketWithHl(
in template (present) UInt16 p_seqNumber := ?,
in template (present) LongPosVector p_sourceLongPosVec := ?,
in template (present) UInt8 p_hopLimit := ?
) modifies mw_geoNwTsbPacket := {
commonHeader := mw_commonHeaderWithHopLimit(
PX_GN_UPPER_LAYER,
m_tsbHeaderType,
p_hopLimit
)
}
/**
* @desc Receive template for GeoNetworking TSB Packet
* @param p_seqNumber Sequence number of TSB packet (Default: ?)
* @param p_sourceLongPosVec Long position vector of source (Default: ?)
* @param p_nextHeader Id of next header
*/
template (present) GnNonSecuredPacket mw_geoNwTsbPacketWithNextHeader(
in template (present) UInt16 p_seqNumber := ?,
in template (present) LongPosVector p_sourceLongPosVec := ?,
in template (value) NextHeader p_nextHeader
) modifies mw_geoNwTsbPacket := {
commonHeader := {
nextHeader := p_nextHeader
}
}
} // end group geoNwPacketTsbTemplates
} // end group geoNwPacketTemplates
group geoNwHeadersTemplates {
* @param p_lifeTime Lifetime of GeoNetworking message
* @param p_hopLimit Router Hop limit of GeoNetworking message
*/
template (value) BasicHeader m_basicHeader(
in template (value) Lifetime p_lifeTime := m_defaultLifetime,
in template (value) UInt8 p_hopLimit := c_defaultHopLimit
) := {
reserved := 0,
lifeTime := p_lifeTime,
routerHopLimit := p_hopLimit
}
/**
* @param p_lifeTime Lifetime of GeoNetworking message
* @param p_hopLimit Router Hop limit of GeoNetworking message
*/
template (present) BasicHeader mw_basicHeader(
in template (present) Lifetime p_lifeTime := ?,
in template (present) UInt8 p_hopLimit := ?
) := {
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
nextHeader := ?,
reserved := ?,
lifeTime := p_lifeTime,
routerHopLimit := p_hopLimit
}
/**
* @desc Default send template for Lifetime field
*/
template (value) Lifetime m_defaultLifetime := {
multiplier := c_defaultLifetime,
ltBase := e_100s
}
/**
* @desc Send template for Lifetime field (Base = 1s)
*/
template (value) Lifetime m_lifetimeBase1s(
in template (value) UInt6 p_multiplier
) := {
multiplier := p_multiplier,
ltBase := e_1s
}
/**
* @desc Receive template for lifetime 0
*/
template (present) Lifetime mw_lifetime0 := {
multiplier := 0,
ltBase := ?
}
} //end group geoNwBasicHeaderTemplates
* @param p_nextHeader Id of next header
* @param p_trafficClass Packet's traffic class
* @param p_headerTypeSubType Header's type and sub-type
* @param p_hopLimit Maximum number of hops
* @remark plLength field is set to 0 and has to be computed by codec
template (value) CommonHeader m_commonHeader (
in template (value) HeaderTST p_headerTypeSubType,
) := {
nextHeader := p_nextHeader,
reserved := c_uInt8Zero,
headerTST := p_headerTypeSubType,
trafficClass := p_trafficClass,
plLength := 0, // will be computed by Codec
/**
* @desc Receive template for Common header
* @param p_nextHeader Id of next header
* @param p_headerTypeSubType Header's type and sub-type
template CommonHeader mw_commonHeader (
in template (present) NextHeader p_nextHeader,
in template (present) HeaderTST p_headerTypeSubType
) := {
nextHeader := p_nextHeader,
headerTST := p_headerTypeSubType,
trafficClass := ?,
/**
* @desc Receive template for Common header with no payload
* @param p_nextHeader Id of next header
* @param p_headerTypeSubType Header's type and sub-type
*/
template CommonHeader mw_commonHeader_noPayload (
in template (present) NextHeader p_nextHeader,
in template (present) HeaderTST p_headerTypeSubType
) modifies mw_commonHeader := {
plLength := 0
}
/**
* @desc Receive template for Common header with specific Hop limit
* @param p_headerTypeSubType Header's type and sub-type
template CommonHeader mw_commonHeaderWithHopLimit (
in template (present) HeaderTST p_headerTypeSubType,
) modifies mw_commonHeader := {
/**
* @desc Receive template for Common header with specific Hop limit
* @param p_senderLongPosVec Long position vector of sender
* @param p_nextHeader Id of next header
* @param p_headerTypeSubType Header's type and sub-type
* @param p_hopLimit Maximum number of hops
* @param p_flags Flags in the common header
* @see mw_commonHeaderWithHopLimit
*/
template CommonHeader mw_commonHeaderWithHopLimitAndFlags (
in template (present) NextHeader p_nextHeader,
in template (present) HeaderTST p_headerTypeSubType,
in template (present) UInt8 p_hopLimit,
in template (present) Bit8 p_flags
) modifies mw_commonHeaderWithHopLimit := {
flags := p_flags
}
* @desc Receive template for Common header with specific Traffic Class
* @param p_senderLongPosVec Long position vector of sender
* @param p_headerTypeSubType Header's type and sub-type
* @param p_trafficClass Packet's traffic class
template CommonHeader mw_commonHeaderWithTrafficClass (
in template (present) NextHeader p_nextHeader,
in template (present) HeaderTST p_headerTypeSubType,
in template (present) TrafficClass p_trafficClass
) modifies mw_commonHeader := {
trafficClass := p_trafficClass
}
/**
* @desc Default send template for traffic class
template (value) TrafficClass m_trafficClass ( in SCF p_scf := e_scfEnable, in ChannelOffload p_ChOff := e_choffDisabled ) := {
scf := p_scf,
channelOffload := p_ChOff,
/**
* @desc Receive template for traffic class
template TrafficClass mw_trafficClass ( in template SCF p_scf := ?, in template ChannelOffload p_ChOff := ? ) := {
scf := p_scf,
channelOffload := p_ChOff,
tcId := ?
}
/**
* @desc Receive template for any GN_Address
template GN_Address mw_gnAddressAny := {
typeOfAddress := ?,
stationType := ?,
stationCountryCode := ?,
mid := ?
}
/**
* @desc Receive template for GN_Address
* @param p_stationType Station's type
* @param p_stationCountryCode Station's country code
template GN_Address mw_gnAddress(
in template (present) StationType p_stationType,
in template (present) UInt10 p_stationCountryCode
) := {
typeOfAddress := ?,
stationType := p_stationType,
stationCountryCode := p_stationCountryCode,
mid := ?
}
/**
* @desc Receive template for long position vector with specific GN_Address
* @param p_gnAddress GN_Address to be contained in the long position vector
in template (present) GN_Address p_gnAddress
) := {
gnAddr := p_gnAddress,
timestamp := ?,
latitude := ?,
longitude := ?,
* @desc Receive template for long position vector with strict position check
* @param p_longPosVector The base long position vector
*/
template LongPosVector mw_longPosVectorPosition(
in template (value) LongPosVector p_longPosVector
tepelmann
committed
gnAddr := p_longPosVector.gnAddr,
timestamp := ?,
latitude := p_longPosVector.latitude,
longitude := p_longPosVector.longitude,
/**
* @desc Receive template for long position vector with position check with delta
* @param p_longPosVector The base long position vector
*/
template LongPosVector mw_longPosVectorPosition_withDelta(
in template (value) LongPosVector p_longPosVector
) modifies mw_longPosVectorPosition := {
latitude := f_getDelta32(valueof(p_longPosVector.latitude), PX_POS_DELTA),
longitude := f_getDelta32(valueof(p_longPosVector.longitude), PX_POS_DELTA),
speed := f_getDelta15(valueof(p_longPosVector.speed), PX_POS_DELTA)
* @desc Receive template for short position vector with strict position check
* @param p_shortPosVector The base short position vector
*/
template ShortPosVector mw_shortPosVectorPosition(
in template (value) ShortPosVector p_shortPosVector
) := {
gnAddr := p_shortPosVector.gnAddr,
timestamp := ?,
latitude := p_shortPosVector.latitude,
longitude := p_shortPosVector.longitude
}
/**
* @desc Receive template for short position vector with position check with delta
* @param p_shortPosVector The base short position vector
*/
template ShortPosVector mw_shortPosVectorPosition_withDelta(
in template (value) ShortPosVector p_shortPosVector
) modifies mw_shortPosVectorPosition := {
latitude := f_getDelta32(valueof(p_shortPosVector.latitude), PX_POS_DELTA),
longitude := f_getDelta32(valueof(p_shortPosVector.longitude), PX_POS_DELTA)
* @desc Receive template for short position vector without position check
* @param p_shortPosVector The base short position vector
*/
template ShortPosVector mw_shortPosVectorPosition_anyPos(
in template (value) ShortPosVector p_shortPosVector
) modifies mw_shortPosVectorPosition := {
latitude := ?,
longitude := ?
}
function f_getDelta32(Int32 p_value, integer p_delta) return template (present) Int32 {
if (p_value == c_int32Min) {
return (p_value .. p_value+p_delta);
}
if (p_value == c_int32Max) {
return (p_value-p_delta .. p_value);
}
return (p_value-p_delta .. p_value+p_delta);
}
function f_getDelta15(Int32 p_value, integer p_delta) return template (present) Int15 {
if (p_value == c_int15Min) {
return (p_value .. p_value+p_delta);
}
if (p_value == c_int15Max) {
return (p_value-p_delta .. p_value);
}
return (p_value-p_delta .. p_value+p_delta);
}
} // end geoNwCommonHeaderTemplates
/**
* @desc Send template for GeoUnicast header
* @param p_sourceLongPosVec Long position vector of source
* @param p_destinationLongPosVec Long position vector of destination
* @param p_seqNumber Sequence number of GeoUnicast packet
template (value) ExtendedHeader m_geoUnicastHeader(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) ShortPosVector p_destinationLongPosVec,
in template (value) UInt16 p_seqNumber
) := {
geoUnicastHeader := {
seqNumber := p_seqNumber,
reserved := c_uInt8Zero,
/**
* @desc Receive template for GeoUnicast header
* @param p_senderLongPosVec Long position vector of sender
* @param p_destinationShortPosVec Long position vector of destination
* @param p_seqNumber Sequence number of GeoUnicast packet
in template (present) ShortPosVector p_destinationShortPosVec,
in template (present) UInt16 p_seqNumber
) := {
geoUnicastHeader := {
seqNumber := p_seqNumber,
* @desc Receive template for GeoUnicast header with source long position vector
* @param p_destinationShortPosVec Long position vector of destination
* @param p_seqNumber Sequence number of GeoUnicast packet
* @param p_srcLongPosVec Long position vector of source
template ExtendedHeader mw_geoUnicastHeaderWithSourcePv(
in template (present) ShortPosVector p_destinationShortPosVec,
in template (present) UInt16 p_seqNumber,
in template (present) LongPosVector p_srcLongPosVec
/**
* @desc Send template for GeoUnicast header type
*/
template (value) HeaderTST m_geoUnicastHeaderType := {
/**
* @desc Receive template for GeoUnicast header type
template HeaderTST mw_geoUnicastHeaderType := {
geoUnicastHdr := {
group geoBroadcastHeaderTemplates {
/**
* @desc Send template for GeoBroadcast header
* @param p_sourceLongPosVec Long position vector of source
* @param p_seqNumber Sequence number of GeoBroadcast packet
* @param p_broadcastArea Destination GeoArea
template (value) ExtendedHeader m_geoBroadcastHeader(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) UInt16 p_seqNumber,
in template (value) GeoBroadcastArea p_broadcastArea
) := {
geoBroadcastHeader := {
seqNumber := p_seqNumber,
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
}
/**
* @desc Receive template for GeoBroadcast header for any GeoArea
* @param p_sourceLongPosVec Long position vector of source
* @param p_senderLongPosVec Long position vector of sender
* @param p_seqNumber Sequence number of GeoBroadcast packet
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) UInt16 p_seqNumber
) := {
geoBroadcastHeader := {
srcPosVector := p_sourceLongPosVec,
geoAreaPosLatitude := ?,
geoAreaPosLongitude := ?,
distanceA := ?,
distanceB := ?,
angle := ?,
* @desc Receive template for GeoBroadcast header
* @param p_sourceLongPosVec Long position vector of source
* @param p_senderLongPosVec Long position vector of sender
* @param p_seqNumber Sequence number of GeoBroadcast packet
template ExtendedHeader mw_geoBroadcastHeaderWithArea (
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) UInt16 p_seqNumber,
in template (present) GeoBroadcastArea p_broadcastArea
) modifies mw_geoBroadcastHeader := {
geoBroadcastHeader := {
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
/**
* @desc Send template for GeoBroadcast header type
* @param p_headerSubType Packet's subtype
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 := ?
/**
* @desc Receive template for GeoBroadcast header type with sub-type
template HeaderTST mw_geoBroadcastHeaderTypeWithSubType(
in template (present) HeaderSubTypeGeoBroadcast p_headerSubType
) modifies mw_geoBroadcastHeaderType := {
geoBroadcastHdr := {
} // end geoBroadcastHeaderTemplates
/**
* @desc Send template for GeoAnycast header
* @param p_sourceLongPosVec Long position vector of source
* @param p_seqNumber Sequence number of GeoAnycast packet
* @param p_anycastArea Destination GeoArea
template (value) ExtendedHeader m_geoAnycastHeader(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) UInt16 p_seqNumber,
in template (value) GeoAnycastArea p_anycastArea
) := {
geoAnycastHeader := {
seqNumber := p_seqNumber,
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
}
}
/**
* @desc Receive template for GeoAnycast header for any GeoArea
* @param p_sourceLongPosVec Long position vector of source
* @param p_senderLongPosVec Long position vector of sender
* @param p_seqNumber Sequence number of GeoAnycast packet
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) UInt16 p_seqNumber
) := {
geoAnycastHeader := {
seqNumber := p_seqNumber,
srcPosVector := p_sourceLongPosVec,
geoAreaPosLatitude := ?,
geoAreaPosLongitude := ?,
distanceA := ?,
distanceB := ?,
angle := ?,
* @desc Receive template for GeoAnycast header
* @param p_sourceLongPosVec Long position vector of source
* @param p_senderLongPosVec Long position vector of sender
* @param p_seqNumber Sequence number of GeoAnycast packet
template ExtendedHeader mw_geoAnycastHeaderWithArea (
in template (present) LongPosVector p_sourceLongPosVec,
in template (present) UInt16 p_seqNumber,
in template (present) GeoAnycastArea p_anycastArea
) modifies mw_geoAnycastHeader := {
geoAnycastHeader := {
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
}
}
/**
* @desc Send template for GeoBroadcast header type with sub-type
* @param p_headerSubType Packet's subtype
template (value) HeaderTST m_geoAnycastHeaderType(
in template (value) HeaderSubTypeGeoAnycast p_headerSubType
) := {
geoAnycastHdr := {
headerType := e_geoAnycast,
headerSubType := p_headerSubType
}
* @desc Receive template for GeoAnycast header type with any sub-type
template HeaderTST mw_geoAnycastHeaderType := {
geoAnycastHdr := {
headerType := e_geoAnycast,
headerSubType := ?
}
* @desc Receive template for GeoAnycast header type with sub-type
template HeaderTST mw_geoAnycastHeaderTypeWithSubType(
in template (present) HeaderSubTypeGeoAnycast p_headerSubType
) modifies mw_geoAnycastHeaderType := {
geoAnycastHdr := {
headerSubType := p_headerSubType
}
/**
* @desc Send template for LS Request header
* @param p_sourceLongPosVec Long position vector of source
* @param p_seqNumber Sequence number of LS Request packet
* @param p_gnAddress Searched GN_Address
template (value) ExtendedHeader m_lsRequestHeader(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) UInt16 p_seqNumber,
seqNumber := p_seqNumber,
reserved := c_uInt8Zero,
srcPosVector := p_sourceLongPosVec,
gnAddress := p_gnAddress
/**
* @desc Receive template for LS Request header
* @param p_seqNumber Sequence number of LS Request packet
) := {
lsRequestHeader := {
seqNumber := p_seqNumber,
berge
committed
gnAddress := mw_gnAddressMid(p_mid)
/**
* @desc Send template for LS Request header type
template (value) HeaderTST m_lsRequestHeaderType := {
lsHdr := {
headerType := e_locationService,
headerSubType := e_lsRequest