module test_LibItsGeoNetworking_TypesAndValues /*language "TTCN-3:2009 Advanced Parameterization"*/ { import from LibCommon_BasicTypesAndValues all; import from LibCommon_DataStrings all; import from LibItsGeoNetworking_TestSystem all; import from LibItsGeoNetworking_TypesAndValues all; import from LibItsGeoNetworking_Templates all; import from LibItsGeoNetworking_Functions all; import from LibItsGeoNetworking_Pixits { modulepar PX_GN_UPPER_LAYER }; import from LibItsGeoNetworking_Pics { modulepar PICS_GN_LOCAL_ADDR_CONF_METHOD }; import from LibItsIpv6OverGeoNetworking_TypesAndValues all; import from LibItsIpv6OverGeoNetworking_Templates all; import from LibItsExternal_TypesAndValues all; import from test_CommonCodec all; import from test_LibItsBtp_TypesAndValues { template all }; /** * @desc Send template for GeoNetworking packet (GeonetworkingPort Primitive) * @param p_geoNwMsg GeoNetworking packet to be sent */ template GeoNetworkingReq mw_geoNwReq_linkLayerBroadcast( template GeoNetworkingPacket p_geoNwMsg ) := { msgOut := p_geoNwMsg, macDestinationAddress := c_llBroadcast } group LibItsGeoNetworking_DummyTemplates { template CommonHeader mw_commonHeaderWithHopLimitAndLength ( in template (present) LongPosVector p_senderLongPosVec, in template (present) NextHeader p_nextHeader, in template (present) HeaderTST p_headerTypeSubType, in template (present) UInt8 p_hopLimit, in template (value) integer p_plLength ) modifies mw_commonHeaderWithHopLimit := { plLength := p_plLength } template Header mw_shbHeaderWithLength (in integer p_plLength):= { shbHeader := { commonHeader := mw_commonHeaderWithHopLimitAndLength( ?, // SE PV ?, // NH m_shbHeaderType, // HT + HST 1, // HL p_plLength // plLength ) } } /** * @desc Dummy template for GN_Address */ template (value) GN_Address m_dummyGnAddrIut := { typeOfAddress := e_manual, stationType := { vehicleStation := { stationType := e_vehicleStation, vsKind := e_car } }, stationSubType := e_private, stationCountryCode := 33, mid := 'a4fedecabeef'O } template (value) GN_Address m_dummyGnAddrIutSopvSepv := { typeOfAddress := e_initial, stationType := { vehicleStation := { stationType := e_vehicleStation, vsKind := e_bike } }, stationSubType := e_public, stationCountryCode := 0, mid := '000000000001'O } /** * @desc Dummy template for long position vector */ template (value) LongPosVector m_dummyLongPosVectorIut := { gnAddr := m_dummyGnAddrIut, timestamp := 123456, latitude := 4856, longitude := 675, speed := 55, heading := 9876, altitude := 526, timeAccuracy := 6, posAccuracy := 2, speedAccuracy := 2, headingAccuracy := 2, altitudeAccuracy := 0 } template (value) LongPosVector m_dummyLongPosVectorIutSopvSepv := { gnAddr := m_dummyGnAddrIutSopvSepv, timestamp := 3794543552, latitude := 490666666, longitude := 81166666, speed := 0, heading := 0, altitude := 0, timeAccuracy := 0, posAccuracy := 0, speedAccuracy := 0, headingAccuracy := 0, altitudeAccuracy := 0 } template (value) GN_Address m_dummyGnAddrNodeA := { typeOfAddress := e_manual, stationType := { vehicleStation := { stationType := e_vehicleStation, vsKind := e_bus } }, stationSubType := e_private, stationCountryCode := 49, mid := 'a4fdea5ea5ed'O } template (value) GN_Address m_dummyGnAddrNodeB := { typeOfAddress := e_manual, stationType := { vehicleStation := { stationType := e_vehicleStation, vsKind := e_car } }, stationSubType := e_private, stationCountryCode := 50, mid := 'a40102030405'O } template (value) GN_Address m_dummyGnAddrNodeC := { typeOfAddress := e_manual, stationType := { vehicleStation := { stationType := e_vehicleStation, vsKind := e_car } }, stationSubType := e_private, stationCountryCode := 42, mid := 'deadbabebeef'O } template (value) LongPosVector m_dummyLongPosVectorNodeA := { gnAddr := m_dummyGnAddrNodeA, timestamp := 875, latitude := 265, longitude := 789, speed := 80, heading := 548, altitude := 12, timeAccuracy := 5, posAccuracy := 1, speedAccuracy := 3, headingAccuracy := 1, altitudeAccuracy := 2 } template (value) LongPosVector m_dummyLongPosVectorNodeB := { gnAddr := m_dummyGnAddrNodeB, timestamp := 4585, latitude := 126, longitude := 123, speed := 45, heading := 125, altitude := 25, timeAccuracy := 4, posAccuracy := 2, speedAccuracy := 0, headingAccuracy := 2, altitudeAccuracy := 1 } template (value) LongPosVector m_dummyLongPosVectorNodeC := { gnAddr := m_dummyGnAddrNodeC, timestamp := 23644, latitude := 23754, longitude := 49645, speed := 110, heading := 23, altitude := 18, timeAccuracy := 3, posAccuracy := 1, speedAccuracy := 2, headingAccuracy := 1, altitudeAccuracy := 1 } template (value) Area m_dummyArea1 := { geoAreaPosLatitude := 298376, geoAreaPosLongitude := 32745, distanceA := 1234, distanceB := 5678, angle := 9123 } template (value) Area m_dummyArea2 := { geoAreaPosLatitude := 873548, geoAreaPosLongitude := 2837, distanceA := 8765, distanceB := 4321, angle := 4567 } template (value) GeoBroadcastArea m_dummyGeoBroadcastArea1 := { geoBroadcastSubType := e_geoBroadcastRect, geoBroadcastArea := m_dummyArea1 } template (value) GeoBroadcastArea m_dummyGeoBroadcastArea2 := { geoBroadcastSubType := e_geoBroadcastElip, geoBroadcastArea := m_dummyArea2 } template (value) GeoAnycastArea m_dummyGeoAnycastArea1 := { geoAnycastSubType := e_geoAnycastCircle, geoAnycastArea := m_dummyArea1 } template (value) GeoAnycastArea m_dummyGeoAnycastArea2 := { geoAnycastSubType := e_geoAnycastRect, geoAnycastArea := m_dummyArea2 } template (value) AcGnPrimitive m_startBeaconingRoadSide := { startBeaconing := { beaconHeader := { commonHeader := { version := 0, nextHeader := e_any, headerTST := { beaconHdr := { headerType := e_beacon, headerSubType := 0 } }, reserved := 0, flags := '00000000'B, plLength := 0, trafficClass := { reserved := 0, relevance := 0, reliability := e_veryHigh, latency := e_veryLow }, hopLimit := 10, senderPosVector := { gnAddr := { typeOfAddress := e_initial, stationType := { roadsideStation := { stationType := e_roadsideStation, rsKind := e_ordinary } }, stationSubType := e_private, stationCountryCode := 0, mid := 'DEADBEEF0003'O }, timestamp := 0, latitude := 399990000, longitude := 100000000, speed := 1000, heading := 0, altitude := 20, timeAccuracy := 0, posAccuracy := 0, speedAccuracy := 0, headingAccuracy := 0, altitudeAccuracy := 0 } } } } } template (value) AcGnPrimitive m_startBeaconingRoadSide_NEC := { startBeaconing := { beaconHeader := { commonHeader := { version := 1, nextHeader := e_any, headerTST := { beaconHdr := { headerType := e_beacon, headerSubType := 0 } }, reserved := 0, flags := '00000000'B, plLength := 0, trafficClass := { reserved := 0, relevance := 0, reliability := e_veryHigh, latency := e_veryLow }, hopLimit := 10, senderPosVector := { gnAddr := { typeOfAddress := e_initial, stationType := { roadsideStation := { stationType := e_roadsideStation, rsKind := e_ordinary } }, stationSubType := e_private, stationCountryCode := 0, mid := 'DEADBEEF0002'O }, timestamp := 3373012264, latitude := 20000, longitude := 0, speed := 0, heading := 0, altitude := 0, timeAccuracy := 0, posAccuracy := 0, speedAccuracy := 0, headingAccuracy := 0, altitudeAccuracy := 0 } } } } } template (value) AcGnPrimitive m_startBeaconingRoadSide_NEC_1 := { startBeaconing := { beaconHeader := { commonHeader := { version := 1, nextHeader := e_any, headerTST := { beaconHdr := { headerType := e_beacon, headerSubType := 0 } }, reserved := 0, flags := '00000000'B, plLength := 0, trafficClass := { reserved := 0, relevance := 0, reliability := e_veryHigh, latency := e_veryLow }, hopLimit := 10, senderPosVector := { gnAddr := { typeOfAddress := e_initial, stationType := { roadsideStation := { stationType := e_roadsideStation, rsKind := e_ordinary } }, stationSubType := e_private, stationCountryCode := 0, mid := 'DEADBEEF0003'O }, timestamp := 3374720650, latitude := -10000, longitude := 0, speed := 0, heading := 0, altitude := 0, timeAccuracy := 0, posAccuracy := 0, speedAccuracy := 0, headingAccuracy := 0, altitudeAccuracy := 0 } } } } } /** * @desc Send template for GeoUnicast header * @param p_sourceLongPosVec Long position vector of source * @param p_destinationLongPosVec Long position vector of destination * @param p_senderLongPosVec Long position vector of sender * @param p_seqNumber Sequence number of GeoUnicast packet */ template (value) Header m_geoUnicastHeaderBtp( in template (value) LongPosVector p_sourceLongPosVec, in template (value) ShortPosVector p_destinationLongPosVec, in template (value) LongPosVector p_senderLongPosVec, in template (value) UInt16 p_seqNumber ) := { geoUnicastHeader := { commonHeader := m_commonHeader( e_btpA, m_geoUnicastHeaderType, m_trafficClass, c_defaultHopLimit, p_senderLongPosVec ), seqNumber := p_seqNumber, lifetime := m_defaultLifetime, reserved := c_uInt8Zero, srcPosVector := p_sourceLongPosVec, dstPosVector := p_destinationLongPosVec } } /** * @desc Receive template for Beacon common header * @param p_trafficClass Packet's traffic class * @param p_hopLimit Maximum number of hops * @param p_senderLongPosVec Long position vector of sender */ template CommonHeader mw_commonHeaderBeacon_NEC ( in template (present) TrafficClass p_trafficClass, in template (present) UInt8 p_hopLimit, in template (present) LongPosVector p_senderLongPosVec ) := { version := 1, nextHeader := e_any, headerTST := { beaconHdr := { headerType := e_beacon, headerSubType := 0 } }, reserved := c_uInt8Zero, flags := c_8ZeroBits, plLength := 0, trafficClass := p_trafficClass, hopLimit := p_hopLimit, senderPosVector := p_senderLongPosVec } /** * @desc Receive template for Beacon header * @param p_trafficClass Packet's traffic class * @param p_hopLimit Maximum number of hops * @param p_senderLongPosVec Long position vector of sender */ template Header mw_beaconHeader_NEC ( in template (present) TrafficClass p_trafficClass, in template (present) UInt8 p_hopLimit, in template (present) LongPosVector p_senderLongPosVec ) := { beaconHeader := { commonHeader := mw_commonHeaderBeacon_NEC( p_trafficClass, p_hopLimit, p_senderLongPosVec ) } } /** * @desc Send template for GeoNetworking PDU with payload * @param p_header Header value of GeoNetworking message * @param p_payload Payload * @param p_rawPayload Raw payload * @see m_geoNwPdu */ template (value) GeoNetworkingPacket m_geoNwPduWithPayload_ipv6( in template (value) Header p_header, in template (value) Ipv6Packet p_ipv6Packet, in template (value) octetstring p_rawPayload ) modifies m_geoNwPdu := { payload := { decodedPayload := { ipv6Packet := p_ipv6Packet }, // End of 'decodedPayload' field rawPayload := p_rawPayload } // End of 'payload' field } /** * @desc Send template for GeoNetworking PDU with payload * @param p_header Header value of GeoNetworking message * @param p_payload Payload * @param p_rawPayload Raw payload * @see m_geoNwPdu */ template GeoNetworkingPacket mw_geoNwPduWithPayload_ipv6( in template (present) Header p_header, in template (present) Ipv6Packet p_ipv6Packet, in template (present) octetstring p_rawPayload ) modifies mw_geoNwPdu := { payload := { decodedPayload := { ipv6Packet := p_ipv6Packet }, // End of 'decodedPayload' field rawPayload := p_rawPayload } // End of 'payload' field } } // End of group LibItsGeoNetworking_DummyTemplates group LibItsGeoNetworking_testCases { group testAcPrimitives { /** * * @desc validate StartBeaconing primitive * @verdict Pass on success, Fail otherwise */ testcase tc_startBeaconing() runs on TCType system TCType { test_PDU( m_startBeaconing( m_beaconHeader(m_dummyLongPosVectorIut).beaconHeader), true, oct2bit('010027050024001000000000000a9421a4fedecabeef0001e240000012f8000002a300372694020e6248'O) // Check for 'LibItsGeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump ); } /** * * @desc validate StartBeaconing primitive for roadside equipment * @verdict Pass on success, Fail otherwise */ testcase tc_startBeaconingRoadside() runs on TCType system TCType { test_PDU( m_startBeaconingRoadSide, true, oct2bit('010027050024001000000000000a4c00deadbeef00030000000017d75cf005f5e10003e8000000140000'O) // Check for 'LibItsGeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump ); } testcase tc_startBeaconingRoadside_NEC() runs on TCType system TCType { test_PDU( m_startBeaconingRoadSide_NEC, true, oct2bit('010027050024101000000000000a4c00deadbeef0002c90c152800004e20000000000000000000000000'O) // Check for 'LibItsGeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump ); } testcase tc_startBeaconingRoadside_NEC_1() runs on TCType system TCType { test_PDU( m_startBeaconingRoadSide_NEC_1, true, oct2bit('010027050024101000000000000a4c00deadbeef0003c926268affffd8f0000000000000000000000000'O) // Check for 'LibItsGeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump ); } /** * @desc validate StartPassBeaconing primitive * @verdict Pass on success, Fail otherwise */ testcase tc_startPassBeaconing() runs on TCType system TCType { test_PDU( m_startPassBeaconing( m_beaconHeader(m_dummyLongPosVectorIut).beaconHeader), true, oct2bit('010027070024001000000000000a9421a4fedecabeef0001e240000012f8000002a300372694020e6248'O) // Check for 'LibItsGeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump ); } /** * @desc validate StartBeaconingMultipleNeighbour primitive * @verdict Pass on success, Fail otherwise */ testcase tc_startBeaconingMultipleNeighbour() runs on TCType system TCType { test_PDU( m_startBeaconingMultipleNeighbour( m_beaconHeader(m_dummyLongPosVectorIut).beaconHeader, 3), true, oct2bit('01002b090028001000000000000a9421a4fedecabeef0001e240000012f8000002a300372694020e624800000003'O) // Check for 'LibItsGeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump ); } /** * @desc validate StopBeaconing primitive * @verdict Pass on success, Fail otherwise */ testcase tc_stopBeaconing() runs on TCType system TCType { test_PDU(m_stopBeaconing, true, oct2bit('010003060000'O)); } /** * @desc validate StopPassBeaconing primitive * @verdict Pass on success, Fail otherwise */ testcase tc_stopPassBeaconing() runs on TCType system TCType { test_PDU(m_stopPassBeaconing, true, oct2bit('010003080000'O)); } /** * @desc validate StopBeaconingMultipleNeighbour * @verdict Pass on success, Fail otherwise */ testcase tc_stopBeaconingMultipleNeighbour() runs on TCType system TCType { test_PDU(m_stopBeaconingMultipleNeighbour, true, oct2bit('0100030a0000'O)); } /** * @desc validate AcGetLongPosVector * @verdict Pass on success, Fail otherwise */ testcase tc_getLongPosVector() runs on TCType system TCType { test_PDU(m_getLongPosVector(m_dummyGnAddrIut), true, oct2bit('01000b0b00089421a4fedecabeef'O)); // Check log for TC_GEONW_FDV_COH_BV_01 TC to retrieve the frame } /** * @desc validate AcGnResponse * @verdict Pass on success, Fail otherwise */ testcase tc_longPosVector() runs on TCType system TCType { test_decodePDU(mw_getLongPosVectorAny(m_dummyGnAddrIut), '0300270c00249421a4fedecabeef000030aa000030aa000030aa000030aa000030aa000030aa000030aa'O); // Check log for TC_GEONW_FDV_COH_BV_01 TC to retrieve the frame } /** * @desc validate AcGnResponse with a NULL LongPosVector * @verdict Pass on success, Fail otherwise */ testcase tc_longPosVectorWithNullLongPosVector() runs on TCType system TCType { test_decodePDU(mw_getLongPosVectorAny(m_dummyGnAddrIut), '03000b0c00088400000000000001FFFFFFFFFFFF'O); // Check log for TC_GEONW_PON_LPV_BV_01 TC to retrieve the frame } } // End of group testAcPrimitives group testGeoNetPrimitiveMessages { /** * @desc validate GeoNetworkingReq/Beacon * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNetReq_Beacon() runs on TCType system TCType { var Header v_header := null; var octetstring v_buffer := '4d003c27003300100000000f000a9421a4fedecabeef0001e240000012f8000002a300372694020e624844454641554c545f5041594c4f4144ffffffffffff'O; // Check for 'LibItsIPv6GeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump if (PX_GN_UPPER_LAYER != e_any) { log("PX_GN_UPPER_LAYER shall be set to e_any"); stop; } test_PDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_beaconHeader( m_dummyLongPosVectorIut ))), false, oct2bit(v_buffer)); v_header := m_beaconHeader( m_dummyLongPosVectorIut ); v_header.beaconHeader.commonHeader.plLength := 15; test_decodePDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( v_header ) ), v_buffer ); } /** * @desc validate GeoNetworkingReq/Beacon from Hitachi GeoN daemon * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNetReq_Beacon_Hitachi() runs on TCType system TCType { test_decodePDU( mw_geoNwInd_withLinkLayerDestination(mw_geoNwPdu(mw_beaconHeader(?, ?, ?)), 'ffffffffffff'O), '4c002d270024001000000000000a9421a4fedecabeef0001e240000012f8000002a300372694020e6248ffffffffffff'O ); } /** * @desc validate GeoNetworkingReq/Beacon from NEC GeoN daemon * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNetReq_Beacon_NEC() runs on TCType system TCType { test_decodePDU( mw_geoNwInd_withLinkLayerDestination(mw_geoNwPdu(mw_beaconHeader_NEC(?, ?, ?)), 'ffffffffffff'O), '4c002d270024101000000000000100000000000000013d4d060500000000000000000000000000000000FFFFFFFFFFFF'O ); } /** * @desc validate GeoNetworkingReq/Anycast * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNetReq_Anycast() runs on TCType system TCType { var Header v_header := null; var octetstring v_buffer := '4d006c27006300300000000f000a9432a40102030405000011e90000007e0000007b002d007d001942091de62b009432a40102030405000011e90000007e0000007b002d007d0019420900048d8800007fe904d2162e23a3000044454641554c545f5041594c4f4144ffffffffffff'O; // Check for 'LibItsIPv6GeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump if (PX_GN_UPPER_LAYER != e_any) { log("PX_GN_UPPER_LAYER shall be set to e_any"); stop; } test_PDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_geoAnycastHeader( m_dummyLongPosVectorNodeB, m_dummyLongPosVectorNodeB, 7654, m_dummyGeoAnycastArea1))), false, oct2bit(v_buffer)); v_header := m_geoAnycastHeader( m_dummyLongPosVectorNodeB, m_dummyLongPosVectorNodeB, 7654, m_dummyGeoAnycastArea1); v_header.geoAnycastHeader.commonHeader.plLength := 15; test_decodePDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( v_header ) ), v_buffer ); } /** * @desc validate GeoNetworkingReq/Anycast with hop limit * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNetReq_Anycast_With_HopLimit() runs on TCType system TCType { var Header v_header := null; var octetstring v_buffer := '4d006c27006300310000000f0005942adeadbabebeef00005c5c00005cca0000c1ed006e001700123145029a2b00a431a4fdea5ea5ed0000036b000001090000031500500224000c5166000d544c00000b15223d10e111d7000044454641554c545f5041594c4f4144ffffffffffff'O; // Check for 'LibItsIPv6GeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump if (PX_GN_UPPER_LAYER != e_any) { log("PX_GN_UPPER_LAYER shall be set to e_any"); setverdict(inconc); stop; } test_PDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_geoAnycastHeaderWithHopLimit( m_dummyLongPosVectorNodeA, m_dummyLongPosVectorNodeC, 666, m_dummyGeoAnycastArea2, c_defaultHopLimit / 2))), false, oct2bit(v_buffer)); v_header := m_geoAnycastHeaderWithHopLimit( m_dummyLongPosVectorNodeA, m_dummyLongPosVectorNodeC, 666, m_dummyGeoAnycastArea2, c_defaultHopLimit / 2); v_header.geoAnycastHeader.commonHeader.plLength := 15; test_decodePDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( v_header ) ), v_buffer ); } /** * @desc validate GeoNetworkingReq/Unicast * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNetReq_Unicast() runs on TCType system TCType { var Header v_header := null; var octetstring v_buffer := '4d007027006700200000000f000a942adeadbabebeef00005c5c00005cca0000c1ed006e00170012314506162b00a431a4fdea5ea5ed0000036b000001090000031500500224000c51669421a4fedecabeef0001e240000012f8000002a344454641554c545f5041594c4f4144ffffffffffff'O; // Check for 'LibItsIPv6GeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump if (PX_GN_UPPER_LAYER != e_any) { log("PX_GN_UPPER_LAYER shall be set to e_any"); setverdict(inconc); stop; } // test_PDU( // m_geoNwReq_linkLayerBroadcast( // m_geoNwPdu( // m_geoUnicastHeader( // m_dummyLongPosVectorNodeA, // f_longPosVector2ShortPosVector(m_dummyLongPosVectorIut), // m_dummyLongPosVectorNodeC, // 1558))), // false, // oct2bit(v_buffer)); v_header := m_geoUnicastHeader( m_dummyLongPosVectorNodeA, f_longPosVector2ShortPosVector(m_dummyLongPosVectorIut), m_dummyLongPosVectorNodeC, 1558); v_header.geoUnicastHeader.commonHeader.plLength := 15; test_decodePDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( v_header ) ), v_buffer ); } /** * @desc validate GeoNetworkingReq/Unicast with hop limit * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNetReq_Unicast_With_HopLimit() runs on TCType system TCType { var Header v_header := null; var octetstring v_buffer := '4d007027006700200000000f0001942adeadbabebeef00005c5c00005cca0000c1ed006e001700123145029a2b00a431a4fdea5ea5ed0000036b000001090000031500500224000c51669421a4fedecabeef0001e240000012f8000002a344454641554c545f5041594c4f4144ffffffffffff'O; // Check for 'LibItsIPv6GeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump if (PX_GN_UPPER_LAYER != e_any) { log("PX_GN_UPPER_LAYER shall be set to e_any"); setverdict(inconc); stop; } test_PDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_geoUnicastHeaderWithHopLimit( m_dummyLongPosVectorNodeA, f_longPosVector2ShortPosVector(m_dummyLongPosVectorIut), m_dummyLongPosVectorNodeC, 666, 1))), false, oct2bit(v_buffer)); v_header := m_geoUnicastHeaderWithHopLimit( m_dummyLongPosVectorNodeA, f_longPosVector2ShortPosVector(m_dummyLongPosVectorIut), m_dummyLongPosVectorNodeC, 666, 1); v_header.geoUnicastHeader.commonHeader.plLength := 15; test_decodePDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( v_header ) ), v_buffer ); } /** * @desc validate GeoNetworkingReq/Unicast with payload * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNetReq_Unicast_With_BtpPayload() runs on TCType system TCType { var Header v_header := null; var octetstring v_buffer := '4d006827005f012000000007000a942adeadbabebeef00005c5c00005cca0000c1ed006e00170012314506162b00a431a4fdea5ea5ed0000036b000001090000031500500224000c51669421a4fedecabeef0001e240000012f8000002a35041594c4f4144ffffffffffff'O; // Check for 'LibItsIPv6GeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump if (PX_GN_UPPER_LAYER != e_btpA) { log("PX_GN_UPPER_LAYER shall be set to e_btpA"); setverdict(inconc); stop; } test_PDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPduWithPayload( m_geoUnicastHeaderBtp( m_dummyLongPosVectorNodeA, f_longPosVector2ShortPosVector(m_dummyLongPosVectorIut), m_dummyLongPosVectorNodeC, 1558 ), { decodedPayload := omit, rawPayload := char2oct("PAYLOAD") } // End of 'payload' field ) ), false, oct2bit(v_buffer)); v_header := m_geoUnicastHeaderBtp( m_dummyLongPosVectorNodeA, f_longPosVector2ShortPosVector(m_dummyLongPosVectorIut), m_dummyLongPosVectorNodeC, 1558); v_header.geoUnicastHeader.commonHeader.plLength := 7; test_decodePDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPduWithPayload( v_header, { decodedPayload := { btpPacket := m_btpA_With_Payload( 20545, 22860, omit, '4F4144'O ) }, rawPayload := char2oct("PAYLOAD") } // End of 'payload' field ) ), v_buffer ); } testcase tc_GeoNetReq_Unicast_With_BtpAWithPayload() runs on TCType system TCType { if (PX_GN_UPPER_LAYER != e_btpA) { log("PX_GN_UPPER_LAYER shall be set to e_btpA"); setverdict(inconc); stop; } test_decodePDU( mw_geoNwInd_withLinkLayerDestination( mw_geoNwPduWithPayload( mw_geoUnicastHeader(?, ?, ?), { decodedPayload := { btpPacket := mw_btpA_With_Payload( 3751, 3751, omit, '0EA70EA75041594C4F41445F31'O ) }, rawPayload := '0EA70EA70EA70EA75041594C4F41445F31'O } // End of 'payload' field ), 'deadbeef0000'O), '4c007227006f01200000001104004c00001e4f40d37e0000000017d7840005f5e10003e80000001400000002ee004c00001e4f40d37e0000000017d7840005f5e10003e80000001400001400deadbeef00013837b5f317d7f93005f5e1000ea70ea70ea70ea75041594c4f41445f31deadbeef0000'O); } /** * @desc validate GeoNetworkingReq/Unicast with IPv6 header * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNetReq_Unicast_With_IPv6Header() runs on TCType system TCType { var Ipv6Packet v_ipv6Packet := null; var Header v_header := null; var octetstring v_buffer := '4d00b12700a8032000000050000a942adeadbabebeef00005c5c00005cca0000c1ed006e00170012314506162b00a431a4fdea5ea5ed0000036b000001090000031500500224000c51669421a4fedecabeef0001e240000012f8000002a360000000002806ff2001061804000000000000005199cc70200106180001800000000000000000058c9b00506ae7073600000000a0021630299c00000204058c0402080a00dd1a390000000001030302ffffffffffff'O; // Check for 'LibItsIPv6GeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump if (PX_GN_UPPER_LAYER != e_ipv6) { log("PX_GN_UPPER_LAYER shall be set to e_ipv6"); setverdict(inconc); stop; } test_PDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPduWithPayload_ipv6( m_geoUnicastHeader( m_dummyLongPosVectorNodeA, f_longPosVector2ShortPosVector(m_dummyLongPosVectorIut), m_dummyLongPosVectorNodeC, 1558), m_ipv6Packet( // payload length = 40 '2001061804000000000000005199cc70'O, '20010618000180000000000000000005'O, 6, { octetstringMsg := '8c9b00506ae7073600000000a0021630299c00000204058c0402080a00dd1a390000000001030302'O } ), ''O ) ), false, oct2bit(v_buffer)); v_ipv6Packet := m_ipv6Packet( // payload length = 40 '2001061804000000000000005199cc70'O, '20010618000180000000000000000005'O, 6, { octetstringMsg := '8c9b00506ae7073600000000a0021630299c00000204058c0402080a00dd1a390000000001030302'O } ); v_ipv6Packet.ipv6Hdr.payloadLength := 40; v_header := m_geoUnicastHeader( m_dummyLongPosVectorNodeA, f_longPosVector2ShortPosVector(m_dummyLongPosVectorIut), m_dummyLongPosVectorNodeC, 1558); v_header.geoUnicastHeader.commonHeader.plLength := 80; test_decodePDU( mw_geoNwReq_linkLayerBroadcast( m_geoNwPduWithPayload_ipv6( v_header, v_ipv6Packet, '60000000002806FF2001061804000000000000005199CC70200106180001800000000000000000058C9B00506AE7073600000000A0021630299C00000204058C0402080A00DD1A390000000001030302'O ) ), v_buffer ); } testcase tc_GeoNetInd_UnicastWithBtpAPayload() runs on TCType system TCType { if (PX_GN_UPPER_LAYER != e_btpA) { log("PX_GN_UPPER_LAYER shall be set to e_btpA"); setverdict(inconc); stop; } test_decodePDU( mw_geoNwInd_withLinkLayerDestination( mw_geoNwPduWithPayload( mw_geoUnicastHeader(?, ?, ?), { decodedPayload := { btpPacket := mw_btpA_Without_Payload( 3751, 3751 ) }, rawPayload := '0EA70EA7'O } // End of 'payload' field ), 'deadbeef0000'O ), '4c006527006201200000000404004c00001e4f40d37e0000000017d7840005f5e10003e800000014000000021b004c00001e4f40d37e0000000017d7840005f5e10003e80000001400001400deadbeef00022a32332e17d7d22005f5e1000ea70ea7deadbeef0000'O); } /** * @desc validate GeoNetworkingReq/Broadcast with payload * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNetReq_Broadcast() runs on TCType system TCType { var Header v_header := null; var octetstring v_buffer := '4d006c27006300410000000f000aa431a4fdea5ea5ed0000036b000001090000031500500224000c516697592b00a431a4fdea5ea5ed0000036b000001090000031500500224000c516600048d8800007fe904d2162e23a3000044454641554c545f5041594c4f4144ffffffffffff'O; // Check for 'LibItsIPv6GeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump if (PX_GN_UPPER_LAYER != e_any) { log("PX_GN_UPPER_LAYER shall be set to e_any"); setverdict(inconc); stop; } test_PDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_geoBroadcastHeader( m_dummyLongPosVectorNodeA, m_dummyLongPosVectorNodeA, 38745, m_dummyGeoBroadcastArea1))), false, oct2bit(v_buffer)); v_header := m_geoBroadcastHeader( m_dummyLongPosVectorNodeA, m_dummyLongPosVectorNodeA, 38745, m_dummyGeoBroadcastArea1); v_header.geoBroadcastHeader.commonHeader.plLength := 15; test_decodePDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( v_header ) ), v_buffer ); } testcase tc_GeoNetReq_Broadcast_With_Payload() runs on TCType system TCType { var Header v_header := null; var octetstring v_buffer := '4d006427005b004200000007000aa431a4fdea5ea5ed0000036b000001090000031500500224000c516697592b00a431a4fdea5ea5ed0000036b000001090000031500500224000c5166000d544c00000b15223d10e111d700005041594c4f4144ffffffffffff'O; // Check for 'LibItsIPv6GeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump if (PX_GN_UPPER_LAYER != e_any) { log("PX_GN_UPPER_LAYER shall be set to e_any"); setverdict(inconc); stop; } test_PDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPduWithPayload( m_geoBroadcastHeader( m_dummyLongPosVectorNodeA, m_dummyLongPosVectorNodeA, 38745, m_dummyGeoBroadcastArea2 ), { decodedPayload := omit, rawPayload := char2oct("PAYLOAD") } // End of 'payload' field ) ), false, oct2bit(v_buffer)); v_header := m_geoBroadcastHeader( m_dummyLongPosVectorNodeA, m_dummyLongPosVectorNodeA, 38745, m_dummyGeoBroadcastArea2); v_header.geoBroadcastHeader.commonHeader.plLength := 7; test_decodePDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPduWithPayload( v_header, { decodedPayload := omit, rawPayload := char2oct("PAYLOAD") } // End of 'payload' field ) ), v_buffer ); } testcase tc_geoBroadcastWithSopvSepv() runs on TCType system TCType { if (PICS_GN_LOCAL_ADDR_CONF_METHOD != e_manual) { log("PICS_GN_LOCAL_ADDR_CONF_METHOD shall be set to e_manual"); setverdict(inconc); stop; } if (PX_GN_UPPER_LAYER != e_any) { log("PX_GN_UPPER_LAYER shall be set to e_any"); setverdict(inconc); stop; } test_decodePDU( mw_geoNwInd_withLinkLayerDestination( mw_geoNwPduWithPayload( mw_geoBroadcastHeader( mw_longPosVectorPosition_withDelta(m_dummyLongPosVectorIutSopvSepv), // SOPV mw_longPosVectorPosition_withDelta(m_dummyLongPosVectorIutSopvSepv), // SEPV 34154 // sequence number ), { decodedPayload := omit, rawPayload := '5041594C4F4144'O } // End of 'payload' field ), 'FFFFFFFFFFFF'O ), '4c006427005b004200000007000aa431a4fdea5ea5ed0000036b000001090000031500500224000c516697592b00a431a4fdea5ea5ed0000036b000001090000031500500224000c5166000d544c00000b15223d10e111d700005041594c4f4144ffffffffffff'O ); } /** * @desc validate GeoNetworkingReq/LsRequest * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNetReq_LsRequest() runs on TCType system TCType { var Header v_header := null; var octetstring v_buffer := '4d006427005b00600000000f000a9432a40102030405000011e90000007e0000007b002d007d0019420901f32b00a431a4fdea5ea5ed0000036b000001090000031500500224000c51669421a4fedecabeef44454641554c545f5041594c4f4144ffffffffffff'O; // Check for 'LibItsIPv6GeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump if (PX_GN_UPPER_LAYER != e_any) { log("PX_GN_UPPER_LAYER shall be set to e_any"); setverdict(inconc); stop; } test_PDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_lsRequestHeader( m_dummyLongPosVectorNodeA, m_dummyLongPosVectorNodeB, 499, m_dummyGnAddrIut))), false, oct2bit(v_buffer)); v_header := m_lsRequestHeader( m_dummyLongPosVectorNodeA, m_dummyLongPosVectorNodeB, 499, m_dummyGnAddrIut); v_header.lsRequestHeader.commonHeader.plLength := 15; test_decodePDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( v_header ) ), v_buffer ); } /** * @desc validate GeoNetworkingReq/LsReply * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNetReq_LsReply() runs on TCType system TCType { var Header v_header := null; var octetstring v_buffer := '4d007027006700610000000f000aa431a4fdea5ea5ed0000036b000001090000031500500224000c5166ec762b00a431a4fdea5ea5ed0000036b000001090000031500500224000c51669421a4fedecabeef0001e240000012f8000002a344454641554c545f5041594c4f4144ffffffffffff'O; // Check for 'LibItsIPv6GeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump if (PX_GN_UPPER_LAYER != e_any) { log("PX_GN_UPPER_LAYER shall be set to e_any"); setverdict(inconc); stop; } test_PDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_lsReplyHeader( m_dummyLongPosVectorNodeA, f_longPosVector2ShortPosVector(m_dummyLongPosVectorIut), m_dummyLongPosVectorNodeA, 60534))), false, oct2bit(v_buffer)); v_header := m_lsReplyHeader( m_dummyLongPosVectorNodeA, f_longPosVector2ShortPosVector(m_dummyLongPosVectorIut), m_dummyLongPosVectorNodeA, 60534); v_header.lsReplyHeader.commonHeader.plLength := 15; test_decodePDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( v_header ) ), v_buffer ); } /** * @desc validate GeoNetworkingReq/TSB Header * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNetReq_TsbHeader() runs on TCType system TCType { var Header v_header := null; var octetstring v_buffer := '4d005c27005300510000000f000aa431a4fdea5ea5ed0000036b000001090000031500500224000c516626942b00a431a4fdea5ea5ed0000036b000001090000031500500224000c516644454641554c545f5041594c4f4144ffffffffffff'O; // Check for 'LibItsIPv6GeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump if (PX_GN_UPPER_LAYER != e_any) { log("PX_GN_UPPER_LAYER shall be set to e_any"); setverdict(inconc); stop; } test_PDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_tsbHeader( m_dummyLongPosVectorNodeA, 9876, m_dummyLongPosVectorNodeA))), false, oct2bit(v_buffer)); v_header := m_tsbHeader( m_dummyLongPosVectorNodeA, 9876, m_dummyLongPosVectorNodeA); v_header.tsbHeader.commonHeader.plLength := 15; test_decodePDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( v_header ) ), v_buffer ); } /** * @desc validate GeoNetworkingReq/TSB Header with hop limit * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNetReq_TsbHeader_With_HopLimit() runs on TCType system TCType { var Header v_header := null; var octetstring v_buffer := '4d005c27005300510000000f004da431a4fdea5ea5ed0000036b000001090000031500500224000c5166223c2b00a431a4fdea5ea5ed0000036b000001090000031500500224000c516644454641554c545f5041594c4f4144ffffffffffff'O; // Check for 'LibItsIPv6GeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump if (PX_GN_UPPER_LAYER != e_any) { log("PX_GN_UPPER_LAYER shall be set to e_any"); setverdict(inconc); stop; } test_PDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_tsbHeaderWithHopLimit( m_dummyLongPosVectorNodeA, 8764, m_dummyLongPosVectorNodeA, 77))), false, oct2bit(v_buffer)); v_header := m_tsbHeaderWithHopLimit( m_dummyLongPosVectorNodeA, 8764, m_dummyLongPosVectorNodeA, 77); v_header.tsbHeader.commonHeader.plLength := 15; test_decodePDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( v_header ) ), v_buffer ); } /** * @desc validate GeoNetworkingReq/SHB Header * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNetReq_ShbHeader() runs on TCType system TCType { var Header v_header := null; var octetstring v_buffer := '4d003c27003300500000000f000a942adeadbabebeef00005c5c00005cca0000c1ed006e00170012314544454641554c545f5041594c4f4144ffffffffffff'O; // Check for 'LibItsIPv6GeoNetworking_TypesAndValues.encode:' output in codec traces to get the dump if (PX_GN_UPPER_LAYER != e_any) { log("PX_GN_UPPER_LAYER shall be set to e_any"); setverdict(inconc); stop; } test_PDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_shbHeader( m_dummyLongPosVectorNodeC))), false, oct2bit(v_buffer)); v_header := m_shbHeader( m_dummyLongPosVectorNodeC); v_header.shbHeader.commonHeader.plLength := 15; test_decodePDU( m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( v_header ) ), v_buffer ); } testcase tc_GeoNetInd_ShbHeaderWithBtpPayload() runs on TCType system TCType { if ((PX_GN_UPPER_LAYER != e_btpA) and (PX_GN_UPPER_LAYER != e_btpB)) { log("PX_GN_UPPER_LAYER shall be set to e_btpA or e_btpB"); setverdict(inconc); stop; } test_decodePDU( mw_geoNwInd_withLinkLayerDestination( mw_geoNwPduAnyPayload(mw_shbHeader), 'ffffffffffff'O ), '4c003727003401500000000404014c00001e4f40d37e0000000017d7840005f5e10003e80000001400000ea70ea7000000000000ffffffffffff'O); } testcase tc_GeoNetInd_ShbHeaderWithBtpPayloadCam() runs on TCType system TCType { if ((PX_GN_UPPER_LAYER != e_btpA) and (PX_GN_UPPER_LAYER != e_btpB)) { log("PX_GN_UPPER_LAYER shall be set to e_btpA or e_btpB"); setverdict(inconc); stop; } test_decodePDU( mw_geoNwInd_withLinkLayerDestination( mw_geoNwPduWithPayload( mw_shbHeaderWithLength(58), { decodedPayload := { btpPacket := mw_btpA_With_CamPayload(4321, 8765) }, // End of 'decodedPayload' field rawPayload := '10E1223D00000133256C5B1E40000248D6C0000000000000000009C40000002060080000003FFE83E80004000000000000007FFD7FFE00FFFFFF'O } ), 'ffffffffffff'O ), '4c006727006401500000003A04014c00001e4f40d37e0000000017d7840005f5e10003e800000014000010e1223d00000133256c5b1e40000248d6c0000000000000000009c40000002060080000003ffe83e80004000000000000007ffd7ffe00ffffffffffff'O); // 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 // 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 // 0 1 2 } testcase tc_GeoNetInd_ShbHeaderWithBtpPayloadTrunkatedCam() runs on TCType system TCType { if ((PX_GN_UPPER_LAYER != e_btpA) and (PX_GN_UPPER_LAYER != e_btpB)) { log("PX_GN_UPPER_LAYER shall be set to e_btpA or e_btpB"); setverdict(inconc); stop; } test_decodePDU( mw_geoNwInd_withLinkLayerDestination( mw_geoNwPduWithPayload( mw_shbHeaderWithLength(50), { decodedPayload := { btpPacket := mw_btpA_With_CamPayload(4321, 8765) }, // End of 'decodedPayload' field rawPayload := ''O } ), 'ffffffffffff'O ), '4c005F27005C01500000003204014c00001e4f40d37e0000000017d7840005f5e10003e800000014000010e1223d00000133256c5b1e40000248d6c009c40000002060080000003ffe83e80004000000000000007ffd7ffe00ffffffffffff'O); // 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 // 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 // 0 1 2 if (getverdict() == fail) { setverdict(pass); } else { setverdict(fail); } } /** * @desc validate GeoNetworkingInd/Beacon * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNetInd_Beacon() runs on TCType system TCType { test_decodePDU(mw_geoNwInd_withLinkLayerDestination(mw_geoNwPdu(mw_beaconHeader(?, 255, ?)), 'ffffffffffff'O), '4c002d27002400100000000000ffcc2aabcdefabcde24a27877900007eca000030aa000030aa000030aaFFFFFFFFFFFF'O); } /** * @desc validate GeoNetworkingInd/Beacon with a LsRequest frame * @verdict Fail on success, Pass otherwise */ testcase tc_GeoNetInd_Beacon_With_LsRequest_Frame() runs on TCType system TCType { test_decodePDU(mw_geoNwInd_withLinkLayerDestination(mw_geoNwPdu(mw_beaconHeader(?, 255, ?)), 'ffffffffffff'O), '4c005527004c00600000000000ff0042deadbeef00015484751042540000075400000010000000000000004233000042deadbeef000254847510425400000754000000100000000000000042deadbabebeefFFFFFFFFFFFF'O); } /** * @desc validate GeoNetworkingInd/LsRequest * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNetInd_LsRequest() runs on TCType system TCType { test_decodePDU(mw_geoNwInd_withLinkLayerDestination(mw_geoNwPdu(mw_lsRequestHeader(66, m_dummyGnAddrNodeC.mid)), 'ffffffffffff'O), '4c005527004c00600000000000ff0042deadbeef00015484751042540000075400000010000000000000004233000042deadbeef000254847510425400000754000000100000000000000042deadbabebeefFFFFFFFFFFFF'O); if (getverdict() == fail) { setverdict(pass); // The 'test_decodePDU' call shall fail } else { setverdict(fail); } } testcase tc_GeoNetInd_TestingTech() runs on TCType system TCType { test_decodePDU( mw_geoNwInd_withLinkLayerDestination(mw_geoNwPdu(mw_beaconHeader(?, ?, ?)), 'ffffffffffff'O), '4c002d27002a001000000000000a4c00deadbeef00024e0c0aa717d7d22005f5e10003e8000000140000ffffffffffff'O ); } testcase tc_GeoNetInd_Kapsch() runs on TCType system TCType { test_decodePDU( mw_geoNwInd_withLinkLayerDestination(mw_geoNwPdu(mw_beaconHeader(?, ?, ?)), 'ffffffffffff'O), '4c002d27002a0010000000000001169012014cd592dc0000000000000000000000000000000000000000ffffffffffff'O ); } } // End of testGeoNetPrimitiveMessages group testUtEvent { testcase tc_UtGnInitialize() runs on TCType system TCType { test_PDU(m_gnInitialize, false); } testcase tc_geoUnicast() runs on TCType system TCType { test_PDU(m_generateGeoUnicastMessage(m_dummyGnAddrIut), false); } testcase tc_geoUnicastWithLifetime() runs on TCType system TCType { test_PDU(m_generateGeoUnicastMessageWithLifetime(m_dummyGnAddrIut, 1000), false); } testcase tc_geoUnicastWithPayload() runs on TCType system TCType { test_PDU(m_generateGeoUnicastMessageWithPayload(m_dummyGnAddrIut, char2oct("PAYLOAD_1")), false); } testcase tc_geoBroadcast() runs on TCType system TCType { test_PDU(m_generateGeoBroadcastMessage({e_geoCircle, {2147483647, 2147483647, 65535, 65535, 65535}}), false); } testcase tc_geoBroadcastWithPayload() runs on TCType system TCType { test_PDU(m_generateGeoBroadcastMessageWithPayload({e_geoCircle, {2147483647, 2147483647, 65535, 65535, 65535}}, char2oct("PAYLOAD")), false); } testcase tc_geoAnycast() runs on TCType system TCType { test_PDU(m_generateGeoAnycastMessage({e_geoCircle, {2147483647, 2147483647, 65535, 65535, 65535}}), false); } testcase tc_geoAnycastWithPayload() runs on TCType system TCType { test_PDU(m_generateGeoAnycastMessageWithPayload({e_geoCircle, {2147483647, 2147483647, 65535, 65535, 65535}}, char2oct("PAYLOAD")), false); } testcase tc_shb() runs on TCType system TCType { test_PDU(m_generateShbMessage, false); } testcase tc_shbWithPayload() runs on TCType system TCType { test_PDU(m_generateShbMessageWithPayload(char2oct("PAYLOAD")), false); } testcase tc_tsb() runs on TCType system TCType { test_PDU(m_generateTsbMessage, false); } testcase tc_changePosition() runs on TCType system TCType { test_PDU(m_changePosition, false); } } // End of group testUtEvent } // End of group LibItsGeoNetworking_testCases } // End of module test_LibItsGeoNetworking_TypesAndValues