Newer
Older
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
/**
* @desc Receive template for LS Request header type
template HeaderTST mw_lsRequestHeaderType := {
lsHdr := {
headerType := e_locationService,
headerSubType := e_lsRequest
group lsReplyHeaderTemplates {
/**
* @desc Send template for LS Reply header
* @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
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) ShortPosVector p_destinationLongPosVec,
in template (value) UInt16 p_seqNumber
) := {
lsReplyHeader := {
seqNumber := p_seqNumber,
reserved := c_uInt8Zero,
srcPosVector := p_sourceLongPosVec,
dstPosVector := p_destinationLongPosVec
}
}
lsReplyHeader := {
reserved := ?,
srcPosVector := ?,
dstPosVector := ?
}
}
* @param p_sourceLongPosVec Long position vector of source
* @param p_destinationLongPosVec Short position vector of destination
in template (present) ShortPosVector p_destinationLongPosVec)
modifies mw_lsReplyHeaderAny := {
lsReplyHeader := {
srcPosVector := p_sourceLongPosVec,
dstPosVector := p_destinationLongPosVec
}
/**
* @desc Send template for LS Reply header type
template (value) HeaderTST m_lsReplyHeaderType := {
lsHdr := {
headerType := e_locationService,
headerSubType := e_lsReply
}
/**
* @desc Send template for Beacon header
* @param p_sourceLongPosVec Long position vector of source
template (value) ExtendedHeader m_beaconHeader(
in template (value) LongPosVector p_sourceLongPosVec
/**
* @desc Receive template for Beacon header
* @param p_sourceLongPosVec Long position vector of source
template ExtendedHeader mw_beaconHeader(
in template (present) LongPosVector p_sourceLongPosVec
/**
* @desc Send template for Beacon header type
template (value) HeaderTST m_beaconHeaderType := {
beaconHdr := {
/**
* @desc Receive template for Beacon header type
template HeaderTST mw_beaconHeaderType := {
beaconHdr := {
group shbHeaderTemplates {
* @param p_sourceLongPosVec Long position vector of sender
template (value) ExtendedHeader m_shbHeader(
in template (value) LongPosVector p_sourceLongPosVec
) := {
shbHeader := {
srcPosVector := p_sourceLongPosVec,
reserved := 0
}
}
/**
* @desc Receive template for SHB header
* @param p_sourceLongPosVec Long position vector of sender
template (present) ExtendedHeader mw_shbHeader(
in template (present) LongPosVector p_sourceLongPosVec
) := {
shbHeader := {
srcPosVector:= p_sourceLongPosVec,
reserved := ?
}
}
/**
* @desc Send template for SHB header type
template (value) HeaderTST m_shbHeaderType := {
tsbHdr := {
headerType := e_topologicallyScopedBroadcast,
headerSubType := e_singleHop
}
} // end shbHeaderTemplates
/**
* @desc Send template for TSB header
* @param p_seqNumber Sequence number of TSB packet
* @param p_srcPosVector Long position vector of source
in template (value) UInt16 p_seqNumber,
in template (value) LongPosVector p_srcPosVector
) := {
tsbHeader := {
seqNumber := p_seqNumber,
reserved := c_uInt8Zero,
srcPosVector := p_srcPosVector
}
}
/**
* @desc Receive template for TSB header
* @param p_seqNumber Sequence number of TSB packet
* @param p_sourceLongPosVec Long position vector of source
in template (present) LongPosVector p_sourceLongPosVec
) := {
tsbHeader := {
seqNumber := p_seqNumber,
reserved := ?,
srcPosVector := p_sourceLongPosVec
}
}
template (value) HeaderTST m_tsbHeaderType := {
tsbHdr := {
headerType := e_topologicallyScopedBroadcast,
headerSubType := e_multiHop
template (present) HeaderTST mw_tsbHeaderType := {
tsbHdr := {
headerType := e_topologicallyScopedBroadcast,
headerSubType := e_multiHop
}
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
group saHeaderTemplates {
/**
* @desc Send template for SA header
* @param p_seqNumber Sequence number of TSB packet
* @param p_srcPosVector Long position vector of source
*/
template ExtendedHeader m_saHeader(
in template (value) UInt16 p_seqNumber,
in template (value) LongPosVector p_srcPosVector
) := {
tsbHeader := {
seqNumber := p_seqNumber,
reserved := c_uInt8Zero,
srcPosVector := p_srcPosVector
}
}
/**
* @desc Receive template for TSB header
* @param p_seqNumber Sequence number of TSB packet
* @param p_sourceLongPosVec Long position vector of source
*/
template (present) ExtendedHeader mw_saHeader(
in template (present) UInt16 p_seqNumber,
in template (present) LongPosVector p_sourceLongPosVec
) := {
tsbHeader := {
seqNumber := p_seqNumber,
reserved := ?,
srcPosVector := p_sourceLongPosVec
}
}
/**
* @desc Send template for SA header type
*/
template (value) HeaderTST m_saHeaderType_sa := {
saHdr := {
headerType := e_serviceAnnouncement,
headerSubType := e_sa
}
}
/**
* @desc Receive template for SA header type
*/
template (present) HeaderTST mw_saHeaderType_sa := {
saHdr := {
headerType := e_serviceAnnouncement,
headerSubType := e_sa
}
}
/**
* @desc Send template for SA header type
*/
template (value) HeaderTST m_saHeaderType_eos := {
saHdr := {
headerType := e_serviceAnnouncement,
headerSubType := e_saEos
}
}
/**
* @desc Receive template for SA header type
*/
template (present) HeaderTST mw_saHeaderType_eos := {
saHdr := {
headerType := e_serviceAnnouncement,
headerSubType := e_saEos
}
}
} // end saHeaderTemplates
} // end geoNwHeadersTemplates
* @desc Receive template for GN_Address. Only M_ID field is discriminent
template GN_Address mw_gnAddressMid(in template (present) GN_Address.mid p_mid) := {
typeOfAddress := ?,
stationType := ?,
stationCountryCode := ?,
mid := p_mid
}
template (value) GN_Address m_dummyGnAddr := {
typeOfAddress := e_manual,
mid := c_6ZeroBytes
/**
* @desc Dummy template for long position vector
template (value) LongPosVector m_dummyLongPosVector := {
timestamp_ := c_uInt32Zero,
/**
* @desc Dummy template for Area
template (value) Area m_dummyArea := {
geoAreaPosLatitude := c_uInt32Zero,
geoAreaPosLongitude := c_uInt32Zero,
distanceA := c_uInt16Zero,
distanceB := c_uInt16Zero,
/**
* @desc Dummy template for GeoBroadcastArea
template (value) GeoBroadcastArea m_dummyGeoBroadcastArea := {
geoBroadcastSubType := e_geoBroadcastRect,
geoBroadcastArea := m_dummyArea
}
} // end geoDummyTemplates
} // end geoMiscTemplates