/** * @author ETSI / STF405 * @version $URL$ * $Id$ * @desc Module containing types and values for GeoNetworking Protocol * */ module LibItsGeoNetworking_TypesAndValues { //LibCommon import from LibCommon_BasicTypesAndValues all; import from LibCommon_DataStrings all; //LibIts import from LibItsIpv6OverGeoNetworking_TypesAndValues {type Ipv6Packet; type MacAddress} import from LibItsBtp_TypesAndValues {type BtpPacket} group linkLayerConstants { const MacAddress c_llBroadcast := 'FFFFFFFFFFFF'O; } // end linkLayerConstants group geoConfigurationValues { const charstring c_compIut := "IUT"; const charstring c_compNodeA := "NodeA"; const charstring c_compNodeB := "NodeB"; const charstring c_compNodeC := "NodeC"; const charstring c_compNodeD := "NodeD"; const charstring c_area1 := "AREA1"; const charstring c_area2 := "AREA2"; const integer c_latitudeFactorNodeA := 3; const integer c_latitudeFactorNodeB := 2; const integer c_latitudeFactorNodeC := -1; const integer c_latitudeFactorNodeD := 1; const integer c_longitudeFactorNodeA := 0; const integer c_longitudeFactorNodeB := 0; const integer c_longitudeFactorNodeC := 0; const integer c_longitudeFactorNodeD := 0; } // end geoConfigurationValues group geoSyncMessages { const charstring c_msgSent := "Message sent"; } // end geoSyncMessages group geoTestingConstants { const integer c_multipleMessagesCount := 5; const UInt6 c_defaultLifetime := 10; // in seconds } // end geoTestingConstants group geoConfigurationTypes { /** * @desc Entry of position table * @member key Reference key of the entry * @member position Position vector stored in the entry */ type record PositionEntry { charstring key, LongPosVector position } /** * @desc Table containing node positions */ type record of PositionEntry PositionTable; /** * @desc Parameters of a geometric area * @member geoAreaPosLatitude Latitude of area's center * @member geoAreaPosLongitude Longitude of area's center * @member distanceA Distance A * @member distanceB Distance B * @member angle Angle */ type record Area { UInt32 geoAreaPosLatitude, UInt32 geoAreaPosLongitude, UInt16 distanceA, UInt16 distanceB, UInt16 angle } /** * @desc Compact definition of GeoBroadcastArea * @member geoBroadcastSubType Type of GeoBroadcastArea (=shape) * @member geoBroadcastArea Parameters of the geometric area */ type record GeoBroadcastArea { HeaderSubTypeGeoBroadcast geoBroadcastSubType, Area geoBroadcastArea } /** * @desc Compact definition of GeoAnycastArea * @member geoAnycastSubType Type of GeoAnycastArea (=shape) * @member geoAnycastArea Parameters of the geometric area */ type record GeoAnycastArea { HeaderSubTypeGeoAnycast geoAnycastSubType, Area geoAnycastArea } /** * @desc Compact definition of a GeoArea (either GeoBroadcastArea or GeoAnycastArea) * @member shape Shape of the GeoArea * @member area Parameters of the geometric area */ type record GeoArea { GeoShape shape, Area area } /** * @desc Geometric shapes used to define GeoAreas */ type enumerated GeoShape { e_geoCircle(0), e_geoRect(1), e_geoElip(2), e_reserved } /** * @desc Entry of GeoArea table * @member key Reference key of the entry * @member geoArea GeoArea stored in the entry */ type record GeoAreaEntry { charstring key, GeoArea geoArea } /** * @desc Table containing geoArea definitions */ type record of GeoAreaEntry GeoAreaTable; } // end geoConfigurationTypes group geoNwValues { group geoNwHeaderConstants { const UInt4 c_geoNwProtocolVersion := 0; const UInt8 c_hopLimit1 := 1; const UInt8 c_defaultHopLimit := 10; } // end geoNwHeaderConstants } // end geoNwValues group geoNetworkingPdus { /** * @desc GeoNetworking Packet * * @see ETSI TS 102 636-4-1 chapter 8.2 * * @member gnHeader * @member gnSecHeader * @member gnPayload */ type record GeoNetworkingPacket { Header header, SecHeader secHeader optional, Payload payload optional } } // end group geoNetworkingPdus group geoNetworkingHeader { /** * @desc GeoNetworking Header * * @see ETSI TS 102 636-4-1 chapter 8.3 * * @member commonHeader * @member gnExtHeader */ type union Header { GeoUnicastHeader geoUnicastHeader, TSBHeader tsbHeader, SHBHeader shbHeader, GeoBroadcastHeader geoBroadcastHeader, GeoAnycastHeader geoAnycastHeader, BeaconHeader beaconHeader, LSRequestHeader lsRequestHeader, LSReplyHeader lsReplyHeader, AnyHeader anyHeader } group geoNetworkingHeaders { /** * @desc The unspecified ANY header. * * @member commonHeader * @member seqNumber * @member lifetime * @member reserved */ type record AnyHeader { CommonHeader commonHeader, UInt16 seqNumber, Lifetime lifetime, UInt8 reserved } /** * @desc The BEACON packet header. * * @see ETSI TS 102 636-4-1 chapter 8.6.6 * * @member commonHeader */ type record BeaconHeader { CommonHeader commonHeader } /** * @desc The GEOANYCAST packet header. * * @see ETSI TS 102 636-4-1 chapter 8.6.5 * * @member commonHeader * @member seqNumber * @member lifetime * @member reserved * @member srcPosVector * @member geoAreaPosLatitude * @member geoAreaPosLongitude * @member distanceA * @member distanceB * @member angle * @member reserved */ type record GeoAnycastHeader { CommonHeader commonHeader, UInt16 seqNumber, Lifetime lifetime, UInt8 reserved, LongPosVector srcPosVector, Int32 geoAreaPosLatitude, Int32 geoAreaPosLongitude, UInt16 distanceA, UInt16 distanceB, UInt16 angle, UInt16 reserved2 } /** * @desc The GEOBROADCAST packet header. * * @see ETSI TS 102 636-4-1 chapter 8.6.5 * * @member commonHeader * @member seqNumber * @member lifetime * @member reserved * @member srcPosVector * @member geoAreaPosLatitude * @member geoAreaPosLongitude * @member distanceA * @member distanceB * @member angle * @member reserved */ type GeoAnycastHeader GeoBroadcastHeader; /** * @desc The GEOUNICAST packet header. * * @see ETSI TS 102 636-4-1 chapter 8.6.2 * * @member commonHeader * @member seqNumber * @member lifetime * @member reserved * @member srcPosVector * @member dstPosVector */ type record GeoUnicastHeader { CommonHeader commonHeader, UInt16 seqNumber, Lifetime lifetime, UInt8 reserved, LongPosVector srcPosVector, ShortPosVector dstPosVector } /** * @desc The Location Service (LS) Reply packet header. * * @see ETSI TS 102 636-4-1 chapter 8.6.8 * * @member commonHeader * @member seqNumber * @member lifetime * @member reserved * @member srcPosVector */ type record LSReplyHeader { CommonHeader commonHeader, UInt16 seqNumber, Lifetime lifetime, UInt8 reserved, LongPosVector srcPosVector, ShortPosVector dstPosVector } /** * @desc The Location Service (LS) Request packet header. * * @see ETSI TS 102 636-4-1 chapter 8.6.7 * * @member commonHeader * @member seqNumber * @member lifetime * @member reserved * @member srcPosVector * @member gnAddress */ type record LSRequestHeader { CommonHeader commonHeader, UInt16 seqNumber, Lifetime lifetime, UInt8 reserved, LongPosVector srcPosVector, GN_Address gnAddress } /** * The Single Hop Broadcast (SHB) packet header. * * @see ETSI TS 102 636-4-1 chapter 8.6.4 * * @member commonHeader */ type record SHBHeader { CommonHeader commonHeader } /** * @desc The Topologically-Scoped Broadcast (TSB) packet header. * * @see ETSI TS 102 636-4-1 chapter 8.6.3 * * @member commonHeader * @member seqNumber * @member lifetime * @member reserved * @member srcPosVector */ type record TSBHeader { CommonHeader commonHeader, UInt16 seqNumber, Lifetime lifetime, UInt8 reserved, LongPosVector srcPosVector } group geoNetworkingHeadersSubtypes { /** * @desc Identifies the header type and the header subtype for ANY. * @member headerType * @member reserved */ type record AnyHeaderType { HeaderType headerType(e_any), UInt4 headerSubType } /** * @desc Identifies the header type and the header subtype for BEACON. * @member headerType * @member reserved */ type record BeaconHeaderType { HeaderType headerType(e_beacon), UInt4 headerSubType } /** * @desc Common header for GeoNetworking * *
                 *  0               1               2               3
                 *  0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * |Version|  NH   |  HT   |  HST  |   Reserved    |     Flags     |
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * |              PL               |      TC       |      HL       |
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * |                             SE PV                             |
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * 
* * @see ETSI TS 102 636-4-1 chapter 8.4.2 * * @member version * @member nextHeader * @member headerType * @member headerSubType * @member reserved * @member flags * @member plLength * @member trafficClass * @member hopLimit * @member longPosVec */ type record CommonHeader { UInt4 version, NextHeader nextHeader, HeaderTST headerTST, UInt8 reserved, Bit8 flags, UInt16 plLength, // The Codec shall set the length of the paylaod if present TrafficClass trafficClass, UInt8 hopLimit, LongPosVector senderPosVector } with { encode(plLength) "MarkForUpdate" }; /** * @desc Identifies the header type and the header subtype for GEOANYCAST. * @member headerType * @member reserved */ type record GeoAnycastHeaderType { HeaderType headerType(e_geoAnycast), HeaderSubTypeGeoAnycast headerSubType } /** * @desc Identifies the header type and the header subtype for GEOBROADCAST. * @member headerType * @member reserved */ type record GeoBroadcastHeaderType { HeaderType headerType(e_geoBroadcast), HeaderSubTypeGeoBroadcast headerSubType } /** * @desc Identifies the header type and the header subtype for GEOUNICAST. * @member headerType * @member reserved */ type record GeoUnicastHeaderType { HeaderType headerType(e_geoUnicast), UInt4 headerSubType } /** * @desc Identifies the header subtype for GEOANYCAST. */ type enumerated HeaderSubTypeGeoAnycast { e_geoAnycastCircle(0), e_geoAnycastRect(1), e_geoAnycastElip(2), e_reserved } with { variant "4 bits" } /** * @desc Identifies the header subtype for GEOBROADCAST. */ type enumerated HeaderSubTypeGeoBroadcast { e_geoBroadcastCircle(0), e_geoBroadcastRect(1), e_geoBroadcastElip(2), e_reserved } with { variant "4 bits" } /** * @desc Identifies the header subtype for Topologically-scoped broadcast TSB. */ type enumerated HeaderSubTypeTSB { e_singleHop(0), e_multiHop(1), e_reserved } with { variant "4 bits" } /** * @desc Identifies the header subtype for Location Service LS. */ type enumerated HeaderSubTypeLs { e_lsRequest(0), e_lsReply(1), e_reserved } with { variant "4 bits" } /** * @desc Identifies the header subtype for Service Announcement SA. */ type enumerated HeaderSubTypeSa { e_sa(0), e_saEos(1), e_reserved } with { variant "4 bits" } /** * @desc Identifies the header type and the header subtype. * @member anyHdr * @member beaconHdr * @member geoUnicastHdr * @member geoAnycastHdr * @member geoBroadcastHdr * @member tsbHdr * @member lsHdr * @member saHdr * @member reserved */ type union HeaderTST { AnyHeaderType anyHdr, BeaconHeaderType beaconHdr, GeoUnicastHeaderType geoUnicastHdr, GeoAnycastHeaderType geoAnycastHdr, GeoBroadcastHeaderType geoBroadcastHdr, TsbHeaderType tsbHdr, LsHeaderType lsHdr, SaHeaderType saHdr, UInt8 reserved } /** * @desc Identifies the type of the GeoAdhoc header type (4Bits). */ type enumerated HeaderType { e_any(0), e_beacon(1), e_geoUnicast(2), e_geoAnycast(3), e_geoBroadcast(4), e_topologicallyScopedBroadcast(5), e_locationService(6), e_serviceAnnouncement(7), e_reserved } with { variant "4 bits" } /** * @desc Long Position Vector * *
                 *  0               1               2               3
                 *  0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * |                           GN_ADDR                             |
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * |                           GN_ADDR                             |
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * |                             TST                               |
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * |                             Lat                               |
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * |                             Long                              |
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * |               S               |               H               |
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * |              Alt              | TAcc  |PosAcc |SAcc |HAcc |AA |
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * 
* * @see ETSI TS 102 636-4-1 chapter 8.4.2 * * @member gnAddr * @member timestamp * @member latitude * @member longitude * @member speed * @member heading * @member altitude * @member timeAccuracy * @member posAccuracy * @member speedAccuracy * @member headingAccuracy * @member altitudeAccuracy */ type record LongPosVector { GN_Address gnAddr, UInt32 timestamp, Int32 latitude, Int32 longitude, Int16 speed, UInt16 heading, Int16 altitude, UInt4 timeAccuracy, UInt4 posAccuracy, UInt3 speedAccuracy, UInt3 headingAccuracy, UInt2 altitudeAccuracy } type record AcGnResponseFailure { boolean failure } /** * @desc Identifies the header type and the header subtype for Location Service LS. * @member headerType * @member reserved */ type record LsHeaderType { HeaderType headerType(e_locationService), HeaderSubTypeLs headerSubType } /** * @desc Identifies the type of header immediately following the GeoNetworking header (4Bits). */ type enumerated NextHeader { e_any(0), e_btpA(1), e_btpB(2), e_ipv6(3), e_reserved } with { variant "4 bits" } /** * @desc Identifies the header type and the header subtype for Service Announcement SA. * @member headerType * @member reserved */ type record SaHeaderType { HeaderType headerType(e_serviceAnnouncement), HeaderSubTypeSa headerSubType } /** * @desc Short Position Vector * *
                 *  0               1               2               3
                 *  0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * |                           GN_ADDR                             |
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * |                           GN_ADDR                             |
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * |                             TST                               |
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * |                             Lat                               |
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * |                             Long                              |
                 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 * 
* * @see ETSI TS 102 636-4-1 chapter 8.4.3 * * @member gnAddr * @member timestamp * @member latitude * @member longitude */ type record ShortPosVector { GN_Address gnAddr, UInt32 timestamp, Int32 latitude, Int32 longitude } /** * @desc Identifies the header type and the header subtype for Topologically-Scoped Broadcast TSB. * @member headerType * @member headerSubType */ type record TsbHeaderType { HeaderType headerType(e_topologicallyScopedBroadcast), HeaderSubTypeTSB headerSubType } group geoNetworkingAddress { /** * @desc GeoNetworking address * *
                     *  0               1               2               3
                     *  0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
                     * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     * |M|  S_T  |S| R |         S_CC          |          M_ID         |
                     * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     * |                              M_ID                             |
                     * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     * 
* * @see ETSI TS 102 636-4-1 chapter 6.2 * * @member typeOfAddress * @member stationType * @member stationSubType * @member reserved * @member stationCountryCode * @member slac * @member mid */ type record GN_Address { TypeOfAddress typeOfAddress, StationType stationType, StationSubType stationSubType, UInt10 stationCountryCode, Oct6 mid } group geoNetworkingAddressSubtypes { /** * @desc Latency expresses the relative packet delivery latency in a geographical area (2Bits). */ type enumerated Latency { e_veryLow(0), e_low(1), e_medium(2), e_high(3) } with { variant "2 bit" } /** * @desc Indicates the maximum tolerable time a packet can be buffered until it reaches its destination. * @member multiplier * @member ltBase */ type record Lifetime { UInt6 multiplier, LtBase ltBase } /** * @desc The base for the calculation of the lifetime. */ type enumerated LtBase { e_50ms(0), e_1s(1), e_10s(2), e_100s(3) } with { variant "2 bit" } /** * @desc Reliability means the relative probability of correctly receiving a packet in a geographical area (2Bits). */ type enumerated Reliability { e_veryHigh(0), e_high(1), e_medium(2), e_low(3) } with { variant "2 bit" } /** * @desc Identifies a roadside station (4Bits). * @member id, constant 1 * @member rsKind */ type record RoadsideStation { StationTypeIdentifier stationType(e_roadsideStation), RsKind rsKind } /** * @desc Identifies a roadside station (3Bits). */ type enumerated RsKind { e_trafficLight(0), e_ordinary(1), e_reserved } with { variant "3 bits" } /** * @desc Distinguishes between public and private ITS stations (1Bits). */ type enumerated StationSubType { e_public(0), e_private(1) } with { variant "1 bit" } /** * @desc Identifies the ITS station (4Bits). * @member vehicleStation, if first bit is 0 * @member roadsideStation, if first bit is 1 */ type union StationType { VehicleStation vehicleStation, RoadsideStation roadsideStation } /** * @desc Identifies the type of station (1Bit). */ type enumerated StationTypeIdentifier { e_vehicleStation(0), e_roadsideStation(1) } with { variant "1 bit" } /** * @desc Identifies the traffic class bye relevance, reliability and latency. * @member reserved * @member relevance * @member reliability * @member latency */ type record TrafficClass { UInt1 reserved(0), UInt3 relevance, Reliability reliability, Latency latency } /** * @desc Distinguish between manually configured * network address and the initial GeoNetwork address (1Bit). */ type enumerated TypeOfAddress { e_manual(1), e_initial(0) } with { variant "1 bit" } /** * @desc Identifies a vehicle station (4Bits). * @member id, constant 0 * @member vsKind */ type record VehicleStation { StationTypeIdentifier stationType(e_vehicleStation), VsKind vsKind } /** * @desc Identifies a vehicle station (3Bits). */ type enumerated VsKind { e_bike(0), e_motorbike(1), e_car(2), e_truck(3), e_bus(4), e_reserved } with { variant "3 bits" } } // end group geoNetworkingAddressSubtypes } // end group geoNetworkingAddress } // end group geoNetworkingHeadersSubtypes } // end group geoNetworkingHeaders } // end group geoNetworkingHeader group geoNetworkingSecurityHeader { /** * @desc The security header * @remark Add specific type when definition is available. The specification of the GeoNetworking security header is outside the scope of current standard. */ type anytype SecHeader; } //end group geoNetworkingSecurityHeader group geoNetworkingPayload { /** * @desc The payload of the GN packet * @member ipv6Packet The IPv6 packet * @member otherPayload Any other payload */ type union Payload { Ipv6Packet ipv6Packet, BtpPacket btpPacket, octetstring otherPayload } } //end group geoNetworkingPayload group geoNwPicsTypes { /** * @desc The GeoUnicast forwarding algorithm. */ type enumerated GeoUnicastForwardingAlgorithm { e_unspecified(0), e_greedy(1), e_cbf(2) } /** * @desc The GeoBroadcast forwarding algorithm. */ type enumerated GeoBroadcastForwardingAlgorithm { e_unspecified(0), e_simple(1), e_advanced(2) } } // end geoNwPicsTypes group utPrimitives { /** * @desc Upper tester primitive to initialise IUT */ type record UtGNInitialize { } /** * @desc UT primitives for GeoNetworking * @member geoUnicast - * @member geoBroadcast - * @member geoAnycast - * @member shb - * @member tsb - * @member changePosition - * @member checkPacket - */ type union UtGNEvent { GenerateGeoUnicastMessage geoUnicast, GenerateGeoBroadcastMessage geoBroadcast, GenerateGeoAnycastMessage geoAnycast, GenerateSHBMessage shb, GenerateTSBMessage tsb, ChangePosition changePosition, GeoNetworkingPacket checkPacket } /** * @desc UT primitive for IUT to send a GeoUnicast packet * @member gnAddress Destination of the packet * @member lifetime Lifetime of the packet * @member payload Payload of the packet */ type record GenerateGeoUnicastMessage { GN_Address gnAddress, integer lifetime optional, Payload payload optional } /** * @desc UT primitive for IUT to send a GeoBroadcast packet * @member area Destination GeoArea * @member payload Payload of the packet */ type record GenerateGeoBroadcastMessage { GeoArea area, integer lifetime optional, Payload payload optional } /** * @desc UT primitive for IUT to send a Geoanycast packet */ type GenerateGeoBroadcastMessage GenerateGeoAnycastMessage; /** * @desc UT primitive for IUT to send a SHB packet * @member payload Payload of the packet */ type record GenerateSHBMessage { Payload payload optional } /** * @desc UT primitive for IUT to send a TSB packet */ type GenerateSHBMessage GenerateTSBMessage; /** * @desc UT primitive for IUT to change its position */ type record ChangePosition { } } // end utPrimitives group acPrimitives { /** * @desc TA primitives for GeoNetworking * @member startBeaconing - * @member stopBeaconing - * @member startPassBeaconing - * @member stopPassBeaconing - * @member startBeaconingMultipleNeighbour - * @member stopBeaconingMultipleNeighbour - * @member getLongPosVector - */ type union AcGnPrimitive { AcStartBeaconing startBeaconing, AcStopBeaconing stopBeaconing, AcStartPassBeaconing startPassBeaconing, AcStopPassBeaconing stopPassBeaconing, AcStartBeaconingMultipleNeighbour startBeaconingMultipleNeighbour, AcStopBeaconingMultipleNeighbour stopBeaconingMultipleNeighbour, AcGetLongPosVector getLongPosVector } /** * @desc Primitive for receiveing response from TA * @member getLongPosVector */ type union AcGnResponse { LongPosVector getLongPosVector, AcGnResponseFailure failure } /** * @desc Primitive for TA to start sending beacons for the test component * @member beaconHeader Beacon template */ type record AcStartBeaconing { BeaconHeader beaconHeader } /** * @desc Primitive for TA to stop sending beacons for the test component */ type record AcStopBeaconing { } /** * @desc Primitive for TA to start enqueueing received beacons * @member beaconHeader Filter */ type record AcStartPassBeaconing { BeaconHeader beaconHeader } /** * @desc Primitive for TA to stop enqueueing received beacons */ type record AcStopPassBeaconing { } /** * @desc Primitive for TA to start sending beacons for multiple neighbours * @member beaconHeader Beacon template * @member numberOfNeighbour Number of neighbours to simulate */ type record AcStartBeaconingMultipleNeighbour { BeaconHeader beaconHeader, integer numberOfNeighbour } /** * @desc Primitive for TA to stop sending beacons for multiple neighbours */ type record AcStopBeaconingMultipleNeighbour { } /** * @desc Primitive for retrieving the position vector corresponding to a specific GN address * @member gnAddress GN address to be searched */ type record AcGetLongPosVector { GN_Address gnAddress } } // end acPrimitives } with { encode "LibItsGeoNetworking_TypesAndValues" }