diff --git a/README.md b/README.md index eb19f9ad6cf8363f9954993cfad06c99536bee38..860da2813ec65fa90c39e4cb12152c93af4f7eb3 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ $ git checkout devel ITS Release 2 ```sh -$ git checkout ttf_t036 +$ git clone --recurse-submodules --branch=TTF_T036 https://forge.etsi.org/gitlab/ITS/TS.ITS.git ./TS.ITS ``` - Execute the installation script to setup the correct environment: diff --git a/TS.ITS_TTF_T036.code-workspace b/TS.ITS_TTF_T036.code-workspace index 01303776924ad832b29edb38313d15551729c053..7756dd061b3cbfd1b7510e1f5bd8ce8664f23554 100644 --- a/TS.ITS_TTF_T036.code-workspace +++ b/TS.ITS_TTF_T036.code-workspace @@ -3,32 +3,11 @@ { "path": "." }, - { - "path": "../../tmp/crypto-test-vectors" - }, - { - "path": "../../frameworks/openssl" - }, { "path": "../../frameworks/titan/titan.core" }, { "path": "../../frameworks/fsmsggen" - }, - { - "path": "../itscertgen" - }, - { - "path": "../../tmp/titan_etsi_its_per_issue" - }, - { - "path": "../../tmp/titan_5gngap_per_issue" - }, - { - "path": "../../tmp/test_cpp" - }, - { - "path": "../TS.ITS.pipeline-scripts" } ], "settings": { @@ -109,8 +88,19 @@ "unistd.h": "c", "msggen_mec.h": "c", "system.h": "c", - "netfwd": "cpp" + "netfwd": "cpp", + "msggen_comm.h": "c", + "time.h": "c", + "pthread.h": "c", + "msggen.h": "c", + "uri_port_utils.h": "c", + "uppertester.h": "c" }, "java.compile.nullAnalysis.mode": "automatic" + }, + "extensions": { + "recommendations": [ + "nokia.ttcn3" + ] } } \ No newline at end of file diff --git a/ccsrc/Externals/LibItsCommon_externals.cc b/ccsrc/Externals/LibItsCommon_externals.cc index 2a2c16fc4a416eb90784833d0612d1416b0a66c6..d191831c97c537fddd59a13147a79864d5548d7b 100644 --- a/ccsrc/Externals/LibItsCommon_externals.cc +++ b/ccsrc/Externals/LibItsCommon_externals.cc @@ -1,131 +1,168 @@ -#include "LibItsCommon_Functions.hh" -#include - -#include "base_time.hh" -#include "loggers.hh" - -#ifndef M_PI -#define M_PI 3.14159265358979323846 -#endif -#define earthRadius 6378137.0L -#define rbis = ((double)(earthRadius * M_PI / 180)) - -namespace LibItsCommon__Functions { - - /** - * @desc This external function gets the current time - * @return Timestamp - current time since 01/01/2004 in milliseconds - * @see fx_getCurrentTime() return TimestampIts - */ - INTEGER fx__getCurrentTime() { - INTEGER i; - i.set_long_long_val(base_time::get_instance().get_its_current_time_ms()); - loggers::get_instance().log_msg("<<< fx__getCurrentTime: ", i); - return i; - } - /** - * @desc This external function gets the current time since 01/01/1970 in UTC format - * @return The current time since 01/01/1970 in UTC format in milliseconds - * @see fx_getCurrentTimeUtc() return UInt64 - */ - INTEGER fx__getCurrentTimeUtc() { - INTEGER i; - i.set_long_long_val(base_time::get_instance().get_current_time_ms()); - loggers::get_instance().log_msg("<<< fx__getCurrentTimeUtc: ", i); - return i; - } - /** - * @desc Gets the current time since 01/01/2004 - * @return TimeMark - tenths of a second in the current or next hour in units of 1/10th second from UTC time - * @see function f_getCurrentTimeMark() return TimeMark - */ - INTEGER fx__getCurrentTimeMark() { - // TODO: this is just a sceleton. fill in the function - return 0; - } - - /** - * @desc Gets the Minute of current UTC year - * @return MinuteOfTheYear - tenths of a second in the current or next hour in units of 1/10th second from UTC time - * @see function f_getMinuteOfTheYear() return MinuteOfTheYear - */ - INTEGER fx__getMinuteOfTheYear() { - // TODO: this is just a sceleton. fill in the function - return 0; - } - - /** - * @desc Gets the milliseconds point in the current UTC minute - * @return DSecond - The milliseconds point in the current UTC minute (0..60000) - * @see function f_getDSecond() return DSecond - */ - INTEGER fx__getDSecond() { - // TODO: this is just a sceleton. fill in the function - return 0; - } - - /* * @desc External function to compute distance between two points - * @param p_latitudeA Latitude of first point - * @param p_longitudeA Longitude of first point - * @param p_latitudeB Latitude of second point - * @param p_longitudeB Longitude of second point - * @return Computed distance in meters - fx_computeDistance(in Int32 p_latitudeA, in Int32 p_longitudeA, in Int32 p_latitudeB, in Int32 p_longitudeB) return float; - */ - FLOAT fx__computeDistance(const INTEGER &p__latitudeA, const INTEGER &p__longitudeA, const INTEGER &p__latitudeB, const INTEGER &p__longitudeB) { - double d_latA = ((double)p__latitudeA) / 10000000.0; - double d_latB = ((double)p__latitudeB) / 10000000.0; - - double d_lonA = ((double)p__longitudeA) / 10000000.0; - double d_lonB = ((double)p__longitudeB) / 10000000.0; - - double d_lat = (d_latB - d_latA) * (M_PI / 180.0); - double d_lon = (d_lonB - d_lonA) * (M_PI / 180.0); - - double a = sin(d_lat / 2) * sin(d_lat / 2) + cos(d_latA * M_PI / 180.0) * cos(d_latB * M_PI / 180.0) * sin(d_lon / 2) * sin(d_lon / 2); - double c = 2 * atan2(sqrt(a), sqrt(1 - a)); - - return FLOAT(earthRadius * c); - } - - /* * @desc External function to compute a position using a reference position, a distance and an orientation - * @param p_iutLongPosVector Reference position - * @param p_distance Distance to the reference position (in meter) - * @param p_orientation Direction of the computed position (0 to 359; 0 means North) - * @param p_latitude Computed position's latitude - * @param p_longitude Computed position's longitude - fx_computePositionUsingDistance(in Int32 p_refLatitude,in Int32 p_refLongitude,in float p_distance,in integer p_orientation,out Int32 p_latitude,out Int32 - p_longitude); - */ - void fx__computePositionUsingDistance(const INTEGER &p__refLatitude, const INTEGER &p__refLongitude, const FLOAT &p__distance, const INTEGER &p__orientation, - INTEGER &p__latitude, INTEGER &p__longitude) { - double angularD = static_cast(p__distance) / earthRadius; - double radHeading = (double)static_cast(p__orientation) * M_PI / 180; - - // Convert to rad - double lat1 = ((double)static_cast(p__refLatitude) / 10000000) * M_PI / 180; - double long1 = ((double)static_cast(p__refLongitude) / 10000000) * M_PI / 180; - - double lat2 = asin(sin(lat1) * cos(angularD) + cos(lat1) * sin(angularD) * cos(radHeading)); - double long2 = long1 + atan2(sin(radHeading) * sin(angularD) * cos(lat1), cos(angularD) - sin(lat1) * sin(lat2)); - - // normalise to -180...+180 - long2 = fmod((long2 + 3 * M_PI), (2 * M_PI) - M_PI); - - // convert to 1/10 of microdegrees - long rlat2 = round(lat2 * 10000000 / M_PI * 180); - long rlong2 = round(long2 * 10000000 / M_PI * 180); - - p__latitude = rlat2; // asin(sin(ref_lat)*cos(distance) + cos(ref_lat)*sin(distance)*cos(angle)) * 180.0 / M_PI; - p__longitude = - rlong2; //((double)p__refLongitude) + atan2(sin(angle)*sin(distance)*cos(ref_lat), cos(distance) - sin(ref_lat)*sin((double)p__latitude))*(180.0/M_PI); - } - - /* * @desc External function to compute radius of a given circular area - * @param p_squareMeters Square meters of an circular area - * @return Computed radius in meters - fx_computeRadiusFromCircularArea(in float p_squareMeters) return float; - */ - FLOAT fx__computeRadiusFromCircularArea(const FLOAT &p__squareMeters) { return FLOAT(sqrt(p__squareMeters / M_PI)); } - -} // namespace LibItsCommon__Functions +#include "LibItsCommon_Functions.hh" +#include + +#include "base_time.hh" +#include "loggers.hh" + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif +#define earthRadius 6378137.0L +#define rbis = ((double)(earthRadius * M_PI / 180)) + +#define epsilon ((double)0.000001) + +namespace LibItsCommon__Functions { + + /** + * @desc This external function gets the current time + * @return Timestamp - current time since 01/01/2004 in milliseconds + * @see fx_getCurrentTime() return TimestampIts + */ + INTEGER fx__getCurrentTime() { + INTEGER i; + i.set_long_long_val(base_time::get_instance().get_its_current_time_ms()); + loggers::get_instance().log_msg("<<< fx__getCurrentTime: ", i); + return i; + } + /** + * @desc This external function gets the current time since 01/01/1970 in UTC format + * @return The current time since 01/01/1970 in UTC format in milliseconds + * @see fx_getCurrentTimeUtc() return UInt64 + */ + INTEGER fx__getCurrentTimeUtc() { + INTEGER i; + i.set_long_long_val(base_time::get_instance().get_current_time_ms()); + loggers::get_instance().log_msg("<<< fx__getCurrentTimeUtc: ", i); + return i; + } + /** + * @desc Gets the current time since 01/01/2004 + * @return TimeMark - tenths of a second in the current or next hour in units of 1/10th second from UTC time + * @see function f_getCurrentTimeMark() return TimeMark + */ + INTEGER fx__getCurrentTimeMark() { + // TODO: this is just a sceleton. fill in the function + return 0; + } + + /** + * @desc Gets the Minute of current UTC year + * @return MinuteOfTheYear - tenths of a second in the current or next hour in units of 1/10th second from UTC time + * @see function f_getMinuteOfTheYear() return MinuteOfTheYear + */ + INTEGER fx__getMinuteOfTheYear() { + // TODO: this is just a sceleton. fill in the function + return 0; + } + + /** + * @desc Gets the milliseconds point in the current UTC minute + * @return DSecond - The milliseconds point in the current UTC minute (0..60000) + * @see function f_getDSecond() return DSecond + */ + INTEGER fx__getDSecond() { + // TODO: this is just a sceleton. fill in the function + return 0; + } + + /* * @desc External function to compute distance between two points + * @param p_latitudeA Latitude of first point + * @param p_longitudeA Longitude of first point + * @param p_latitudeB Latitude of second point + * @param p_longitudeB Longitude of second point + * @return Computed distance in meters + fx_computeDistance(in Int32 p_latitudeA, in Int32 p_longitudeA, in Int32 p_latitudeB, in Int32 p_longitudeB) return float; + */ + FLOAT fx__computeDistance(const INTEGER &p__latitudeA, const INTEGER &p__longitudeA, const INTEGER &p__latitudeB, const INTEGER &p__longitudeB) { + double d_latA = ((double)p__latitudeA) / 10000000.0; + double d_latB = ((double)p__latitudeB) / 10000000.0; + + double d_lonA = ((double)p__longitudeA) / 10000000.0; + double d_lonB = ((double)p__longitudeB) / 10000000.0; + + double d_lat = (d_latB - d_latA) * (M_PI / 180.0); + double d_lon = (d_lonB - d_lonA) * (M_PI / 180.0); + + double a = sin(d_lat / 2) * sin(d_lat / 2) + cos(d_latA * M_PI / 180.0) * cos(d_latB * M_PI / 180.0) * sin(d_lon / 2) * sin(d_lon / 2); + double c = 2 * atan2(sqrt(a), sqrt(1 - a)); + + return FLOAT(earthRadius * c); + } + + /* * @desc External function to compute a position using a reference position, a distance and an orientation + * @param p_iutLongPosVector Reference position + * @param p_distance Distance to the reference position (in meter) + * @param p_orientation Direction of the computed position (0 to 359; 0 means North) + * @param p_latitude Computed position's latitude + * @param p_longitude Computed position's longitude + fx_computePositionUsingDistance(in Int32 p_refLatitude,in Int32 p_refLongitude,in float p_distance,in integer p_orientation,out Int32 p_latitude,out Int32 + p_longitude); + */ + void fx__computePositionUsingDistance(const INTEGER &p__refLatitude, const INTEGER &p__refLongitude, const FLOAT &p__distance, const INTEGER &p__orientation, + INTEGER &p__latitude, INTEGER &p__longitude) { + double angularD = static_cast(p__distance) / earthRadius; + double radHeading = (double)static_cast(p__orientation) * M_PI / 180; + + // Convert to rad + double lat1 = ((double)static_cast(p__refLatitude) / 10000000) * M_PI / 180; + double long1 = ((double)static_cast(p__refLongitude) / 10000000) * M_PI / 180; + + double lat2 = asin(sin(lat1) * cos(angularD) + cos(lat1) * sin(angularD) * cos(radHeading)); + double long2 = long1 + atan2(sin(radHeading) * sin(angularD) * cos(lat1), cos(angularD) - sin(lat1) * sin(lat2)); + + // normalise to -180...+180 + long2 = fmod((long2 + 3 * M_PI), (2 * M_PI) - M_PI); + + // convert to 1/10 of microdegrees + long rlat2 = round(lat2 * 10000000 / M_PI * 180); + long rlong2 = round(long2 * 10000000 / M_PI * 180); + + p__latitude = rlat2; // asin(sin(ref_lat)*cos(distance) + cos(ref_lat)*sin(distance)*cos(angle)) * 180.0 / M_PI; + p__longitude = + rlong2; //((double)p__refLongitude) + atan2(sin(angle)*sin(distance)*cos(ref_lat), cos(distance) - sin(ref_lat)*sin((double)p__latitude))*(180.0/M_PI); + } + + /* + * @desc External function to compute radius of a given circular area + * @param p_squareMeters Square meters of an circular area + * @return Computed radius in meters + fx_computeRadiusFromCircularArea(in float p_squareMeters) return float; + */ + FLOAT fx__computeRadiusFromCircularArea(const FLOAT &p__squareMeters) { return FLOAT(sqrt(p__squareMeters / M_PI)); } + + // Verifiy 'euclidian distance (P1, P2) > minReferencePointPositonChangeThreshold' + BOOLEAN fx__verify__euclidian__distance(const INTEGER& p__p1__lat, const INTEGER& p__p1__lon, const INTEGER& p__p2__lat, const INTEGER& p__p2__lon, const FLOAT& p__threshold, const INTEGER& p__comparison) { + + double v = sqrt( + ( + (double)static_cast(p__p2__lat) * (double)static_cast(p__p2__lat) - (double)static_cast(p__p1__lat) * (double)static_cast(p__p1__lat) + ) + + ( + (double)static_cast(p__p2__lon) * (double)static_cast(p__p2__lon) - (double)static_cast(p__p1__lon) * (double)static_cast(p__p1__lon) + ) + ); + + if (p__comparison == 0) { + return abs(v - (double)static_cast(p__threshold)) < epsilon; + } else if (p__comparison == -1) { + return ((double)static_cast(p__threshold) - v) < -epsilon; + } else { + return ((double)static_cast(p__threshold) - v) > epsilon; + } + } + + BOOLEAN fx__verify__delta(const INTEGER& p__v1, const INTEGER& p__v2, const FLOAT& p__threshold, const INTEGER& p__comparison) { + + double v = (double)static_cast(p__v2) - (double)static_cast(p__v1); + + if (p__comparison == 0) { + return abs(v - (double)static_cast(p__threshold)) < epsilon; + } else if (p__comparison == -1) { + return ((double)static_cast(p__threshold) - v) < -epsilon; + } else { + return ((double)static_cast(p__threshold) - v) > epsilon; + } + } + +} // namespace LibItsCommon__Functions diff --git a/ccsrc/Ports/LibIts_ports/AdapterControlPort.hh b/ccsrc/Ports/LibIts_ports/AdapterControlPort.hh index 1a028802e2528790d34900c5e2733c74ecce773a..ad5cbb0b6cd33ea614078006a3d9bf0e963df52a 100644 --- a/ccsrc/Ports/LibIts_ports/AdapterControlPort.hh +++ b/ccsrc/Ports/LibIts_ports/AdapterControlPort.hh @@ -61,7 +61,7 @@ #ifdef LibItsGeoNetworking__TestSystem_HH #include "AdapterControlPort_GN.hh" #endif -#ifdef LibItsCru__TestSystem_HH +#ifdef LibItsVru__TestSystem_HH #include "AdapterControlPort_VRU.hh" #endif #ifdef LibItsCps__TestSystem_HH diff --git a/ccsrc/Ports/LibIts_ports/CPS_ports/UpperTesterPort_CPS.cc b/ccsrc/Ports/LibIts_ports/CPS_ports/UpperTesterPort_CPS.cc index 698a824a24028bdde384a1e1cda496a25f34e83f..8c9f359bcaf71b15dedc241365324a5ed46ec532 100644 --- a/ccsrc/Ports/LibIts_ports/CPS_ports/UpperTesterPort_CPS.cc +++ b/ccsrc/Ports/LibIts_ports/CPS_ports/UpperTesterPort_CPS.cc @@ -41,10 +41,10 @@ namespace LibItsCps__TestSystem { if (it != _cfg_params.end()) { loggers::get_instance().log("UpperTesterPort_Cps::user_map: %s", it->second.c_str()); _layer = layer_stack_builder::get_instance()->create_layer_stack(it->second.c_str()); - if (static_cast(_layer) == NULL) { + if (static_cast(_layer) == NULL) { loggers::get_instance().error("UpperTesterPort_Cps::user_map: Invalid stack configuration: %s", it->second.c_str()); } - static_cast(_layer)->add_upper_port(this); + static_cast(_layer)->add_upper_port(this); } else { loggers::get_instance().error("UpperTesterPort_Cps::user_map: No layers defined in configuration file"); } @@ -67,7 +67,16 @@ namespace LibItsCps__TestSystem { float duration; loggers::get_instance().set_start_time(_time_key); - static_cast(_layer)->sendMsg(send_par, _layer_params); + static_cast(_layer)->sendMsg(send_par, _layer_params); + loggers::get_instance().set_stop_time(_time_key, duration); + } + + void UpperTesterPort::outgoing_send(const LibItsCps__TypesAndValues::UtCpmTrigger &send_par) { + loggers::get_instance().log_msg(">>> UpperTesterPort_Cps::outgoing_send: ", send_par); + + float duration; + loggers::get_instance().set_start_time(_time_key); + static_cast(_layer)->sendMsg(send_par, _layer_params); loggers::get_instance().set_stop_time(_time_key, duration); } diff --git a/ccsrc/Ports/LibIts_ports/CPS_ports/UpperTesterPort_CPS.hh b/ccsrc/Ports/LibIts_ports/CPS_ports/UpperTesterPort_CPS.hh index c26276a281f75b2997844804366beebb566e2f0a..8106970231828b4f008f0e78e523919323754da2 100644 --- a/ccsrc/Ports/LibIts_ports/CPS_ports/UpperTesterPort_CPS.hh +++ b/ccsrc/Ports/LibIts_ports/CPS_ports/UpperTesterPort_CPS.hh @@ -6,6 +6,7 @@ //============================================================================= #include "LibItsCps_TestSystem.hh" + namespace LibItsCps__TestSystem { class UpperTesterPort : public UpperTesterPort_BASE { @@ -37,6 +38,7 @@ namespace LibItsCps__TestSystem { void user_stop(); void outgoing_send(const LibItsCps__TypesAndValues::UtCpmInitialize &send_par); + void outgoing_send(const LibItsCps__TypesAndValues::UtCpmTrigger &send_par); }; } // namespace LibItsCps__TestSystem diff --git a/ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorLayer.cc b/ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorLayer.cc index 448e0b37ad6018065b52af6581c9c2509dc7dbdc..a3500cb7c4e844bd663956d316827035d694003d 100644 --- a/ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorLayer.cc +++ b/ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorLayer.cc @@ -450,6 +450,9 @@ void ConfigRsuSimulatorLayer::sendMsg(const LibItsVru__TypesAndValues::UtVamResu if (send_par.ischosen(LibItsVru__TypesAndValues::UtVamResults::ALT_utVamInitializeResult)) { encoding_buffer.put_c(static_cast(uppertester_vru_codec::c_utVamInitializeResult)); encoding_buffer.put_c((uint8_t)static_cast(send_par.utVamInitializeResult())); + } else if (send_par.ischosen(LibItsVru__TypesAndValues::UtVamResults::ALT_utVamTriggerResult)) { + encoding_buffer.put_c(static_cast(uppertester_vru_codec::c_utVamTriggerResult)); + encoding_buffer.put_c((uint8_t)static_cast(send_par.utVamTriggerResult())); } else { loggers::get_instance().warning("ConfigRsuSimulatorLayer::sendMsg: Unsupported UtVamResults variant"); return; @@ -529,6 +532,10 @@ void ConfigRsuSimulatorLayer::receive_data(OCTETSTRING &data, params ¶ms) { } else if ((id == uppertester_pki_codec::c_utPkiTriggerEnrolmentRequest) || (id == uppertester_pki_codec::c_utPkiTriggerAuthorizationRequest)) { // Receive an UtPkiTrigger process_ut_pki_trigger(data, params); + } else if (id == uppertester_vru_codec::c_utVamTrigger) { // Receive an UtMbrTrigger + process_ut_vam_trigger(data, params); + } else if (id == uppertester_cps_codec::c_utCpmTrigger) { // Receive an UtMbrTrigger + process_ut_cpm_trigger(data, params); } else if (id == uppertester_mbr_codec::c_utMbrTrigger) { // Receive an UtMbrTrigger process_ut_mbr_trigger(data, params); } else { @@ -590,6 +597,16 @@ int ConfigRsuSimulatorLayer::process_utinitialize_data(const OCTETSTRING &data, LibItsMbr__TypesAndValues::UtMbrInitialize p(hashedId); // Pass it to the ports if any to_all_upper_ports(p, params); + } else if (_params[std::string("ut")].compare("vam") == 0) { + OCTETSTRING hashedId(data.lengthof() - 1, 1 + static_cast(data)); + LibItsVru__TypesAndValues::UtVamInitialize p(hashedId); + // Pass it to the ports if any + to_all_upper_ports(p, params); + } else if (_params[std::string("ut")].compare("cpm") == 0) { + OCTETSTRING hashedId(data.lengthof() - 1, 1 + static_cast(data)); + LibItsCps__TypesAndValues::UtCpmInitialize p(hashedId); + // Pass it to the ports if any + to_all_upper_ports(p, params); } else { loggers::get_instance().warning("ConfigRsuSimulatorLayer::process_utinitialize_data: Unsupported protocol"); return -1; @@ -824,7 +841,7 @@ int ConfigRsuSimulatorLayer::process_ut_denm_update(const OCTETSTRING &data, par p += 3; // Situation if ((flag & 0x40) == 0x40) { - DENM__PDU__Descriptions::SituationContainer &s = static_cast(*update.get_opt_value()); + DENM__PDU__Descriptions::SituationContainer s; s.informationQuality() = oct2int(OCTETSTRING(1, p++)); ETSI__ITS__CDD::CauseCodeChoice causeCodeChoice; int cause = oct2int(OCTETSTRING(1, p++)); @@ -1582,6 +1599,81 @@ int ConfigRsuSimulatorLayer::process_ut_rtcmem_termination(const OCTETSTRING &da return 0; } +int ConfigRsuSimulatorLayer::process_ut_vam_trigger(const OCTETSTRING &data, params ¶ms) { + loggers::get_instance().log_msg(">>> ConfigRsuSimulatorLayer::process_ut_vam_trigger", data); + + params::const_iterator it = _params.find("ut"); + if (it == _params.cend()) { + loggers::get_instance().warning("ConfigRsuSimulatorLayer::process_ut_vam_trigger: CF layer's ut parameter is missing"); + return -1; + } + + if (_params[std::string("ut")].compare("vam") == 0) { + uint8_t *p = (uint8_t *)static_cast(data); + uint8_t msg_id = *p++; + loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_vam_trigger: msg_id=%02x", msg_id); + uint8_t flag = *p++; + loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_vam_trigger: flag=%02x", flag); + LibItsVru__TypesAndValues::UtVamTrigger trigger; + // Decode msgs + if ((flag & 0x80) == 0x80) { + trigger.setVruProfile() = *p; + } + if ((flag & 0x40) == 0x40) { + trigger.leaveClusterWithCause() = *p; + } + if ((flag & 0x20) == 0x20) { + trigger.setVbsState() = *p; + } + loggers::get_instance().log_msg("ConfigRsuSimulatorLayer::process_ut_vam_trigger: ", trigger); + + // Pass it to the ports if any + to_all_upper_ports(trigger, params); + } else { + loggers::get_instance().warning("ConfigRsuSimulatorLayer::process_ut_vam_trigger: Unsupported protocol"); + return -1; + } + + return 0; +} + +int ConfigRsuSimulatorLayer::process_ut_cpm_trigger(const OCTETSTRING &data, params ¶ms) { + loggers::get_instance().log_msg(">>> ConfigRsuSimulatorLayer::process_ut_cpm_trigger", data); + + params::const_iterator it = _params.find("ut"); + if (it == _params.cend()) { + loggers::get_instance().warning("ConfigRsuSimulatorLayer::process_ut_cpm_trigger: CF layer's ut parameter is missing"); + return -1; + } + + if (_params[std::string("ut")].compare("cpm") == 0) { + uint8_t *p = (uint8_t *)static_cast(data); + uint8_t msg_id = *p++; + loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_cpm_trigger: msg_id=%02x", msg_id); + uint8_t flag = *p++; + loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_cpm_trigger: flag=%02x", flag); + LibItsCps__TypesAndValues::UtCpmTrigger trigger; + // Decode msgs + if ((flag & 0x80) == 0x80) { + trigger.setVehicleRole() = *p; + } + // if ((flag & 0x40) == 0x40) { + // trigger.leaveClusterWithCause() = *p; + // } + loggers::get_instance().log_msg("ConfigRsuSimulatorLayer::process_ut_cpm_trigger: ", trigger); + + // Pass it to the ports if any + to_all_upper_ports(trigger, params); + } else { + loggers::get_instance().warning("ConfigRsuSimulatorLayer::process_ut_cpm_trigger: Unsupported protocol"); + return -1; + } + + return 0; +} + + + int ConfigRsuSimulatorLayer::set_cause_code_choice(const int p_cause, ETSI__ITS__CDD::CauseCodeChoice& p_causeCodeChoice) { loggers::get_instance().log(">>> ConfigRsuSimulatorLayer::set_cause_code_choice: %d", p_cause); @@ -1620,18 +1712,15 @@ int ConfigRsuSimulatorLayer::set_cause_code_choice(const int p_cause, ETSI__ITS_ case ETSI__ITS__CDD::CauseCodeChoice::ALT_wrongWayDriving14: p_causeCodeChoice.wrongWayDriving14() = ETSI__ITS__CDD::CauseCodeChoice::ALT_wrongWayDriving14; break; + case ETSI__ITS__CDD::CauseCodeChoice::ALT_slowVehicle26: + p_causeCodeChoice.slowVehicle26() = ETSI__ITS__CDD::CauseCodeChoice::ALT_slowVehicle26; + break; case ETSI__ITS__CDD::CauseCodeChoice::ALT_rescueAndRecoveryWorkInProgress15: p_causeCodeChoice.rescueAndRecoveryWorkInProgress15() = ETSI__ITS__CDD::CauseCodeChoice::ALT_rescueAndRecoveryWorkInProgress15; break; - - - - - - - - - + case ETSI__ITS__CDD::CauseCodeChoice::ALT_vehicleBreakdown91: + p_causeCodeChoice.vehicleBreakdown91() = ETSI__ITS__CDD::CauseCodeChoice::ALT_vehicleBreakdown91; + break; default: loggers::get_instance().error("ConfigRsuSimulatorLayer::set_cause_code_choice: Unsupported cause: %d", p_cause); return -1; diff --git a/ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorLayer.hh b/ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorLayer.hh index c167496692d075100875947c3e589b1e5d8a4e43..41d7a32c28a6bbd312dcfb71afb3e0bbae8a1fbf 100644 --- a/ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorLayer.hh +++ b/ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorLayer.hh @@ -96,5 +96,8 @@ private: int process_ut_rtcmem_trigger(const OCTETSTRING &data, params ¶ms); int process_ut_rtcmem_update(const OCTETSTRING &data, params ¶ms); int process_ut_rtcmem_termination(const OCTETSTRING &data, params ¶ms); + int process_ut_vam_trigger(const OCTETSTRING &data, params ¶ms); + int process_ut_cpm_trigger(const OCTETSTRING &data, params ¶ms); + int set_cause_code_choice(const int p_cause, ETSI__ITS__CDD::CauseCodeChoice& p_causeCodeChoice); }; // End of class ConfigRsuSimulatorLayer diff --git a/ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorPort.cc b/ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorPort.cc index 5ed988636ffb90817b3715f10cdbb873b9b1c88c..d5eef65dcd20cfd56f49c01fb9eb990b7a1620e7 100644 --- a/ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorPort.cc +++ b/ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorPort.cc @@ -601,6 +601,16 @@ namespace ItsRSUsSimulator__TestSystem { incoming_message(p_ind); } + void ConfigRsuSimulatorPort::receiveMsg(const LibItsCps__TypesAndValues::UtCpmTrigger &p_ind, const params &p_params) { + loggers::get_instance().log_msg(">>> ConfigRsuSimulatorPort::receive_msg: ", p_ind); + // Sanity check + if (!p_ind.is_bound()) { + return; + } + + incoming_message(p_ind); + } + void ConfigRsuSimulatorPort::receiveMsg(const LibItsVru__TypesAndValues::UtVamInitialize &p_ind, const params &p_params) { loggers::get_instance().log_msg(">>> ConfigRsuSimulatorPort::receive_msg: ", p_ind); // Sanity check @@ -611,4 +621,14 @@ namespace ItsRSUsSimulator__TestSystem { incoming_message(p_ind); } + void ConfigRsuSimulatorPort::receiveMsg(const LibItsVru__TypesAndValues::UtVamTrigger &p_ind, const params &p_params) { + loggers::get_instance().log_msg(">>> ConfigRsuSimulatorPort::receive_msg: ", p_ind); + // Sanity check + if (!p_ind.is_bound()) { + return; + } + + incoming_message(p_ind); + } + } // namespace ItsRSUsSimulator__TestSystem diff --git a/ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorPort.hh b/ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorPort.hh index a7495b245bcbcc274b1018ea3d3086b66bb031b3..660e95b211a5401fd81bec6b948bc7ff0fe9fb78 100644 --- a/ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorPort.hh +++ b/ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorPort.hh @@ -48,7 +48,9 @@ namespace ItsRSUsSimulator__TestSystem { void receiveMsg(const LibItsRtcmem__TypesAndValues::UtRtcmemUpdate &p_ind, const params &p_params); void receiveMsg(const LibItsRtcmem__TypesAndValues::UtRtcmemTermination &p_ind, const params &p_params); void receiveMsg(const LibItsCps__TypesAndValues::UtCpmInitialize &p_ind, const params &p_params); + void receiveMsg(const LibItsCps__TypesAndValues::UtCpmTrigger &p_ind, const params &p_params); void receiveMsg(const LibItsVru__TypesAndValues::UtVamInitialize &p_ind, const params &p_params); + void receiveMsg(const LibItsVru__TypesAndValues::UtVamTrigger &p_ind, const params &p_params); /*void send(const CfInitialize& send_par, const COMPONENT& destination_component); void send(const CfInitialize& send_par); diff --git a/ccsrc/Ports/LibIts_ports/UpperTesterPort.hh b/ccsrc/Ports/LibIts_ports/UpperTesterPort.hh index 240b512cf9bcbd095d13f366bc631882424158a6..9342260d20766a50351e561e5a434b086f28a038 100644 --- a/ccsrc/Ports/LibIts_ports/UpperTesterPort.hh +++ b/ccsrc/Ports/LibIts_ports/UpperTesterPort.hh @@ -63,6 +63,7 @@ #ifdef AtsCPS #include "BTP_ports/UpperTesterPort_BTP.hh" +#include "CAM_ports/UpperTesterPort_CAM.hh" #include "CPS_ports/UpperTesterPort_CPS.hh" #include "GN_ports/UpperTesterPort_GN.hh" #endif @@ -158,6 +159,7 @@ #ifdef AtsCPS #include "UpperTesterPort_BTP.hh" +#include "UpperTesterPort_CAM.hh" #include "UpperTesterPort_CPS.hh" #include "UpperTesterPort_GN.hh" #endif diff --git a/ccsrc/Ports/LibIts_ports/VRU_ports/UpperTesterPort_VRU.cc b/ccsrc/Ports/LibIts_ports/VRU_ports/UpperTesterPort_VRU.cc index 74f19dac78679c980c296c01d798b176eb7f6598..aa31b36bdd986e12b918ac6763f3a01ac6fb266a 100644 --- a/ccsrc/Ports/LibIts_ports/VRU_ports/UpperTesterPort_VRU.cc +++ b/ccsrc/Ports/LibIts_ports/VRU_ports/UpperTesterPort_VRU.cc @@ -41,10 +41,10 @@ namespace LibItsVru__TestSystem { if (it != _cfg_params.end()) { loggers::get_instance().log("UpperTesterPort_Vru::user_map: %s", it->second.c_str()); _layer = layer_stack_builder::get_instance()->create_layer_stack(it->second.c_str()); - if (static_cast(_layer) == NULL) { + if (static_cast(_layer) == NULL) { loggers::get_instance().error("UpperTesterPort_Vru::user_map: Invalid stack configuration: %s", it->second.c_str()); } - static_cast(_layer)->add_upper_port(this); + static_cast(_layer)->add_upper_port(this); } else { loggers::get_instance().error("UpperTesterPort_Vru::user_map: No layers defined in configuration file"); } @@ -67,7 +67,16 @@ namespace LibItsVru__TestSystem { float duration; loggers::get_instance().set_start_time(_time_key); - static_cast(_layer)->sendMsg(send_par, _layer_params); + static_cast(_layer)->sendMsg(send_par, _layer_params); + loggers::get_instance().set_stop_time(_time_key, duration); + } + + void UpperTesterPort::outgoing_send(const LibItsVru__TypesAndValues::UtVamTrigger &send_par) { + loggers::get_instance().log_msg(">>> UppertesterPort_Vru::outgoing_send: ", send_par); + + float duration; + loggers::get_instance().set_start_time(_time_key); + static_cast(_layer)->sendMsg(send_par, _layer_params); loggers::get_instance().set_stop_time(_time_key, duration); } diff --git a/ccsrc/Ports/LibIts_ports/VRU_ports/UpperTesterPort_VRU.hh b/ccsrc/Ports/LibIts_ports/VRU_ports/UpperTesterPort_VRU.hh index b03f67fb4371dd1307ec3dd5e0a28d0b10b73e5b..2ebd9365ce258488faf3edd077a7879ffe801874 100644 --- a/ccsrc/Ports/LibIts_ports/VRU_ports/UpperTesterPort_VRU.hh +++ b/ccsrc/Ports/LibIts_ports/VRU_ports/UpperTesterPort_VRU.hh @@ -37,6 +37,7 @@ namespace LibItsVru__TestSystem { void user_stop(); void outgoing_send(const LibItsVru__TypesAndValues::UtVamInitialize &send_par); + void outgoing_send(const LibItsVru__TypesAndValues::UtVamTrigger &send_par); }; } // namespace LibItsVru__TestSystem diff --git a/ccsrc/Ports/LibIts_ports/VRU_ports/VruPort.cc b/ccsrc/Ports/LibIts_ports/VRU_ports/VruPort.cc index 71343dca0150c651e1be79b421360d0a9987fb6f..eb7789e93b5097be4d8c7d161a1bc85a0662a1c3 100644 --- a/ccsrc/Ports/LibIts_ports/VRU_ports/VruPort.cc +++ b/ccsrc/Ports/LibIts_ports/VRU_ports/VruPort.cc @@ -82,7 +82,7 @@ namespace LibItsVru__TestSystem { void VruPort::receiveMsg(const LibItsVru__TypesAndValues::VamInd &p_ind, const params& p_params) { //loggers::get_instance().log_msg(">>> VruPort::receive_msg: ", p_ind); const params_its& p = static_cast(p_params); - loggers::get_instance().log(">>> VruPort::receive_msg: %s", p.station_id.c_str()); + //loggers::get_instance().log(">>> VruPort::receive_msg: %s", p.station_id.c_str()); incoming_message(p_ind); } diff --git a/ccsrc/Protocols/CAM/cam_codec.cc b/ccsrc/Protocols/CAM/cam_codec.cc index 5dc0daef14d5f3c26138326e6be5a2d8fe37e0b0..815d294aa0bf6a53a87ae7ad3a7459443e730e58 100644 --- a/ccsrc/Protocols/CAM/cam_codec.cc +++ b/ccsrc/Protocols/CAM/cam_codec.cc @@ -8,7 +8,7 @@ int cam_codec::encode(const CAM__PDU__Descriptions::CAM &cam, OCTETSTRING &data) BITSTRING b; int rc = asn_codec.encode(cam, b); - if (rc) { + if (rc != -1) { data = bit2oct(b); loggers::get_instance().log_msg("cam_codec::encode: ", data); } @@ -20,7 +20,7 @@ int cam_codec::decode(const OCTETSTRING &data, CAM__PDU__Descriptions::CAM &cam, int rc = asn_codec.decode(oct2bit(data), cam); loggers::get_instance().log("cam_codec::decode: ASN.1 codec returned %d", rc); - if (rc) { + if (rc != -1) { loggers::get_instance().log_msg("cam_codec::decode: ", cam); } return rc; diff --git a/ccsrc/Protocols/CAM_layers/cam_layer.cc b/ccsrc/Protocols/CAM_layers/cam_layer.cc index 8a64a99dcf764547f3f2fb94626d893dcf7cf549..8fb3808200974d5e914d635ba4d39117772ae009 100644 --- a/ccsrc/Protocols/CAM_layers/cam_layer.cc +++ b/ccsrc/Protocols/CAM_layers/cam_layer.cc @@ -13,8 +13,8 @@ cam_layer::cam_layer(const std::string &p_type, const std::string ¶m) : t_la loggers::get_instance().log(">>> cam_layer::cam_layer: %s, %s", to_string().c_str(), param.c_str()); // Setup parameters params::convert(_params, param); - _params.insert(std::make_pair("its_aid", "36")); // ETSI TS 102 965 V2.1.1 (2021-11) - _params.insert(std::make_pair("payload_type", "2")); // CA message id - See ETSI TS 102 894 + _params.insert(std::make_pair(static_cast(params_its::its_aid), "36")); // ETSI TS 102 965 V2.1.1 (2021-11) + _params.insert(std::make_pair(static_cast(params_its::payload_type), "2")); // CA message id - See ETSI TS 102 894 // Register this object for AdapterControlPort loggers::get_instance().log("cam_layer::cam_layer: Register %s/%p", p_type.c_str(), this); diff --git a/ccsrc/Protocols/CPS/cps_codec.cc b/ccsrc/Protocols/CPS/cps_codec.cc index 7735feff6ccb162359f51ff4fff4866dbdffefce..e64de86de9d9d379d944a7235ea1456a0fb98a80 100644 --- a/ccsrc/Protocols/CPS/cps_codec.cc +++ b/ccsrc/Protocols/CPS/cps_codec.cc @@ -8,7 +8,7 @@ int cps_codec::encode(const CPM__PDU__Descriptions::CollectivePerceptionMessage BITSTRING b; int rc = asn_codec.encode(cps, b); - if (rc) { + if (rc != -1) { data = bit2oct(b); loggers::get_instance().log_msg("cps_codec::encode: ", data); } @@ -20,7 +20,7 @@ int cps_codec::decode(const OCTETSTRING &data, CPM__PDU__Descriptions::Collectiv int rc = asn_codec.decode(oct2bit(data), cps); loggers::get_instance().log("cps_codec::decode: ASN.1 codec returned %d", rc); - // if (rc) { + // if (rc != -1) { // loggers::get_instance().log_msg("cps_codec::decode: ", static_cast(cps)); // } return rc; diff --git a/ccsrc/Protocols/CPS_layers/cps_layer.cc b/ccsrc/Protocols/CPS_layers/cps_layer.cc index 07030cbee78cc345f6c1f2691b9930c3dfc4255d..4f06494e0ecb9f22a2386f35eeb08dc2d86bc7d7 100644 --- a/ccsrc/Protocols/CPS_layers/cps_layer.cc +++ b/ccsrc/Protocols/CPS_layers/cps_layer.cc @@ -13,8 +13,8 @@ cps_layer::cps_layer(const std::string &p_type, const std::string ¶m) : t_la loggers::get_instance().log(">>> cps_layer::cps_layer: %s, %s", to_string().c_str(), param.c_str()); // Setup parameters params::convert(_params, param); - _params.insert(std::make_pair("its_aid", "639")); // ETSI TS 102 965 V2.1.1 (2021-11) - _params.insert(std::make_pair("payload_type", "2")); // CP message id - See ETSI TS 102 894 + _params.insert(std::make_pair(static_cast(params_its::its_aid), "639")); // ETSI TS 102 965 V2.1.1 (2021-11) + _params.insert(std::make_pair(static_cast(params_its::payload_type), "14")); // CP message id - See ETSI TS 102 894 // Register this object for AdapterControlPort loggers::get_instance().log("cps_layer::cps_layer: Register %s/%p", p_type.c_str(), this); @@ -44,7 +44,7 @@ void cps_layer::receive_data(OCTETSTRING &data, params &p_params) { loggers::get_instance().log_msg(">>> cps_layer::receive_data: ", data); // Sanity check - if (*(static_cast(data) + 1) != 0x02) { // Check that received packet has CA message id - See ETSI TS 102 894 + if (*(static_cast(data) + 1) != 0x0E) { // Check that received packet has CA message id - See ETSI TS 102 894 // Not a CPS message, discard it loggers::get_instance().warning("cps_layer::receive_data: Wrong message id: 0x%02x", *(static_cast(data) + 1)); return; diff --git a/ccsrc/Protocols/DENM/denm_codec.cc b/ccsrc/Protocols/DENM/denm_codec.cc index 86a53bb13d2691ef6426504d671d06f56f6fd717..355ac67cc9c7abb1430205d8160ad9d54119bf40 100644 --- a/ccsrc/Protocols/DENM/denm_codec.cc +++ b/ccsrc/Protocols/DENM/denm_codec.cc @@ -8,7 +8,7 @@ int denm_codec::encode(const DENM__PDU__Descriptions::DENM &p_denm, OCTETSTRING BITSTRING b; int rc = asn_codec.encode(p_denm, b); - if (rc) { + if (rc != -1) { p_data = bit2oct(b); } loggers::get_instance().log("<<< denm_codec::encode: %d", rc); @@ -20,7 +20,7 @@ int denm_codec::decode(const OCTETSTRING &p_data, DENM__PDU__Descriptions::DENM int rc = asn_codec.decode(oct2bit(p_data), p_denm); loggers::get_instance().log("denm_codec::decode: ASN.1 codec returned %d", rc); - if (rc) { + if (rc != -1) { loggers::get_instance().log_msg("denm_codec::decode: ", p_denm); } return rc; diff --git a/ccsrc/Protocols/DENM_layers/denm_layer.cc b/ccsrc/Protocols/DENM_layers/denm_layer.cc index 9737f63cc0a1c26902c9a8530829a5cce0f24bea..a626c92d5a847143d5664c8afebf57ba8b98e730 100644 --- a/ccsrc/Protocols/DENM_layers/denm_layer.cc +++ b/ccsrc/Protocols/DENM_layers/denm_layer.cc @@ -11,8 +11,8 @@ denm_layer::denm_layer(const std::string &p_type, const std::string ¶m) : t_ loggers::get_instance().log(">>> denm_layer::denm_layer: %s, %s", to_string().c_str(), param.c_str()); // Setup parameters params::convert(_params, param); - _params.insert(std::make_pair("its_aid", "37")); // ETSI TS 102 965 V2.1.1 (2021-11) - _params.insert(std::make_pair("payload_type", "1")); // DE message id - See ETSI TS 102 894 + _params.insert(std::make_pair(static_cast(params_its::its_aid), "37")); // ETSI TS 102 965 V2.1.1 (2021-11) + _params.insert(std::make_pair(static_cast(params_its::payload_type), "1")); // DE message id - See ETSI TS 102 894 // Register this object for AdapterControlPort loggers::get_instance().log("denm_layer::denm_layer: Register %s/%p", p_type.c_str(), this); diff --git a/ccsrc/Protocols/GeoNetworking/geonetworking_layer.cc b/ccsrc/Protocols/GeoNetworking/geonetworking_layer.cc index 46ee5f8ab35cf2c085aba5c2547eedc433ce97a2..aadd932f5e73c70236a3e834c6922c9d8a21ab91 100644 --- a/ccsrc/Protocols/GeoNetworking/geonetworking_layer.cc +++ b/ccsrc/Protocols/GeoNetworking/geonetworking_layer.cc @@ -935,7 +935,7 @@ int geonetworking_layer::setup_secured_mode() { params_its::const_iterator it = _params.find(params_its::certificate); if (it == _params.cend()) { - _params.insert(std::pair(std::string("certificate"), "CERT_TS_A_AT")); + _params.insert(std::pair(params_its::certificate, "CERT_TS_A_AT")); } it = _params.find(params_its::sec_db_path); if (it == _params.cend()) { diff --git a/ccsrc/Protocols/IVIM/ivim_codec.cc b/ccsrc/Protocols/IVIM/ivim_codec.cc index 711a36a23f08eecc4e40d9c434211e22077da819..d9bbb2df302f4399f9cb5aab635dc29ec9039965 100644 --- a/ccsrc/Protocols/IVIM/ivim_codec.cc +++ b/ccsrc/Protocols/IVIM/ivim_codec.cc @@ -8,7 +8,7 @@ int ivim_codec::encode(const IVIM__PDU__Descriptions::IVIM &ivim, OCTETSTRING &d BITSTRING b; int rc = asn_codec.encode(ivim, b); loggers::get_instance().log("ivim_codec::encode: ASN.1 codec returned %d", rc); - if (rc) { + if (rc != -1) { data = bit2oct(b); loggers::get_instance().log_msg("ivim_codec::encode: ", data); } @@ -20,7 +20,7 @@ int ivim_codec::decode(const OCTETSTRING &data, IVIM__PDU__Descriptions::IVIM &i int rc = asn_codec.decode(oct2bit(data), ivim); loggers::get_instance().log("ivim_codec::decode: ASN.1 codec returned %d", rc); - if (rc) { + if (rc != -1) { loggers::get_instance().log_msg("ivim_codec::decode: ", ivim); } return rc; diff --git a/ccsrc/Protocols/IVIM_layers/ivim_layer.cc b/ccsrc/Protocols/IVIM_layers/ivim_layer.cc index cfd0dc3ac436ba434197d2bbc7172b29d4fda272..92ff7a72800cdace65656ab1a868d3dd8b9a219c 100644 --- a/ccsrc/Protocols/IVIM_layers/ivim_layer.cc +++ b/ccsrc/Protocols/IVIM_layers/ivim_layer.cc @@ -13,8 +13,8 @@ ivim_layer::ivim_layer(const std::string &p_type, const std::string ¶m) : t_ loggers::get_instance().log(">>> ivim_layer::ivim_layer: %s, %s", to_string().c_str(), param.c_str()); // Setup parameters params_its::convert(_params, param); - _params.insert(std::make_pair("its_aid", "139")); // ETSI TS 102 965 V2.1.1 (2021-11) - _params.insert(std::make_pair("payload_type", "6")); // IVI message id - See ETSI TS 103 301 + _params.insert(std::make_pair(static_cast(params_its::its_aid), "139")); // ETSI TS 102 965 V2.1.1 (2021-11) + _params.insert(std::make_pair(static_cast(params_its::payload_type), "6")); // IVI message id - See ETSI TS 103 301 // Register this object for AdapterControlPort loggers::get_instance().log("ivim_layer::ivim_layer: Register %s/%p", p_type.c_str(), this); diff --git a/ccsrc/Protocols/MapemSpatem/mapem_codec.cc b/ccsrc/Protocols/MapemSpatem/mapem_codec.cc index 2ce09cb9b0d5670ab29f98940064ced4e13b7454..48e459cec02e9d996e5aae8b181660bed0806883 100644 --- a/ccsrc/Protocols/MapemSpatem/mapem_codec.cc +++ b/ccsrc/Protocols/MapemSpatem/mapem_codec.cc @@ -8,7 +8,7 @@ int mapem_codec::encode(const MAPEM__PDU__Descriptions::MAPEM &mapem, OCTETSTRIN BITSTRING b; int rc = asn_codec.encode(mapem, b); - if (rc) { + if (rc != -1) { data = bit2oct(b); loggers::get_instance().log_msg("mapem_codec::encode: ", data); } @@ -20,7 +20,7 @@ int mapem_codec::decode(const OCTETSTRING &data, MAPEM__PDU__Descriptions::MAPEM int rc = asn_codec.decode(oct2bit(data), mapem); loggers::get_instance().log("mapem_codec::decode: ASN.1 codec returned %d", rc); - if (rc) { + if (rc != -1) { loggers::get_instance().log_msg("mapem_codec::decode: ", mapem); } return rc; diff --git a/ccsrc/Protocols/MapemSpatem/spatem_codec.cc b/ccsrc/Protocols/MapemSpatem/spatem_codec.cc index 25ecde1062d4608a748c30adb9aaa04467c9a864..854e4cc2f971583f6ce65b3ec7b19f5e212b48fd 100644 --- a/ccsrc/Protocols/MapemSpatem/spatem_codec.cc +++ b/ccsrc/Protocols/MapemSpatem/spatem_codec.cc @@ -8,7 +8,7 @@ int spatem_codec::encode(const SPATEM__PDU__Descriptions::SPATEM &spatem, OCTETS BITSTRING b; int rc = asn_codec.encode(spatem, b); - if (rc) { + if (rc != -1) { data = bit2oct(b); loggers::get_instance().log_msg("spatem_codec::encode: ", data); } @@ -20,7 +20,7 @@ int spatem_codec::decode(const OCTETSTRING &data, SPATEM__PDU__Descriptions::SPA int rc = asn_codec.decode(oct2bit(data), spatem); loggers::get_instance().log("spatem_codec::decode: ASN.1 codec returned %d", rc); - if (rc) { + if (rc != -1) { loggers::get_instance().log_msg("spatem_codec::decode: ", spatem); } return rc; diff --git a/ccsrc/Protocols/MapemSpatem_layers/mapem_spatem_layer.cc b/ccsrc/Protocols/MapemSpatem_layers/mapem_spatem_layer.cc index 734a266b82be147f90c5f2fb41bd89abdf082328..830cb41ed0d4b861a1af64524abb5acc3d8f17c5 100644 --- a/ccsrc/Protocols/MapemSpatem_layers/mapem_spatem_layer.cc +++ b/ccsrc/Protocols/MapemSpatem_layers/mapem_spatem_layer.cc @@ -12,8 +12,8 @@ mapem_spatem_layer::mapem_spatem_layer(const std::string &p_type, const std::str loggers::get_instance().log(">>> mapem_spatem_layer::mapem_spatem_layer: %s, %s", to_string().c_str(), param.c_str()); // Setup parameters params_its::convert(_params, param); - _params.insert(std::make_pair("its_aid", "138")); // ETSI TS 102 965 V2.1.1 (2021-11) - _params.insert(std::make_pair("payload_type", "2")); // MAPE message id - See ETSI TS 102 894 + _params.insert(std::make_pair(static_cast(params_its::its_aid), "138")); // ETSI TS 102 965 V2.1.1 (2021-11) + _params.insert(std::make_pair(static_cast(params_its::payload_type), "2")); // MAPE message id - See ETSI TS 102 894 // Register this object for AdapterControlPort loggers::get_instance().log("mapem_spatem_layer::mapem_spatem_layer: Register %s/%p", p_type.c_str(), this); diff --git a/ccsrc/Protocols/Rtcmem/RtcmemCodec.cc b/ccsrc/Protocols/Rtcmem/RtcmemCodec.cc index c2cf5f3341594def627fbb1f84f30e8905b60407..b5eb13e79f864ecf09c800951d0e397548e46072 100644 --- a/ccsrc/Protocols/Rtcmem/RtcmemCodec.cc +++ b/ccsrc/Protocols/Rtcmem/RtcmemCodec.cc @@ -8,7 +8,7 @@ int RtcmemCodec::encode(const RTCMEM__PDU__Descriptions::RTCMEM &rtcmem, OCTETST BITSTRING b; int rc = asn_codec.encode(rtcmem, b); - if (rc) { + if (rc != -1) { data = bit2oct(b); loggers::get_instance().log_msg("RtcmemCodec::encode: ", data); } @@ -20,7 +20,7 @@ int RtcmemCodec::decode(const OCTETSTRING &data, RTCMEM__PDU__Descriptions::RTCM int rc = asn_codec.decode(oct2bit(data), p_rtcmem); loggers::get_instance().log("RtcmemCodec::decode: ASN.1 codec returned %d", rc); - if (rc) { + if (rc != -1) { loggers::get_instance().log_msg("RtcmemCodec::decode: ", p_rtcmem); } return rc; diff --git a/ccsrc/Protocols/Rtcmem_layers/RtcmemLayer.cc b/ccsrc/Protocols/Rtcmem_layers/RtcmemLayer.cc index 6f6e494192932b9bd8d18eea80820242c69e515d..0972d03a65b94bebafcc40b8359fbfde3712c2c5 100644 --- a/ccsrc/Protocols/Rtcmem_layers/RtcmemLayer.cc +++ b/ccsrc/Protocols/Rtcmem_layers/RtcmemLayer.cc @@ -14,8 +14,8 @@ RtcmemLayer::RtcmemLayer(const std::string &p_type, const std::string ¶m) loggers::get_instance().log(">>> RtcmemLayer::RtcmemLayer: %s, %s", to_string().c_str(), param.c_str()); // Setup parameters params_its::convert(_params, param); - _params.insert(std::make_pair("its_aid", "128")); // ETSI TS 102 965 V2.1.1 (2021-11) - _params.insert(std::make_pair("payload_type", "13")); // RTCME message id - See ETSI TS 103 301 + _params.insert(std::make_pair(static_cast(params_its::its_aid), "128")); // ETSI TS 102 965 V2.1.1 (2021-11) + _params.insert(std::make_pair(static_cast(params_its::payload_type), "13")); // RTCME message id - See ETSI TS 103 301 // Register this object for AdapterControlPort loggers::get_instance().log("RtcmemLayer::RtcmemLayer: Register %s/%p", p_type.c_str(), this); diff --git a/ccsrc/Protocols/SremSsem/SremCodec.cc b/ccsrc/Protocols/SremSsem/SremCodec.cc index f2c4cb56dd1fe23cb364f076ad5948a61921bcf4..17fd954a4cfef478aa0a5324b6798da932ea5354 100644 --- a/ccsrc/Protocols/SremSsem/SremCodec.cc +++ b/ccsrc/Protocols/SremSsem/SremCodec.cc @@ -8,7 +8,7 @@ int SremCodec::encode(const SREM__PDU__Descriptions::SREM &srem, OCTETSTRING &da BITSTRING b; int rc = asn_codec.encode(srem, b); - if (rc) { + if (rc != -1) { data = bit2oct(b); loggers::get_instance().log_msg("SremCodec::encode: ", data); } @@ -20,7 +20,7 @@ int SremCodec::decode(const OCTETSTRING &data, SREM__PDU__Descriptions::SREM &sr int rc = asn_codec.decode(oct2bit(data), srem); loggers::get_instance().log("SremCodec::decode: ASN.1 codec returned %d", rc); - if (rc) { + if (rc != -1) { loggers::get_instance().log_msg("SremCodec::decode: ", srem); } return rc; diff --git a/ccsrc/Protocols/SremSsem/SsemCodec.cc b/ccsrc/Protocols/SremSsem/SsemCodec.cc index 091aa72c9c5ee2b13c3cabb99f4c18cc43546c4a..895b00bc5af3ae3bba059fe464ffdf3668708b3a 100644 --- a/ccsrc/Protocols/SremSsem/SsemCodec.cc +++ b/ccsrc/Protocols/SremSsem/SsemCodec.cc @@ -8,7 +8,7 @@ int SsemCodec::encode(const SSEM__PDU__Descriptions::SSEM &ssem, OCTETSTRING &da BITSTRING b; int rc = asn_codec.encode(ssem, b); - if (rc) { + if (rc != -1) { data = bit2oct(b); loggers::get_instance().log_msg("SsemCodec::encode: ", data); } @@ -20,7 +20,7 @@ int SsemCodec::decode(const OCTETSTRING &data, SSEM__PDU__Descriptions::SSEM &ss int rc = asn_codec.decode(oct2bit(data), ssem); loggers::get_instance().log("SsemCodec::decode: ASN.1 codec returned %d", rc); - if (rc) { + if (rc != -1) { loggers::get_instance().log_msg("SsemCodec::decode: ", ssem); } return rc; diff --git a/ccsrc/Protocols/SremSsem_layers/SremSsemLayer.cc b/ccsrc/Protocols/SremSsem_layers/SremSsemLayer.cc index 8a93acf53f63d21f997e59cc5e535e9fed5e6ff2..222478a4b8f2150a1e740ac43ec15c4d295243f0 100644 --- a/ccsrc/Protocols/SremSsem_layers/SremSsemLayer.cc +++ b/ccsrc/Protocols/SremSsem_layers/SremSsemLayer.cc @@ -12,9 +12,9 @@ SremSsemLayer::SremSsemLayer(const std::string &p_type, const std::string ¶m loggers::get_instance().log(">>> SremSsemLayer::SremSsemLayer: %s, %s", to_string().c_str(), param.c_str()); // Setup parameters params_its::convert(_params, param); - _params.insert(std::make_pair("its_aid", "140")); // ETSI TS 102 965 V2.1.1 (2021-11) - _params.insert(std::make_pair("payload_type", "2")); - _params.insert(std::make_pair("dst_port", "2007")); + _params.insert(std::make_pair(static_cast(params_its::its_aid), "140")); // ETSI TS 102 965 V2.1.1 (2021-11) + _params.insert(std::make_pair(static_cast(params_its::payload_type), "2")); + _params.insert(std::make_pair(static_cast(params_its::btp_destination_port), "2007")); // Register this object for AdapterControlPort loggers::get_instance().log("SremSsemLayer::SremSsemLayer: Register %s/%p", p_type.c_str(), this); diff --git a/ccsrc/Protocols/UpperTester/uppertester_cam_codec.cc b/ccsrc/Protocols/UpperTester/uppertester_cam_codec.cc index f92a264d98a2181c72201b6e42a6cba0efd88994..5eb4c0fb94a2e3c31f624b229a07276e24a61791 100644 --- a/ccsrc/Protocols/UpperTester/uppertester_cam_codec.cc +++ b/ccsrc/Protocols/UpperTester/uppertester_cam_codec.cc @@ -13,6 +13,8 @@ class TTCN_EncDec; uint8_t uppertester_cam_codec::c_utCamInitialize = 0x00; uint8_t uppertester_cam_codec::c_utCamInitializeResult = 0x01; +uint8_t uppertester_cam_codec::c_utCamChangePseudonymResult = 0x05; +uint8_t uppertester_cam_codec::c_utCamTriggerResult = 0x21; uint8_t uppertester_cam_codec::c_utCamChangePosition = 0x02; uint8_t uppertester_cam_codec::c_utCamChangePositionResult = 0x03; uint8_t uppertester_cam_codec::c_utCamChangeCurvature = 0x30; @@ -28,9 +30,7 @@ uint8_t uppertester_cam_codec::c_utCamSetEmbarkationStatus = 0x3b; uint8_t uppertester_cam_codec::c_utCamSetPtActivation = 0x3c; uint8_t uppertester_cam_codec::c_utCamSetDangerousGoods = 0x3d; uint8_t uppertester_cam_codec::c_utCamSetLightBarSirene = 0x3f; -uint8_t uppertester_cam_codec::c_utCamChangePseudonym = 0x40; -uint8_t uppertester_cam_codec::c_utCamChangePseudonymResult = 0x41; -uint8_t uppertester_cam_codec::c_utCamTriggerResult = 0x21; +uint8_t uppertester_cam_codec::c_utCamChangePseudonym = 0x04; uint8_t uppertester_cam_codec::c_utCamEventInd = 0x23; int uppertester_cam_codec::encode(const Record_Type &msg, OCTETSTRING &data) { diff --git a/ccsrc/Protocols/UpperTester/uppertester_cps_codec.cc b/ccsrc/Protocols/UpperTester/uppertester_cps_codec.cc index 07bd3e59ea5523cae84fa03116b83b9788d31c53..a1717184091cebb3e7809fbd9c5384169681c78f 100644 --- a/ccsrc/Protocols/UpperTester/uppertester_cps_codec.cc +++ b/ccsrc/Protocols/UpperTester/uppertester_cps_codec.cc @@ -11,9 +11,58 @@ template class OPTIONAL; class TTCN_EncDec; -uint8_t uppertester_cps_codec::c_utCpmInitialize = 0x00; -uint8_t uppertester_cps_codec::c_utCpmInitializeResult = 0x01; -uint8_t uppertester_cps_codec::c_utCpmEventInd = 0x23; +uint8_t uppertester_cps_codec::c_utCpmInitialize = 0x00; +uint8_t uppertester_cps_codec::c_utCpmInitializeResult = 0x01; +uint8_t uppertester_cps_codec::c_utCpmTrigger = 0xF6; +uint8_t uppertester_cps_codec::c_utCpmTriggerResult = 0xF7; +uint8_t uppertester_cps_codec::c_utCpmEventInd = 0xF8; + +int uppertester_cps_codec::encode(const LibItsCps__TypesAndValues::UtCpmInitialize &r, OCTETSTRING &data) { + loggers::get_instance().log_msg(">>> uppertester_cps_codec::encode (1): ", r); + + TTCN_EncDec::clear_error(); + TTCN_Buffer encoding_buffer; + encoding_buffer.put_c(static_cast(uppertester_cps_codec::c_utCpmInitialize)); + encoding_buffer.put_string(r.hashedId8()); + data = OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data()); + loggers::get_instance().log_msg("<<< uppertester_cps_codec::encode (1): data=", data); + return 0; +} + +int uppertester_cps_codec::encode(const LibItsCps__TypesAndValues::UtCpmTrigger &r, OCTETSTRING &data) { + loggers::get_instance().log_msg(">>> uppertester_cps_codec::encode (2): ", r); + + TTCN_EncDec::clear_error(); + TTCN_Buffer encoding_buffer; + encoding_buffer.put_c(static_cast(uppertester_cps_codec::c_utCpmTrigger)); + uint8_t flags = 0x00; + OCTETSTRING val; + if (r.ischosen(LibItsCps__TypesAndValues::UtCpmTrigger::ALT_setVehicleRole)) { + flags |= 0x80; + val = int2oct(r.setVehicleType(), 1); + } else { + val = int2oct(0, 1); + } + if (r.ischosen(LibItsCps__TypesAndValues::UtCpmTrigger::ALT_setPerceivedObjects)) { + flags |= 0x40; + OCTETSTRING os; + encode(r.setPerceivedObjects(), os); + val += int2oct(os.lengthof(), 2); // PerceivedObjectsLen set to real length + val += os; + } else { + val += int2oct(0, 2); // PerceivedObjectsLen set to 0 + } + if (r.ischosen(LibItsCps__TypesAndValues::UtCpmTrigger::ALT_segmentedCpm)) { + flags |= 0x20; + val += int2oct(r.segmentedCpm(), 2); + } + encoding_buffer.put_c(flags); + encoding_buffer.put_string(val); + data = OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data()); + + loggers::get_instance().log_msg("<<< uppertester_cps_codec::encode: data=", data); + return 0; +} int uppertester_cps_codec::encode(const Record_Type &msg, OCTETSTRING &data) { loggers::get_instance().log_msg(">>> uppertester_cps_codec::encode: ", (const Record_Type &)msg); @@ -22,17 +71,33 @@ int uppertester_cps_codec::encode(const Record_Type &msg, OCTETSTRING &data) { TTCN_Buffer encoding_buffer; if (std::string(msg.get_descriptor()->name).compare("@LibItsCps_TypesAndValues.UtCpmInitialize") == 0) { encoding_buffer.put_c(static_cast(uppertester_cps_codec::c_utCpmInitialize)); + } else if (std::string(msg.get_descriptor()->name).compare("@LibItsCps_TypesAndValues.UtCpmPerceivedObjects") == 0) { + encode_(msg, *msg.get_descriptor(), encoding_buffer); } else { // Error data = OCTETSTRING(0, nullptr); loggers::get_instance().warning("<<< uppertester_cps_codec::encode: Failed to encode UT message"); return -1; } - encode_(msg, *msg.get_descriptor(), encoding_buffer); data = OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data()); loggers::get_instance().log_msg("<<< uppertester_cps_codec::encode: data=", data); return 0; } +int uppertester_cps_codec::encode_(const Record_Of_Type &type, const TTCN_Typedescriptor_t &field_descriptor, TTCN_Buffer &encoding_buffer) { + loggers::get_instance().log_msg(">>> uppertester_cps_codec::encode_ (2): ", type); + + for (int i = 0; i < type.size_of(); i++) { + const Base_Type& t = *type.get_at(i); + if (encode_(t, *t.get_descriptor(), encoding_buffer) == -1) { + loggers::get_instance().warning("uppertester_cps_codec::encode_ (2): -1 result code returned"); + return -1; + } + } // End of 'for' statement + + loggers::get_instance().log_to_hexa("<<>> uppertester_cps_codec::encode_: processing %s/%s/%p", type.get_descriptor()->name, field_descriptor.name, dynamic_cast(&type)); @@ -44,69 +109,28 @@ int uppertester_cps_codec::encode_(const Base_Type &type, const TTCN_Typedescrip for (int i = 0; i < r.get_count(); i++) { loggers::get_instance().log("uppertester_cps_codec::encode_: processing %s/%s/%s - %d (1 ==> use dynamic_cast) - %d", r.fld_name(i), r.fld_descr(i)->name, r.get_at(i)->get_descriptor()->name, r.get_at(i)->is_optional(), r.get_at(i)->is_present()); - if (r.get_at(i)->is_present()) { + if (std::string(r.fld_name(i)).compare("perceivedObjects") == 0) { + loggers::get_instance().log("uppertester_cps_codec::encode_: Calling encode_ (2) for %s", r.fld_name(i)); + if (encode_(static_cast(*r.get_at(i)), *r.fld_descr(i), encoding_buffer) == -1) { + loggers::get_instance().warning("uppertester_cps_codec::encode_: -1 result code returned"); + return -1; + } + } else { + loggers::get_instance().log("uppertester_cps_codec::encode_: Calling encode_ for %s", r.fld_name(i)); if (encode_(*r.get_at(i), *r.fld_descr(i), encoding_buffer) == -1) { loggers::get_instance().warning("uppertester_cps_codec::encode_: -1 result code returned"); return -1; } - } else if (std::string(r.fld_name(i)).compare("alacarte") == 0) { - // Add empty field length - loggers::get_instance().log("uppertester_cps_codec::encode_: alacarte is missing, add 0x00"); - encoding_buffer.put_c(0x00); } } // End of 'for' statement } else { std::string s(field_descriptor.name); loggers::get_instance().log("uppertester_cps_codec::encode_: field to process %s", s.c_str()); - if ((s.rfind(".shape") != string::npos) || (s.rfind(".relevanceDistance") != string::npos) || (s.rfind(".relevanceTrafficDirection") != string::npos)) { - encoding_buffer.put_c((uint8_t)static_cast(type).as_int()); - } else if (s.rfind(".payload") != string::npos) { - const OCTETSTRING & os = static_cast(type); - const uint8_t s[] = {(uint8_t)((os.lengthof() & 0x0000FF00) >> 8), (uint8_t)os.lengthof()}; - encoding_buffer.put_s(2, s); - if (os.lengthof() != 0) { - encoding_buffer.put_string(os); - } - } else if (s.rfind(".detectionTime") != string::npos) { - unsigned long long llu = static_cast(type).get_long_long_val(); - loggers::get_instance().log("uppertester_cps_codec::encode_ : detectionTime=%llu", llu); - std::vector v; - for (int i = 0; i < 6; i++) { - v.insert(v.begin(), static_cast(llu)); - llu >>= 8; - } // End of 'for' statement - OCTETSTRING os(v.size(), v.data()); - loggers::get_instance().log_msg("uppertester_cps_codec::encode_: timeDetection=", os); - encoding_buffer.put_string(os); - } else if ((s.rfind(".validityDuration") != string::npos) || (s.rfind(".repetitionDuration") != string::npos)) { - if (type.is_present()) { - const OPTIONAL &o = dynamic_cast &>(type); - const INTEGER & i = static_cast(*o.get_opt_value()); - loggers::get_instance().log_msg("uppertester_cps_codec::encode_: i=", i); - encoding_buffer.put_string(int2oct(i, 3)); - } - } else if ((s.rfind(".informationQuality") != string::npos) || (s.rfind(".causeCode") != string::npos) || (s.rfind(".subCauseCode") != string::npos)) { - const INTEGER &i = static_cast(type); - encoding_buffer.put_string(int2oct(i, 1)); - } else if ((s.rfind(".linkedCause") != string::npos) || (s.rfind(".eventHistory") != string::npos)) { - // Skip them - } else if ((s.rfind(".transmissionInterval") != string::npos) || (s.rfind(".repetitionInterval") != string::npos)) { - if (type.is_present()) { - const OPTIONAL &o = dynamic_cast &>(type); - const INTEGER & i = static_cast(*o.get_opt_value()); - encoding_buffer.put_string(int2oct(i, 2)); - } - } else if (s.rfind(".originatingStationID") != string::npos) { + if ((s.rfind(".measurementDeltaTime") != string::npos) || (s.rfind(".latitude") != string::npos) || (s.rfind(".longitude") != string::npos) + || (s.rfind(".altitude") != string::npos) || (s.rfind(".confidence") != string::npos) + || (s.rfind(".objectId") != string::npos)) { const INTEGER &i = static_cast(type); encoding_buffer.put_string(int2oct(i, 4)); - } else if (s.rfind(".sequenceNumber") != string::npos) { - const INTEGER &i = static_cast(type); - encoding_buffer.put_string(int2oct(i, 2)); - } else if (s.rfind(".AlacarteContainer") != string::npos) { - const OPTIONAL &o = dynamic_cast &>(type); - const OCTETSTRING & os = static_cast(*o.get_opt_value()); - encoding_buffer.put_string(int2oct(os.lengthof(), 2)); - encoding_buffer.put_string(os); } else { loggers::get_instance().log("uppertester_cps_codec::encode_ (else): processing type %s/%s", type.get_descriptor()->name, field_descriptor.name); type.encode(field_descriptor, encoding_buffer, TTCN_EncDec::CT_RAW); @@ -156,9 +180,8 @@ int uppertester_cps_codec::decode(const OCTETSTRING &data, LibItsCps__TypesAndVa const uint8_t *ptr = static_cast(data); if (*ptr == uppertester_cps_codec::c_utCpmInitializeResult) { msg.utCpmInitializeResult() = BOOLEAN(*(ptr + 1) == 0x01); - } else if (*ptr == 0x24) { // TODO Use a constant for "Peer does not support is "Peer does not support the command" - // Peer does not support the command - msg.utCpmInitializeResult() = 0x00; + } else if (*ptr == uppertester_cps_codec::c_utCpmTriggerResult) { + msg.utCpmTriggerResult() = BOOLEAN(*(ptr + 1) == 0x01); } else { loggers::get_instance().warning("uppertester_cps_codec::decode: Unsupported result"); return -1; diff --git a/ccsrc/Protocols/UpperTester/uppertester_cps_codec.hh b/ccsrc/Protocols/UpperTester/uppertester_cps_codec.hh index 9be942095a43639076cb3685b6f73a98ff96664c..de12a31ccb4c6d2d8788ca4544d77ef8054e8dec 100644 --- a/ccsrc/Protocols/UpperTester/uppertester_cps_codec.hh +++ b/ccsrc/Protocols/UpperTester/uppertester_cps_codec.hh @@ -21,6 +21,7 @@ class TTCN_Typedescriptor_t; class TTCN_Buffer; namespace LibItsCps__TypesAndValues { + class UtCpmInitialize; class UtCpmTrigger; class UtCpmResults; class UtCpmEventInd; @@ -28,17 +29,22 @@ namespace LibItsCps__TypesAndValues { class uppertester_cps_codec : public codec { public: - static uint8_t c_utCpmInitialize; - static uint8_t c_utCpmInitializeResult; - static uint8_t c_utCpmEventInd; +static uint8_t c_utCpmInitialize; +static uint8_t c_utCpmInitializeResult; +static uint8_t c_utCpmTrigger; +static uint8_t c_utCpmTriggerResult; +static uint8_t c_utCpmEventInd; private: int encode_(const Base_Type &type, const TTCN_Typedescriptor_t &field_descriptor, TTCN_Buffer &encoding_buffer); + int encode_(const Record_Of_Type &type, const TTCN_Typedescriptor_t &field_descriptor, TTCN_Buffer &encoding_buffer); public: uppertester_cps_codec() : codec(){}; virtual ~uppertester_cps_codec(){}; + int encode(const LibItsCps__TypesAndValues::UtCpmInitialize &, OCTETSTRING &data); + int encode(const LibItsCps__TypesAndValues::UtCpmTrigger &, OCTETSTRING &data); virtual int encode(const Record_Type &, OCTETSTRING &data); //int encode(const LibItsCps__TypesAndValues::UtCpmTrigger &, OCTETSTRING &data); virtual int decode(const OCTETSTRING &data, Record_Type &, params_its *params = NULL); diff --git a/ccsrc/Protocols/UpperTester/uppertester_cps_layer.cc b/ccsrc/Protocols/UpperTester/uppertester_cps_layer.cc index 3fc8eb9f5d9a9be04dfdb7b1dea7b54717b349be..27904e93df742c5d485dec8647bf2f5bb8aa49b0 100644 --- a/ccsrc/Protocols/UpperTester/uppertester_cps_layer.cc +++ b/ccsrc/Protocols/UpperTester/uppertester_cps_layer.cc @@ -26,7 +26,23 @@ void uppertester_cps_layer::sendMsg(const LibItsCps__TypesAndValues::UtCpmInitia } else { // Encode UpperTester PDU OCTETSTRING data; - _codec.encode((const Record_Type &)send_par, data); + _codec.encode(send_par, data); + // Update parameters + send_data(data, p_params); + } +} + +void uppertester_cps_layer::sendMsg(const LibItsCps__TypesAndValues::UtCpmTrigger &send_par, params_its &p_params) { + loggers::get_instance().log_msg(">>> uppertester_cps_layer::sendMsg", send_par); + + if (_params[params::loopback].compare("1") == 0) { + LibItsCps__TypesAndValues::UtCpmResults ut_cps_results; + ut_cps_results.utCpmTriggerResult() = BOOLEAN(true); + to_all_upper_ports(ut_cps_results, p_params); + } else { + // Encode UpperTester PDU + OCTETSTRING data; + _codec.encode(send_par, data); // Update parameters send_data(data, p_params); } diff --git a/ccsrc/Protocols/UpperTester/uppertester_cps_layer.hh b/ccsrc/Protocols/UpperTester/uppertester_cps_layer.hh index bca600d173f53728dee886a39c56378b4ac83049..d1e8bf7e7fd805a64d5ac591a04d3f56abe2f4d7 100644 --- a/ccsrc/Protocols/UpperTester/uppertester_cps_layer.hh +++ b/ccsrc/Protocols/UpperTester/uppertester_cps_layer.hh @@ -21,6 +21,7 @@ namespace LibItsCps__TestSystem { namespace LibItsCps__TypesAndValues { class UtCpmInitialize; + class UtCpmTrigger; } // namespace LibItsCps__TypesAndValues class uppertester_cps_layer : public t_layer { @@ -33,6 +34,7 @@ public: virtual ~uppertester_cps_layer(){}; void sendMsg(const LibItsCps__TypesAndValues::UtCpmInitialize &send_par, params_its& p_params); + void sendMsg(const LibItsCps__TypesAndValues::UtCpmTrigger &send_par, params_its& p_params); virtual void send_data(OCTETSTRING &data, params& p_params); virtual void receive_data(OCTETSTRING &data, params& p_params); diff --git a/ccsrc/Protocols/UpperTester/uppertester_denm_codec.cc b/ccsrc/Protocols/UpperTester/uppertester_denm_codec.cc index ed8bc24632bec3f87cde7edb0df1e8b3b85befe5..90b0b22a9b80b1cddbbdd73da30e064ded8d95bf 100644 --- a/ccsrc/Protocols/UpperTester/uppertester_denm_codec.cc +++ b/ccsrc/Protocols/UpperTester/uppertester_denm_codec.cc @@ -1,300 +1,313 @@ -#include -//#include - -#include "loggers.hh" -#include "uppertester_denm_codec.hh" - -#include "LibItsDenm_TestSystem.hh" -#include "LibItsDenm_TypesAndValues.hh" - -#include "denm_codec.hh" - -template class OPTIONAL; -class TTCN_EncDec; - -uint8_t uppertester_denm_codec::c_utDenmInitialize = 0x00; -uint8_t uppertester_denm_codec::c_utDenmInitializeResult = 0x01; -uint8_t uppertester_denm_codec::c_utDenmChangePosition = 0x02; -uint8_t uppertester_denm_codec::c_utDenmChangePositionResult = 0x03; -uint8_t uppertester_denm_codec::c_utDenmTrigger = 0x10; -uint8_t uppertester_denm_codec::c_utDenmTriggerResult = 0x11; -uint8_t uppertester_denm_codec::c_utDenmUpdate = 0x12; -uint8_t uppertester_denm_codec::c_utDenmUpdateResult = 0x13; -uint8_t uppertester_denm_codec::c_utDenmTermination = 0x14; -uint8_t uppertester_denm_codec::c_utDenmTerminationResult = 0x15; -uint8_t uppertester_denm_codec::c_utDenmEventIndication = 0x17; -uint8_t uppertester_denm_codec::c_utDenmChangePseudonym = 0x18; -uint8_t uppertester_denm_codec::c_utDenmChangePseudonymResult = 0x19; - -int uppertester_denm_codec::encode(const Record_Type &msg, OCTETSTRING &data) { - loggers::get_instance().log_msg(">>> uppertester_denm_codec::encode: ", (const Record_Type &)msg); - - TTCN_EncDec::clear_error(); - TTCN_Buffer encoding_buffer; - if (std::string(msg.get_descriptor()->name).compare("@LibItsDenm_TypesAndValues.UtDenmInitialize") == 0) { - encoding_buffer.put_c(static_cast(uppertester_denm_codec::c_utDenmInitialize)); - } else if (std::string(msg.get_descriptor()->name).compare("@LibItsDenm_TypesAndValues.UtDenmChangePosition") == 0) { - encoding_buffer.put_c(static_cast(uppertester_denm_codec::c_utDenmChangePosition)); - } else if (std::string(msg.get_descriptor()->name).compare("@LibItsDenm_TypesAndValues.UtDenmChangePseudonym") == 0) { - encoding_buffer.put_c(static_cast(uppertester_denm_codec::c_utDenmChangePseudonym)); - } else if (std::string(msg.get_descriptor()->name).compare("@LibItsDenm_TypesAndValues.UtDenmTrigger") == 0) { - encoding_buffer.put_c(static_cast(uppertester_denm_codec::c_utDenmTrigger)); - // See ETSI TR 103 099 V1.4.1 Clause C.4.1 GenerateDenmEvent - uint8_t flags = 0x00; - const LibItsDenm__TypesAndValues::UtDenmTrigger &r = static_cast(msg); - if (r.validityDuration().is_present()) { // V - flags |= 0x80; - } - if (r.repetitionDuration().is_present()) { // R - flags |= 0x40; - } - if (r.trafficDirection().is_present()) { // T - flags |= 0x10; - } - if (r.transmissionInterval().is_present()) { // K - flags |= 0x04; - } - if (r.repetitionInterval().is_present()) { // I - flags |= 0x02; - } - encoding_buffer.put_c(flags); - loggers::get_instance().log_to_hexa("uppertester_denm_codec::encode: flags=", encoding_buffer); - // Continue with encoding - } else if (std::string(msg.get_descriptor()->name).compare("@LibItsDenm_TypesAndValues.UtDenmUpdate") == 0) { - encoding_buffer.put_c(static_cast(uppertester_denm_codec::c_utDenmUpdate)); - // See ETSI TR 103 099 V1.3.21 (20152016-07) Clause C.4.1GenerateDenmEvent - uint8_t flags = 0x00; - const LibItsDenm__TypesAndValues::UtDenmUpdate &r = static_cast(msg); - if (r.validityDuration().is_present()) { // V - flags |= 0x80; - } - if (r.situation().is_present()) { // S - flags |= 0x40; - } - if (r.awarenessDistance().is_present()) { // D - flags |= 0x20; - } - if (r.trafficDirection().is_present()) { // T - flags |= 0x10; - } - // TODO Check TTCN-3 code, it's missing - /*if (r.trafficClass().is_present()) { // C - flags |= 0x08; - }*/ - if (r.transmissionInterval().is_present()) { // K - flags |= 0x04; - } - if (r.repetitionInterval().is_present()) { // I - flags |= 0x02; - } - encoding_buffer.put_c(flags); - loggers::get_instance().log_to_hexa("uppertester_denm_codec::encode: flags=", encoding_buffer); - } else if (std::string(msg.get_descriptor()->name).compare("@LibItsDenm_TypesAndValues.UtDenmTermination") == 0) { - encoding_buffer.put_c(static_cast(uppertester_denm_codec::c_utDenmTermination)); - } else { // Error - data = OCTETSTRING(0, nullptr); - loggers::get_instance().warning("<<< uppertester_denm_codec::encode: Failed to encode UT message"); - return -1; - } - encode_(msg, *msg.get_descriptor(), encoding_buffer); - data = OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data()); - loggers::get_instance().log_msg("<<< uppertester_denm_codec::encode: data=", data); - return 0; -} - -int uppertester_denm_codec::encode_(const Base_Type &type, const TTCN_Typedescriptor_t &field_descriptor, TTCN_Buffer &encoding_buffer) { - loggers::get_instance().log(">>> uppertester_denm_codec::encode_: processing %s/%s/%p", type.get_descriptor()->name, field_descriptor.name, - dynamic_cast(&type)); - loggers::get_instance().log_msg(">>> uppertester_denm_codec::encode_: ", type); - - if (dynamic_cast(&type) != NULL) { - const Record_Type &r = (const Record_Type &)type; - loggers::get_instance().log("uppertester_denm_codec::encode_: processing Record_Type %s", r.get_descriptor()->name); - for (int i = 0; i < r.get_count(); i++) { - loggers::get_instance().log("uppertester_denm_codec::encode_: processing %s/%s/%s - %d (1 ==> use dynamic_cast) - %d", r.fld_name(i), - r.fld_descr(i)->name, r.get_at(i)->get_descriptor()->name, r.get_at(i)->is_optional(), r.get_at(i)->is_present()); - if (r.get_at(i)->is_present()) { - if (encode_(*r.get_at(i), *r.fld_descr(i), encoding_buffer) == -1) { - loggers::get_instance().warning("uppertester_denm_codec::encode_: -1 result code returned"); - return -1; - } - } else { - std::string s(r.fld_descr(i)->name); - if ((s.rfind(".validityDuration") != string::npos) || (s.rfind(".repetitionDuration") != string::npos) || - (s.rfind(".situation") != string::npos)) { // Pad with three bytes - encoding_buffer.put_c((uint8_t)0x00); - encoding_buffer.put_c((uint8_t)0x00); - encoding_buffer.put_c((uint8_t)0x00); - } else if ((s.rfind(".transmissionInterval") != string::npos) || (s.rfind(".repetitionInterval") != string::npos)) { // Pad with two bytes - encoding_buffer.put_c((uint8_t)0x00); - encoding_buffer.put_c((uint8_t)0x00); - } else if ((s.rfind(".informationQuality") != string::npos) || (s.rfind(".trafficDirection") != string::npos) || - (s.rfind(".relevanceDistance") != string::npos) // Mandatory in DenmTrigger, optional in DenmUpdate - ) { // Pad with one byte - encoding_buffer.put_c((uint8_t)0x00); - } else if (std::string(r.fld_name(i)).compare("alacarte") == 0) { - // Add empty field length - loggers::get_instance().log("uppertester_denm_codec::encode_: alacarte is missing, add 0x00"); - encoding_buffer.put_c(0x00); - } - } - } // End of 'for' statement - } else { - std::string s(field_descriptor.name); - loggers::get_instance().log("uppertester_denm_codec::encode_: field to process %s", s.c_str()); - if ((s.rfind(".shape") != string::npos) || (s.rfind(".relevanceDistance") != string::npos) || (s.rfind(".trafficDirection") != string::npos)) { - encoding_buffer.put_c((uint8_t)static_cast(type).as_int()); - } else if (s.rfind(".payload") != string::npos) { - const OCTETSTRING & os = static_cast(type); - const uint8_t s[] = {(uint8_t)((os.lengthof() & 0x0000FF00) >> 8), (uint8_t)os.lengthof()}; - encoding_buffer.put_s(2, s); - if (os.lengthof() != 0) { - encoding_buffer.put_string(os); - } - } else if (s.rfind(".detectionTime") != string::npos) { - unsigned long long llu = static_cast(type).get_long_long_val(); - loggers::get_instance().log("uppertester_denm_codec::encode_ : detectionTime=%llu", llu); - std::vector v; - for (int i = 0; i < 6; i++) { - v.insert(v.begin(), static_cast(llu)); - llu >>= 8; - } // End of 'for' statement - OCTETSTRING os(v.size(), v.data()); - loggers::get_instance().log_msg("uppertester_denm_codec::encode_: timeDetection=", os); - encoding_buffer.put_string(os); - } else if ((s.rfind(".validityDuration") != string::npos) || (s.rfind(".repetitionDuration") != string::npos)) { - const OPTIONAL &o = dynamic_cast &>(type); - const INTEGER & i = static_cast(*o.get_opt_value()); - loggers::get_instance().log_msg("uppertester_denm_codec::encode_: i=", i); - encoding_buffer.put_string(int2oct(i, 3)); - } else if ((s.rfind(".causeCode") != string::npos) || (s.rfind(".subCauseCode") != string::npos) || (s.rfind(".informationQuality") != string::npos) || - (s.rfind(".relevanceDistance") != string::npos)) { - const INTEGER &i = static_cast(type); - loggers::get_instance().log("uppertester_denm_codec::encode_: o=%02x", *static_cast(int2oct(i, 1))); - encoding_buffer.put_c(*static_cast(int2oct(i, 1))); - } else if ((s.rfind(".linkedCause") != string::npos) || (s.rfind(".eventHistory") != string::npos)) { - // Skip them - } else if ((s.rfind(".transmissionInterval") != string::npos) || (s.rfind(".repetitionInterval") != string::npos)) { - const OPTIONAL &o = dynamic_cast &>(type); - const INTEGER & i = static_cast(*o.get_opt_value()); - encoding_buffer.put_string(int2oct(i, 2)); - } else if (s.rfind(".originatingStationId") != string::npos) { - const INTEGER &i = static_cast(type); - loggers::get_instance().log_msg("uppertester_denm_codec::encode_: i=", i); - encoding_buffer.put_string(int2oct(i, 4)); - } else if (s.rfind(".sequenceNumber") != string::npos) { - const INTEGER &i = static_cast(type); - loggers::get_instance().log_msg("uppertester_denm_codec::encode_: i=", i); - encoding_buffer.put_string(int2oct(i, 2)); - } else if (s.rfind(".situation") != string::npos) { - const OPTIONAL &o = dynamic_cast &>(type); - const DENM__PDU__Descriptions::SituationContainer & bt = static_cast(*o.get_opt_value()); - encode_(bt, field_descriptor, encoding_buffer); - } else if (s.rfind(".AlacarteContainer") != string::npos) { - const OPTIONAL &o = dynamic_cast &>(type); - const OCTETSTRING & os = static_cast(*o.get_opt_value()); - loggers::get_instance().log_msg("uppertester_denm_codec::encode_: os=", int2oct(os.lengthof(), 1)); - encoding_buffer.put_string(int2oct(os.lengthof(), 1)); - loggers::get_instance().log_msg("uppertester_denm_codec::encode_: os=", os); - encoding_buffer.put_string(os); - } else { - loggers::get_instance().log("uppertester_denm_codec::encode_ (else): processing type %s/%s", type.get_descriptor()->name, field_descriptor.name); - type.encode(field_descriptor, encoding_buffer, TTCN_EncDec::CT_RAW); - } - } - - loggers::get_instance().log_to_hexa("<<< uppertester_denm_codec::encode_: encoding_buffer=", encoding_buffer); - return 0; -} - -int uppertester_denm_codec::decode(const OCTETSTRING &data, Record_Type &msg, params_its *params) { - TTCN_EncDec::clear_error(); - TTCN_Buffer decoding_buffer(data); - _params = params; - - loggers::get_instance().log_to_hexa(">>> uppertester_denm_codec::decode: decoding_buffer=", decoding_buffer); - // decode_(msg, *msg.get_descriptor(), decoding_buffer); - - loggers::get_instance().log_msg("<<< uppertester_denm_codec::decode: ", (const Record_Type &)msg); - return 0; -} - -std::unique_ptr uppertester_denm_codec::decode(const OCTETSTRING &data, params_its *params) { - - std::unique_ptr result; - - const uint8_t *ptr = static_cast(data); - if (*ptr != uppertester_denm_codec::c_utDenmEventIndication) { - LibItsDenm__TypesAndValues::UtDenmResults res; - decode(data, res, params); - result.reset((Base_Type *)res.clone()); - } else { - LibItsDenm__TypesAndValues::UtDenmEventInd ind; - decode(data, ind, params); - result.reset((Base_Type *)ind.clone()); - } - - return result; -} - -int uppertester_denm_codec::decode(const OCTETSTRING &data, LibItsDenm__TypesAndValues::UtDenmResults &msg, params_its *params) { - loggers::get_instance().log_to_hexa(">>> uppertester_denm_codec::decode: decoding_buffer=", data); - - const uint8_t *ptr = static_cast(data); - if (*ptr == uppertester_denm_codec::c_utDenmInitializeResult) { - msg.utDenmInitializeResult() = BOOLEAN(*(ptr + 1) == 0x01); - } else if (*ptr == uppertester_denm_codec::c_utDenmChangePositionResult) { - msg.utDenmChangePositionResult() = BOOLEAN(*(ptr + 1) == 0x01); - } else if (*ptr == uppertester_denm_codec::c_utDenmChangePseudonymResult) { - msg.utDenmChangePseudonymResult() = BOOLEAN(*(ptr + 1) == 0x01); - } else if (*ptr == uppertester_denm_codec::c_utDenmTerminationResult) { - msg.utDenmTerminationResult() = BOOLEAN(*(ptr + 1) == 0x01); - } else if (*ptr == uppertester_denm_codec::c_utDenmTriggerResult) { - LibItsDenm__TypesAndValues::UtDenmTriggerResult r; - ptr += 1; - r.result() = BOOLEAN(*ptr == 0x01); - ptr += 1; - OCTETSTRING os(4, ptr); - ptr += 4; - r.actionId().originatingStationId() = oct2int(os); - os = OCTETSTRING(2, ptr); - r.actionId().sequenceNumber() = oct2int(os); - msg.utDenmTriggerResult() = r; - } else if (*ptr == uppertester_denm_codec::c_utDenmUpdateResult) { - LibItsDenm__TypesAndValues::UtDenmUpdateResult r; - ptr += 1; - r.result() = BOOLEAN(*ptr == 0x01); - ptr += 1; - OCTETSTRING os(4, ptr); - ptr += 4; - r.actionId().originatingStationId() = oct2int(os); - os = OCTETSTRING(2, ptr); - r.actionId().sequenceNumber() = oct2int(os); - msg.utDenmUpdateResult() = r; - } else if (*ptr == 0x24) { // TODO Use a constant for "Peer does not support is "Peer does not support the command" - // Peer does not support the command - msg.utDenmInitializeResult() = 0x00; - } else { - loggers::get_instance().warning("uppertester_denm_codec::decode: Unsupported result"); - } - - loggers::get_instance().log_msg("<<< uppertester_denm_codec::decode", msg); - return 0; -} - -int uppertester_denm_codec::decode(const OCTETSTRING &data, LibItsDenm__TypesAndValues::UtDenmEventInd &msg, params_its *params) { - loggers::get_instance().log_to_hexa(">>> uppertester_denm_codec::decode (1): decoding_buffer=", data); - - const uint8_t *ptr = static_cast(data) + 1; - OCTETSTRING os(2, ptr); - ptr += 2; - unsigned int length = oct2int(os); - loggers::get_instance().log("uppertester_denm_codec::decode (1): DENM message length=%d", length); - os = OCTETSTRING(length, ptr); - loggers::get_instance().log_to_hexa("uppertester_denm_codec::decode (1): DENM message=", os); - denm_codec codec; - codec.decode(os, msg.denMsg(), params); - - loggers::get_instance().log_msg("<<< uppertester_denm_codec::decode (1)", msg); - return 0; -} +#include +//#include + +#include "loggers.hh" +#include "uppertester_denm_codec.hh" + +#include "LibItsDenm_TestSystem.hh" +#include "LibItsDenm_TypesAndValues.hh" + +#include "denm_codec.hh" + +template class OPTIONAL; +class TTCN_EncDec; + +uint8_t uppertester_denm_codec::c_utDenmInitialize = 0x00; +uint8_t uppertester_denm_codec::c_utDenmInitializeResult = 0x01; +uint8_t uppertester_denm_codec::c_utDenmChangePseudonym = 0x04; +uint8_t uppertester_denm_codec::c_utDenmChangePseudonymResult = 0x05; +uint8_t uppertester_denm_codec::c_utDenmChangePosition = 0x02; +uint8_t uppertester_denm_codec::c_utDenmChangePositionResult = 0x03; +uint8_t uppertester_denm_codec::c_utDenmTrigger = 0x10; +uint8_t uppertester_denm_codec::c_utDenmTriggerResult = 0x11; +uint8_t uppertester_denm_codec::c_utDenmUpdate = 0x12; +uint8_t uppertester_denm_codec::c_utDenmUpdateResult = 0x13; +uint8_t uppertester_denm_codec::c_utDenmTermination = 0x14; +uint8_t uppertester_denm_codec::c_utDenmTerminationResult = 0x15; +uint8_t uppertester_denm_codec::c_utDenmEventIndication = 0x17; + +int uppertester_denm_codec::encode(const Record_Type &msg, OCTETSTRING &data) { + loggers::get_instance().log_msg(">>> uppertester_denm_codec::encode: ", (const Record_Type &)msg); + + TTCN_EncDec::clear_error(); + TTCN_Buffer encoding_buffer; + if (std::string(msg.get_descriptor()->name).compare("@LibItsDenm_TypesAndValues.UtDenmInitialize") == 0) { + encoding_buffer.put_c(static_cast(uppertester_denm_codec::c_utDenmInitialize)); + } else if (std::string(msg.get_descriptor()->name).compare("@LibItsDenm_TypesAndValues.UtDenmChangePosition") == 0) { + encoding_buffer.put_c(static_cast(uppertester_denm_codec::c_utDenmChangePosition)); + } else if (std::string(msg.get_descriptor()->name).compare("@LibItsDenm_TypesAndValues.UtDenmChangePseudonym") == 0) { + encoding_buffer.put_c(static_cast(uppertester_denm_codec::c_utDenmChangePseudonym)); + } else if (std::string(msg.get_descriptor()->name).compare("@LibItsDenm_TypesAndValues.UtDenmTrigger") == 0) { + encoding_buffer.put_c(static_cast(uppertester_denm_codec::c_utDenmTrigger)); + // See ETSI TR 103 099 V1.4.1 Clause C.4.1 GenerateDenmEvent + uint8_t flags = 0x00; + const LibItsDenm__TypesAndValues::UtDenmTrigger &r = static_cast(msg); + if (r.validityDuration().is_present()) { // V + flags |= 0x80; + } + if (r.repetitionDuration().is_present()) { // R + flags |= 0x40; + } + if (r.trafficDirection().is_present()) { // T + flags |= 0x10; + } + if (r.transmissionInterval().is_present()) { // K + flags |= 0x04; + } + if (r.repetitionInterval().is_present()) { // I + flags |= 0x02; + } + encoding_buffer.put_c(flags); + loggers::get_instance().log_to_hexa("uppertester_denm_codec::encode: flags=", encoding_buffer); + // Continue with encoding + } else if (std::string(msg.get_descriptor()->name).compare("@LibItsDenm_TypesAndValues.UtDenmUpdate") == 0) { + encoding_buffer.put_c(static_cast(uppertester_denm_codec::c_utDenmUpdate)); + // See ETSI TR 103 099 V1.3.21 (20152016-07) Clause C.4.1GenerateDenmEvent + uint8_t flags = 0x00; + const LibItsDenm__TypesAndValues::UtDenmUpdate &r = static_cast(msg); + if (r.validityDuration().is_present()) { // V + flags |= 0x80; + } + if (r.situation().is_present()) { // S + flags |= 0x40; + } + if (r.awarenessDistance().is_present()) { // D + flags |= 0x20; + } + if (r.trafficDirection().is_present()) { // T + flags |= 0x10; + } + // TODO Check TTCN-3 code, it's missing + /*if (r.trafficClass().is_present()) { // C + flags |= 0x08; + }*/ + if (r.transmissionInterval().is_present()) { // K + flags |= 0x04; + } + if (r.repetitionInterval().is_present()) { // I + flags |= 0x02; + } + encoding_buffer.put_c(flags); + loggers::get_instance().log_to_hexa("uppertester_denm_codec::encode: flags=", encoding_buffer); + // Continue with encoding + } else if (std::string(msg.get_descriptor()->name).compare("@LibItsDenm_TypesAndValues.UtDenmTermination") == 0) { + encoding_buffer.put_c(static_cast(uppertester_denm_codec::c_utDenmTermination)); + } else { // Error + data = OCTETSTRING(0, nullptr); + loggers::get_instance().warning("<<< uppertester_denm_codec::encode: Failed to encode UT message"); + return -1; + } + encode_(msg, *msg.get_descriptor(), encoding_buffer); + data = OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data()); + loggers::get_instance().log_msg("<<< uppertester_denm_codec::encode: data=", data); + return 0; +} + +int uppertester_denm_codec::encode_(const Base_Type &type, const TTCN_Typedescriptor_t &field_descriptor, TTCN_Buffer &encoding_buffer) { + loggers::get_instance().log(">>> uppertester_denm_codec::encode_: processing %s/%s/%p", type.get_descriptor()->name, field_descriptor.name, + dynamic_cast(&type)); + loggers::get_instance().log_msg(">>> uppertester_denm_codec::encode_: ", type); + + if (dynamic_cast(&type) != NULL) { + const Record_Type &r = (const Record_Type &)type; + loggers::get_instance().log("uppertester_denm_codec::encode_: processing Record_Type %s", r.get_descriptor()->name); + for (int i = 0; i < r.get_count(); i++) { + loggers::get_instance().log("uppertester_denm_codec::encode_: processing %s/%s/%s - %d (1 ==> use dynamic_cast) - %d", r.fld_name(i), + r.fld_descr(i)->name, r.get_at(i)->get_descriptor()->name, r.get_at(i)->is_optional(), r.get_at(i)->is_present()); + if (r.get_at(i)->is_present()) { + if (encode_(*r.get_at(i), *r.fld_descr(i), encoding_buffer) == -1) { + loggers::get_instance().warning("uppertester_denm_codec::encode_: -1 result code returned"); + return -1; + } + } else { + std::string s(r.fld_descr(i)->name); + if ((s.rfind(".validityDuration") != string::npos) || (s.rfind(".repetitionDuration") != string::npos) || + (s.rfind(".situation") != string::npos)) { // Pad with three bytes + encoding_buffer.put_c((uint8_t)0x00); + encoding_buffer.put_c((uint8_t)0x00); + encoding_buffer.put_c((uint8_t)0x00); + } else if ((s.rfind(".transmissionInterval") != string::npos) || (s.rfind(".repetitionInterval") != string::npos)) { // Pad with two bytes + encoding_buffer.put_c((uint8_t)0x00); + encoding_buffer.put_c((uint8_t)0x00); + } else if ((s.rfind(".informationQuality") != string::npos) || (s.rfind(".trafficDirection") != string::npos) || (s.rfind(".awarenessDistance") != string::npos) || + (s.rfind(".relevanceDistance") != string::npos) // Mandatory in DenmTrigger, optional in DenmUpdate + ) { // Pad with one byte + encoding_buffer.put_c((uint8_t)0x00); + } else if (std::string(r.fld_name(i)).compare("alacarte") == 0) { + // Add empty field length + loggers::get_instance().log("uppertester_denm_codec::encode_: alacarte is missing, add 0x00"); + encoding_buffer.put_c(0x00); + } + loggers::get_instance().log_to_hexa("uppertester_denm_codec::encode_: After padding, encoding_buffer=", encoding_buffer); + } + } // End of 'for' statement + } else { + std::string s(field_descriptor.name); + loggers::get_instance().log("uppertester_denm_codec::encode_: field to process %s", s.c_str()); + if ((s.rfind(".shape") != string::npos) || (s.rfind(".relevanceDistance") != string::npos) || (s.rfind(".trafficDirection") != string::npos)) { + encoding_buffer.put_c((uint8_t)static_cast(type).as_int()); + } else if (s.rfind(".payload") != string::npos) { + const OCTETSTRING & os = static_cast(type); + const uint8_t s[] = {(uint8_t)((os.lengthof() & 0x0000FF00) >> 8), (uint8_t)os.lengthof()}; + encoding_buffer.put_s(2, s); + if (os.lengthof() != 0) { + encoding_buffer.put_string(os); + } + } else if (s.rfind(".detectionTime") != string::npos) { + unsigned long long llu = static_cast(type).get_long_long_val(); + loggers::get_instance().log("uppertester_denm_codec::encode_ : detectionTime=%llu", llu); + std::vector v; + for (int i = 0; i < 6; i++) { + v.insert(v.begin(), static_cast(llu)); + llu >>= 8; + } // End of 'for' statement + OCTETSTRING os(v.size(), v.data()); + loggers::get_instance().log_msg("uppertester_denm_codec::encode_: timeDetection=", os); + encoding_buffer.put_string(os); + } else if ((s.rfind(".validityDuration") != string::npos) || (s.rfind(".repetitionDuration") != string::npos)) { + const OPTIONAL &o = dynamic_cast &>(type); + const INTEGER & i = static_cast(*o.get_opt_value()); + loggers::get_instance().log_msg("uppertester_denm_codec::encode_: i=", i); + encoding_buffer.put_string(int2oct(i, 3)); + } else if ((s.rfind(".causeCode") != string::npos) || (s.rfind(".subCauseCode") != string::npos) || (s.rfind(".informationQuality") != string::npos) || + (s.rfind(".relevanceDistance") != string::npos)) { // Keeping .causeCode && .subCauseCode for backward compatibility + const INTEGER &i = static_cast(type); + loggers::get_instance().log("uppertester_denm_codec::encode_: o=%02x", *static_cast(int2oct(i, 1))); + encoding_buffer.put_c(*static_cast(int2oct(i, 1))); + } else if (s.rfind(".ccAndScc") != string::npos) { + const ETSI__ITS__CDD::CauseCodeChoice& causeCodeChoice = static_cast(type); + const INTEGER &i = static_cast(static_cast(causeCodeChoice.get_selection())); + loggers::get_instance().log("uppertester_denm_codec::encode_: o=%02x", *static_cast(int2oct(i, 1))); + encoding_buffer.put_c(*static_cast(int2oct(i, 1))); + encoding_buffer.put_c(0x00); // Set SubCause to 0 + } else if (s.rfind(".awarenessDistance") != string::npos) { + const ETSI__ITS__CDD::RelevanceDistance& awarenessDistance = static_cast(type); + const INTEGER &i = static_cast(ETSI__ITS__CDD::RelevanceDistance::enum2int(awarenessDistance)); + loggers::get_instance().log("uppertester_denm_codec::encode_: o=%02x", *static_cast(int2oct(i, 1))); + encoding_buffer.put_c(*static_cast(int2oct(i, 1))); + } else if ((s.rfind(".linkedCause") != string::npos) || (s.rfind(".eventHistory") != string::npos)) { + // Skip them + } else if ((s.rfind(".transmissionInterval") != string::npos) || (s.rfind(".repetitionInterval") != string::npos)) { + const OPTIONAL &o = dynamic_cast &>(type); + const INTEGER & i = static_cast(*o.get_opt_value()); + encoding_buffer.put_string(int2oct(i, 2)); + } else if (s.rfind(".originatingStationId") != string::npos) { + const INTEGER &i = static_cast(type); + loggers::get_instance().log_msg("uppertester_denm_codec::encode_: i=", i); + encoding_buffer.put_string(int2oct(i, 4)); + } else if (s.rfind(".sequenceNumber") != string::npos) { + const INTEGER &i = static_cast(type); + loggers::get_instance().log_msg("uppertester_denm_codec::encode_: i=", i); + encoding_buffer.put_string(int2oct(i, 2)); + } else if (s.rfind(".situation") != string::npos) { + const OPTIONAL &o = dynamic_cast &>(type); + const DENM__PDU__Descriptions::SituationContainer & bt = static_cast(*o.get_opt_value()); + encode_(bt, field_descriptor, encoding_buffer); + } else if (s.rfind(".AlacarteContainer") != string::npos) { + const OPTIONAL &o = dynamic_cast &>(type); + const OCTETSTRING & os = static_cast(*o.get_opt_value()); + loggers::get_instance().log_msg("uppertester_denm_codec::encode_: os=", int2oct(os.lengthof(), 1)); + encoding_buffer.put_string(int2oct(os.lengthof(), 1)); + loggers::get_instance().log_msg("uppertester_denm_codec::encode_: os=", os); + encoding_buffer.put_string(os); + } else { + loggers::get_instance().log("uppertester_denm_codec::encode_ (else): processing type %s/%s", type.get_descriptor()->name, field_descriptor.name); + type.encode(field_descriptor, encoding_buffer, TTCN_EncDec::CT_RAW); + } + } + + loggers::get_instance().log_to_hexa("<<< uppertester_denm_codec::encode_: encoding_buffer=", encoding_buffer); + return 0; +} + +int uppertester_denm_codec::decode(const OCTETSTRING &data, Record_Type &msg, params_its *params) { + TTCN_EncDec::clear_error(); + TTCN_Buffer decoding_buffer(data); + _params = params; + + loggers::get_instance().log_to_hexa(">>> uppertester_denm_codec::decode: decoding_buffer=", decoding_buffer); + // decode_(msg, *msg.get_descriptor(), decoding_buffer); + + loggers::get_instance().log_msg("<<< uppertester_denm_codec::decode: ", (const Record_Type &)msg); + return 0; +} + +std::unique_ptr uppertester_denm_codec::decode(const OCTETSTRING &data, params_its *params) { + + std::unique_ptr result; + + const uint8_t *ptr = static_cast(data); + if (*ptr != uppertester_denm_codec::c_utDenmEventIndication) { + LibItsDenm__TypesAndValues::UtDenmResults res; + decode(data, res, params); + result.reset((Base_Type *)res.clone()); + } else { + LibItsDenm__TypesAndValues::UtDenmEventInd ind; + decode(data, ind, params); + result.reset((Base_Type *)ind.clone()); + } + + return result; +} + +int uppertester_denm_codec::decode(const OCTETSTRING &data, LibItsDenm__TypesAndValues::UtDenmResults &msg, params_its *params) { + loggers::get_instance().log_to_hexa(">>> uppertester_denm_codec::decode: decoding_buffer=", data); + + const uint8_t *ptr = static_cast(data); + if (*ptr == uppertester_denm_codec::c_utDenmInitializeResult) { + msg.utDenmInitializeResult() = BOOLEAN(*(ptr + 1) == 0x01); + } else if (*ptr == uppertester_denm_codec::c_utDenmChangePositionResult) { + msg.utDenmChangePositionResult() = BOOLEAN(*(ptr + 1) == 0x01); + } else if (*ptr == uppertester_denm_codec::c_utDenmChangePseudonymResult) { + msg.utDenmChangePseudonymResult() = BOOLEAN(*(ptr + 1) == 0x01); + } else if (*ptr == uppertester_denm_codec::c_utDenmTerminationResult) { + msg.utDenmTerminationResult() = BOOLEAN(*(ptr + 1) == 0x01); + } else if (*ptr == uppertester_denm_codec::c_utDenmTriggerResult) { + LibItsDenm__TypesAndValues::UtDenmTriggerResult r; + ptr += 1; + r.result() = BOOLEAN(*ptr == 0x01); + ptr += 1; + OCTETSTRING os(4, ptr); + ptr += 4; + r.actionId().originatingStationId() = oct2int(os); + os = OCTETSTRING(2, ptr); + r.actionId().sequenceNumber() = oct2int(os); + msg.utDenmTriggerResult() = r; + } else if (*ptr == uppertester_denm_codec::c_utDenmUpdateResult) { + LibItsDenm__TypesAndValues::UtDenmUpdateResult r; + ptr += 1; + r.result() = BOOLEAN(*ptr == 0x01); + ptr += 1; + OCTETSTRING os(4, ptr); + ptr += 4; + r.actionId().originatingStationId() = oct2int(os); + os = OCTETSTRING(2, ptr); + r.actionId().sequenceNumber() = oct2int(os); + msg.utDenmUpdateResult() = r; + } else if (*ptr == 0x24) { // TODO Use a constant for "Peer does not support is "Peer does not support the command" + // Peer does not support the command + msg.utDenmInitializeResult() = 0x00; + } else { + loggers::get_instance().warning("uppertester_denm_codec::decode: Unsupported result"); + } + + loggers::get_instance().log_msg("<<< uppertester_denm_codec::decode", msg); + return 0; +} + +int uppertester_denm_codec::decode(const OCTETSTRING &data, LibItsDenm__TypesAndValues::UtDenmEventInd &msg, params_its *params) { + loggers::get_instance().log_to_hexa(">>> uppertester_denm_codec::decode (1): decoding_buffer=", data); + + const uint8_t *ptr = static_cast(data) + 1; + OCTETSTRING os(2, ptr); + ptr += 2; + unsigned int length = oct2int(os); + loggers::get_instance().log("uppertester_denm_codec::decode (1): DENM message length=%d", length); + os = OCTETSTRING(length, ptr); + loggers::get_instance().log_to_hexa("uppertester_denm_codec::decode (1): DENM message=", os); + denm_codec codec; + codec.decode(os, msg.denMsg(), params); + + loggers::get_instance().log_msg("<<< uppertester_denm_codec::decode (1)", msg); + return 0; +} diff --git a/ccsrc/Protocols/UpperTester/uppertester_geonetworking_codec.cc b/ccsrc/Protocols/UpperTester/uppertester_geonetworking_codec.cc index 488761f2e11f78f6ded18f1a9420a267571cfa6f..083232f59147c24b2b6dd7ecb2d3065bc4f3acc7 100644 --- a/ccsrc/Protocols/UpperTester/uppertester_geonetworking_codec.cc +++ b/ccsrc/Protocols/UpperTester/uppertester_geonetworking_codec.cc @@ -10,19 +10,19 @@ template class OPTIONAL; class TTCN_EncDec; -uint8_t uppertester_geonetworking_codec::c_utGnInitialize = 0x00; -uint8_t uppertester_geonetworking_codec::c_utGnInitializeResult = 0x01; -uint8_t uppertester_geonetworking_codec::c_utGnChangePosition = 0x02; -uint8_t uppertester_geonetworking_codec::c_utGnChangePositionResult = 0x03; -uint8_t uppertester_geonetworking_codec::c_utGnTriggerResult = 0x41; -uint8_t uppertester_geonetworking_codec::c_utGnTrigger_GeoUnicast = 0x50; -uint8_t uppertester_geonetworking_codec::c_utGnTrigger_GeoBroadcast = 0x51; -uint8_t uppertester_geonetworking_codec::c_utGnTrigger_GeoAnycast = 0x52; -uint8_t uppertester_geonetworking_codec::c_utGnTrigger_Shb = 0x53; -uint8_t uppertester_geonetworking_codec::c_utGnTrigger_Tsb = 0x54; -uint8_t uppertester_geonetworking_codec::c_utGnEventIndication = 0x55; -uint8_t uppertester_geonetworking_codec::c_utGnChangePseudonym = 0x56; -uint8_t uppertester_geonetworking_codec::c_utGnChangePseudonymResult = 0x57; +uint8_t uppertester_geonetworking_codec::c_utGnInitialize = 0x00; +uint8_t uppertester_geonetworking_codec::c_utGnInitializeResult = 0x01; +uint8_t uppertester_geonetworking_codec::c_utGnChangePseudonym = 0x04; +uint8_t uppertester_geonetworking_codec::c_utGnChangePseudonymResult = 0x05; +uint8_t uppertester_geonetworking_codec::c_utGnChangePosition = 0x02; +uint8_t uppertester_geonetworking_codec::c_utGnChangePositionResult = 0x03; +uint8_t uppertester_geonetworking_codec::c_utGnTriggerResult = 0x41; +uint8_t uppertester_geonetworking_codec::c_utGnTrigger_GeoUnicast = 0x50; +uint8_t uppertester_geonetworking_codec::c_utGnTrigger_GeoBroadcast = 0x51; +uint8_t uppertester_geonetworking_codec::c_utGnTrigger_GeoAnycast = 0x52; +uint8_t uppertester_geonetworking_codec::c_utGnTrigger_Shb = 0x53; +uint8_t uppertester_geonetworking_codec::c_utGnTrigger_Tsb = 0x54; +uint8_t uppertester_geonetworking_codec::c_utGnEventIndication = 0x55; int uppertester_geonetworking_codec::encode(const Record_Type &msg, OCTETSTRING &data) { loggers::get_instance().log_msg(">>> uppertester_geonetworking_codec::encode: ", (const Record_Type &)msg); diff --git a/ccsrc/Protocols/UpperTester/uppertester_vru_codec.cc b/ccsrc/Protocols/UpperTester/uppertester_vru_codec.cc index 159f22d6fe757f434883786997d4afb8899612e2..a843eea082b9e8a35024dfc85da685b60de34e27 100644 --- a/ccsrc/Protocols/UpperTester/uppertester_vru_codec.cc +++ b/ccsrc/Protocols/UpperTester/uppertester_vru_codec.cc @@ -11,112 +11,54 @@ template class OPTIONAL; class TTCN_EncDec; -unsigned char uppertester_vru_codec::c_utVamInitialize = 0x00; -unsigned char uppertester_vru_codec::c_utVamInitializeResult = 0x01; -unsigned char uppertester_vru_codec::c_utVamEventInd = 0x23; +uint8_t uppertester_vru_codec::c_utVamInitialize = 0x00; +uint8_t uppertester_vru_codec::c_utVamInitializeResult = 0x01; +uint8_t uppertester_vru_codec::c_utVamTrigger = 0xF3; +uint8_t uppertester_vru_codec::c_utVamTriggerResult = 0xF4; +uint8_t uppertester_vru_codec::c_utVamEventInd = 0xF5; -int uppertester_vru_codec::encode(const Record_Type &msg, OCTETSTRING &data) { - loggers::get_instance().log_msg(">>> uppertester_vru_codec::encode: ", (const Record_Type &)msg); +int uppertester_vru_codec::encode(const LibItsVru__TypesAndValues::UtVamInitialize &r, OCTETSTRING &data) { + loggers::get_instance().log_msg(">>> uppertester_vru_codec::encode (1): ", r); TTCN_EncDec::clear_error(); TTCN_Buffer encoding_buffer; - if (std::string(msg.get_descriptor()->name).compare("@LibItsVru_TypesAndValues.UtVamInitialize") == 0) { - encoding_buffer.put_c(static_cast(uppertester_vru_codec::c_utVamInitialize)); - } else { // Error - data = OCTETSTRING(0, nullptr); - loggers::get_instance().warning("<<< uppertester_vru_codec::encode: Failed to encode UT message"); - return -1; - } - encode_(msg, *msg.get_descriptor(), encoding_buffer); + encoding_buffer.put_c(static_cast(uppertester_vru_codec::c_utVamInitialize)); + encoding_buffer.put_string(r.hashedId8()); data = OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data()); - loggers::get_instance().log_msg("<<< uppertester_vru_codec::encode: data=", data); + loggers::get_instance().log_msg("<<< uppertester_vru_codec::encode (1): data=", data); return 0; } -int uppertester_vru_codec::encode_(const Base_Type &type, const TTCN_Typedescriptor_t &field_descriptor, TTCN_Buffer &encoding_buffer) { - loggers::get_instance().log(">>> uppertester_vru_codec::encode_: processing %s/%s/%p", type.get_descriptor()->name, field_descriptor.name, - dynamic_cast(&type)); - loggers::get_instance().log_msg(">>> uppertester_vru_codec::encode_: ", type); - - if (dynamic_cast(&type) != NULL) { - const Record_Type &r = (const Record_Type &)type; - loggers::get_instance().log("uppertester_vru_codec::encode_: processing Record_Type %s", r.get_descriptor()->name); - for (int i = 0; i < r.get_count(); i++) { - loggers::get_instance().log("uppertester_vru_codec::encode_: processing %s/%s/%s - %d (1 ==> use dynamic_cast) - %d", r.fld_name(i), - r.fld_descr(i)->name, r.get_at(i)->get_descriptor()->name, r.get_at(i)->is_optional(), r.get_at(i)->is_present()); - if (r.get_at(i)->is_present()) { - if (encode_(*r.get_at(i), *r.fld_descr(i), encoding_buffer) == -1) { - loggers::get_instance().warning("uppertester_vru_codec::encode_: -1 result code returned"); - return -1; - } - } else if (std::string(r.fld_name(i)).compare("alacarte") == 0) { - // Add empty field length - loggers::get_instance().log("uppertester_vru_codec::encode_: alacarte is missing, add 0x00"); - encoding_buffer.put_c(0x00); - } - } // End of 'for' statement - } else { - std::string s(field_descriptor.name); - loggers::get_instance().log("uppertester_vru_codec::encode_: field to process %s", s.c_str()); - if ((s.rfind(".shape") != string::npos) || (s.rfind(".relevanceDistance") != string::npos) || (s.rfind(".relevanceTrafficDirection") != string::npos)) { - encoding_buffer.put_c((unsigned char)static_cast(type).as_int()); - } else if (s.rfind(".payload") != string::npos) { - const OCTETSTRING & os = static_cast(type); - const unsigned char s[] = {(unsigned char)((os.lengthof() & 0x0000FF00) >> 8), (unsigned char)os.lengthof()}; - encoding_buffer.put_s(2, s); - if (os.lengthof() != 0) { - encoding_buffer.put_string(os); - } - } else if (s.rfind(".detectionTime") != string::npos) { - unsigned long long llu = static_cast(type).get_long_long_val(); - loggers::get_instance().log("uppertester_vru_codec::encode_ : detectionTime=%llu", llu); - std::vector v; - for (int i = 0; i < 6; i++) { - v.insert(v.begin(), static_cast(llu)); - llu >>= 8; - } // End of 'for' statement - OCTETSTRING os(v.size(), v.data()); - loggers::get_instance().log_msg("uppertester_vru_codec::encode_: timeDetection=", os); - encoding_buffer.put_string(os); - } else if ((s.rfind(".validityDuration") != string::npos) || (s.rfind(".repetitionDuration") != string::npos)) { - if (type.is_present()) { - const OPTIONAL &o = dynamic_cast &>(type); - const INTEGER & i = static_cast(*o.get_opt_value()); - loggers::get_instance().log_msg("uppertester_vru_codec::encode_: i=", i); - encoding_buffer.put_string(int2oct(i, 3)); - } - } else if ((s.rfind(".informationQuality") != string::npos) || (s.rfind(".causeCode") != string::npos) || (s.rfind(".subCauseCode") != string::npos)) { - const INTEGER &i = static_cast(type); - encoding_buffer.put_string(int2oct(i, 1)); - } else if ((s.rfind(".linkedCause") != string::npos) || (s.rfind(".eventHistory") != string::npos)) { - // Skip them - } else if ((s.rfind(".transmissionInterval") != string::npos) || (s.rfind(".repetitionInterval") != string::npos)) { - if (type.is_present()) { - const OPTIONAL &o = dynamic_cast &>(type); - const INTEGER & i = static_cast(*o.get_opt_value()); - encoding_buffer.put_string(int2oct(i, 2)); - } - } else if (s.rfind(".originatingStationID") != string::npos) { - const INTEGER &i = static_cast(type); - encoding_buffer.put_string(int2oct(i, 4)); - } else if (s.rfind(".sequenceNumber") != string::npos) { - const INTEGER &i = static_cast(type); - encoding_buffer.put_string(int2oct(i, 2)); - } else if (s.rfind(".AlacarteContainer") != string::npos) { - const OPTIONAL &o = dynamic_cast &>(type); - const OCTETSTRING & os = static_cast(*o.get_opt_value()); - encoding_buffer.put_string(int2oct(os.lengthof(), 2)); - encoding_buffer.put_string(os); - } else { - loggers::get_instance().log("uppertester_vru_codec::encode_ (else): processing type %s/%s", type.get_descriptor()->name, field_descriptor.name); - type.encode(field_descriptor, encoding_buffer, TTCN_EncDec::CT_RAW); - } - } +int uppertester_vru_codec::encode(const LibItsVru__TypesAndValues::UtVamTrigger &r, OCTETSTRING &data) { + loggers::get_instance().log_msg(">>> uppertester_vru_codec::encode (2): ", r); - loggers::get_instance().log_to_hexa("<<>> uppertester_vru_codec::encode (3)"); + return -1; +} + int uppertester_vru_codec::decode(const OCTETSTRING &data, Record_Type &msg, params_its *params) { TTCN_EncDec::clear_error(); TTCN_Buffer decoding_buffer(data); @@ -133,7 +75,7 @@ std::unique_ptr uppertester_vru_codec::decode(const OCTETSTRING &data std::unique_ptr result; - const unsigned char *ptr = static_cast(data); + const uint8_t *ptr = static_cast(data); if (*ptr != uppertester_vru_codec::c_utVamEventInd) { LibItsVru__TypesAndValues::UtVamResults res; if (decode(data, res, params) == 0) { @@ -151,27 +93,26 @@ std::unique_ptr uppertester_vru_codec::decode(const OCTETSTRING &data } int uppertester_vru_codec::decode(const OCTETSTRING &data, LibItsVru__TypesAndValues::UtVamResults &msg, params_its *params) { - loggers::get_instance().log_to_hexa(">>> uppertester_vru_codec::decode: decoding_buffer=", data); + loggers::get_instance().log_to_hexa(">>> uppertester_vru_codec::decode (3): decoding_buffer=", data); - const unsigned char *ptr = static_cast(data); + const uint8_t *ptr = static_cast(data); if (*ptr == uppertester_vru_codec::c_utVamInitializeResult) { msg.utVamInitializeResult() = BOOLEAN(*(ptr + 1) == 0x01); - } else if (*ptr == 0x24) { // TODO Use a constant for "Peer does not support is "Peer does not support the command" - // Peer does not support the command - msg.utVamInitializeResult() = 0x00; + } else if (*ptr == uppertester_vru_codec::c_utVamTriggerResult) { + msg.utVamTriggerResult() = BOOLEAN(*(ptr + 1) == 0x01); } else { - loggers::get_instance().warning("uppertester_vru_codec::decode: Unsupported result"); + loggers::get_instance().warning("uppertester_vru_codec::decode (3): Unsupported result"); return -1; } - loggers::get_instance().log_msg("<<< uppertester_vru_codec::decode", msg); + loggers::get_instance().log_msg("<<< uppertester_vru_codec::decode (3): ", msg); return 0; } int uppertester_vru_codec::decode(const OCTETSTRING &data, LibItsVru__TypesAndValues::UtVamEventInd &msg, params_its *params) { loggers::get_instance().log_to_hexa(">>> uppertester_vru_codec::decode (1): decoding_buffer=", data); - const unsigned char *ptr = static_cast(data) + 1; + const uint8_t *ptr = static_cast(data) + 1; OCTETSTRING os(2, ptr); const unsigned int length = (const unsigned int)((*ptr << 8 & 0xff00) | *(ptr + 1)); ptr += 2; diff --git a/ccsrc/Protocols/UpperTester/uppertester_vru_codec.hh b/ccsrc/Protocols/UpperTester/uppertester_vru_codec.hh index c7e699ab7af3754d947a3b75607383b6e1e55b37..94678aaf6b001d2c80b2216f62ce1e8ad4c2fe4d 100644 --- a/ccsrc/Protocols/UpperTester/uppertester_vru_codec.hh +++ b/ccsrc/Protocols/UpperTester/uppertester_vru_codec.hh @@ -21,6 +21,7 @@ class TTCN_Typedescriptor_t; class TTCN_Buffer; namespace LibItsVru__TypesAndValues { + class UtVamInitialize; class UtVamTrigger; class UtVamResults; class UtVamEventInd; @@ -28,10 +29,12 @@ namespace LibItsVru__TypesAndValues { class uppertester_vru_codec : public codec { public: - static unsigned char c_utVamInitialize; - static unsigned char c_utVamInitializeResult; - static unsigned char c_utVamEventInd; - + static uint8_t c_utVamInitialize; + static uint8_t c_utVamInitializeResult; + static uint8_t c_utVamTrigger; + static uint8_t c_utVamTriggerResult; + static uint8_t c_utVamEventInd; + private: int encode_(const Base_Type &type, const TTCN_Typedescriptor_t &field_descriptor, TTCN_Buffer &encoding_buffer); @@ -39,8 +42,10 @@ public: uppertester_vru_codec() : codec(){}; virtual ~uppertester_vru_codec(){}; - virtual int encode(const Record_Type &, OCTETSTRING &data); - //int encode(const LibItsVru__TypesAndValues::UtVamTrigger &, OCTETSTRING &data); + //virtual int encode(const Record_Type &, OCTETSTRING &data); + int encode(const LibItsVru__TypesAndValues::UtVamInitialize &, OCTETSTRING &data); + int encode(const LibItsVru__TypesAndValues::UtVamTrigger &, OCTETSTRING &data); + int encode(const Record_Type &p_message, OCTETSTRING &p_data); virtual int decode(const OCTETSTRING &data, Record_Type &, params_its *params = NULL); std::unique_ptr decode(const OCTETSTRING &data, params_its *params = NULL); diff --git a/ccsrc/Protocols/UpperTester/uppertester_vru_layer.cc b/ccsrc/Protocols/UpperTester/uppertester_vru_layer.cc index 0dabfd95b7543c54915d6e33639a80d3ea092481..6fead1bec50cbb10caf72281c0c061838eae9724 100644 --- a/ccsrc/Protocols/UpperTester/uppertester_vru_layer.cc +++ b/ccsrc/Protocols/UpperTester/uppertester_vru_layer.cc @@ -26,7 +26,23 @@ void uppertester_vru_layer::sendMsg(const LibItsVru__TypesAndValues::UtVamInitia } else { // Encode UpperTester PDU OCTETSTRING data; - _codec.encode((const Record_Type &)send_par, data); + _codec.encode(send_par, data); + // Update parameters + send_data(data, p_params); + } +} + +void uppertester_vru_layer::sendMsg(const LibItsVru__TypesAndValues::UtVamTrigger &send_par, params_its &p_params) { + loggers::get_instance().log_msg(">>> uppertester_vru_layer::sendMsg", send_par); + + if (_params[params::loopback].compare("1") == 0) { + LibItsVru__TypesAndValues::UtVamResults ut_vru_results; + ut_vru_results.utVamTriggerResult() = BOOLEAN(true); + to_all_upper_ports(ut_vru_results, p_params); + } else { + // Encode UpperTester PDU + OCTETSTRING data; + _codec.encode(send_par, data); // Update parameters send_data(data, p_params); } diff --git a/ccsrc/Protocols/UpperTester/uppertester_vru_layer.hh b/ccsrc/Protocols/UpperTester/uppertester_vru_layer.hh index a2ff3e1ecb8d35d5de2e30b8f2dbe9d9da0ac669..dcc52428d9b7d0f5e752dd6c1641794f41ca3e16 100644 --- a/ccsrc/Protocols/UpperTester/uppertester_vru_layer.hh +++ b/ccsrc/Protocols/UpperTester/uppertester_vru_layer.hh @@ -21,6 +21,7 @@ namespace LibItsVru__TestSystem { namespace LibItsVru__TypesAndValues { class UtVamInitialize; + class UtVamTrigger; } // namespace LibItsVru__TypesAndValues class uppertester_vru_layer : public t_layer { @@ -34,6 +35,8 @@ public: void sendMsg(const LibItsVru__TypesAndValues::UtVamInitialize &send_par, params_its& p_params); + void sendMsg(const LibItsVru__TypesAndValues::UtVamTrigger &send_par, params_its& p_params); + virtual void send_data(OCTETSTRING &data, params& p_params); virtual void receive_data(OCTETSTRING &data, params& p_params); }; // End of class uppertester_vru_layer diff --git a/ccsrc/Protocols/VRU/vru_codec.cc b/ccsrc/Protocols/VRU/vru_codec.cc index 05f6da78aa8189359df7a6280e679d8729d4e35e..ebdcc06db74be616cf4860924f64c978a4a3e43b 100644 --- a/ccsrc/Protocols/VRU/vru_codec.cc +++ b/ccsrc/Protocols/VRU/vru_codec.cc @@ -8,7 +8,7 @@ int vru_codec::encode(const VAM__PDU__Descriptions::VAM &vru, OCTETSTRING &data) BITSTRING b; int rc = asn_codec.encode(vru, b); - if (rc) { + if (rc != -1) { data = bit2oct(b); loggers::get_instance().log_msg("vru_codec::encode: ", data); } @@ -20,7 +20,7 @@ int vru_codec::decode(const OCTETSTRING &data, VAM__PDU__Descriptions::VAM &vru, int rc = asn_codec.decode(oct2bit(data), vru); loggers::get_instance().log("vru_codec::decode: ASN.1 codec returned %d", rc); - // if (rc) { + // if (rc != -1) { // loggers::get_instance().log_msg("vru_codec::decode: ", static_cast(vru)); // } return rc; diff --git a/ccsrc/Protocols/VRU_layers/vru_layer.cc b/ccsrc/Protocols/VRU_layers/vru_layer.cc index 68b4df9a3f67ce29cd57060b954b2fd7e08b46fe..346eff2d13bca82efeedeca026c8dc6b2f69b97e 100644 --- a/ccsrc/Protocols/VRU_layers/vru_layer.cc +++ b/ccsrc/Protocols/VRU_layers/vru_layer.cc @@ -13,8 +13,8 @@ vru_layer::vru_layer(const std::string &p_type, const std::string ¶m) : t_la loggers::get_instance().log(">>> vru_layer::vru_layer: %s, %s", to_string().c_str(), param.c_str()); // Setup parameters params::convert(_params, param); - _params.insert(std::make_pair("its_aid", "638")); // ETSI TS 102 965 V2.1.1 (2021-11) - _params.insert(std::make_pair("payload_type", "2")); // VA message id - See ETSI TS 102 894 + _params.insert(std::make_pair(static_cast(params_its::its_aid), "638")); // ETSI TS 102 965 V2.1.1 (2021-11) + _params.insert(std::make_pair(static_cast(params_its::payload_type), "16")); // VA message id - See ETSI TS 102 894 // Register this object for AdapterControlPort loggers::get_instance().log("vru_layer::vru_layer: Register %s/%p", p_type.c_str(), this); @@ -44,7 +44,7 @@ void vru_layer::receive_data(OCTETSTRING &data, params &p_params) { loggers::get_instance().log_msg(">>> vru_layer::receive_data: ", data); // Sanity check - if (*(static_cast(data) + 1) != 0x02) { // Check that received packet has CA message id - See ETSI TS 102 894 + if (*(static_cast(data) + 1) != 0x10) { // Check that received packet has VA message id - See ETSI TS 102 894 // Not a VRU message, discard it loggers::get_instance().warning("vru_layer::receive_data: Wrong message id: 0x%02x", *(static_cast(data) + 1)); return; diff --git a/ccsrc/framework/src/params_its.cc b/ccsrc/framework/src/params_its.cc index 2112c67ced785932a7309e25a27c69970135e698..fa8ea8d6960ef953c449aca22bb02d33ac72b3a7 100644 --- a/ccsrc/framework/src/params_its.cc +++ b/ccsrc/framework/src/params_its.cc @@ -1,5 +1,5 @@ /*! - * \file param_sits.cc + * \file param_its.cc * \brief Source file for the parameter dictionary. * \author ETSI STF525 * \copyright ETSI Copyright Notification diff --git a/config.mk b/config.mk index b9dad9f1d5c0bb6a28379f669b3fd2b54ae7e424..c36c17bbdbad36b970a0623cc9eeafe6ec76ec60 100644 --- a/config.mk +++ b/config.mk @@ -1,6 +1,6 @@ TTCN3_COMPILER_OPTIONS := -d -e -f -g -H -j -l -L -R -U none -x -X TTCN3_DIR := $(HOME)/frameworks/titan/titan.core/Install -ASN1C_PATH := $(HOME)/frameworks/asn1c.denis +ASN1C_PATH := $(HOME)/frameworks/asn1c #WPCAP_DLL_PATH := /cygdrive/c/windows/system32/npcap/wpcap.dll #NPCAP_INCLUDE := /cygdrive/c/PROGRA~1/Npcap/sdk/include #T3Q_PATH=./tools/t3q-v2.0.0b30 diff --git a/data/certificates/Makefile b/data/certificates/Makefile index 6cb2cc8d052d48befb47a3e005aab340bd7f3a03..d7d3ecb3cf939e00b74c218d25c08cd8eed56192 100644 --- a/data/certificates/Makefile +++ b/data/certificates/Makefile @@ -53,6 +53,8 @@ $(certificates_xer) : $(xsl_cvt) certs_iut_at = $(filter $(outdir)/CERT_IUT_%_AT.oer, $(certificates_oer)) certs_iut_at += $(filter $(outdir)/CERT_IUT_%_ATv2.oer, $(certificates_oer)) +certs_iut_at += $(filter $(outdir)/CERT_IUT_%_AT_8.oer, $(certificates_oer)) +certs_iut_at += $(filter $(outdir)/CERT_IUT_%_AT_8v2.oer, $(certificates_oer)) vkeys_iut_at = $(patsubst %.oer, %.vkey, $(certs_iut_at)) ekeys_iut_at = $(patsubst %.oer, %.ekey, $(certs_iut_at)) @@ -90,6 +92,7 @@ IUT_TC26 = CERT_IUT_A2_AT.oer CERT_IUT_A2_AT.vkey CERT_IUT_A2_AT.ekey CERT_IUT_A IUT_TC27 = CERT_IUT_A3_AT.oer CERT_IUT_A3_AT.vkey CERT_IUT_A3_AT.ekey CERT_IUT_A3_ATv2.oer CERT_IUT_A3_ATv2.vkey CERT_IUT_A3_ATv2.ekey CERT_IUT_A_AA.oer CERT_IUT_A_RCA.oer CERT_TS_A_AT.oer CERT_TS_A_AT_IMP.oer CERT_TS_A_ATv2.oer CERT_TS_A_AT_IMPv2.oer IUT_TC28 = CERT_IUT_A_AT_A8.oer CERT_IUT_A_AT_A8.vkey CERT_IUT_A_AT_A8.ekey CERT_IUT_A_AT_A8v2.oer CERT_IUT_A_AT_A8v2.vkey CERT_IUT_A_AT_A8v2.ekey CERT_IUT_A_AA_A8.oer CERT_IUT_A_RCA.oer CERT_TS_A_AT.oer CERT_TS_A_AT_IMP.oer CERT_TS_A_ATv2.oer CERT_TS_A_AT_IMPv2.oer CERT_IUT_A_AA.oer + IUT_TCS = TC23 TC24 TC25 TC26 TC27 TC28 define InstallTC diff --git a/data/certificates/profiles/CERT_IUT_CAM_BO_02_AT.xml b/data/certificates/profiles/CERT_IUT_CAM_BO_02_AT.xml index 3c2f9bc520a2297c17531c2b8279c21d158e9a02..507f95ed919a012c0921ef93431ab491810acf4b 100644 --- a/data/certificates/profiles/CERT_IUT_CAM_BO_02_AT.xml +++ b/data/certificates/profiles/CERT_IUT_CAM_BO_02_AT.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_CAM_BO_02_ATv2.xml b/data/certificates/profiles/CERT_IUT_CAM_BO_02_ATv2.xml index c0be10f1c01d4164b7b799ec5d4554fc3af04093..7ea83e13b58910ff959fc43822887ef87f28799f 100644 --- a/data/certificates/profiles/CERT_IUT_CAM_BO_02_ATv2.xml +++ b/data/certificates/profiles/CERT_IUT_CAM_BO_02_ATv2.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_CAM_BO_03_AT.xml b/data/certificates/profiles/CERT_IUT_CAM_BO_03_AT.xml index 7e6926f8abaf865ab8625252aa30e419f9476b8b..4f5197f4fedc971038f7e680e78ca288ca6e26a8 100644 --- a/data/certificates/profiles/CERT_IUT_CAM_BO_03_AT.xml +++ b/data/certificates/profiles/CERT_IUT_CAM_BO_03_AT.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_CAM_BO_03_ATv2.xml b/data/certificates/profiles/CERT_IUT_CAM_BO_03_ATv2.xml index 03e503c2a6d442ab66fb12eed8babee4b6334716..3ac9846dde8cc8e1f424a7561bc29399b45f461c 100644 --- a/data/certificates/profiles/CERT_IUT_CAM_BO_03_ATv2.xml +++ b/data/certificates/profiles/CERT_IUT_CAM_BO_03_ATv2.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_CAM_BO_04_AT.xml b/data/certificates/profiles/CERT_IUT_CAM_BO_04_AT.xml index fbc954e3cd2db3b389e394fd8590b6544ba88b80..37982bec912fbd4423482aa53ef30cfe2f1444f3 100644 --- a/data/certificates/profiles/CERT_IUT_CAM_BO_04_AT.xml +++ b/data/certificates/profiles/CERT_IUT_CAM_BO_04_AT.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_CAM_BO_04_ATv2.xml b/data/certificates/profiles/CERT_IUT_CAM_BO_04_ATv2.xml index 432610718f3bbf07ab1f40115c28fced9a3c272a..a32d444d84ac9fcaf774dae82338b29dc1add840 100644 --- a/data/certificates/profiles/CERT_IUT_CAM_BO_04_ATv2.xml +++ b/data/certificates/profiles/CERT_IUT_CAM_BO_04_ATv2.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_CAM_BO_05_AT.xml b/data/certificates/profiles/CERT_IUT_CAM_BO_05_AT.xml index b8d12c8439b639705a1d576c1a206eeff0739130..fa5d3e195aae0a9a2dec5c9323561c783a7a23e4 100644 --- a/data/certificates/profiles/CERT_IUT_CAM_BO_05_AT.xml +++ b/data/certificates/profiles/CERT_IUT_CAM_BO_05_AT.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_CAM_BO_05_ATv2.xml b/data/certificates/profiles/CERT_IUT_CAM_BO_05_ATv2.xml index 442822389fd9cce48a847f87b6a59cd9383de574..055fc7865086e1775d757b645658b80b974bc0ee 100644 --- a/data/certificates/profiles/CERT_IUT_CAM_BO_05_ATv2.xml +++ b/data/certificates/profiles/CERT_IUT_CAM_BO_05_ATv2.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_CAM_BO_06_AT.xml b/data/certificates/profiles/CERT_IUT_CAM_BO_06_AT.xml index 79a82f02b18bd142247989be5876981b8c9f9f88..b46a476ce686a73dcbfe91c06e810ab57d7c49da 100644 --- a/data/certificates/profiles/CERT_IUT_CAM_BO_06_AT.xml +++ b/data/certificates/profiles/CERT_IUT_CAM_BO_06_AT.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_CAM_BO_06_ATv2.xml b/data/certificates/profiles/CERT_IUT_CAM_BO_06_ATv2.xml index 675cf429ceaa254002c20e394f74a0bcfe770a29..90b0c4017190a90b8739421cd6b7539337352a18 100644 --- a/data/certificates/profiles/CERT_IUT_CAM_BO_06_ATv2.xml +++ b/data/certificates/profiles/CERT_IUT_CAM_BO_06_ATv2.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_CAM_BO_07_AT.xml b/data/certificates/profiles/CERT_IUT_CAM_BO_07_AT.xml index f9affee40a760a15a18a8dab87d2eda8c70e751c..abda4507f1bf6c099c57e32327e98b1bbc74757d 100644 --- a/data/certificates/profiles/CERT_IUT_CAM_BO_07_AT.xml +++ b/data/certificates/profiles/CERT_IUT_CAM_BO_07_AT.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_CAM_BO_07_ATv2.xml b/data/certificates/profiles/CERT_IUT_CAM_BO_07_ATv2.xml index e835be3e3936dfe0c6d987df72db4c1917fb136f..1e66a8af5edeca68668702403edef8018d8d681f 100644 --- a/data/certificates/profiles/CERT_IUT_CAM_BO_07_ATv2.xml +++ b/data/certificates/profiles/CERT_IUT_CAM_BO_07_ATv2.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_CAM_BO_08_AT.xml b/data/certificates/profiles/CERT_IUT_CAM_BO_08_AT.xml index eba5dd346fb4100ce91bc2ed738b15249d300395..b2963b7c99330792fe72d3e28754a8cc78533bf5 100644 --- a/data/certificates/profiles/CERT_IUT_CAM_BO_08_AT.xml +++ b/data/certificates/profiles/CERT_IUT_CAM_BO_08_AT.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_CAM_BO_08_ATv2.xml b/data/certificates/profiles/CERT_IUT_CAM_BO_08_ATv2.xml index f24bade095885a3cd1593796ae44ad9d0f1b33b6..b7476cd691424275d8ff7a319b6c6cd4072de001 100644 --- a/data/certificates/profiles/CERT_IUT_CAM_BO_08_ATv2.xml +++ b/data/certificates/profiles/CERT_IUT_CAM_BO_08_ATv2.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_CAM_BO_15_ATv2.xml b/data/certificates/profiles/CERT_IUT_CAM_BO_15_ATv2.xml index 05ad33f954a4b47f67707ba05f681a98ec6aed86..26d5c6c1e14b8847f779924063323128b632bbed 100644 --- a/data/certificates/profiles/CERT_IUT_CAM_BO_15_ATv2.xml +++ b/data/certificates/profiles/CERT_IUT_CAM_BO_15_ATv2.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_CAM_BO_16_ATv2.xml b/data/certificates/profiles/CERT_IUT_CAM_BO_16_ATv2.xml index f3efccff91e4f518481d267bd6b34e14ded9e388..1c8b151a5265edb9bc3f262be78cfe98ef2f1317 100644 --- a/data/certificates/profiles/CERT_IUT_CAM_BO_16_ATv2.xml +++ b/data/certificates/profiles/CERT_IUT_CAM_BO_16_ATv2.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_01_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_01_AT.xml index c36a7ad5cf02c264fb51aed7d37e31a6cd2263c0..45175283e4ced5a18d79ae2ed0a7382bb3541a1c 100644 --- a/data/certificates/profiles/CERT_IUT_DENM_BO_01_AT.xml +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_01_AT.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_01_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_01_ATv2.xml index 10f9fe564021e1423b1cdcc0a2f42ce9f46e669f..fcb52e325aa50b758be8c3a91c773c3ff8320439 100644 --- a/data/certificates/profiles/CERT_IUT_DENM_BO_01_ATv2.xml +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_01_ATv2.xml @@ -7,7 +7,7 @@ - + @@ -18,7 +18,7 @@ 02 FF FF - 02 7F FF FF FE + 02 7F FF FF F0 diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_02_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_02_AT.xml index 1aeeca02244aaffbb651c1d38b636a2547a3148d..56fa6f1d3ba459e9b17979d4e1c08e2b936106f1 100644 --- a/data/certificates/profiles/CERT_IUT_DENM_BO_02_AT.xml +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_02_AT.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_02_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_02_ATv2.xml index 7ac356d2badb525c2cadbcedd6611e34b03d4c64..5fcc9a5c5c6ded5249b8c65dbb31ea0109fff2f9 100644 --- a/data/certificates/profiles/CERT_IUT_DENM_BO_02_ATv2.xml +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_02_ATv2.xml @@ -7,7 +7,7 @@ - + @@ -18,7 +18,7 @@ 02 FF FF - 02 BF FF FF FE + 02 BF FF FF F0 diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_03_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_03_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..977fc2185260c7a4892781cf8335379964eef240 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_03_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 DF FF FF + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_03_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_03_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..deb10816cdaf688d492edaed9e572d52d5d24647 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_03_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 DF FF FF F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_04_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_04_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..7b113cb037c34a7549334cd2313e74f25a4362f3 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_04_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 EF FF FF + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_04_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_04_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..be61eaf099bde0ee6b5dd2902710468869d285d2 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_04_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 EF FF FF F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_05_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_05_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..39de277e175868f3aa5a0afbf63850a5a30ff282 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_05_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 F7 FF FF + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_05_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_05_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..5b1f0d891dc78234ffc1549b8da7b1781d58b723 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_05_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 F7 FF FF F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_06_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_06_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..eca725b27f2088283c28ee28912e6bb85ea5732a --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_06_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FB FF FF + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_06_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_06_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..d485ce352f627f25c02bb5ee3e0105f02c59f50e --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_06_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FB FF FF F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_07_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_07_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..3c972e409a4f21eee90d13d84b8a1fbf328cbb78 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_07_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FD FF FF + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_07_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_07_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..764f55b3424106cb465f54a172be52beacf26951 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_07_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FD FF FF F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_08_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_08_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..1ce4e756781a1faa3315b8d5e557f30d217e02f0 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_08_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FE FF FF + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_08_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_08_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..c6b633d45a8579074377f4df87b0d447f9ea14cd --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_08_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FE FF FF F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_09_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_09_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..555c73cb89db6a7c75ddcc2aaf3a6f0b98425078 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_09_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FF 7F FF + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_09_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_09_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..3118959b350ad927e227273ff3d8e95bba44e6f4 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_09_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF 7F FF F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_10_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_10_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..1354cf6a6def60a5612d25c0e27f963528adcb41 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_10_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FF BF FF + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_10_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_10_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..5a436a94912868297442482f848494956970edea --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_10_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF BF FF F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_11_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_11_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..02c843c8be59e7e7f043e6c44879f8680ae692fa --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_11_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FF DF FF + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_11_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_11_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..f18eae9c349ca3a482f4a098065bd8fb447f444a --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_11_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF DF FF F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_12_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_12_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..ea3f95175889523a0948e9f294d713e836cc8446 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_12_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FF EF FF + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_12_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_12_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..b5593475fa3a3c99f2d5647e977d7ddfd491cad4 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_12_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF EF FF F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_13_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_13_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..038cfb0f38b95ecec90d5694caac0715e760338f --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_13_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FF F7 FF + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_13_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_13_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..8e1c64cdfb70b07ed9ed7cc3e4029ab94ee5bad8 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_13_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF F7 FF F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_14_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_14_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..4660e57c469936ed07a63e089210565e63a35cea --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_14_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FF FB FF + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_14_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_14_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..50cbcdee84d5f4d19d3a13cbbb6a049272fe690a --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_14_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF FB FF F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_15_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_15_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..c76093f0ce00a2824ba755a257a996f54f6b275e --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_15_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FF FD FF + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_15_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_15_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..dcc035b41fe0b35bb1d34c55d2496207ae10f149 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_15_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF FD FF F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_16_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_16_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..32bc4c620d93b0b189b0cbb6d30bbf908c8a2310 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_16_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FF FE FF + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_16_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_16_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..e840d800cec8e4a235d3c6478060a56d732ed681 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_16_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF FE FF F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_17_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_17_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..1f1b4ef562a3e48a6e435a81b1ede3d85b54f046 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_17_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FF FF 7F + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_17_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_17_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..072489cd8ef78b862559bb2e93a745a4ad39e75c --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_17_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF FF 7F F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_18_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_18_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..d18c43dc536a423d3414e0cebc20aa941091101b --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_18_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FF FF BF + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_18_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_18_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..787f77a8ccf6a80abae622167c8995e7aef6449b --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_18_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF FF BF F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_19_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_19_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..52dd47aa8cf8d0063b7c6d87ff14257604ad32c2 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_19_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FF FF DF + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_19_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_19_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..5458f269c4480f807421576a5c0a2e8d37b25751 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_19_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF FF DF F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_20_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_20_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..5daec2dba0259ad8f59926653bd977f9b487f5c2 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_20_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FF FF EF + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_20_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_20_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..82a9855a62fdfdc33bcf4832bb8cb0afe46c47a2 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_20_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF FF EF F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_21_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_21_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..9c25b12d5916f48d3176b4a3b56368d943c18f79 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_21_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FF FF F7 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_21_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_21_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..d2cd6aadbd3a64bda88e1a65badb4593d586a506 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_21_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF FF F7 F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_22_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_22_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..891b0756f8881d0b8a2524351c8a9e5f61454d9c --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_22_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FF FF FB + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_22_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_22_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..9f959b4181c70a1664ee7965e1472ac5ab7ed5e0 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_22_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF FF FB F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_23_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_23_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..8980f7ef512f47a372f6990e623cbabb620ce63e --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_23_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FF FF FD + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_23_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_23_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..8fa05f638623d0ffc0cfe84ec97bcd57f7459a7e --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_23_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF FF FD F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_24_AT.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_24_AT.xml new file mode 100644 index 0000000000000000000000000000000000000000..f03645108ba6617027b268b1e6cf2f8038a5c698 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_24_AT.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 01 FF FC + 01 FF FF FE + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_24_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_24_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..d622bbb9e2308a1fa754a54515d1263400a986bd --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_24_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF FF FE F0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_25_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_25_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..467c86266212a5729b47063e8774dfa30675ea1e --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_25_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF FF FF 70 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_26_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_26_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..75bf92526bdc7362eaa36e0deb9630a67ca12b59 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_26_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF FF FF B0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_27_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_27_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..b5f5184a2efdf820db5d745e77377bb5d9466109 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_27_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF FF FF D0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_IUT_DENM_BO_28_ATv2.xml b/data/certificates/profiles/CERT_IUT_DENM_BO_28_ATv2.xml new file mode 100644 index 0000000000000000000000000000000000000000..257076c2fe87f31f48674bf1cbcb4e2d2b21fc73 --- /dev/null +++ b/data/certificates/profiles/CERT_IUT_DENM_BO_28_ATv2.xml @@ -0,0 +1,31 @@ + + + 2 + + + + + + + + + + + + + + + 02 FF FF + 02 FF FF FF E0 + + + + + + + + + + diff --git a/data/certificates/profiles/CERT_TS_CAM_BO_02_AT.xml b/data/certificates/profiles/CERT_TS_CAM_BO_02_AT.xml index 72833896a323fafe057631adf72b1b8e48fba8fb..d1b8ce1f4e65b6f8448bd471214605562be9d79d 100644 --- a/data/certificates/profiles/CERT_TS_CAM_BO_02_AT.xml +++ b/data/certificates/profiles/CERT_TS_CAM_BO_02_AT.xml @@ -8,7 +8,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_CAM_BO_02_ATv2.xml b/data/certificates/profiles/CERT_TS_CAM_BO_02_ATv2.xml index 034a5b1259b607da8181ea5fb3c5841e9ac9174a..cf255431853e55b4832eda499f012ebb6066ad0d 100644 --- a/data/certificates/profiles/CERT_TS_CAM_BO_02_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_CAM_BO_02_ATv2.xml @@ -8,7 +8,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_CAM_BO_03_AT.xml b/data/certificates/profiles/CERT_TS_CAM_BO_03_AT.xml index 79bf9056e900392f48856123aea03e491110a412..577ac0cbd82f53aaec387f16e122cd5f8207b8e4 100644 --- a/data/certificates/profiles/CERT_TS_CAM_BO_03_AT.xml +++ b/data/certificates/profiles/CERT_TS_CAM_BO_03_AT.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_CAM_BO_03_ATv2.xml b/data/certificates/profiles/CERT_TS_CAM_BO_03_ATv2.xml index 24507df91e57d3eaf747d3377bdc4086a197e623..cb3d9f28459d8aa647c3a185b6ff95c6c7864e94 100644 --- a/data/certificates/profiles/CERT_TS_CAM_BO_03_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_CAM_BO_03_ATv2.xml @@ -7,7 +7,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_01_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_01_AT.xml index d3e206b42cd329653126e3ef9c8730aebb73dcdc..28f9d4dc056c0499f1a330af7368d639c2929b20 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_01_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_01_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_01_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_01_ATv2.xml index 99b6a045caf797bfe40a7f892d9ac62028355389..f2cb2646b8c4353907875e37b2d59fc10e57a834 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_01_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_01_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 7F FF FF FF + 02 7F FF FF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_02_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_02_AT.xml index 4b7237bc1cd69ae4d879641b2a86c8fb2415c0c1..20322cff71a7117d3ee0b8399e60d33ba9333a80 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_02_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_02_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_02_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_02_ATv2.xml index d64f454c114f02596cc1904fbd676e5c4961ce77..f640613a83b4a3a5dc5cf1f2b4f215198ba8affb 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_02_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_02_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 BF FF FF FF + 02 BF FF FF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_03_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_03_AT.xml index d3623571bc3a69edf7046d62d63206e54d36f386..603f565d8cdf706bf5d55bad15067603253a36ce 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_03_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_03_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_03_ATv2 b/data/certificates/profiles/CERT_TS_DENM_BO_03_ATv2.xml similarity index 88% rename from data/certificates/profiles/CERT_TS_DENM_BO_03_ATv2 rename to data/certificates/profiles/CERT_TS_DENM_BO_03_ATv2.xml index 8b908d9435b0dc338e5588d10fc0756001b62ed2..83d054ce4e56b7a1a809bc7c461aaa1603c2509b 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_03_ATv2 +++ b/data/certificates/profiles/CERT_TS_DENM_BO_03_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 DF FF FF FF + 02 DF FF FF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_04_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_04_AT.xml index 9c1902cb70aed062c77894a76269722795537f79..362e9cd295070696df4a3c3405cdd085fe3809b0 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_04_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_04_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_04_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_04_ATv2.xml index ebb2683d17d060097f40bbbfa170d4124b446bb5..aed21472041f6934d22167a1bad5bbd2bb3913bd 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_04_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_04_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 EF FF FF FF + 02 EF FF FF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_05_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_05_AT.xml index 1269fd1f03ce2e1b11c2adb85b447b41a05ac09a..331c1336ab116cf787771a9be098f726e9cd88ef 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_05_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_05_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_05_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_05_ATv2.xml index 14ba9c86b0053d9b14998cb64264d69d0df22f6a..299ceb687a027d46e2640a199e4f374716e42e7f 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_05_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_05_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 F7 FF FF FF + 02 F7 FF FF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_06_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_06_AT.xml index 4c45d41a07e138d0d1be9bee441196eaf2043bac..6a3820ea36c5838b9a30f8640a49d4c85efcfb74 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_06_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_06_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_06_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_06_ATv2.xml index c6402f8e2fe8d06544df39c4ee8e3e4d26bd3da8..4e3ec91cf68fcd7dba6cea9b06427bc920a2523a 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_06_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_06_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FB FF FF FF + 02 FB FF FF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_07_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_07_AT.xml index 99833a0dd22ddc9e5b2e2457a778a0baf9e1c5ad..861c3ec8c40b86d6f2eb2140bb127ed502664b11 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_07_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_07_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_07_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_07_ATv2.xml index af44e934c8a7f136e35ef99af86473c557de1d99..38fb3d8bb8821c199641ad368de6030f762f3835 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_07_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_07_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FD FF FF FF + 02 FD FF FF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_08_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_08_AT.xml index 2d1f829f86d8b036a10e4d1bcc48ee3eb4904498..19feb0218efcbd6ac509ab56982c2b464e3a77b6 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_08_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_08_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_08_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_08_ATv2.xml index b10d41fcfd4fb223873f70f482e8300cc8005a8b..fc47fcf23f54a8f5a791e271eb31f3251e95b203 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_08_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_08_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FE FF FF FF + 02 FE FF FF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_09_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_09_AT.xml index f289f322fe28b3698b1f04f5d8b957e7885b7636..4bf03a6bf52ffd5197692127a44d0a137cd13743 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_09_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_09_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_09_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_09_ATv2.xml index 52d5bd8d02e8cb9e37cb17c8e5b9fdb1c76994be..88df394d6c881992bffaf4e1ab1a02c792dbe81f 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_09_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_09_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF 7F FF FF + 02 FF 7F FF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_10_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_10_AT.xml index 9d6b965314d7cbdae64c10cf1c1fcacdd43af8af..519a969dd98a0c81605570175d7305d27429d4b7 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_10_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_10_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_10_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_10_ATv2.xml index ba86ba613b1102e6fd467448b3a7a304c9c23fc1..1c64894737fd298890cc912869521262abd61b7b 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_10_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_10_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF BF FF FF + 02 FF BF FF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_11_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_11_AT.xml index d8d627468f375a8b75cfb87e2c8274b19126cac4..cd14a7b0e3f461fdb71ef65b1b8dbff2c78c7590 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_11_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_11_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_11_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_11_ATv2.xml index 6d8323c9f157c87d84ab2f610fba44786b65b93d..f80949cfba4dd73ed38cc40aac852f8cd830c33e 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_11_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_11_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF DF FF FF + 02 FF DF FF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_12_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_12_AT.xml index 08616e19622eb1ffcd00542fcca571b01e79cb31..03169d9aeb4bff1089bc0780cb7a94911dcc0c71 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_12_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_12_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_12_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_12_ATv2.xml index a2c3b772e109778bd4b50be2769a2089491110b5..a29ba6eced22e4e84df6a41ead92506bec159a88 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_12_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_12_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF EF FF FF + 02 FF EF FF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_13_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_13_AT.xml index 9efed440ef889b017a8fb8c08d44c6730ddb5ff0..0a589b1b7f4eed8fe8ebf2b45b700ce15299a3ec 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_13_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_13_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_13_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_13_ATv2.xml index db7716454ca68468b3a6d96bd3e3ad4470664c00..dfa878ed9256c25308d9ea8b150a2a0bd3a33463 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_13_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_13_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF F7 FF FF + 02 FF F7 FF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_14_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_14_AT.xml index 2000a3e54fc59aa69f6759fe41d198d8a3c7fc79..09f0390de91190f297900a89f63a8b8c350c5f9a 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_14_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_14_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_14_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_14_ATv2.xml index d911d276faaadec059ad621f8eab5d5dd54e965a..d5e441658c794ae027039a162ef9f33b1edc2e3a 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_14_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_14_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF FB FF FF + 02 FF FB FF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_15_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_15_AT.xml index 5b6610c8415ebeb598eaf406648b34b1ffdfad6a..0927082d65c0f37bb3cee6bfaafbc20d59c58514 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_15_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_15_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_15_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_15_ATv2.xml index d72102380f538ab781951bec20a6abe017989b39..7122941cfc0f4617979f22621746f7831f7774d6 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_15_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_15_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF FD FF FF + 02 FF FD FF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_16_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_16_AT.xml index 9adfb9fdfaf0f49507c6eae15fff736203058075..4eec8caa21a4d2445b91320e79123f887d4021cc 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_16_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_16_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_16_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_16_ATv2.xml index c1d92cb6e29f6823c24bba27f1018b1f4eceac68..78b510deb014c0efb369f925a31624429dcc55a1 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_16_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_16_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF FE FF FF + 02 FF FE FF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_17_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_17_AT.xml index a6f9f4fd7b885d01bc0646c716d6d5706ba56aca..6277307c53df5916fa29392530ad90e03b85389d 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_17_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_17_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_17_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_17_ATv2.xml index 37af0ba2e775f1b3933b0bbd69dfb2858f6a3390..51f2f695541b703d64d92f7f8e46578d03434690 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_17_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_17_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF FF 7F FF + 02 FF FF 7F F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_18_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_18_AT.xml index 6cdf89b5fe07d9f23f50fb3d36171f45e2f20735..6189cc2ea8186ee3e4ea89e8b217d2c6031aa94d 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_18_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_18_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_18_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_18_ATv2.xml index a8063ae8ab837b9bf28a6df0b66dffa0c8874170..21597c74ef063a8a6f0ce1cb8169c68d759b69c1 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_18_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_18_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF FF BF FF + 02 FF FF BF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_19_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_19_AT.xml index b50076b83fd4c31b068e07ab252afcb3dd83fe14..c9332957fda946a2e597bbc9fc96eefbf025150e 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_19_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_19_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_19_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_19_ATv2.xml index 0207718fdf3b1d7163b66537989e6474f0932dbe..d532d29c54e33d91c20b5fa0b4e07364c59e368c 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_19_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_19_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF FF DF FF + 02 FF FF DF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_20_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_20_AT.xml index c8217d60d8a41c571f83ab0b83becda43cff8d47..88379e1db4444fbc58bcecd76c8db38f357216dc 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_20_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_20_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_20_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_20_ATv2.xml index 423485dde15bf8b7b2e14084297daf2a03e96b9b..8fe5fdb3a96946849a9b174daa7934f239e285fd 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_20_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_20_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF FF EF FF + 02 FF FF EF F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_21_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_21_AT.xml index 3425340a2e858c1e42cb31d95faf6269e096c537..0d9da85a87d3e35287ae75c746a2b8b1d0af3fbd 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_21_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_21_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_21_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_21_ATv2.xml index 34c7a0d13759b53dc3fc615cfebf960725da632e..aa4f28da4b457832f3344ab459cd6758e7b8ab0a 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_21_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_21_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF FF F7 FF + 02 FF FF F7 F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_22_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_22_AT.xml index 4cf65dd62218be9eba5d5a63adbec2cfda9a20f7..b61b868e519a605d4311fe7cc1d4b79142bd929c 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_22_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_22_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_22_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_22_ATv2.xml index 618415aeb2657bd64915606fe1cfea6cf9034462..7ac9eca53a5949fadf3618f10d5d39666c5173bb 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_22_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_22_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF FF FB FF + 02 FF FF FB F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_23_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_23_AT.xml index 9f91cb8584e8c95dc93f1acb7c9e0813bca9eea2..7bb98352dd797ed132fb7790a8d5b82b4b8b25c3 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_23_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_23_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_23_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_23_ATv2.xml index a6179e738a89966d8aa5e6ef4bdc3e2f0774234a..82d97777deba78982b7cfa8fb7ae5428915a9e45 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_23_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_23_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF FF FD FF + 02 FF FF FD F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_24_AT.xml b/data/certificates/profiles/CERT_TS_DENM_BO_24_AT.xml index 0092ab45ed31c4a4de73b2040b0916a4c9780ef9..2343b944ad1a6dc9f41f9c0a53d3303ec49b7f8b 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_24_AT.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_24_AT.xml @@ -4,7 +4,7 @@ - + diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_24_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_24_ATv2.xml index a11a248c4c6e406dd397566d372ff9f6446ce383..90308ece9d66376d10a237c4c23d81ced2a6cb7a 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_24_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_24_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF FF FE FF + 02 FF FF FE F0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_25_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_25_ATv2.xml index 0b2c8dc3746d66babfb211e60976348d3dd2122a..92d5865b3470db558ceb58d59957689e91ffa755 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_25_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_25_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF FF FF 7F + 02 FF FF FF 70 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_26_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_26_ATv2.xml index 74e5351c782e52696f18874f524a1b642eef8b53..fe6f53d497aa849119bc3df6b38b656741680e2c 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_26_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_26_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF FF FF BF + 02 FF FF FF B0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_27_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_27_ATv2.xml index e5754cc64449ca84c2ea9f25a1fca9ee7995b4af..31db6d23dac6f5824941d40e1d132243314d3cbd 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_27_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_27_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF FF FF DF + 02 FF FF FF D0 diff --git a/data/certificates/profiles/CERT_TS_DENM_BO_28_ATv2.xml b/data/certificates/profiles/CERT_TS_DENM_BO_28_ATv2.xml index 109d50a5baac4139dba7012b7933e3cb430f4083..f1722c7f74f0d6d8b03f6cdc70cbcf1ae8d58b18 100644 --- a/data/certificates/profiles/CERT_TS_DENM_BO_28_ATv2.xml +++ b/data/certificates/profiles/CERT_TS_DENM_BO_28_ATv2.xml @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@ 02 FF FF - 02 FF FF FF EF + 02 FF FF FF E0 diff --git a/etc/AtsCAM/AtsCAM.cfg b/etc/AtsCAM/AtsCAM.cfg index c8bb2dd4233af0f8cdaa9b4a505d7e4c7197b700..163eea7ae21568ed2113148609179436e314a575 100644 --- a/etc/AtsCAM/AtsCAM.cfg +++ b/etc/AtsCAM/AtsCAM.cfg @@ -107,61 +107,144 @@ system.utPort.params := "UT_CAM/UDP(dst_ip=10.200.60.23,dst_port=12345,src_port= #system.utPort.params := "UT_CAM/UDP(dst_ip=172.16.35.1)" [EXECUTE] -ItsCam_TestCases.TC_CAM_MSD_FMT_BV_01 + +# Check that protocolVersion is set to 2 and messageID is set to 2 +#ItsCam_TestCases.TC_CAM_MSD_FMT_BV_01 +# Check that LF container is included in 1st CAM since CA basic service activation #ItsCam_TestCases.TC_CAM_MSD_FMT_BV_02 +# Check that LF container is included if time elapsed since the generation of the last CAM with the low frequency container generation is equal or larger than 500 ms #ItsCam_TestCases.TC_CAM_MSD_FMT_BV_03 +# Check that specialVehicle container is included in 1st CAM since CA basic service activation #ItsCam_TestCases.TC_CAM_MSD_FMT_BV_04 +# Check that specialVehicle container is included if time elapsed since the generation of the last CAM with the special vehicle container generation is equal or larger than 500 ms. #ItsCam_TestCases.TC_CAM_MSD_FMT_BV_05 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_01 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_02 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_03 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_04 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_05 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_06 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_07 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_08 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_09 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_10 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_11 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_12 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_13 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_14 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_15 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_16 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_17 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_18 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_19 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_20 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_21 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_22 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_23 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_24 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_25 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_26 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_27 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_28 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_29 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_30 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_31 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_32 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_33 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_34 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_35 +# Check that publicTransportContainer is included if vehicleRole is set to publicTransport(1) #ItsCam_TestCases.TC_CAM_MSD_INA_BV_02 +# Check that specialTransportContainer is included if vehicleRole is set to specialTransport(2) #ItsCam_TestCases.TC_CAM_MSD_INA_BV_03 +# Check that dangerousGoodsContainer is included if vehicleRole is set to dangerousGoods(3) #ItsCam_TestCases.TC_CAM_MSD_INA_BV_04 +# Check that roadWorksContainerBasic is included if vehicleRole is set to roadWork(4) #ItsCam_TestCases.TC_CAM_MSD_INA_BV_05 +# Check that rescueContainer is included if vehicleRole is set to rescue(5) #ItsCam_TestCases.TC_CAM_MSD_INA_BV_06 +# Check that emergencyContainer is included if vehicleRole is set to emergency(6) #ItsCam_TestCases.TC_CAM_MSD_INA_BV_07 +# Check that safetyCarContainer is included if vehicleRole is set to safetyCar(7) #ItsCam_TestCases.TC_CAM_MSD_INA_BV_08 -#ItsCam_TestCases.TC_CAM_MSP_BV_01 -#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_01 -#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_02 -#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_03 -#ItsCam_TestCases.TC_CAM_MSD_SSP_BO_01 + +# Check that CAMs are not generated more frequently than T_GenCamMin +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_01 +# Check that CAMs are not generated less frequently than T_GenCamMax +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_02 +# Check that TGenCam is set to T_GenCamMax after generating N_GenCam due to condition 2 +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_03 +# Check that CAM is generated immediately when the time elapsed since the last CAM generation is equal or larger than T_GenCam and equal or larger than T_GenCam_Dcc +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_07 +# Check that maximum CAM generation frequency for RSU ITS-S is 1Hz +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_08 + +# Check that CAM is generated immediately when the time elapsed since the last CAM generation is equal or larger than T_GenCam_Dcc and the absolute difference between current direction of the originating ITS-S (towards North) and direction included in previous CAM exceeds 4° +#ItsCam_TestCases.TC_CAM_MSD_GFQ_BV_04 +# Check that CAM is generated immediately when the time elapsed since the last CAM generation is equal or larger than T_GenCam_Dcc and the current position and position included in previous CAM exceeds 4 m +#ItsCam_TestCases.TC_CAM_MSD_GFQ_BV_05 +# Check that CAM is generated immediately when the time elapsed since the last CAM generation is equal or larger than T_GenCam_Dcc and the absolute difference between current speed and speed included in previous CAM exceeds 0,5 m/s +#ItsCam_TestCases.TC_CAM_MSD_GFQ_BV_06 + +# Check that CAM is encapsulated in BTP type B packet +#ItsCam_TestCases.TC_CAM_MSD_PAR_BV_01 +# Check that CAM is encapsulated in SHB packet +#ItsCam_TestCases.TC_CAM_MSD_PAR_BV_02 +# Check that CAM is encapsulated in GN packet with lifetime lower than 1s +#ItsCam_TestCases.TC_CAM_MSD_PAR_BV_03 + +# Check that the IUT does not send a CAM when its content is not permitted by signing certificate +#ItsCam_TestCases.TC_CAM_MSD_SSP_BO_01 Not implemented???? + #ItsCam_TestCases.TC_CAM_MSD_SSP_BO_02 +# Check that the IUT does not send a CAM when its content is not permitted by signing certificate #ItsCam_TestCases.TC_CAM_MSD_SSP_BO_03 +# Check that IUT discards CAM if SSP value of the signing certificate is not consistent with the provided containers +#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_01 Not implemented???? +# Check that IUT discards CAM if SSP value of the signing certificate is not consistent with the provided containers. +#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_02 +# Check that IUT discards CAM if SSP value of the signing certificate is not consistent with the provided containers. +#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_03 + +# Check that content of received CAM is transmitted to applications and other facilities +ItsCam_TestCases.TC_CAM_MSP_BV_01 + [MAIN_CONTROLLER] # The options herein control the behavior of MC. KillTimer := 10.0 diff --git a/etc/AtsCAM/AtsCAM_Codha.cf_ b/etc/AtsCAM/AtsCAM_Codha.cf_ index 2366ab3b671e8a398a7a90371b7bcf179569e2f1..a3f8f9fb5dc3ecb44e6bcef8901ac82ae462ce78 100644 --- a/etc/AtsCAM/AtsCAM_Codha.cf_ +++ b/etc/AtsCAM/AtsCAM_Codha.cf_ @@ -119,8 +119,7 @@ system.utPort.params := "UT_CAM/UDP(dst_ip=10.8.0.48,dst_port=12345,reuse_incomi [EXECUTE] -# Check that protocolVersion is set to 2 and messageID is set to 2 -ItsCam_TestCases.TC_CAM_MSD_FMT_BV_01 +#ItsCam_TestCases.TC_CAM_MSD_FMT_BV_01 # Check that LF container is included in 1st CAM since CA basic service activation #ItsCam_TestCases.TC_CAM_MSD_FMT_BV_02 # Check that LF container is included if time elapsed since the generation of the last CAM with the low frequency container generation is equal or larger than 500 ms @@ -213,11 +212,31 @@ ItsCam_TestCases.TC_CAM_MSD_FMT_BV_01 #ItsCam_TestCases.TC_CAM_MSD_INA_BV_07 # Check that safetyCarContainer is included if vehicleRole is set to safetyCar(7) #ItsCam_TestCases.TC_CAM_MSD_INA_BV_08 + +# Check that CAMs are not generated more frequently than T_GenCamMin +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_01 +# Check that CAMs are not generated less frequently than T_GenCamMax +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_02 +# Check that TGenCam is set to T_GenCamMax after generating N_GenCam due to condition 2 +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_03 +# Check that CAM is generated immediately when the time elapsed since the last CAM generation is equal or larger than T_GenCam and equal or larger than T_GenCam_Dcc +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_07 +# Check that maximum CAM generation frequency for RSU ITS-S is 1Hz +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_08 + +# Check that CAM is generated immediately when the time elapsed since the last CAM generation is equal or larger than T_GenCam_Dcc and the absolute difference between current direction of the originating ITS-S (towards North) and direction included in previous CAM exceeds 4° +#ItsCam_TestCases.TC_CAM_MSD_GFQ_BV_04 +# Check that CAM is generated immediately when the time elapsed since the last CAM generation is equal or larger than T_GenCam_Dcc and the current position and position included in previous CAM exceeds 4 m +#ItsCam_TestCases.TC_CAM_MSD_GFQ_BV_05 +# Check that CAM is generated immediately when the time elapsed since the last CAM generation is equal or larger than T_GenCam_Dcc and the absolute difference between current speed and speed included in previous CAM exceeds 0,5 m/s +#ItsCam_TestCases.TC_CAM_MSD_GFQ_BV_06 + # Check that CAM is encapsulated in BTP type B packet #ItsCam_TestCases.TC_CAM_MSD_PAR_BV_01 -# not PICS_IS_IUT_SECURED?? +# Check that CAM is encapsulated in SHB packet #ItsCam_TestCases.TC_CAM_MSD_PAR_BV_02 -# not PICS_IS_IUT_SECURED?? +# Check that CAM is encapsulated in GN packet with lifetime lower than 1s +#ItsCam_TestCases.TC_CAM_MSD_PAR_BV_03 # Check that the IUT does not send a CAM when its content is not permitted by signing certificate #ItsCam_TestCases.TC_CAM_MSD_SSP_BO_01 Not implemented???? @@ -226,7 +245,6 @@ ItsCam_TestCases.TC_CAM_MSD_FMT_BV_01 # Check that the IUT does not send a CAM when its content is not permitted by signing certificate #ItsCam_TestCases.TC_CAM_MSD_SSP_BO_03 - # Check that IUT discards CAM if SSP value of the signing certificate is not consistent with the provided containers #ItsCam_TestCases.TC_CAM_MSP_SSP_BV_01 Not implemented???? # Check that IUT discards CAM if SSP value of the signing certificate is not consistent with the provided containers. @@ -234,7 +252,8 @@ ItsCam_TestCases.TC_CAM_MSD_FMT_BV_01 # Check that IUT discards CAM if SSP value of the signing certificate is not consistent with the provided containers. #ItsCam_TestCases.TC_CAM_MSP_SSP_BV_03 -#ItsCam_TestCases.TC_CAM_MSP_BV_01 +# Check that content of received CAM is transmitted to applications and other facilities +ItsCam_TestCases.TC_CAM_MSP_BV_01 [MAIN_CONTROLLER] # The options herein control the behavior of MC. diff --git a/etc/AtsCAM/AtsCAM_Savary.cfg_ b/etc/AtsCAM/AtsCAM_Savary.cfg_ deleted file mode 100644 index 1aac2e2e75c2669e2eccd8b72b927cee90f20498..0000000000000000000000000000000000000000 --- a/etc/AtsCAM/AtsCAM_Savary.cfg_ +++ /dev/null @@ -1,156 +0,0 @@ - -[MODULE_PARAMETERS] -# This section shall contain the values of all parameters that are defined in your TTCN-3 modules. - -# IUT Station ID -LibItsCommon_Pixits.PX_IUT_STATION_ID := 2533729309 - -LibItsGeoNetworking_Pixits.PX_GN_UPPER_LAYER := e_btpB - -LibItsCam_Pics.PICS_DANGEROUSGOODS := true -LibItsCam_Pics.PICS_IS_IUT_SECURED := true - -[LOGGING] -# In this section you can specify the name of the log file and the classes of events -# you want to log into the file or display on console (standard error). - -LogFile := "../logs/%e.%h-%r.%s" -FileMask := LOG_ALL | USER | DEBUG | MATCHING -ConsoleMask := LOG_ALL | USER | DEBUG | MATCHING -#FileMask := ERROR | WARNING | USER | MATCHING | EXECUTOR_RUNTIME | VERDICTOP -#ConsoleMask := ERROR | WARNING | USER | MATCHING | EXECUTOR_RUNTIME | VERDICTOP -LogSourceInfo := Stack -LogEntityName:= Yes -LogEventTypes:= Yes -#TimeStampFormat := DateTime - -[TESTPORT_PARAMETERS] -# In this section you can specify parameters that are passed to Test Ports. -# CAM Layer -# next_header : btpA|btpB (overwrite BTP.type) -# header_type : tsb|gbc -# header_sub_type : sh (single hop) -# DENM Layer -# next_header : btpA|btpB (overwrite BTP.type) -# header_type : tsb|gbc -# BTP Layer -# type : btpA|btpB -# destination port: dst_port -# source port : src_port -# device_mode : Set to 1 if the layer shall encapsulate upper layer PDU -# GN Layer -# ll_address : GeoNetworking address of the Test System -# latitude : Latitude of the Test System -# longitude : Longitude of the Test System -# beaconing : Set to 1 if GnLayer shall start beaconing -# expiry : Beaconing timer expiry (ms) -# device_mode : Set to 1 if the layer shall encapsulate upper layer PDU -# secured_mode : Set to 1 if message exchanges shall be signed -# encrypted_mode : Set to 1 if message exchanges shall be encrypted -# NOTE: For signed & encrypted message exchanges, both secured_mode and encrypted_mode shall be set to 1 -# sec_db_path : Path to the certificates and keys storage location -# hash : Hash algorithm to be used when secured mode is set -# Authorized values are SHA-256 or SHA-384 -# Default: SHA-256 -# signature : Signature algorithm to be used when secured mode is set -# Authorized values are NISTP-256, NISTP-384, BP-256 and BP-384 -# Default: NISTP-256 -# cypher : Cyphering algorithm to be used when secured mode is set -# Authorized values are NISTP-256, BP-256 and BP-384 -# Default: NISTP-256 -# Ethernet layer -# mac_src :Source MAC address -# mac_bc :Broadcast address -# eth_type : Ethernet type -# Commsignia layer -# mac_src : IUT MAC address, used to discard packets -# To indicate no filering, use the value 000000000000 -# mac_bc : Broadcast address -# eth_type : Ethernet type, used to discard packets -# target_host : Device address -# target_port : Device port -# source_port : Test System port -# interface_id: Interface id, used to discard packets -# tx_power : TX power (dB) -# xport_mode : G5 or LTE-V2X -# UDP layer (IP/UDP based on Pcap) -# dst_ip : Destination IPv4 address (aa.bb.cc.dd) -# dst_port: Destination port -# src_ip : Source IPv4 address (aa.bb.cc.dd) -# src_port: Source port -# Pcap layer -# mac_src : Source MAC address, used to exclude from capture the acket sent by the Test System -# filter : Pcap filter (compliant with tcpdump syntax) -# Online mode: -# nic: Local NIC -# If set, online mode is used -# Offline mode (nic is present but not set): -# file : File to read -# frame_offset: Frame offset, used to skip packets with frame number < frame_offset -# time_offset : Time offset, used to skip packets with time offset < time_offset -# save_mode : Set to 1 to save sent packet, 0 otherwise - -#system.camPort.params := "CAM(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=367470520,longitude=-45559502,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=4e685195ff0a)/PCAP(mac_src=ce550426c7e4,nic=tap0,filter=and ether proto 0x8947)" -system.camPort.params := "CAM(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=367470520,longitude=-45559502,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=f8cab8083918)/PCAP(mac_src=f8cab8083918,nic=eno1,filter=and ether proto 0x8947)" - -# CAM UpperTester port based on UDP -#system.utPort.params := "UT_CAM/UDP(dst_ip=192.168.20.142,src_port=12345)" -system.utPort.params := "UT_CAM/DEBUG" - -[EXECUTE] -ItsCam_TestCases.TC_CAM_MSD_FMT_BV_01 -#ItsCam_TestCases.TC_CAM_MSD_FMT_BV_02 -#ItsCam_TestCases.TC_CAM_MSD_FMT_BV_03 -#ItsCam_TestCases.TC_CAM_MSD_FMT_BV_04 -#ItsCam_TestCases.TC_CAM_MSD_FMT_BV_05 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_01 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_02 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_03 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_04 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_05 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_06 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_07 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_08 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_09 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_10 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_11 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_12 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_13 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_14 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_15 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_16 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_17 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_18 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_19 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_20 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_21 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_22 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_23 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_24 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_25 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_26 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_27 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_28 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_29 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_30 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_31 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_32 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_33 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_34 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_35 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_02 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_03 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_04 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_05 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_06 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_07 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_08 -#ItsCam_TestCases.TC_CAM_MSD_SSP_BO_02 -#ItsCam_TestCases.TC_CAM_MSP_BV_01 - -[MAIN_CONTROLLER] -# The options herein control the behavior of MC. -KillTimer := 10.0 -LocalAddress := 127.0.0.1 -TCPPort := 12000 -NumHCs := 1 diff --git a/etc/AtsCAM/AtsCAM_Simulator.cfg_ b/etc/AtsCAM/AtsCAM_Simulator.cfg_ index c8bb2dd4233af0f8cdaa9b4a505d7e4c7197b700..38958d679af4c2cf446fbb06b21db4d7bd8d0c6b 100644 --- a/etc/AtsCAM/AtsCAM_Simulator.cfg_ +++ b/etc/AtsCAM/AtsCAM_Simulator.cfg_ @@ -107,61 +107,143 @@ system.utPort.params := "UT_CAM/UDP(dst_ip=10.200.60.23,dst_port=12345,src_port= #system.utPort.params := "UT_CAM/UDP(dst_ip=172.16.35.1)" [EXECUTE] -ItsCam_TestCases.TC_CAM_MSD_FMT_BV_01 + +#ItsCam_TestCases.TC_CAM_MSD_FMT_BV_01 +# Check that LF container is included in 1st CAM since CA basic service activation #ItsCam_TestCases.TC_CAM_MSD_FMT_BV_02 +# Check that LF container is included if time elapsed since the generation of the last CAM with the low frequency container generation is equal or larger than 500 ms #ItsCam_TestCases.TC_CAM_MSD_FMT_BV_03 +# Check that specialVehicle container is included in 1st CAM since CA basic service activation #ItsCam_TestCases.TC_CAM_MSD_FMT_BV_04 +# Check that specialVehicle container is included if time elapsed since the generation of the last CAM with the special vehicle container generation is equal or larger than 500 ms. #ItsCam_TestCases.TC_CAM_MSD_FMT_BV_05 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_01 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_02 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_03 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_04 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_05 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_06 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_07 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_08 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_09 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_10 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_11 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_12 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_13 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_14 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_15 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_16 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_17 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_18 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_19 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_20 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_21 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_22 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_23 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_24 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_25 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_26 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_27 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_28 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_29 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_30 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_31 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_32 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_33 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_34 +# Check that latest value of in-vehicle data is included in CAM #ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_35 +# Check that publicTransportContainer is included if vehicleRole is set to publicTransport(1) #ItsCam_TestCases.TC_CAM_MSD_INA_BV_02 +# Check that specialTransportContainer is included if vehicleRole is set to specialTransport(2) #ItsCam_TestCases.TC_CAM_MSD_INA_BV_03 +# Check that dangerousGoodsContainer is included if vehicleRole is set to dangerousGoods(3) #ItsCam_TestCases.TC_CAM_MSD_INA_BV_04 +# Check that roadWorksContainerBasic is included if vehicleRole is set to roadWork(4) #ItsCam_TestCases.TC_CAM_MSD_INA_BV_05 +# Check that rescueContainer is included if vehicleRole is set to rescue(5) #ItsCam_TestCases.TC_CAM_MSD_INA_BV_06 +# Check that emergencyContainer is included if vehicleRole is set to emergency(6) #ItsCam_TestCases.TC_CAM_MSD_INA_BV_07 +# Check that safetyCarContainer is included if vehicleRole is set to safetyCar(7) #ItsCam_TestCases.TC_CAM_MSD_INA_BV_08 -#ItsCam_TestCases.TC_CAM_MSP_BV_01 -#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_01 -#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_02 -#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_03 -#ItsCam_TestCases.TC_CAM_MSD_SSP_BO_01 + +# Check that CAMs are not generated more frequently than T_GenCamMin +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_01 +# Check that CAMs are not generated less frequently than T_GenCamMax +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_02 +# Check that TGenCam is set to T_GenCamMax after generating N_GenCam due to condition 2 +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_03 +# Check that CAM is generated immediately when the time elapsed since the last CAM generation is equal or larger than T_GenCam and equal or larger than T_GenCam_Dcc +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_07 +# Check that maximum CAM generation frequency for RSU ITS-S is 1Hz +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_08 + +# Check that CAM is generated immediately when the time elapsed since the last CAM generation is equal or larger than T_GenCam_Dcc and the absolute difference between current direction of the originating ITS-S (towards North) and direction included in previous CAM exceeds 4° +#ItsCam_TestCases.TC_CAM_MSD_GFQ_BV_04 +# Check that CAM is generated immediately when the time elapsed since the last CAM generation is equal or larger than T_GenCam_Dcc and the current position and position included in previous CAM exceeds 4 m +#ItsCam_TestCases.TC_CAM_MSD_GFQ_BV_05 +# Check that CAM is generated immediately when the time elapsed since the last CAM generation is equal or larger than T_GenCam_Dcc and the absolute difference between current speed and speed included in previous CAM exceeds 0,5 m/s +#ItsCam_TestCases.TC_CAM_MSD_GFQ_BV_06 + +# Check that CAM is encapsulated in BTP type B packet +#ItsCam_TestCases.TC_CAM_MSD_PAR_BV_01 +# Check that CAM is encapsulated in SHB packet +#ItsCam_TestCases.TC_CAM_MSD_PAR_BV_02 +# Check that CAM is encapsulated in GN packet with lifetime lower than 1s +#ItsCam_TestCases.TC_CAM_MSD_PAR_BV_03 + +# Check that the IUT does not send a CAM when its content is not permitted by signing certificate +#ItsCam_TestCases.TC_CAM_MSD_SSP_BO_01 Not implemented???? + #ItsCam_TestCases.TC_CAM_MSD_SSP_BO_02 +# Check that the IUT does not send a CAM when its content is not permitted by signing certificate #ItsCam_TestCases.TC_CAM_MSD_SSP_BO_03 +# Check that IUT discards CAM if SSP value of the signing certificate is not consistent with the provided containers +#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_01 Not implemented???? +# Check that IUT discards CAM if SSP value of the signing certificate is not consistent with the provided containers. +#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_02 +# Check that IUT discards CAM if SSP value of the signing certificate is not consistent with the provided containers. +#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_03 + +# Check that content of received CAM is transmitted to applications and other facilities +ItsCam_TestCases.TC_CAM_MSP_BV_01 + [MAIN_CONTROLLER] # The options herein control the behavior of MC. KillTimer := 10.0 diff --git a/etc/AtsCAM/AtsCAM_Yogoko.cf_ b/etc/AtsCAM/AtsCAM_Yogoko.cf_ deleted file mode 100644 index 5f00b86fe1b10cff236a088fdea3940ad02def11..0000000000000000000000000000000000000000 --- a/etc/AtsCAM/AtsCAM_Yogoko.cf_ +++ /dev/null @@ -1,197 +0,0 @@ - -[MODULE_PARAMETERS] -# This section shall contain the values of all parameters that are defined in your TTCN-3 modules. - -# IUT Station ID -LibItsCommon_Pixits.PX_IUT_STATION_ID := 2533729309 - -LibItsGeoNetworking_Pixits.PX_GN_UPPER_LAYER := e_btpB - -LibItsCam_Pics.PICS_DANGEROUSGOODS := true -LibItsCam_Pics.PICS_IS_IUT_SECURED := true - -[LOGGING] -# In this section you can specify the name of the log file and the classes of events -# you want to log into the file or display on console (standard error). - -LogFile := "../logs/AtsCAM/%e.%h-%r.%s" -FileMask := LOG_ALL | USER | DEBUG | MATCHING -ConsoleMask := LOG_ALL | USER | DEBUG | MATCHING -#FileMask := ERROR | WARNING | USER | MATCHING | EXECUTOR_RUNTIME | VERDICTOP -#ConsoleMask := ERROR | WARNING | USER | MATCHING | EXECUTOR_RUNTIME | VERDICTOP -LogSourceInfo := Stack -LogEntityName:= Yes -LogEventTypes:= Yes -#TimeStampFormat := DateTime - -[TESTPORT_PARAMETERS] -# In this section you can specify parameters that are passed to Test Ports. -# CAM Layer -# next_header : btpA|btpB (overwrite BTP.type) -# header_type : tsb|gbc -# header_sub_type : sh (single hop) -# DENM Layer -# next_header : btpA|btpB (overwrite BTP.type) -# header_type : tsb|gbc -# BTP Layer -# type : btpA|btpB -# destination port: dst_port -# source port : src_port -# device_mode : Set to 1 if the layer shall encapsulate upper layer PDU -# device_mode : Set to 1 if the layer shall encapsulate upper layer PDU -# GN Layer -# ll_address : GeoNetworking address of the Test System -# latitude : Latitude of the Test System -# longitude : Longitude of the Test System -# beaconing : Set to 1 if GnLayer shall start beaconing -# expiry : Beaconing timer expiry (ms) -# device_mode : Set to 1 if the layer shall encapsulate upper layer PDU -# secured_mode : Set to 1 if message exchanges shall be signed -# encrypted_mode : Set to 1 if message exchanges shall be encrypted -# NOTE: For signed & encrypted message exchanges, both secured_mode and encrypted_mode shall be set to 1 -# sec_db_path : Path to the certificates and keys storage location -# hash : Hash algorithm to be used when secured mode is set -# Authorized values are SHA-256 or SHA-384 -# Default: SHA-256 -# signature : Signature algorithm to be used when secured mode is set -# Authorized values are NISTP-256, NISTP-384, BP-256 and BP-384 -# Default: NISTP-256 -# cypher : Cyphering algorithm to be used when secured mode is set -# Authorized values are NISTP-256, BP-256 and BP-384 -# Default: NISTP-256 -# Ethernet layer -# mac_src :Source MAC address -# mac_bc :Broadcast address -# eth_type : Ethernet type -# Commsignia layer -# mac_src : IUT MAC address, used to discard packets -# To indicate no filering, use the value 000000000000 -# mac_bc : Broadcast address -# eth_type : Ethernet type, used to discard packets -# target_host : Device address -# target_port : Device port -# source_port : Test System port -# interface_id: Interface id, used to discard packets -# tx_power : TX power (dB) -# xport_mode : G5 or LTE-V2X -# UDP layer (IP/UDP based on Pcap) -# dst_ip : Destination IPv4 address (aa.bb.cc.dd) -# dst_port: Destination port -# src_ip : Source IPv4 address (aa.bb.cc.dd) -# src_port: Source port -# Pcap layer -# mac_src : Source MAC address, used to exclude from capture the acket sent by the Test System -# filter : Pcap filter (compliant with tcpdump syntax) -# Online mode: -# nic: Local NIC -# If set, online mode is used -# Offline mode (nic is present but not set): -# file : File to read -# frame_offset: Frame offset, used to skip packets with frame number < frame_offset -# time_offset : Time offset, used to skip packets with time offset < time_offset -# save_mode : Set to 1 to save sent packet, 0 otherwise - -# Single GeoNetworking component port -# https://standards.iso.org/iso/ts/17419/TS17419%20Assigned%20Numbers/TS17419_ITS-AID_AssignedNumbers.pdf -# its_aid=36: CAM -# its_aid=37: DENM -# its_aid=39: VAM -# its_aid=137: SPAT -# its_aid=138: MAP -# its_aid=139: IVIM -# its_aid=140: SREM/SSEM -# its_aid=141: GeoNet -# its_aid=128: RTCMEM -# its_aid=639: CPS - -# Cygwin -#system.camPort.params := "CAM(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=0,sec_db_path=../data/certificates/certificates)/ETH(mac_src=e2b7b30429eb)/PCAP(mac_src=e2b7b30429eb,nic=CEBB111F-D749-4B40-8B4D-DBB060E90987,filter=and ether proto 0x8947)" -# Linux -#system.camPort.params := "CAM(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=dc536045af7e)/PCAP(mac_src=dc536045af7e,nic=wlp2s0,filter=and ether proto 0x8947)" -# Linux over UDP -#system.camPort.params := "CAM(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=0,sec_db_path=../data/certificates/certificates)/ETH(mac_src=dc536045af7e)/UDP(dst_ip=192.168.146.26,src_port=4041,dst_port=9091)" -system.camPort.params := "CAM(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=dc536045af7e)/PCAP(mac_src=dc536045af7e,nic=tun0,filter=and ether proto 0x8947)" - -# CAM UpperTester port based on UDP -#system.utPort.params := "UT_CAM/UDP(dst_ip=127.0.0.1,dst_port=12345,src_port=12346)" -#system.utPort.params := "UT_CAM/UDP(dst_ip=192.168.146.26)" -system.utPort.params := "UT_CAM/UDP(dst_ip=10.8.0.6)" - -[EXECUTE] -#ItsCam_TestControl.control - -# Check that protocolVersion is set to 2 and messageID is set to 2 -ItsCam_TestCases.TC_CAM_MSD_FMT_BV_01 -# Check that LF container is included in 1st CAM since CA basic service activation -#ItsCam_TestCases.TC_CAM_MSD_FMT_BV_02 -# Check that LF container is included if time elapsed since the generation of the last CAM with the low frequency container generation is equal or larger than 500 ms -#ItsCam_TestCases.TC_CAM_MSD_FMT_BV_03 -# Check that specialVehicle container is included in 1st CAM since CA basic service activation -#ItsCam_TestCases.TC_CAM_MSD_FMT_BV_04 -# Check that specialVehicle container is included if time elapsed since the generation of the last CAM with the special vehicle container generation is equal or larger than 500 ms -#ItsCam_TestCases.TC_CAM_MSD_FMT_BV_05 -# Check that latest value of in-vehicle data is included in CAM -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_01 -# Check that latest value of in-vehicle data is included in CAM -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_02 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_03 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_04 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_05 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_06 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_07 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_08 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_09 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_10 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_11 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_12 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_13 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_14 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_15 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_16 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_17 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_18 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_19 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_20 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_21 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_22 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_23 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_24 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_25 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_26 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_27 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_28 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_29 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_30 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_31 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_32 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_33 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_34 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_35 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_02 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_03 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_04 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_05 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_06 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_07 -#ItsCam_TestCases.TC_CAM_MSD_INA_BV_08 -# Check that content of received CAM is transmitted to applications and other facilities -#ItsCam_TestCases.TC_CAM_MSP_BV_01 -# Check that IUT discards CAM if SSP value of the signing certificate is not consistent with the provided containers -#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_01 -# Check that IUT discards CAM if SSP value of the signing certificate is not consistent with the provided containers -#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_02 -# Check that IUT discards CAM if SSP value of the signing certificate is not consistent with the provided containers -#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_03 -# Check that the IUT does not send a CAM when its content is not permitted by signing certificate -#ItsCam_TestCases.TC_CAM_MSD_SSP_BO_01 -# Check that the IUT does not send a CAM when its content is not permitted by signing certificate -#ItsCam_TestCases.TC_CAM_MSD_SSP_BO_02 -# Check that the IUT does not send a CAM when its content is not permitted by signing certificate -#ItsCam_TestCases.TC_CAM_MSD_SSP_BO_03 - -[MAIN_CONTROLLER] -# The options herein control the behavior of MC. -KillTimer := 10.0 -LocalAddress := 127.0.0.1 -TCPPort := 12000 -NumHCs := 1 diff --git a/etc/AtsCAM/AtsCAM_nfiniity.cfg_ b/etc/AtsCAM/AtsCAM_nfiniity.cfg_ index 66d4a4e67686d3a94498a7edf07aafb9b1c4422f..9fabafc5b5fc267629acf30e806faaac2536f8d2 100644 --- a/etc/AtsCAM/AtsCAM_nfiniity.cfg_ +++ b/etc/AtsCAM/AtsCAM_nfiniity.cfg_ @@ -118,7 +118,6 @@ system.utPort.params := "UT_CAM/UDP(dst_ip=10.8.0.48,dst_port=42001,reuse_incomi [EXECUTE] -# Check that protocolVersion is set to 2 and messageID is set to 2 #ItsCam_TestCases.TC_CAM_MSD_FMT_BV_01 # Check that LF container is included in 1st CAM since CA basic service activation #ItsCam_TestCases.TC_CAM_MSD_FMT_BV_02 @@ -212,11 +211,31 @@ system.utPort.params := "UT_CAM/UDP(dst_ip=10.8.0.48,dst_port=42001,reuse_incomi #ItsCam_TestCases.TC_CAM_MSD_INA_BV_07 # Check that safetyCarContainer is included if vehicleRole is set to safetyCar(7) #ItsCam_TestCases.TC_CAM_MSD_INA_BV_08 + +# Check that CAMs are not generated more frequently than T_GenCamMin +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_01 +# Check that CAMs are not generated less frequently than T_GenCamMax +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_02 +# Check that TGenCam is set to T_GenCamMax after generating N_GenCam due to condition 2 +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_03 +# Check that CAM is generated immediately when the time elapsed since the last CAM generation is equal or larger than T_GenCam and equal or larger than T_GenCam_Dcc +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_07 +# Check that maximum CAM generation frequency for RSU ITS-S is 1Hz +#ItsCam_TestCases.TC_CAM_MSD_GFQ_TI_08 + +# Check that CAM is generated immediately when the time elapsed since the last CAM generation is equal or larger than T_GenCam_Dcc and the absolute difference between current direction of the originating ITS-S (towards North) and direction included in previous CAM exceeds 4° +#ItsCam_TestCases.TC_CAM_MSD_GFQ_BV_04 +# Check that CAM is generated immediately when the time elapsed since the last CAM generation is equal or larger than T_GenCam_Dcc and the current position and position included in previous CAM exceeds 4 m +#ItsCam_TestCases.TC_CAM_MSD_GFQ_BV_05 +# Check that CAM is generated immediately when the time elapsed since the last CAM generation is equal or larger than T_GenCam_Dcc and the absolute difference between current speed and speed included in previous CAM exceeds 0,5 m/s +#ItsCam_TestCases.TC_CAM_MSD_GFQ_BV_06 + # Check that CAM is encapsulated in BTP type B packet #ItsCam_TestCases.TC_CAM_MSD_PAR_BV_01 -# not PICS_IS_IUT_SECURED?? +# Check that CAM is encapsulated in SHB packet #ItsCam_TestCases.TC_CAM_MSD_PAR_BV_02 -# not PICS_IS_IUT_SECURED?? +# Check that CAM is encapsulated in GN packet with lifetime lower than 1s +#ItsCam_TestCases.TC_CAM_MSD_PAR_BV_03 # Check that the IUT does not send a CAM when its content is not permitted by signing certificate #ItsCam_TestCases.TC_CAM_MSD_SSP_BO_01 Not implemented???? @@ -225,7 +244,6 @@ system.utPort.params := "UT_CAM/UDP(dst_ip=10.8.0.48,dst_port=42001,reuse_incomi # Check that the IUT does not send a CAM when its content is not permitted by signing certificate #ItsCam_TestCases.TC_CAM_MSD_SSP_BO_03 - # Check that IUT discards CAM if SSP value of the signing certificate is not consistent with the provided containers #ItsCam_TestCases.TC_CAM_MSP_SSP_BV_01 Not implemented???? # Check that IUT discards CAM if SSP value of the signing certificate is not consistent with the provided containers. @@ -233,6 +251,7 @@ system.utPort.params := "UT_CAM/UDP(dst_ip=10.8.0.48,dst_port=42001,reuse_incomi # Check that IUT discards CAM if SSP value of the signing certificate is not consistent with the provided containers. #ItsCam_TestCases.TC_CAM_MSP_SSP_BV_03 +# Check that content of received CAM is transmitted to applications and other facilities ItsCam_TestCases.TC_CAM_MSP_BV_01 [MAIN_CONTROLLER] diff --git a/etc/AtsCPS/AtsCPS_Simulator.cfg_ b/etc/AtsCPS/AtsCPS_Simulator.cfg_ index b6e3c30075927fe73990ec74b788503334fadd80..9e1ecbd0fd02cf6fd28c4d8e7408d85ba2988f73 100644 --- a/etc/AtsCPS/AtsCPS_Simulator.cfg_ +++ b/etc/AtsCPS/AtsCPS_Simulator.cfg_ @@ -3,11 +3,16 @@ # This section shall contain the values of all parameters that are defined in your TTCN-3 modules. # IUT Station ID -LibItsCommon_Pixits.PX_IUT_STATION_ID := 2533729309 +LibItsCommon_Pixits.PX_IUT_STATION_ID := 1111101 LibItsGeoNetworking_Pixits.PX_GN_UPPER_LAYER := e_btpB -LibItsCps_Pics.PICS_IS_IUT_SECURED := true +LibItsCps_Pics.PICS_IS_IUT_SECURED := true +LibItsCps_Pics.PICS_VEHICLE := true +LibItsCps_Pics.PICS_ROADSIDE_UNIT := true +LibItsCps_Pics.PICS_VEHICLE_TRAILER := false +LibItsCps_Pics.PICS_VEHICLE_MULTIPLE_TRAILERS := false +LibItsCps_Pics.PICS_CPS_SEGMENTATION := false [LOGGING] # In this section you can specify the name of the log file and the classes of events @@ -100,34 +105,66 @@ LogEventTypes:= Yes # its_aid=639: CPS # Cygwin -#system.cpmPort.params := "CPS(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=e2b7b30429eb)/PCAP(mac_src=e2b7b30429eb,nic=CEBB111F-D749-4B40-8B4D-DBB060E90987,filter=and ether proto 0x8947)" +#system.cpmPort.params := "CPS(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP(dst_port=2019)/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=e2b7b30429eb)/PCAP(mac_src=e2b7b30429eb,nic=CEBB111F-D749-4B40-8B4D-DBB060E90987,filter=and ether proto 0x8947)" # Linux -system.cpmPort.params := "CPS(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=8c554ac1eee0)/PCAP(mac_src=8c554ac1eee0,nic=wlp0s20f3,filter=and ether proto 0x8947)" +system.cpmPort.params := "CPS(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP(dst_port=2019)/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=8c554ac1eee0)/PCAP(mac_src=8c554ac1eee0,nic=wlo1,filter=and ether proto 0x8947)" # Linux over UDP -#system.cpmPort.params := "CPS(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=8c554ac1eee0)/UDP(dst_ip=192.168.1.43,src_port=4041,dst_port=9091)" +#system.cpmPort.params := "CPS(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP(dst_port=2019)/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=8c554ac1eee0)/UDP(dst_ip=192.168.1.43,src_port=4041,dst_port=9091)" # PC5 + UU/Raw -#system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EB,latitude=367470519,longitude=-455595023,its_aid=36,secured_mode=1,certificate=CERT_IUT_A_AT,sec_db_path=../data/certificates/certificates_iut)/LTE(mac_src=8c554ac1eee1,nic=wlp0s20f3,filter=and ether proto 0x8947,pc5_layer=QUALCOMM,uu_protocol=raw,uu_transport=udp,dst_ip=192.168.1.43,dst_port=4041,src_port=9091)" +#system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EB,latitude=367470519,longitude=-455595023,its_aid=36,secured_mode=1,certificate=CERT_IUT_A_AT,sec_db_path=../data/certificates/certificates_iut)/LTE(mac_src=8c554ac1eee1,nic=wlo1,filter=and ether proto 0x8947,pc5_layer=QUALCOMM,uu_protocol=raw,uu_transport=udp,dst_ip=192.168.1.43,dst_port=4041,src_port=9091)" # PC5 + Uu/MQTT # Raw UDP -#system.cpmPort.params := "CPS(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/LTE(mac_src=8c554ac1eee0,nic=wlp0s20f3,filter=and ether proto 0x8947,pc5_layer=QUALCOMM,uu_protocol=mqtt,mqtt_client_id=8c554ac1eee0,mqtt_topics=rsu,uu_transport=udp,debug=1,server=192.168.1.39,port=1883)" +#system.cpmPort.params := "CPS(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP(dst_port=2019)/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/LTE(mac_src=8c554ac1eee0,nic=wlo1,filter=and ether proto 0x8947,pc5_layer=QUALCOMM,uu_protocol=mqtt,mqtt_client_id=8c554ac1eee0,mqtt_topics=rsu,uu_transport=udp,debug=1,server=192.168.1.39,port=1883)" # MQTT over TCP -#system.cpmPort.params := "CPS(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/LTE(mac_src=8c554ac1eee0,nic=wlp0s20f3,filter=and ether proto 0x8947,pc5_layer=QUALCOMM,uu_protocol=mqtt,mqtt_client_id=8c554ac1eee0,mqtt_topics=rsu,uu_transport=tcp,debug=1,server=192.168.1.39,port=1883)" +#system.cpmPort.params := "CPS(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP(dst_port=2019)/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/LTE(mac_src=8c554ac1eee0,nic=wlo1,filter=and ether proto 0x8947,pc5_layer=QUALCOMM,uu_protocol=mqtt,mqtt_client_id=8c554ac1eee0,mqtt_topics=rsu,uu_transport=tcp,debug=1,server=192.168.1.39,port=1883)" # CPS UpperTester port based on UDP -system.utPort.params := "UT_CPS/UDP(dst_ip=192.168.1.43,dst_port=12345,src_port=12346)" +system.utPort.params := "UT_CPS/UDP(dst_ip=192.168.1.21,dst_port=12345,src_port=12346)" #system.utPort.params := "UT_CPS/UDP(dst_ip=192.168.146.26)" #system.utPort.params := "UT_CPS/UDP(dst_ip=172.16.35.1)" [EXECUTE] #ItsCps_TestControl.control -# -ItsCps_TestCases.TC_CPS_MSD_PAR_BV_01 -# -#ItsCps_TestCases.TC_CPS_MSD_PAR_BV_02 -# -#ItsCps_TestCases.TC_CPS_MSD_PAR_BV_03 +# Check that protocolVersion is set to 3 and messageID is set to 14 +#ItsCps_TestCases.TC_CPS_MSGF_BV_01 +# Check that one OriginatingVehicleContainer is present if a CPM is generated by a vehicle ITS-S +#ItsCps_TestCases.TC_CPS_MSGF_BV_02 +# Check that one OriginatingRsuContainer is present if a CPM is generated by an RSU +#ItsCps_TestCases.TC_CPS_MSGF_BV_03 +# Check that one SensorInformationContainer is included in the first generated CPM +#ItsCps_TestCases.TC_CPS_MSGF_BV_04 +# Check that one SensorInformationContainer is included when T_AddSensorInformation is exceeded +#ItsCps_TestCases.TC_CPS_MSGF_BV_05 +# TODO Implement the test case +#ItsCps_TestCases.TC_CPS_MSGF_BV_06 +# Check that one PerceivedObjectContainer is present when perceived objects are present +ItsCps_TestCases.TC_CPS_MSGF_BV_07 +# Check that at least one of PerceivedRegionContainer or PerceivedObjectContainer is present +#ItsCps_TestCases.TC_CPS_MSGF_BV_08 +# Check that the reference position aligns with the CAM reference position +#ItsCps_TestCases.TC_CPS_MSGF_BV_09 +# Check that the management container contains messageSegmentInfo if more than one CPM is assembled +#ItsCps_TestCases.TC_CPS_MSGF_BV_10 +# Check that the Originating Vehicle Container includes trailerData if there are CPS-contributing sensors mounted on a trailer +#ItsCps_TestCases.TC_CPS_MSGF_BV_11 +# Check that the Originating Vehicle Container includes one instance of TrailerData per data-providing trailer +#ItsCps_TestCases.TC_CPS_MSGF_BV_12 +# Check that TrailerData does not include frontOverhang, rearOverhang, trailerWidth +#ItsCps_TestCases.TC_CPS_MSGF_BV_13 +# Check that mapReference is used if a corresponding MAPEM is being transmitted to ITS-S that recieve the CPM +#ItsCps_TestCases.TC_CPS_MSGF_BV_14 +# Check that the SensorInformation includes perceptionRegionShape if the sensor type is not undefined (0), localAggregation (12), itssAggregation (13) +#ItsCps_TestCases.TC_CPS_MSGF_BV_15 +# Check that the sensor perception region shape is expressed in the body-fixed coordinate system of the vehicle +#ItsCps_TestCases.TC_CPS_MSGF_BV_16 +# Check that perceptionRegionConfidence represents the homogeneous perception region confidence for the sensor +#ItsCps_TestCases.TC_CPS_MSGF_BV_17 +# Check that perceptionRegionShape defines a geographical area or volume with respect to the reference position +#ItsCps_TestCases.TC_CPS_MSGF_BV_18 + + [MAIN_CONTROLLER] # The options herein control the behavior of MC. diff --git a/etc/AtsDENM/AtsDENM.cfg b/etc/AtsDENM/AtsDENM.cfg index aaf33a7bf142fa67b647ea08f3e833fe46ae6d5a..4a830d5b79f9325e19c05de8f86a18f3ba430b46 100644 --- a/etc/AtsDENM/AtsDENM.cfg +++ b/etc/AtsDENM/AtsDENM.cfg @@ -8,6 +8,9 @@ LibItsCommon_Pixits.PX_IUT_STATION_ID := 2533729309 LibItsGeoNetworking_Pixits.PX_GN_UPPER_LAYER := e_btpB LibItsDenm_Pics.PICS_IS_IUT_SECURED := true + +LibItsCommon_Pixits.PX_CERT_FOR_TS := "CERT_TS_A_ATv2" + [LOGGING] # In this section you can specify the name of the log file and the classes of events # you want to log into the file or display on console (standard error). @@ -85,21 +88,22 @@ LogEventTypes:= Yes # time_offset : Time offset, used to skip packets with time offset < time_offset # save_mode : Set to 1 to save sent packet, 0 otherwise -system.denmPort.params := "DENM(next_header=btpB,header_type=tsb)/BTP(dst_port=2002)/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=8c554ac1eee0)/PCAP(mac_src=8c554ac1eee0,nic=wlp0s20f3,filter=and ether proto 0x8947)" +system.denmPort.params := "DENM(next_header=btpB,header_type=tsb)/BTP(dst_port=2002)/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,certificate=CERT_TS_A_ATv2,sec_db_path=../data/certificates/certificates)/ETH(mac_src=181dea7eb7d3)/PCAP(mac_src=181dea7eb7d3,nic=wlo1,filter=and ether proto 0x8947)" # DENM UpperTester port based on UDP -system.utPort.params := "UT_DENM/UDP(dst_ip=192.168.1.43,dst_port=12345,src_port=12346)" +system.utPort.params := "UT_DENM/UDP(dst_ip=192.168.1.21,dst_port=12345,src_port=12346)" [EXECUTE] + # Check that protocolVersion is set to 2 and messageID is set to 1 -ItsDenm_TestCases.TC_DEN_MSGF_BV_01 -# Check that sent DENM contains at least one 'trace' DE +#ItsDenm_TestCases.TC_DEN_MSGF_BV_01 +# Check that sent DENM contains at least one 'detectionZonesToEventPosition' DE #ItsDenm_TestCases.TC_DEN_MSGF_BV_02 # Check that DEN Basic Service generates a new DENM on reception of a valid AppDENM_Trigger request #ItsDenm_TestCases.TC_DEN_EVGN_BV_01 -# Check that a new ActionId value is assigned for each newly generated DENM +# Check that a new actionId value is assigned for each newly generated DENM #ItsDenm_TestCases.TC_DEN_EVGN_BV_02 -# Check that a newly created ActionId contains the StationID of the originating ITS-S that detected the event +# Check that a newly created actionId contains the stationId of the originating ITS-S that detected the event #ItsDenm_TestCases.TC_DEN_EVGN_BV_03 # Check that Cause and subcause values included in DENM as provided by application #ItsDenm_TestCases.TC_DEN_EVGN_BV_04 @@ -107,19 +111,17 @@ ItsDenm_TestCases.TC_DEN_MSGF_BV_01 #ItsDenm_TestCases.TC_DEN_EVGN_BV_05 # Check that sequenceNumber is set to a next unused value each time an event is detected #ItsDenm_TestCases.TC_DEN_EVGN_BV_07 -# Check that actionID are generated using newly assigned stationID when a pseudonym change occurs -#ItsDenm_TestCases.TC_DEN_EVGN_BV_10 # Check that DEN Basic Service generates an update DENM on reception of a valid AppDENM_update request #ItsDenm_TestCases.TC_DEN_EVUP_BV_01 -# Check that the actionID is not changed by DENM update, as long as the stationID of the originating ITS-S remains unchanged +# Check that the actionId is not changed by DENM update, as long as the stationId of the originating ITS-S remains unchanged #ItsDenm_TestCases.TC_DEN_EVUP_BV_02 -# Check that referenceTime is set to the current time when generating a DENM for an updated eventCheck +# Check that referenceTime is set to the current time when generating a DENM for an updated eventCheck #ItsDenm_TestCases.TC_DEN_EVUP_BV_03 -# Check that DEN Basic Service does not send any update DENM if actionID is not in originating ITS-S message table +# Check that DEN Basic Service does not send any update DENM if actionId is not in originating ITS-S message table #ItsDenm_TestCases.TC_DEN_EVUP_BO_04 -# Check that DEN Basic Service generates a cancellation DENM when application indicates the premature termination of an event for which it is the originator +# Check that DEN Basic Service generates a cancellation DENM when application indicates the #ItsDenm_TestCases.TC_DEN_EVTR_BV_01 -# Check that DEN Basic Service generates a negation DENM when application indicates the premature termination of an event for which it is not the originator +# Check that DEN Basic Service generates a negation DENM when application indicates the #ItsDenm_TestCases.TC_DEN_EVTR_BV_02 # Check that referenceTime is set to the latest value received for this event in negation DENM #ItsDenm_TestCases.TC_DEN_EVTR_BV_03 @@ -127,9 +129,9 @@ ItsDenm_TestCases.TC_DEN_MSGF_BV_01 #ItsDenm_TestCases.TC_DEN_EVTR_BV_04 # Check that situation container, location container and alacarte container are not present in a negation DENM #ItsDenm_TestCases.TC_DEN_EVTR_BV_05 -# Check that DEN Basic Service does not send any termination DENM if actionID is not in originating ITS-S message table or receiving ITS-S message table (own stationID) -#ItsDenm_TestCases.TC_DEN_EVTR_BO_06 -# Check that DEN Basic Service does not send any termination DENM if actionID is not in originating ITS-S message table or receiving ITS-S message table (other stationID) +# Check that DEN Basic Service does not send any termination DENM if actionId is not in +ItsDenm_TestCases.TC_DEN_EVTR_BO_06 +# Check that DEN Basic Service does not send any termination DENM if actionId is not in #ItsDenm_TestCases.TC_DEN_EVTR_BO_07 # Check that referenceTime is set to to the current time when generating a cancellation DENM #ItsDenm_TestCases.TC_DEN_EVTR_BV_08 @@ -137,21 +139,21 @@ ItsDenm_TestCases.TC_DEN_MSGF_BV_01 #ItsDenm_TestCases.TC_DEN_EVRP_TI_01 # Check that the repeated DENM is always the most up-to-date message #ItsDenm_TestCases.TC_DEN_EVRP_BV_02 -# Check that DEN Basic Service stops retransmitting DENM after event’s validityDuration expiration +# Check that DEN Basic Service stops retransmitting DENM after event’s validityDuration #ItsDenm_TestCases.TC_DEN_EVRP_BV_03 -# Check that DEN Basic Service stops retransmitting DENM after event’s repetitionDuration expiration +# Check that DEN Basic Service stops retransmitting DENM after event’s repetitionDuration #ItsDenm_TestCases.TC_DEN_EVRP_BV_04 -# Check that DEN Basic Service does not repeat transmission of DENM if repetitionInterval is not provided by application +# Check that DEN Basic Service does not repeat transmission of DENM if repetitionInterval is #ItsDenm_TestCases.TC_DEN_EVRP_BV_05 -# Check that DEN Basic Service does not repeat transmission of DENM if repetitionDuration is not provided by application +# Check that DEN Basic Service does not repeat transmission of DENM if repetitionDuration is #ItsDenm_TestCases.TC_DEN_EVRP_BV_06 -# Check that existing actionID in originating ITS-S are updated when stationID is modified +# Check that existing actionId in originating ITS-S are updated when stationId is modified #ItsDenm_TestCases.TC_DEN_EVRP_BV_08 -# Check that actionID is not modified in repetitions of DENM if stationID is not modified +# Check that actionId is not modified in repetitions of DENM if stationId is not modified #ItsDenm_TestCases.TC_DEN_EVRP_BV_09 -# Check that actionID is not modified in repetitions of DENM if stationID is not modified +# Check that actionId is not modified in repetitions of DENM if stationId is not modified #ItsDenm_TestCases.TC_DEN_EVRP_BV_10 -# Check that DEN Basic Service stops retransmitting DENM after event's validityDuration expiration, when validityDuration was not provided +# Check that DEN Basic Service stops retransmitting DENM after event's validityDuration expiration, #ItsDenm_TestCases.TC_DEN_EVRP_BV_11 # Check that DENM is encapsulated in BTP type B packet #ItsDenm_TestCases.TC_DEN_PAR_BV_01 @@ -161,39 +163,195 @@ ItsDenm_TestCases.TC_DEN_MSGF_BV_01 #ItsDenm_TestCases.TC_DEN_SSP_BV_01_01 # Check that IUT does not send a DENM if it is not permitted by signing certificate #ItsDenm_TestCases.TC_DEN_SSP_BV_01_02 -# Check that receiving ITS-S transmits DENM to application if it concerns an unknown ActionId and if it is not a termination DENM +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_03 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_04 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_05 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_06 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_07 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_08 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_09 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_10 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_11 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_12 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_13 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_14 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_15 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_16 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_17 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_18 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_19 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_20 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_21 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_22 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_23 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_24 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_02_01 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_02_02 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_02_03 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_02_04 +# Check that receiving ITS-S transmits DENM to application if it concerns an unknown actionId and if it is not a termination DENM #ItsDenm_TestCases.TC_DEN_MSRV_BV_01 -#Check that receiving ITS-S transmits DENM to application if it concerns a known ActionId and referenceTime is greater than highest value received for this ActionId +# Check that receiving ITS-S transmits DENM to application if it concerns a known actionId #ItsDenm_TestCases.TC_DEN_MSRV_BV_02 -# Check that receiving ITS-S discards termination DENM if it concerns an unknown ActionId (own actionID) +# Check that receiving ITS-S discards termination DENM if it concerns an unknown actionId (own actionId) #ItsDenm_TestCases.TC_DEN_MSRV_BO_03 -# Check that receiving ITS-S discards termination DENM if it concerns an unknown ActionId (other actionID) +# Check that receiving ITS-S discards termination DENM if it concerns an unknown actionId (other actionId) #ItsDenm_TestCases.TC_DEN_MSRV_BO_04 -# Check that receiving ITS-S discards DENM if referenceTime is lower than highest value received for this ActionId +# Check that receiving ITS-S discards DENM if referenceTime is lower than highest value received for this actionId #ItsDenm_TestCases.TC_DEN_MSRV_BO_05 -# Check that receiving ITS-S discards DENM if detectionTime is smaller than highest value received for this ActionId +# Check that receiving ITS-S discards DENM if detectionTime is smaller than highest value received for this actionId #ItsDenm_TestCases.TC_DEN_MSRV_BO_06 -# Check that receiving ITS-S transmits DENM to application if it concerns a known ActionId and referenceTime is equal to highest received value and detectionTime is more recent +# Check that receiving ITS-S transmits DENM to application if it concerns a known actionId and referenceTime is equal to highest received value and detectionTime is more recent #ItsDenm_TestCases.TC_DEN_MSRV_BV_07 # Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode #ItsDenm_TestCases.TC_DEN_MSRV_BO_08_01 # Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode #ItsDenm_TestCases.TC_DEN_MSRV_BO_08_02 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_03 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_04 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_05 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_06 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_07 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_08 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_09 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_10 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_11 +# Check that receiving ITS-S discards DENM for new event +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_12 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_13 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_14 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_15 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_16 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_17 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_18 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_19 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_20 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_21 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_22 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_23 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_24 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_25 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_26 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_27 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_28 # Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode #ItsDenm_TestCases.TC_DEN_MSRV_BO_09_01 # Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode #ItsDenm_TestCases.TC_DEN_MSRV_BO_09_02 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_03 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_04 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_05 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_06 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_07 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_08 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_09 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_10 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_11 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_12 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_13 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_14 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_15 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_16 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_17 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_18 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_19 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_20 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_21 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_22 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_23 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_24 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_25 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_26 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_27 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_28 # Check that receiving ITS-S replies to requestResponseIndication #ItsDenm_TestCases.TC_DEN_MSRV_BV_10 -# Check that forwarding ITS-S forwards DENM if no DENM with same ActionId has been received during forwarding delay +# Check that forwarding ITS-S forwards DENM if no DENM with same actionId has been received during forwarding delay #ItsDenm_TestCases.TC_DEN_KAFW_BV_01 -# Check that forwarding ITS-S forwards DENM if no DENM with same ActionId and referenceTime greater or equal to the last received DENM has been received during forwarding delay +# Check that forwarding ITS-S forwards DENM if no DENM with same actionId and referenceTime greater or equal to the last received DENM has been received during forwarding delay #ItsDenm_TestCases.TC_DEN_KAFW_BV_02 # Check that forwarding delay is set to min(2*transmissionInterval + rnd(0, 150ms), validityDuration) #ItsDenm_TestCases.TC_DEN_KAFW_TI_03 # Check that Forwarding ITS-S replaces the ITS PDU header of forwarded DENMs #ItsDenm_TestCases.TC_DEN_KAFW_BV_04 -# Check that forwarding ITS-S does not change actionID +# Check that forwarding ITS-S does not change actionId #ItsDenm_TestCases.TC_DEN_KAFW_BV_05 # Check that forwarding ITS-S does not change referenceTime #ItsDenm_TestCases.TC_DEN_KAFW_BV_06 diff --git a/etc/AtsDENM/AtsDENM_Simulator.cf_ b/etc/AtsDENM/AtsDENM_Simulator.cf_ index 682a530f257e1976050e27c25970a163d20d6485..5351143ad745d3cb0d3775b42d0d2685b0e69dd2 100644 --- a/etc/AtsDENM/AtsDENM_Simulator.cf_ +++ b/etc/AtsDENM/AtsDENM_Simulator.cf_ @@ -89,15 +89,16 @@ system.denmPort.params := "DENM(next_header=btpB,header_type=tsb)/BTP(dst_port=2 system.utPort.params := "UT_DENM/UDP(dst_ip=192.168.1.43,dst_port=12345,src_port=12346)" [EXECUTE] + # Check that protocolVersion is set to 2 and messageID is set to 1 ItsDenm_TestCases.TC_DEN_MSGF_BV_01 -# Check that sent DENM contains at least one 'trace' DE +# Check that sent DENM contains at least one 'detectionZonesToEventPosition' DE #ItsDenm_TestCases.TC_DEN_MSGF_BV_02 # Check that DEN Basic Service generates a new DENM on reception of a valid AppDENM_Trigger request #ItsDenm_TestCases.TC_DEN_EVGN_BV_01 -# Check that a new ActionId value is assigned for each newly generated DENM +# Check that a new actionId value is assigned for each newly generated DENM #ItsDenm_TestCases.TC_DEN_EVGN_BV_02 -# Check that a newly created ActionId contains the StationID of the originating ITS-S that detected the event +# Check that a newly created actionId contains the stationId of the originating ITS-S that detected the event #ItsDenm_TestCases.TC_DEN_EVGN_BV_03 # Check that Cause and subcause values included in DENM as provided by application #ItsDenm_TestCases.TC_DEN_EVGN_BV_04 @@ -105,19 +106,17 @@ ItsDenm_TestCases.TC_DEN_MSGF_BV_01 #ItsDenm_TestCases.TC_DEN_EVGN_BV_05 # Check that sequenceNumber is set to a next unused value each time an event is detected #ItsDenm_TestCases.TC_DEN_EVGN_BV_07 -# Check that actionID are generated using newly assigned stationID when a pseudonym change occurs -#ItsDenm_TestCases.TC_DEN_EVGN_BV_10 # Check that DEN Basic Service generates an update DENM on reception of a valid AppDENM_update request #ItsDenm_TestCases.TC_DEN_EVUP_BV_01 -# Check that the actionID is not changed by DENM update, as long as the stationID of the originating ITS-S remains unchanged +# Check that the actionId is not changed by DENM update, as long as the stationId of the originating ITS-S remains unchanged #ItsDenm_TestCases.TC_DEN_EVUP_BV_02 -# Check that referenceTime is set to the current time when generating a DENM for an updated eventCheck +# Check that referenceTime is set to the current time when generating a DENM for an updated eventCheck #ItsDenm_TestCases.TC_DEN_EVUP_BV_03 -# Check that DEN Basic Service does not send any update DENM if actionID is not in originating ITS-S message table +# Check that DEN Basic Service does not send any update DENM if actionId is not in originating ITS-S message table #ItsDenm_TestCases.TC_DEN_EVUP_BO_04 -# Check that DEN Basic Service generates a cancellation DENM when application indicates the premature termination of an event for which it is the originator +# Check that DEN Basic Service generates a cancellation DENM when application indicates the #ItsDenm_TestCases.TC_DEN_EVTR_BV_01 -# Check that DEN Basic Service generates a negation DENM when application indicates the premature termination of an event for which it is not the originator +# Check that DEN Basic Service generates a negation DENM when application indicates the #ItsDenm_TestCases.TC_DEN_EVTR_BV_02 # Check that referenceTime is set to the latest value received for this event in negation DENM #ItsDenm_TestCases.TC_DEN_EVTR_BV_03 @@ -125,31 +124,31 @@ ItsDenm_TestCases.TC_DEN_MSGF_BV_01 #ItsDenm_TestCases.TC_DEN_EVTR_BV_04 # Check that situation container, location container and alacarte container are not present in a negation DENM #ItsDenm_TestCases.TC_DEN_EVTR_BV_05 -# Check that DEN Basic Service does not send any termination DENM if actionID is not in originating ITS-S message table or receiving ITS-S message table (own stationID) +# Check that DEN Basic Service does not send any termination DENM if actionId is not in #ItsDenm_TestCases.TC_DEN_EVTR_BO_06 -# Check that DEN Basic Service does not send any termination DENM if actionID is not in originating ITS-S message table or receiving ITS-S message table (other stationID) +# Check that DEN Basic Service does not send any termination DENM if actionId is not in #ItsDenm_TestCases.TC_DEN_EVTR_BO_07 -# Check that referenceTime is set to the current time when generating a cancellation DENM +# Check that referenceTime is set to to the current time when generating a cancellation DENM #ItsDenm_TestCases.TC_DEN_EVTR_BV_08 # Check that DEN Basic Sercive repeats DENM transmission according to repetitionInterval parameter provided by application #ItsDenm_TestCases.TC_DEN_EVRP_TI_01 # Check that the repeated DENM is always the most up-to-date message #ItsDenm_TestCases.TC_DEN_EVRP_BV_02 -# Check that DEN Basic Service stops retransmitting DENM after event’s validityDuration expiration +# Check that DEN Basic Service stops retransmitting DENM after event’s validityDuration #ItsDenm_TestCases.TC_DEN_EVRP_BV_03 -# Check that DEN Basic Service stops retransmitting DENM after event’s repetitionDuration expiration +# Check that DEN Basic Service stops retransmitting DENM after event’s repetitionDuration #ItsDenm_TestCases.TC_DEN_EVRP_BV_04 -# Check that DEN Basic Service does not repeat transmission of DENM if repetitionInterval is not provided by application +# Check that DEN Basic Service does not repeat transmission of DENM if repetitionInterval is #ItsDenm_TestCases.TC_DEN_EVRP_BV_05 -# Check that DEN Basic Service does not repeat transmission of DENM if repetitionDuration is not provided by application +# Check that DEN Basic Service does not repeat transmission of DENM if repetitionDuration is #ItsDenm_TestCases.TC_DEN_EVRP_BV_06 -# Check that existing actionID in originating ITS-S are updated when stationID is modified +# Check that existing actionId in originating ITS-S are updated when stationId is modified #ItsDenm_TestCases.TC_DEN_EVRP_BV_08 -# Check that actionID is not modified in repetitions of DENM if stationID is not modified +# Check that actionId is not modified in repetitions of DENM if stationId is not modified #ItsDenm_TestCases.TC_DEN_EVRP_BV_09 -# Check that actionID is not modified in repetitions of DENM if stationID is not modified +# Check that actionId is not modified in repetitions of DENM if stationId is not modified #ItsDenm_TestCases.TC_DEN_EVRP_BV_10 -# Check that DEN Basic Service stops retransmitting DENM after event's validityDuration expiration, when validityDuration was not provided +# Check that DEN Basic Service stops retransmitting DENM after event's validityDuration expiration, #ItsDenm_TestCases.TC_DEN_EVRP_BV_11 # Check that DENM is encapsulated in BTP type B packet #ItsDenm_TestCases.TC_DEN_PAR_BV_01 @@ -159,39 +158,195 @@ ItsDenm_TestCases.TC_DEN_MSGF_BV_01 #ItsDenm_TestCases.TC_DEN_SSP_BV_01_01 # Check that IUT does not send a DENM if it is not permitted by signing certificate #ItsDenm_TestCases.TC_DEN_SSP_BV_01_02 -# Check that receiving ITS-S transmits DENM to application if it concerns an unknown ActionId and if it is not a termination DENM +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_03 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_04 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_05 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_06 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_07 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_08 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_09 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_10 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_11 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_12 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_13 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_14 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_15 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_16 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_17() runs on ItsDenm system ItsDenmSystem { +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_18() runs on ItsDenm system ItsDenmSystem { +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_19 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_20 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_21 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_22 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_23 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_24 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_02_01 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_02_02 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_02_03 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_02_04() runs on ItsDenm system ItsDenmSystem { +# Check that receiving ITS-S transmits DENM to application if it concerns an unknown actionId and if it is not a termination DENM #ItsDenm_TestCases.TC_DEN_MSRV_BV_01 -#Check that receiving ITS-S transmits DENM to application if it concerns a known ActionId and referenceTime is greater than highest value received for this ActionId +# Check that receiving ITS-S transmits DENM to application if it concerns a known actionId #ItsDenm_TestCases.TC_DEN_MSRV_BV_02 -# Check that receiving ITS-S discards termination DENM if it concerns an unknown ActionId (own actionID) +# Check that receiving ITS-S discards termination DENM if it concerns an unknown actionId (own actionId) #ItsDenm_TestCases.TC_DEN_MSRV_BO_03 -# Check that receiving ITS-S discards termination DENM if it concerns an unknown ActionId (other actionID) +# Check that receiving ITS-S discards termination DENM if it concerns an unknown actionId (other actionId) #ItsDenm_TestCases.TC_DEN_MSRV_BO_04 -# Check that receiving ITS-S discards DENM if referenceTime is lower than highest value received for this ActionId +# Check that receiving ITS-S discards DENM if referenceTime is lower than highest value received for this actionId #ItsDenm_TestCases.TC_DEN_MSRV_BO_05 -# Check that receiving ITS-S discards DENM if detectionTime is smaller than highest value received for this ActionId +# Check that receiving ITS-S discards DENM if detectionTime is smaller than highest value received for this actionId #ItsDenm_TestCases.TC_DEN_MSRV_BO_06 -# Check that receiving ITS-S transmits DENM to application if it concerns a known ActionId and referenceTime is equal to highest received value and detectionTime is more recent +# Check that receiving ITS-S transmits DENM to application if it concerns a known actionId and referenceTime is equal to highest received value and detectionTime is more recent #ItsDenm_TestCases.TC_DEN_MSRV_BV_07 # Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode #ItsDenm_TestCases.TC_DEN_MSRV_BO_08_01 # Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode #ItsDenm_TestCases.TC_DEN_MSRV_BO_08_02 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_03 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_04 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_05 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_06 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_07 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_08 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_09 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_10 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_11 +# Check that receiving ITS-S discards DENM for new event +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_12 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_13 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_14 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_15 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_16 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_17 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_18 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_19 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_20 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_21 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_22 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_23 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_24 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_25 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_26 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_27 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_28 # Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode #ItsDenm_TestCases.TC_DEN_MSRV_BO_09_01 # Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode #ItsDenm_TestCases.TC_DEN_MSRV_BO_09_02 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_03 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_04 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_05 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_06 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_07 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_08 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_09 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_10 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_11 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_12 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_13 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_14 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_15 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_16 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_17 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_18 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_19 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_20 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_21 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_22 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_23 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_24 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_25 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_26 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_27 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_28 # Check that receiving ITS-S replies to requestResponseIndication #ItsDenm_TestCases.TC_DEN_MSRV_BV_10 -# Check that forwarding ITS-S forwards DENM if no DENM with same ActionId has been received during forwarding delay +# Check that forwarding ITS-S forwards DENM if no DENM with same actionId has been received during forwarding delay #ItsDenm_TestCases.TC_DEN_KAFW_BV_01 -# Check that forwarding ITS-S forwards DENM if no DENM with same ActionId and referenceTime greater or equal to the last received DENM has been received during forwarding delay +# Check that forwarding ITS-S forwards DENM if no DENM with same actionId and referenceTime greater or equal to the last received DENM has been received during forwarding delay #ItsDenm_TestCases.TC_DEN_KAFW_BV_02 # Check that forwarding delay is set to min(2*transmissionInterval + rnd(0, 150ms), validityDuration) #ItsDenm_TestCases.TC_DEN_KAFW_TI_03 # Check that Forwarding ITS-S replaces the ITS PDU header of forwarded DENMs #ItsDenm_TestCases.TC_DEN_KAFW_BV_04 -# Check that forwarding ITS-S does not change actionID +# Check that forwarding ITS-S does not change actionId #ItsDenm_TestCases.TC_DEN_KAFW_BV_05 # Check that forwarding ITS-S does not change referenceTime #ItsDenm_TestCases.TC_DEN_KAFW_BV_06 diff --git a/etc/AtsDENM/AtsDENM_codha.cf_ b/etc/AtsDENM/AtsDENM_codha.cf_ index 6b3bf8aeec27928e878cb8f082ca1a3a0bd3b104..eefdeeb1b25d4d8235d5916701b44fe6cd318145 100644 --- a/etc/AtsDENM/AtsDENM_codha.cf_ +++ b/etc/AtsDENM/AtsDENM_codha.cf_ @@ -95,14 +95,14 @@ system.utPort.params := "UT_DENM/UDP(dst_ip=10.8.0.48,dst_port=12345,reuse_incom [EXECUTE] # Check that protocolVersion is set to 2 and messageID is set to 1 -#ItsDenm_TestCases.TC_DEN_MSGF_BV_01 -# Check that sent DENM contains at least one 'trace' DE +ItsDenm_TestCases.TC_DEN_MSGF_BV_01 +# Check that sent DENM contains at least one 'detectionZonesToEventPosition' DE #ItsDenm_TestCases.TC_DEN_MSGF_BV_02 # Check that DEN Basic Service generates a new DENM on reception of a valid AppDENM_Trigger request #ItsDenm_TestCases.TC_DEN_EVGN_BV_01 -# Check that a new ActionId value is assigned for each newly generated DENM +# Check that a new actionId value is assigned for each newly generated DENM #ItsDenm_TestCases.TC_DEN_EVGN_BV_02 -# Check that a newly created ActionId contains the StationID of the originating ITS-S that detected the event +# Check that a newly created actionId contains the stationId of the originating ITS-S that detected the event #ItsDenm_TestCases.TC_DEN_EVGN_BV_03 # Check that Cause and subcause values included in DENM as provided by application #ItsDenm_TestCases.TC_DEN_EVGN_BV_04 @@ -110,19 +110,17 @@ system.utPort.params := "UT_DENM/UDP(dst_ip=10.8.0.48,dst_port=12345,reuse_incom #ItsDenm_TestCases.TC_DEN_EVGN_BV_05 # Check that sequenceNumber is set to a next unused value each time an event is detected #ItsDenm_TestCases.TC_DEN_EVGN_BV_07 -# Check that actionID are generated using newly assigned stationID when a pseudonym change occurs -#ItsDenm_TestCases.TC_DEN_EVGN_BV_10 # Check that DEN Basic Service generates an update DENM on reception of a valid AppDENM_update request #ItsDenm_TestCases.TC_DEN_EVUP_BV_01 -# Check that the actionID is not changed by DENM update, as long as the stationID of the originating ITS-S remains unchanged +# Check that the actionId is not changed by DENM update, as long as the stationId of the originating ITS-S remains unchanged #ItsDenm_TestCases.TC_DEN_EVUP_BV_02 -# Check that referenceTime is set to the current time when generating a DENM for an updated eventCheck +# Check that referenceTime is set to the current time when generating a DENM for an updated eventCheck #ItsDenm_TestCases.TC_DEN_EVUP_BV_03 -# Check that DEN Basic Service does not send any update DENM if actionID is not in originating ITS-S message table +# Check that DEN Basic Service does not send any update DENM if actionId is not in originating ITS-S message table #ItsDenm_TestCases.TC_DEN_EVUP_BO_04 -# Check that DEN Basic Service generates a cancellation DENM when application indicates the premature termination of an event for which it is the originator +# Check that DEN Basic Service generates a cancellation DENM when application indicates the #ItsDenm_TestCases.TC_DEN_EVTR_BV_01 -# Check that DEN Basic Service generates a negation DENM when application indicates the premature termination of an event for which it is not the originator +# Check that DEN Basic Service generates a negation DENM when application indicates the #ItsDenm_TestCases.TC_DEN_EVTR_BV_02 # Check that referenceTime is set to the latest value received for this event in negation DENM #ItsDenm_TestCases.TC_DEN_EVTR_BV_03 @@ -130,31 +128,31 @@ system.utPort.params := "UT_DENM/UDP(dst_ip=10.8.0.48,dst_port=12345,reuse_incom #ItsDenm_TestCases.TC_DEN_EVTR_BV_04 # Check that situation container, location container and alacarte container are not present in a negation DENM #ItsDenm_TestCases.TC_DEN_EVTR_BV_05 -# Check that DEN Basic Service does not send any termination DENM if actionID is not in originating ITS-S message table or receiving ITS-S message table (own stationID) +# Check that DEN Basic Service does not send any termination DENM if actionId is not in #ItsDenm_TestCases.TC_DEN_EVTR_BO_06 -# Check that DEN Basic Service does not send any termination DENM if actionID is not in originating ITS-S message table or receiving ITS-S message table (other stationID) +# Check that DEN Basic Service does not send any termination DENM if actionId is not in #ItsDenm_TestCases.TC_DEN_EVTR_BO_07 -# Check that referenceTime is set to the current time when generating a cancellation DENM +# Check that referenceTime is set to to the current time when generating a cancellation DENM #ItsDenm_TestCases.TC_DEN_EVTR_BV_08 # Check that DEN Basic Sercive repeats DENM transmission according to repetitionInterval parameter provided by application #ItsDenm_TestCases.TC_DEN_EVRP_TI_01 # Check that the repeated DENM is always the most up-to-date message #ItsDenm_TestCases.TC_DEN_EVRP_BV_02 -# Check that DEN Basic Service stops retransmitting DENM after event’s validityDuration expiration +# Check that DEN Basic Service stops retransmitting DENM after event’s validityDuration #ItsDenm_TestCases.TC_DEN_EVRP_BV_03 -# Check that DEN Basic Service stops retransmitting DENM after event’s repetitionDuration expiration +# Check that DEN Basic Service stops retransmitting DENM after event’s repetitionDuration #ItsDenm_TestCases.TC_DEN_EVRP_BV_04 -# Check that DEN Basic Service does not repeat transmission of DENM if repetitionInterval is not provided by application +# Check that DEN Basic Service does not repeat transmission of DENM if repetitionInterval is #ItsDenm_TestCases.TC_DEN_EVRP_BV_05 -# Check that DEN Basic Service does not repeat transmission of DENM if repetitionDuration is not provided by application +# Check that DEN Basic Service does not repeat transmission of DENM if repetitionDuration is #ItsDenm_TestCases.TC_DEN_EVRP_BV_06 -# Check that existing actionID in originating ITS-S are updated when stationID is modified +# Check that existing actionId in originating ITS-S are updated when stationId is modified #ItsDenm_TestCases.TC_DEN_EVRP_BV_08 -# Check that actionID is not modified in repetitions of DENM if stationID is not modified +# Check that actionId is not modified in repetitions of DENM if stationId is not modified #ItsDenm_TestCases.TC_DEN_EVRP_BV_09 -# Check that actionID is not modified in repetitions of DENM if stationID is not modified +# Check that actionId is not modified in repetitions of DENM if stationId is not modified #ItsDenm_TestCases.TC_DEN_EVRP_BV_10 -# Check that DEN Basic Service stops retransmitting DENM after event's validityDuration expiration, when validityDuration was not provided +# Check that DEN Basic Service stops retransmitting DENM after event's validityDuration expiration, #ItsDenm_TestCases.TC_DEN_EVRP_BV_11 # Check that DENM is encapsulated in BTP type B packet #ItsDenm_TestCases.TC_DEN_PAR_BV_01 @@ -164,39 +162,195 @@ system.utPort.params := "UT_DENM/UDP(dst_ip=10.8.0.48,dst_port=12345,reuse_incom #ItsDenm_TestCases.TC_DEN_SSP_BV_01_01 # Check that IUT does not send a DENM if it is not permitted by signing certificate #ItsDenm_TestCases.TC_DEN_SSP_BV_01_02 -# Check that receiving ITS-S transmits DENM to application if it concerns an unknown ActionId and if it is not a termination DENM +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_03 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_04 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_05 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_06 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_07 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_08 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_09 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_10 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_11 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_12 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_13 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_14 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_15 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_16 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_17() runs on ItsDenm system ItsDenmSystem { +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_18() runs on ItsDenm system ItsDenmSystem { +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_19 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_20 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_21 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_22 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_23 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_24 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_02_01 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_02_02 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_02_03 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_02_04() runs on ItsDenm system ItsDenmSystem { +# Check that receiving ITS-S transmits DENM to application if it concerns an unknown actionId and if it is not a termination DENM #ItsDenm_TestCases.TC_DEN_MSRV_BV_01 -#Check that receiving ITS-S transmits DENM to application if it concerns a known ActionId and referenceTime is greater than highest value received for this ActionId +# Check that receiving ITS-S transmits DENM to application if it concerns a known actionId #ItsDenm_TestCases.TC_DEN_MSRV_BV_02 -# Check that receiving ITS-S discards termination DENM if it concerns an unknown ActionId (own actionID) +# Check that receiving ITS-S discards termination DENM if it concerns an unknown actionId (own actionId) #ItsDenm_TestCases.TC_DEN_MSRV_BO_03 -# Check that receiving ITS-S discards termination DENM if it concerns an unknown ActionId (other actionID) -ItsDenm_TestCases.TC_DEN_MSRV_BO_04 -# Check that receiving ITS-S discards DENM if referenceTime is lower than highest value received for this ActionId +# Check that receiving ITS-S discards termination DENM if it concerns an unknown actionId (other actionId) +#ItsDenm_TestCases.TC_DEN_MSRV_BO_04 +# Check that receiving ITS-S discards DENM if referenceTime is lower than highest value received for this actionId #ItsDenm_TestCases.TC_DEN_MSRV_BO_05 -# Check that receiving ITS-S discards DENM if detectionTime is smaller than highest value received for this ActionId +# Check that receiving ITS-S discards DENM if detectionTime is smaller than highest value received for this actionId #ItsDenm_TestCases.TC_DEN_MSRV_BO_06 -# Check that receiving ITS-S transmits DENM to application if it concerns a known ActionId and referenceTime is equal to highest received value and detectionTime is more recent +# Check that receiving ITS-S transmits DENM to application if it concerns a known actionId and referenceTime is equal to highest received value and detectionTime is more recent #ItsDenm_TestCases.TC_DEN_MSRV_BV_07 # Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode #ItsDenm_TestCases.TC_DEN_MSRV_BO_08_01 # Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode #ItsDenm_TestCases.TC_DEN_MSRV_BO_08_02 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_03 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_04 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_05 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_06 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_07 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_08 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_09 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_10 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_11 +# Check that receiving ITS-S discards DENM for new event +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_12 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_13 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_14 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_15 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_16 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_17 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_18 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_19 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_20 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_21 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_22 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_23 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_24 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_25 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_26 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_27 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_28 # Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode #ItsDenm_TestCases.TC_DEN_MSRV_BO_09_01 # Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode #ItsDenm_TestCases.TC_DEN_MSRV_BO_09_02 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_03 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_04 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_05 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_06 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_07 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_08 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_09 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_10 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_11 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_12 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_13 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_14 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_15 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_16 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_17 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_18 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_19 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_20 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_21 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_22 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_23 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_24 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_25 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_26 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_27 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_28 # Check that receiving ITS-S replies to requestResponseIndication #ItsDenm_TestCases.TC_DEN_MSRV_BV_10 -# Check that forwarding ITS-S forwards DENM if no DENM with same ActionId has been received during forwarding delay +# Check that forwarding ITS-S forwards DENM if no DENM with same actionId has been received during forwarding delay #ItsDenm_TestCases.TC_DEN_KAFW_BV_01 -# Check that forwarding ITS-S forwards DENM if no DENM with same ActionId and referenceTime greater or equal to the last received DENM has been received during forwarding delay +# Check that forwarding ITS-S forwards DENM if no DENM with same actionId and referenceTime greater or equal to the last received DENM has been received during forwarding delay #ItsDenm_TestCases.TC_DEN_KAFW_BV_02 # Check that forwarding delay is set to min(2*transmissionInterval + rnd(0, 150ms), validityDuration) #ItsDenm_TestCases.TC_DEN_KAFW_TI_03 # Check that Forwarding ITS-S replaces the ITS PDU header of forwarded DENMs #ItsDenm_TestCases.TC_DEN_KAFW_BV_04 -# Check that forwarding ITS-S does not change actionID +# Check that forwarding ITS-S does not change actionId #ItsDenm_TestCases.TC_DEN_KAFW_BV_05 # Check that forwarding ITS-S does not change referenceTime #ItsDenm_TestCases.TC_DEN_KAFW_BV_06 diff --git a/etc/AtsDENM/AtsDENM_infiniity.cf_ b/etc/AtsDENM/AtsDENM_infiniity.cf_ index 8ebb0844e2ba50015fb6398325bf5c3a7fd14b56..3ea5ec9f77e200f3b4e866c513df2075ec922683 100644 --- a/etc/AtsDENM/AtsDENM_infiniity.cf_ +++ b/etc/AtsDENM/AtsDENM_infiniity.cf_ @@ -93,34 +93,32 @@ system.utPort.params := "UT_DENM/UDP(dst_ip=10.8.0.48,dst_port=42001,reuse_incom [EXECUTE] # Check that protocolVersion is set to 2 and messageID is set to 1 -#ItsDenm_TestCases.TC_DEN_MSGF_BV_01 -# Check that sent DENM contains at least one 'trace' DE +ItsDenm_TestCases.TC_DEN_MSGF_BV_01 +# Check that sent DENM contains at least one 'detectionZonesToEventPosition' DE #ItsDenm_TestCases.TC_DEN_MSGF_BV_02 # Check that DEN Basic Service generates a new DENM on reception of a valid AppDENM_Trigger request #ItsDenm_TestCases.TC_DEN_EVGN_BV_01 -# Check that a new ActionId value is assigned for each newly generated DENM +# Check that a new actionId value is assigned for each newly generated DENM #ItsDenm_TestCases.TC_DEN_EVGN_BV_02 -# Check that a newly created ActionId contains the StationID of the originating ITS-S that detected the event +# Check that a newly created actionId contains the stationId of the originating ITS-S that detected the event #ItsDenm_TestCases.TC_DEN_EVGN_BV_03 # Check that Cause and subcause values included in DENM as provided by application #ItsDenm_TestCases.TC_DEN_EVGN_BV_04 # Check that referenceTime is set to the current time when generating a DENM for a new event #ItsDenm_TestCases.TC_DEN_EVGN_BV_05 # Check that sequenceNumber is set to a next unused value each time an event is detected -ItsDenm_TestCases.TC_DEN_EVGN_BV_07 -# Check that actionID are generated using newly assigned stationID when a pseudonym change occurs -#ItsDenm_TestCases.TC_DEN_EVGN_BV_10 +#ItsDenm_TestCases.TC_DEN_EVGN_BV_07 # Check that DEN Basic Service generates an update DENM on reception of a valid AppDENM_update request #ItsDenm_TestCases.TC_DEN_EVUP_BV_01 -# Check that the actionID is not changed by DENM update, as long as the stationID of the originating ITS-S remains unchanged +# Check that the actionId is not changed by DENM update, as long as the stationId of the originating ITS-S remains unchanged #ItsDenm_TestCases.TC_DEN_EVUP_BV_02 -# Check that referenceTime is set to the current time when generating a DENM for an updated eventCheck +# Check that referenceTime is set to the current time when generating a DENM for an updated eventCheck #ItsDenm_TestCases.TC_DEN_EVUP_BV_03 -# Check that DEN Basic Service does not send any update DENM if actionID is not in originating ITS-S message table +# Check that DEN Basic Service does not send any update DENM if actionId is not in originating ITS-S message table #ItsDenm_TestCases.TC_DEN_EVUP_BO_04 -# Check that DEN Basic Service generates a cancellation DENM when application indicates the premature termination of an event for which it is the originator +# Check that DEN Basic Service generates a cancellation DENM when application indicates the #ItsDenm_TestCases.TC_DEN_EVTR_BV_01 -# Check that DEN Basic Service generates a negation DENM when application indicates the premature termination of an event for which it is not the originator +# Check that DEN Basic Service generates a negation DENM when application indicates the #ItsDenm_TestCases.TC_DEN_EVTR_BV_02 # Check that referenceTime is set to the latest value received for this event in negation DENM #ItsDenm_TestCases.TC_DEN_EVTR_BV_03 @@ -128,31 +126,31 @@ ItsDenm_TestCases.TC_DEN_EVGN_BV_07 #ItsDenm_TestCases.TC_DEN_EVTR_BV_04 # Check that situation container, location container and alacarte container are not present in a negation DENM #ItsDenm_TestCases.TC_DEN_EVTR_BV_05 -# Check that DEN Basic Service does not send any termination DENM if actionID is not in originating ITS-S message table or receiving ITS-S message table (own stationID) +# Check that DEN Basic Service does not send any termination DENM if actionId is not in #ItsDenm_TestCases.TC_DEN_EVTR_BO_06 -# Check that DEN Basic Service does not send any termination DENM if actionID is not in originating ITS-S message table or receiving ITS-S message table (other stationID) +# Check that DEN Basic Service does not send any termination DENM if actionId is not in #ItsDenm_TestCases.TC_DEN_EVTR_BO_07 -# Check that referenceTime is set to the current time when generating a cancellation DENM +# Check that referenceTime is set to to the current time when generating a cancellation DENM #ItsDenm_TestCases.TC_DEN_EVTR_BV_08 # Check that DEN Basic Sercive repeats DENM transmission according to repetitionInterval parameter provided by application #ItsDenm_TestCases.TC_DEN_EVRP_TI_01 # Check that the repeated DENM is always the most up-to-date message #ItsDenm_TestCases.TC_DEN_EVRP_BV_02 -# Check that DEN Basic Service stops retransmitting DENM after event’s validityDuration expiration +# Check that DEN Basic Service stops retransmitting DENM after event’s validityDuration #ItsDenm_TestCases.TC_DEN_EVRP_BV_03 -# Check that DEN Basic Service stops retransmitting DENM after event’s repetitionDuration expiration +# Check that DEN Basic Service stops retransmitting DENM after event’s repetitionDuration #ItsDenm_TestCases.TC_DEN_EVRP_BV_04 -# Check that DEN Basic Service does not repeat transmission of DENM if repetitionInterval is not provided by application +# Check that DEN Basic Service does not repeat transmission of DENM if repetitionInterval is #ItsDenm_TestCases.TC_DEN_EVRP_BV_05 -# Check that DEN Basic Service does not repeat transmission of DENM if repetitionDuration is not provided by application +# Check that DEN Basic Service does not repeat transmission of DENM if repetitionDuration is #ItsDenm_TestCases.TC_DEN_EVRP_BV_06 -# Check that existing actionID in originating ITS-S are updated when stationID is modified +# Check that existing actionId in originating ITS-S are updated when stationId is modified #ItsDenm_TestCases.TC_DEN_EVRP_BV_08 -# Check that actionID is not modified in repetitions of DENM if stationID is not modified +# Check that actionId is not modified in repetitions of DENM if stationId is not modified #ItsDenm_TestCases.TC_DEN_EVRP_BV_09 -# Check that actionID is not modified in repetitions of DENM if stationID is not modified +# Check that actionId is not modified in repetitions of DENM if stationId is not modified #ItsDenm_TestCases.TC_DEN_EVRP_BV_10 -# Check that DEN Basic Service stops retransmitting DENM after event's validityDuration expiration, when validityDuration was not provided +# Check that DEN Basic Service stops retransmitting DENM after event's validityDuration expiration, #ItsDenm_TestCases.TC_DEN_EVRP_BV_11 # Check that DENM is encapsulated in BTP type B packet #ItsDenm_TestCases.TC_DEN_PAR_BV_01 @@ -162,39 +160,195 @@ ItsDenm_TestCases.TC_DEN_EVGN_BV_07 #ItsDenm_TestCases.TC_DEN_SSP_BV_01_01 # Check that IUT does not send a DENM if it is not permitted by signing certificate #ItsDenm_TestCases.TC_DEN_SSP_BV_01_02 -# Check that receiving ITS-S transmits DENM to application if it concerns an unknown ActionId and if it is not a termination DENM +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_03 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_04 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_05 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_06 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_07 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_08 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_09 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_10 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_11 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_12 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_13 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_14 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_15 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_16 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_17() runs on ItsDenm system ItsDenmSystem { +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_18() runs on ItsDenm system ItsDenmSystem { +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_19 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_20 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_21 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_22 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_23 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_01_24 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_02_01 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_02_02 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_02_03 +# Check that IUT does not send a DENM if it is not permitted by signing certificate +#ItsDenm_TestCases.TC_DEN_SSP_BV_02_04() runs on ItsDenm system ItsDenmSystem { +# Check that receiving ITS-S transmits DENM to application if it concerns an unknown actionId and if it is not a termination DENM #ItsDenm_TestCases.TC_DEN_MSRV_BV_01 -#Check that receiving ITS-S transmits DENM to application if it concerns a known ActionId and referenceTime is greater than highest value received for this ActionId +# Check that receiving ITS-S transmits DENM to application if it concerns a known actionId #ItsDenm_TestCases.TC_DEN_MSRV_BV_02 -# Check that receiving ITS-S discards termination DENM if it concerns an unknown ActionId (own actionID) +# Check that receiving ITS-S discards termination DENM if it concerns an unknown actionId (own actionId) #ItsDenm_TestCases.TC_DEN_MSRV_BO_03 -# Check that receiving ITS-S discards termination DENM if it concerns an unknown ActionId (other actionID) +# Check that receiving ITS-S discards termination DENM if it concerns an unknown actionId (other actionId) #ItsDenm_TestCases.TC_DEN_MSRV_BO_04 -# Check that receiving ITS-S discards DENM if referenceTime is lower than highest value received for this ActionId +# Check that receiving ITS-S discards DENM if referenceTime is lower than highest value received for this actionId #ItsDenm_TestCases.TC_DEN_MSRV_BO_05 -# Check that receiving ITS-S discards DENM if detectionTime is smaller than highest value received for this ActionId +# Check that receiving ITS-S discards DENM if detectionTime is smaller than highest value received for this actionId #ItsDenm_TestCases.TC_DEN_MSRV_BO_06 -# Check that receiving ITS-S transmits DENM to application if it concerns a known ActionId and referenceTime is equal to highest received value and detectionTime is more recent +# Check that receiving ITS-S transmits DENM to application if it concerns a known actionId and referenceTime is equal to highest received value and detectionTime is more recent #ItsDenm_TestCases.TC_DEN_MSRV_BV_07 # Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode #ItsDenm_TestCases.TC_DEN_MSRV_BO_08_01 # Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode #ItsDenm_TestCases.TC_DEN_MSRV_BO_08_02 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_03 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_04 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_05 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_06 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_07 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_08 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_09 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_10 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_11 +# Check that receiving ITS-S discards DENM for new event +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_12 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_13 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_14 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_15 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_16 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_17 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_18 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_19 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_20 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_21 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_22 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_23 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_24 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_25 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_26 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_27 +# Check that receiving ITS-S discards DENM for new event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_08_28 # Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode #ItsDenm_TestCases.TC_DEN_MSRV_BO_09_01 # Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode #ItsDenm_TestCases.TC_DEN_MSRV_BO_09_02 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_03 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_04 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_05 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_06 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_07 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_08 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_09 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_10 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_11 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_12 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_13 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_14 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_15 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_16 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_17 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_18 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_19 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_20 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_21 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_22 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_23 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_24 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_25 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_26 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_27 +# Check that receiving ITS-S discards DENM for existing event if SSP value of the signing certificate is not consistent with the causeCode +#ItsDenm_TestCases.TC_DEN_MSRV_BO_09_28 # Check that receiving ITS-S replies to requestResponseIndication #ItsDenm_TestCases.TC_DEN_MSRV_BV_10 -# Check that forwarding ITS-S forwards DENM if no DENM with same ActionId has been received during forwarding delay +# Check that forwarding ITS-S forwards DENM if no DENM with same actionId has been received during forwarding delay #ItsDenm_TestCases.TC_DEN_KAFW_BV_01 -# Check that forwarding ITS-S forwards DENM if no DENM with same ActionId and referenceTime greater or equal to the last received DENM has been received during forwarding delay +# Check that forwarding ITS-S forwards DENM if no DENM with same actionId and referenceTime greater or equal to the last received DENM has been received during forwarding delay #ItsDenm_TestCases.TC_DEN_KAFW_BV_02 # Check that forwarding delay is set to min(2*transmissionInterval + rnd(0, 150ms), validityDuration) #ItsDenm_TestCases.TC_DEN_KAFW_TI_03 # Check that Forwarding ITS-S replaces the ITS PDU header of forwarded DENMs #ItsDenm_TestCases.TC_DEN_KAFW_BV_04 -# Check that forwarding ITS-S does not change actionID +# Check that forwarding ITS-S does not change actionId #ItsDenm_TestCases.TC_DEN_KAFW_BV_05 # Check that forwarding ITS-S does not change referenceTime #ItsDenm_TestCases.TC_DEN_KAFW_BV_06 diff --git a/etc/AtsSecurity/AtsSecurity.cfg b/etc/AtsSecurity/AtsSecurity.cfg index a75f4459d64a17837222eacfb61d3ad714859d1f..2f97d9af53519e2acc24ece7e17cbbefedbd418e 100644 --- a/etc/AtsSecurity/AtsSecurity.cfg +++ b/etc/AtsSecurity/AtsSecurity.cfg @@ -131,27 +131,37 @@ LogEventTypes:= Yes # Cygwin #system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=0,secured_mode=0,sec_db_path=../data/certificates/certificates)/ETH(mac_src=e2b7b30429eb)/PCAP(mac_src=e2b7b30429eb,nic=CEBB111F-D749-4B40-8B4D-DBB060E90987,filter=and ether proto 0x8947)" # Linux -system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=0,secured_mode=0,sec_db_path=../data/certificates/certificates)/ETH(mac_src=8c554ac1eee0)/PCAP(mac_src=8c554ac1eee0,nic=wlp0s20f3,filter=and ether proto 0x8947)" -#system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EB,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=0,secured_mode=0,its_aid=36)/ETH(mac_src=8c554ac1eee0)/PCAP(mac_src=8c554ac1eee0,nic=wlp0s20f3,filter=and ether proto 0x8947)" +system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=0,secured_mode=0,sec_db_path=../data/certificates/certificates)/ETH(mac_src=8c554ac1eee0)/PCAP(mac_src=8c554ac1eee0,nic=wlo1,filter=and ether proto 0x8947)" +#system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EB,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=0,secured_mode=0,its_aid=36)/ETH(mac_src=8c554ac1eee0)/PCAP(mac_src=8c554ac1eee0,nic=wlo1,filter=and ether proto 0x8947)" # Linux over UDP -#system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EB,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=0,secured_mode=0,its_aid=36)/ETH(mac_src=8c554ac1eee0)/UDP(dst_ip=192.168.1.43,src_port=4041,dst_port=9091)" +#system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EB,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=0,secured_mode=0,its_aid=36)/ETH(mac_src=8c554ac1eee0)/UDP(dst_ip=192.168.1.21,src_port=4041,dst_port=9091)" -system.utPort.params := "UT_GN/UDP(dst_ip=192.168.1.43,dst_port=12345,src_port=12346)" # Use with TC_SEC_ITSS_RCV_MSG_ and TC_SEC_ITSS_RCV_IMPLICIT_CERT_ test cases -#system.utPort.params := "UT_CAM/UDP(dst_ip=192.168.1.43,dst_port=12345,src_port=12346)" -#system.utPort.params := "UT_CAM/DEBUG" -#system.camUtPort.params := "UT_CAM/DEBUG" +# The UpperTester is dependening of the security profile used: +# 1. For CAM security profile, use UT_CAM +# 2. For DENM security profile, use UT_DENM +# 3. For Other messages security profile, use UT_GN +#system.utPort.params := "UT_CAM/UDP(dst_ip=192.168.1.21,dst_port=12345,reuse_incoming_source_adddress=1)" # Use with TC_SEC_ITSS_RCV_MSG_ and TC_SEC_ITSS_RCV_IMPLICIT_CERT_ test cases +#system.utPort.params := "UT_DENM/UDP(dst_ip=192.168.1.21,dst_port=12345,src_port=12346)" +system.utPort.params := "UT_GN/UDP(dst_ip=192.168.1.21,dst_port=12345,src_port=12346)" + + + +# To be removed +#system.utPort.params := "UT_GN/UDP(dst_ip=192.168.1.21,dst_port=12345,src_port=12346)" # Use with TC_SEC_ITSS_RCV_MSG_ and TC_SEC_ITSS_RCV_IMPLICIT_CERT_ testcases +#system.utPort.params := "UT_CAM/UDP(dst_ip=192.168.1.21,dst_port=12345,src_port=12346)" -system.camUtPort.params := "UT_CAM/UDP(dst_ip=192.168.1.43,dst_port=12345,src_port=12346)" -#system.denmUtPort.params := "UT_DENM/UDP(dst_ip=10.100.60.27)" -[EXECUTE] -#Check that ITS-S sends a Ieee1609Dot2Data containing protocol version set to 3 -#ItsSecurity_TestCases.TC_SEC_ITSS_SND_MSG_01_BV + +system.camUtPort.params := "UT_CAM/UDP(dst_ip=192.168.1.21,dst_port=12345,src_port=12346)" # Use with TC_SEC_ITSS_SND_CAM_ testcase +system.denmUtPort.params := "UT_DENM/UDP(dst_ip=192.168.1.21,dst_port=12345,src_port=12346)" + +[EXECUTE] # --------------------- IMPILICT CERT --------------------- +# TODO Add PICS to prevent unsupport IMP cert # Check that IUT supports usage of implicit certificate for signing message -ItsSecurity_TestCases.TC_SEC_ITSS_SND_IMPLICIT_CERT_01_BV +#ItsSecurity_TestCases.TC_SEC_ITSS_SND_IMPLICIT_CERT_01_BV # Check that IUT accepts a valid secured CAM message signed with a known implicit certificate #ItsSecurity_TestCases.TC_SEC_ITSS_RCV_IMPLICIT_CERT_01_BV @@ -164,7 +174,7 @@ ItsSecurity_TestCases.TC_SEC_ITSS_SND_IMPLICIT_CERT_01_BV # ------------------------- CAM --------------------------- # Check that IUT sends the secured CAM using SignedData container. -#ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_01_BV +ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_01_BV # Check that IUT sends the secured CAM containing the HeaderInfo field psid set to 'AID_CAM'. #ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_02_BV @@ -268,11 +278,15 @@ ItsSecurity_TestCases.TC_SEC_ITSS_SND_IMPLICIT_CERT_01_BV # Check that IUT sends the secured CAM containing signature; # Check that the signature is calculated over the right fields # and using right hash algorythm by cryptographically verifying the signature -#ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_21_BV +#ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_21_A_BV +#ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_21_B_BV +#ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_21_C_BV # Check that IUT sends the secured CAM containing signature containing the ECC point of type set to # either compressed_lsb_y_0, compressed_lsb_y_1 or x_coordinate_only. -#ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_22_BV +#ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_22_A_BV +#ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_22_B_BV +#ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_22_C_BV # Check that IUT doesn't send secured CAMs if IUT is authorized with AT certificate doesn't allowing sending messages in this location. #ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_23_BV @@ -301,7 +315,6 @@ ItsSecurity_TestCases.TC_SEC_ITSS_SND_IMPLICIT_CERT_01_BV #ItsSecurity_TestCases.TC_SEC_ITSS_SND_DENM_05_BV #ItsSecurity_TestCases.TC_SEC_ITSS_SND_DENM_06_BV #ItsSecurity_TestCases.TC_SEC_ITSS_SND_DENM_07_BV -#ItsSecurity_TestCases.TC_SEC_ITSS_SND_DENM_08_BV #ItsSecurity_TestCases.TC_SEC_ITSS_SND_DENM_09_BV #ItsSecurity_TestCases.TC_SEC_ITSS_SND_DENM_10_BV #ItsSecurity_TestCases.TC_SEC_ITSS_SND_DENM_11_BV diff --git a/etc/AtsSecurity/AtsSecurity_codha.cf_ b/etc/AtsSecurity/AtsSecurity_codha.cf_ index 325759d66dee7887683bf72c9f7c2ded1f47fcc0..09d4c22bb7575f73d0d3a4ba425d99961f308b3e 100644 --- a/etc/AtsSecurity/AtsSecurity_codha.cf_ +++ b/etc/AtsSecurity/AtsSecurity_codha.cf_ @@ -149,7 +149,7 @@ system.utPort.params := "UT_CAM/UDP(dst_ip=10.8.0.48,dst_port=12345,reuse_incomi # For CAM and DENM security profiles, corresponding port shall be uncomment system.camUtPort.params := "UT_CAM/UDP(dst_ip=10.8.0.48,dst_port=12345,reuse_incoming_source_adddress=1)" -#system.denmUtPort.params := "UT_DENM/UDP(dst_ip=10.8.0.48,dst_port=12345,reuse_incoming_source_adddress=1)" +system.denmUtPort.params := "UT_DENM/UDP(dst_ip=10.8.0.48,dst_port=12345,reuse_incoming_source_adddress=1)" [EXECUTE] @@ -274,11 +274,15 @@ ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_01_BV # Check that IUT sends the secured CAM containing signature; # Check that the signature is calculated over the right fields # and using right hash algorythm by cryptographically verifying the signature -#ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_21_BV +#ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_21_A_BV +#ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_21_B_BV +#ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_21_C_BV # Check that IUT sends the secured CAM containing signature containing the ECC point of type set to # either compressed_lsb_y_0, compressed_lsb_y_1 or x_coordinate_only. -#ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_22_BV +#ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_22_A_BV +#ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_22_B_BV +#ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_22_C_BV # Check that IUT doesn't send secured CAMs if IUT is authorized with AT certificate doesn't allowing sending messages in this location. #ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_23_BV @@ -307,7 +311,6 @@ ItsSecurity_TestCases.TC_SEC_ITSS_SND_CAM_01_BV #ItsSecurity_TestCases.TC_SEC_ITSS_SND_DENM_05_BV #ItsSecurity_TestCases.TC_SEC_ITSS_SND_DENM_06_BV #ItsSecurity_TestCases.TC_SEC_ITSS_SND_DENM_07_BV -#ItsSecurity_TestCases.TC_SEC_ITSS_SND_DENM_08_BV #ItsSecurity_TestCases.TC_SEC_ITSS_SND_DENM_09_BV #ItsSecurity_TestCases.TC_SEC_ITSS_SND_DENM_10_BV #ItsSecurity_TestCases.TC_SEC_ITSS_SND_DENM_11_BV diff --git a/etc/AtsVRU/AtsVRU_Simulator.cfg_ b/etc/AtsVRU/AtsVRU_Simulator.cfg_ index 09ab0b8fdb0a6f49f34b85824971f604ee30800d..a212cd9401f23eb45db684b4268f5164ad867409 100644 --- a/etc/AtsVRU/AtsVRU_Simulator.cfg_ +++ b/etc/AtsVRU/AtsVRU_Simulator.cfg_ @@ -3,11 +3,21 @@ # This section shall contain the values of all parameters that are defined in your TTCN-3 modules. # IUT Station ID -LibItsCommon_Pixits.PX_IUT_STATION_ID := 2533729309 +LibItsCommon_Pixits.PX_IUT_STATION_ID := 1111101 LibItsGeoNetworking_Pixits.PX_GN_UPPER_LAYER := e_btpB -LibItsVru_Pics.PICS_IS_IUT_SECURED := true +LibItsVru_Pics.PICS_IS_IUT_SECURED := true +LibItsVru_Pics.PICS_VAM_GENERATION := true +LibItsVru_Pics.PICS_VAM_TRANSMISSION := true +LibItsVru_Pics.PICS_PROFILE_PEDESTRIAN := true +LibItsVru_Pics.PICS_PROFILE_BICYCLIST := true +LibItsVru_Pics.PICS_PROFILE_MOTORCYCLIST := false +LibItsVru_Pics.PICS_PROFILE_ANIMAL := false +LibItsVru_Pics.PICS_CLUSTERING := true + +LibItsVru_Pixits.PX_IUT_VRU_PROFILE_TYPE := 2 +LibItsVru_Pixits.PX_VRU_MIN_CLUSTER_SIZE := 4 [LOGGING] # In this section you can specify the name of the log file and the classes of events @@ -100,34 +110,211 @@ LogEventTypes:= Yes # its_aid=639: CPS # Cygwin -#system.vruPort.params := "VRU(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=e2b7b30429eb)/PCAP(mac_src=e2b7b30429eb,nic=CEBB111F-D749-4B40-8B4D-DBB060E90987,filter=and ether proto 0x8947)" +#system.vamPort.params := "VRU(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP(dst_port=2018)/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=e2b7b30429eb)/PCAP(mac_src=e2b7b30429eb,nic=CEBB111F-D749-4B40-8B4D-DBB060E90987,filter=and ether proto 0x8947)" # Linux -system.vruPort.params := "VRU(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=8c554ac1eee0)/PCAP(mac_src=8c554ac1eee0,nic=wlp0s20f3,filter=and ether proto 0x8947)" +system.vamPort.params := "VRU(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP(dst_port=2018)/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=8c554ac1eee0)/PCAP(mac_src=8c554ac1eee0,nic=wlo1,filter=and ether proto 0x8947)" +VRU_CLUSTER_LEADER.vamPort.params := "VRU(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP(dst_port=2018)/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=8c554ac1eee0)/PCAP(mac_src=8c554ac1eee0,nic=wlo1,filter=and ether proto 0x8947)" +VRU_IUT.vamPort.params := "VRU(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP(dst_port=2018)/GN(ll_address=4C5E0C14D2EB,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=8c554ac1eee1)/PCAP(mac_src=8c554ac1eee1,nic=wlo1,filter=and ether proto 0x8947)" # Linux over UDP -#system.vruPort.params := "VRU(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=8c554ac1eee0)/UDP(dst_ip=192.168.1.43,src_port=4041,dst_port=9091)" +#system.vamPort.params := "VRU(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP(dst_port=2018)/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=8c554ac1eee0)/UDP(dst_ip=192.168.1.43,src_port=4041,dst_port=9091)" # PC5 + UU/Raw -#system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EB,latitude=367470519,longitude=-455595023,its_aid=36,secured_mode=1,certificate=CERT_IUT_A_AT,sec_db_path=../data/certificates/certificates_iut)/LTE(mac_src=8c554ac1eee1,nic=wlp0s20f3,filter=and ether proto 0x8947,pc5_layer=QUALCOMM,uu_protocol=raw,uu_transport=udp,dst_ip=192.168.1.43,dst_port=4041,src_port=9091)" +#system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EB,latitude=367470519,longitude=-455595023,its_aid=36,secured_mode=1,certificate=CERT_IUT_A_AT,sec_db_path=../data/certificates/certificates_iut)/LTE(mac_src=8c554ac1eee1,nic=wlo1,filter=and ether proto 0x8947,pc5_layer=QUALCOMM,uu_protocol=raw,uu_transport=udp,dst_ip=192.168.1.43,dst_port=4041,src_port=9091)" # PC5 + Uu/MQTT # Raw UDP -#system.vruPort.params := "VRU(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/LTE(mac_src=8c554ac1eee0,nic=wlp0s20f3,filter=and ether proto 0x8947,pc5_layer=QUALCOMM,uu_protocol=mqtt,mqtt_client_id=8c554ac1eee0,mqtt_topics=rsu,uu_transport=udp,debug=1,server=192.168.1.39,port=1883)" +#system.vamPort.params := "VRU(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP(dst_port=2018)/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/LTE(mac_src=8c554ac1eee0,nic=wlo1,filter=and ether proto 0x8947,pc5_layer=QUALCOMM,uu_protocol=mqtt,mqtt_client_id=8c554ac1eee0,mqtt_topics=rsu,uu_transport=udp,debug=1,server=192.168.1.39,port=1883)" # MQTT over TCP -#system.vruPort.params := "VRU(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/LTE(mac_src=8c554ac1eee0,nic=wlp0s20f3,filter=and ether proto 0x8947,pc5_layer=QUALCOMM,uu_protocol=mqtt,mqtt_client_id=8c554ac1eee0,mqtt_topics=rsu,uu_transport=tcp,debug=1,server=192.168.1.39,port=1883)" +#system.vamPort.params := "VRU(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP(dst_port=2018)/GN(ll_address=4C5E0C14D2EA,latitude=367470519,longitude=-455595023,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/LTE(mac_src=8c554ac1eee0,nic=wlo1,filter=and ether proto 0x8947,pc5_layer=QUALCOMM,uu_protocol=mqtt,mqtt_client_id=8c554ac1eee0,mqtt_topics=rsu,uu_transport=tcp,debug=1,server=192.168.1.39,port=1883)" # VRU UpperTester port based on UDP -system.utPort.params := "UT_VRU/UDP(dst_ip=192.168.1.43,dst_port=12345,src_port=12346)" +system.utPort.params := "UT_VRU/UDP(dst_ip=192.168.1.21,dst_port=12345,src_port=12346)" #system.utPort.params := "UT_VRU/UDP(dst_ip=192.168.146.26)" #system.utPort.params := "UT_VRU/UDP(dst_ip=172.16.35.1)" [EXECUTE] #ItsVru_TestControl.control -# -ItsVru_TestCases.TC_VRU_MSD_PAR_BV_01 -# -#ItsVru_TestCases.TC_VRU_MSD_PAR_BV_02 -# -#ItsVru_TestCases.TC_VRU_MSD_PAR_BV_03 +# Check that protocolVersion is set to 3 and messageID is set to 16 +#ItsVru_TestCases.TC_VBS_MSGF_BV_01 +# Check that the generation time in the VAM is the time of reference position since ITS epoch modulo 2^16 +#ItsVru_TestCases.TC_VBS_MSGF_BV_02 +# Check that sStationType only takes supported values +#ItsVru_TestCases.TC_VBS_MSGF_BV_03 +# Check that the reference point is the ground position of the center of the front side of the bounding box of the VRU +#ItsVru_TestCases.TC_VBS_MSGF_BV_04 +# Check that the curvature includes the curvatureValue which is the inverse of the VRU curve radius and the turning direction of the curve +#ItsVru_TestCases.TC_VBS_MSGF_BV_05 +# CCheck that the yawRate includes the yawRateValue +#ItsVru_TestCases.TC_VBS_MSGF_BV_06 +# Check that the lateralAcceleration indicates the lateral acceleration perpendicular to the heading direction +#ItsVru_TestCases.TC_VBS_MSGF_BV_07 +# Check that the vruLanePosition describes a lane on the road, a lane off the road or an island between two lanes +#ItsVru_TestCases.TC_VBS_MSGF_BV_08 +# Check that the orientation defines the angle between the longitudinal axis and WGS84 north +#ItsVru_TestCases.TC_VBS_MSGF_BV_09 +# Check that the rollAngle includes the angle between the ground plane and the vehicle's y-axis as well as the angle accuracy and that no values between 500 and 3100 are used +#ItsVru_TestCases.TC_VBS_MSGF_BV_10 +# Check that the deviceUsage uses values between 0 and 8 +#ItsVru_TestCases.TC_VBS_MSGF_BV_11 +# Check that the profileAndSubprofile contains the profile and sub-profile of the VRU if the VRU LF container is present +#ItsVru_TestCases.TC_VBS_MSGF_BV_12 +# Check that the sizeClass contains size information of the VRU +#ItsVru_TestCases.TC_VBS_MSGF_BV_13 +# Check that exteriorLights is present for VRU profile 2 +#ItsVru_TestCases.TC_VBS_MSGF_BV_14 +# Check that clusterProfiles is not set to zeros if VRU has profile 1, 2 or 4 +#ItsVru_TestCases.TC_VBS_MSGF_BV_15 +# Check that clusterLeaveReason indicates clusterLeaderLost when the cluster leader is lost +#ItsVru_TestCases.TC_VBS_MSGF_BV_16 +# Check that clusterLeaveReason indicates clusterDisbandedByLeader when the cluster leader breaks up the cluster +#ItsVru_TestCases.TC_VBS_MSGF_BV_17 +# Check that clusterLeaveReason indicates outOfClusterBoundingBox when the VRU moves out of the cluster bounding box +#ItsVru_TestCases.TC_VBS_MSGF_BV_18 +# Check that clusterLeaveReason indicates outOfClusterSpeedRange when the VRU is out of the cluster speed range +#ItsVru_TestCases.TC_VBS_MSGF_BV_19 +# Check that clusterLeaveReason indicates joiningAnotherCluster when the VRU is joining another cluster +#ItsVru_TestCases.TC_VBS_MSGF_BV_20 + +# To be validated +# Check that clusterLeaveReason indicates CancelledJoin when the joining is cancelled +#ItsVru_TestCases.TC_VBS_MSGF_BV_21 +# Check that clusterLeaveReason indicates FailedJoin when the joining is cancelled +#ItsVru_TestCases.TC_VBS_MSGF_BV_22 +# Check that clusterLeaveReason indicates SafetyCondition when another cluster VRU comes too close +#ItsVru_TestCases.TC_VBS_MSGF_BV_23 +# Check that clusterBreakupReason indicates clusteringPurposeCompleted when the clustering purpose is completed +#ItsVru_TestCases.TC_VBS_MSGF_BV_24 +# Check that clusterBreakupReason indicates clusteringPurposeCompleted when the clustering purpose is completed +#ItsVru_TestCases.TC_VBS_MSGF_BV_25 +# Check that clusterBreakupReason indicates joiningAnotherCluster when the cluster leader is joining another cluster +#ItsVru_TestCases.TC_VBS_MSGF_BV_26 +# Check that clusterBreakupReason indicates enteringLowriskareaBasedonMAPs when the cluster leader is entering a low-risk area +#ItsVru_TestCases.TC_VBS_MSGF_BV_27 +# Check that clusterBreakupReason indicates receptionOfCPMcontainingCluster when a CPM containing a cluster is received +#ItsVru_TestCases.TC_VBS_MSGF_BV_28 +# Check that clusterIdChangeTimeInfo indicates the time the cluster leader intents to change the cluster ID +#ItsVru_TestCases.TC_VBS_MSGF_BV_29 +# Check that the ClusterLeaveReason is systematically set to 0 if the reason for breaking up or leaving the cluster cannot be matched with the other reasons (1-8) +#ItsVru_TestCases.TC_VBS_MSGF_BV_30 +# Check that the VruMotionPredictionContainer includes the pathHistory of type PathHistory consisting of up to 40 past points +#ItsVru_TestCases.TC_VBS_MSGF_BV_31 +# Check that the VruMotionPredictionContainer includes the path prediction of type PathPredicted consisting of up to 15 future points, confidence values and time instances +#ItsVru_TestCases.TC_VBS_MSGF_BV_32 +# Check that the vruMotionPredictionContainer includes the safe distance indication that includes timeToCollision +#ItsVru_TestCases.TC_VBS_MSGF_BV_33 +# Check that the vruMotionPredictionContainer includes the accelerationChangeIndication of type AccelerationChangeIndication containing accelOrDecel and actionDeltaTime +#ItsVru_TestCases.TC_VBS_MSGF_BV_34 +# Check that the vruMotionPredictionContainer includes the headingChangeIndication of type HeadingChangeIndication containing the dircetion and actionDeltaTime +#ItsVru_TestCases.TC_VBS_MSGF_BV_35 +# Check that the vruMotionPredictionContainer includes the stabilityChangeIndication of type StabilityChangeIndication containing the lossProbability and actionDeltaTime +#ItsVru_TestCases.TC_VBS_MSGF_BV_36 +# Check that profile 3 VRUs only transmit a VRU special vehicle container in the CAM instead of full VAM +#ItsVru_TestCases.TC_VBS_MSGF_BV_37 + +# Check that the BTP header type B and the destination port is passed if the value is not provided by the ITS-S configuration +#ItsVru_TestCases.TC_VBS_IFGN_BV_01 +# Check that the GN packet transport type is GeoNetworking SHB and passed if the value is not provided by the ITS-S configuration +##ItsVru_TestCases.TC_VBS_IFGN_BV_02 +# Check that the GN security profile is passed if the value is not provided by the ITS-S configuration +##ItsVru_TestCases.TC_VBS_IFGN_BV_03 +# Check that the GN Traffic class is the same value as for the CAM +##ItsVru_TestCases.TC_VBS_IFGN_BV_04 + +# Check that a VRU in VRU-ACTIVE-STANDALONE sends individual VAMs +#ItsVru_TestCases.TC_VBS_TRANS_BV_01 +# Check that a VRU in VRU-ACTIVE-CLUSTER-LEADER sends cluster VAMs +#ItsVru_TestCases.TC_VBS_TRANS_BV_02 +# Check that a VRU in VRU-PASSIVE sends individual VAMs containing VruClusterOperationContainer when leaving the VRU cluster +#ItsVru_TestCases.TC_VBS_TRANS_BV_03 +# Check that a VRU in VRU-ACTIVE-STANDALONE sends individual VAMs containing VruClusterOperationContainer while joining a VRU cluster +#ItsVru_TestCases.TC_VBS_TRANS_BV_04 + +# Check that a VBS starts sending VAMs when the state changes from VRU-IDLE to VRU-ACTIVE-STANDALONE +#ItsVru_TestCases.TC_VBS_CLTR_BV_01 +# Check that the cluster size is set to minClusterSize and the VRU profile field is set to the VRU profile +#ItsVru_TestCases.TC_VBS_CLTR_BV_02 + +# Check that the ITS-AID indicates the application for which permissions are being granted +#ItsVru_TestCases.TC_VBS_SECC_BV_02 +# Check that the SSP is a BitmapSsp +#ItsVru_TestCases.TC_VBS_SECC_BV_04 + +# Check that a VRU in VRU-ACTIVE-STANDALONE sends individual VAMs +#ItsVru_TestCases.TC_VBS_TRANS_BV_01 +# Check that a VRU in VRU-ACTIVE-CLUSTER-LEADER sends cluster VAMs +#ItsVru_TestCases.TC_VBS_TRANS_BV_02 +# Check that a VRU in VRU-PASSIVE sends individual VAMs containing VruClusterOperationContainer when leaving the VRU cluster +#ItsVru_TestCases.TC_VBS_TRANS_BV_03 +# Check that a VRU in VRU-ACTIVE-STANDALONE sends individual VAMs containing VruClusterOperationContainer while joining a VRU cluster +#ItsVru_TestCases.TC_VBS_TRANS_BV_04 + +# Check that a VBS starts sending VAMs when the state changes from VRU-IDLE to VRU-ACTIVE-STANDALONE +#ItsVru_TestCases.TC_VBS_CLTR_BV_01 +# Check that the cluster size is set to minClusterSize and the VRU profile field is set to the VRU profile +#ItsVru_TestCases.TC_VBS_CLTR_BV_02 +# Check that a VBS in VRU-ACTIVE-STANDALONE stops the transmission of VAMs when changing to VRU-IDLE +#ItsVru_TestCases.TC_VBS_CLTR_BV_03 +# Check that a cluster breaking VRU stops sending cluster VAMs +ItsVru_TestCases.TC_VBS_CLTR_BV_04 +# Check that a VRU sends an indication of joining a cluster for timeClusterJoinNotification including the identified cluster and time at which it stops sending individual VAMs +#ItsVru_TestCases.TC_VBS_CLTR_BV_05 +# Check that a VBS sends individual VAMs after a cancelled-join oder failed-join including the same station ID as before and the cluster leave notification for timeClusterLeaveNotification +#ItsVru_TestCases.TC_VBS_CLTR_BV_06 +# Check that a VRU leaving a cluster indicates the identified cluster and the reason for timeClusterLeaveNotification +#ItsVru_TestCases.TC_VBS_CLTR_BV_07 +# Check that a cluster leader indicates a cluster ID change for timeClusterIdChangeNotification before the change +#ItsVru_TestCases.TC_VBS_CLTR_BV_09 +# Check that a cluster leader sends a cluster VAM with the new ID as soon as possible +#ItsVru_TestCases.TC_VBS_CLTR_BV_10 + +# Check that the first time individual VAM is generated immediately after VBS activation +#ItsVru_TestCases.TC_VBS_TRCN_BV_01 +# Check that a VAM is generated immediately if a VRU is in VRU-IDLE and enters VRU-ACTIVE-STANDALONE +#ItsVru_TestCases.TC_VBS_TRCN_BV_02 +# Check that a VAM is generated immediately if a VRU is in VRU-PASSIVE, leaves the cluster and enters VRU-ACTIVE-STANDALONE +#ItsVru_TestCases.TC_VBS_TRCN_BV_03 +# Check that a VAM is generated immediately if a VRU is in VRU-PASSIVE, determines the cluster leader is lost and enters VRU-ACTIVE-STANDALONE +#ItsVru_TestCases.TC_VBS_TRCN_BV_04 +# Check that a VAM is generated immediately if a VRU is in VRU-ACTIVE-CLUSTER-LEADER, breaks up the cluster and enters VRU-ACTIVE-STANDALONE +#ItsVru_TestCases.TC_VBS_TRCN_BV_05 +# Check that consecutive individual VAM transmissions occur at an interval equal or larger than T_GenVam (See TC_VBS_FRPE_TI_01) +#ItsVru_TestCases.TC_VBS_TRCN_BV_06 +# Check that consecutive VAM transmissions occur when T_GenVamMax is exceeded (See f_TC_VBS_FRPE_TI_04) +#ItsVru_TestCases.TC_VBS_TRCN_BV_07 +# Check that consecutive individual VAM transmissions occur when the euclidian absolute distance between the current estimated VRU reference point position and the last estimated VRU reference point position exceeds minReferencePointPositonChangeThreshold +#ItsVru_TestCases.TC_VBS_TRCN_BV_08 +# Check that consecutive individual VAM transmissions occur when the difference between the current estimated VRU reference point ground speed and the last estimated VRU reference point ground speed exceeds minGroundSpeedChangeThreshold +#ItsVru_TestCases.TC_VBS_TRCN_BV_09 +# Check that consecutive individual VAM transmissions occur when the difference between the orientation of the vector of the current estimated ground velocity of the reference point of the VRU and the estimated orientation of the vector of the ground velocity of the reference point of the VRU lastly included in an individual VAM exceeds minGroundVelocityOrientationChangeThreshold +#ItsVru_TestCases.TC_VBS_TRCN_BV_10 +# Check that consecutive individual VAM transmissions occur when the difference between the current estimated trajectory interception probability with vehicle(s) or other VRU(s) and the trajectory interception probability with vehicle(s) or other VRU(s) lastly reported in an individual VAM exceeds minTrajectoryInterceptionProbChangeThreshold +#ItsVru_TestCases.TC_VBS_TRCN_BV_11 +# Check that consecutive individual VAM transmissions occur when one or more other VRUs are simultanously coming closer than Minimum Safe Lateral Distance(MSLaD) laterally, closer than Minimum Safe Longitudinal Distance (MSLoD) longitudinally and closer than Minimum Safe Vertical Distance (MSVD) vertically +#ItsVru_TestCases.TC_VBS_TRCN_BV_12 + + + + + + + + + +# Check that the minimum time elapsed between the start of consecutive VAM generation events is equal or larger than T_Gen_Vam +#ItsVru_TestCases.TC_VBS_FRPE_TI_01 +# Check that the LF container is included in the first VAM generation +#ItsVru_TestCases.TC_VBS_FRPE_BV_02 +# Check that the LF container is included periodically after 2000 ms +#ItsVru_TestCases.TC_VBS_FRPE_BV_03 +# Check that the minimum time elapsed between the start of consecutive VAM generation events is equal or larger than T_Gen_Vam +#ItsVru_TestCases.TC_VBS_FRPE_TI_04 +# Check that T_GenVam is set to T_GenVamMin if the value for T_GenVam is not provided by the VBS management entity or smaller than T_GenVamMin in case of ITS-G5 +#ItsVru_TestCases.TC_VBS_FRPE_TI_05 + +# Check that the ITS-AID indicates the application for which permissions are being granted +#ItsVru_TestCases.TC_VBS_SECC_BV_02 +# Check that the SSP is a BitmapSsp +#ItsVru_TestCases.TC_VBS_SECC_BV_04 [MAIN_CONTROLLER] # The options herein control the behavior of MC. diff --git a/install.sh b/install.sh index 5742aa78aba8b95e37e60cb8dd4ce8a4aa6b4bb8..57499368066f5a3af2c5ed1e9511699ace4fd275 100755 --- a/install.sh +++ b/install.sh @@ -4,7 +4,7 @@ set -vx BRANCH=TTF_T036 -ASN1_BRANCH=devel2 +ASN1_BRANCH=TTF_T036 BASE_PATH=`pwd` #git checkout $BRANCH @@ -22,32 +22,34 @@ do git checkout --recurse-submodules $ASN1_BRANCH if [ -f ETSI-ITS-CDD.asn ] then - ln ETSI-ITS-CDD.asn ETSI_ITS_CDD.asn + ln -sf ETSI-ITS-CDD.asn ETSI_ITS_CDD.asn elif [ -f CAM-PDU-Descriptions.asn ] then - ln CAM-PDU-Descriptions.asn CAM_PDU_Descriptions.asn + ln -sf CAM-PDU-Descriptions.asn CAM_PDU_Descriptions.asn elif [ -f DENM-PDU-Descriptions.asn ] then - ln DENM-PDU-Descriptions.asn DENM_PDU_Descriptions.asn + ln -sf DENM-PDU-Descriptions.asn DENM_PDU_Descriptions.asn elif [ -f VAM-PDU-Descriptions.asn ] then - ln VAM-PDU-Descriptions.asn VAM_PDU_Descriptions.asn - ln motorcyclist-special-container.asn motorcyclist_special_container.asn + ln -sf VAM-PDU-Descriptions.asn VAM_PDU_Descriptions.asn + ln -sf motorcyclist-special-container.asn motorcyclist_special_container.asn elif [ -f asn/CPM-PDU-Descriptions.asn ] then - ln asn/CPM-PDU-Descriptions.asn asn/CPM_PDU_Descriptions.asn - ln asn/CPM-OriginatingStationContainers.asn asn/CPM_OriginatingStationContainers.asn - ln asn/CPM-PerceivedObjectContainer.asn asn/CPM_PerceivedObjectContainer.asn - ln asn/CPM-PerceptionRegionContainer.asn asn/CPM_PerceptionRegionContainer.asn - ln asn/CPM-SensorInformationContainer.asn asn/CPM_SensorInformationContainer.asn + cd asn + ln -sf CPM-PDU-Descriptions.asn CPM_PDU_Descriptions.asn + ln -sf CPM-OriginatingStationContainers.asn CPM_OriginatingStationContainers.asn + ln -sf CPM-PerceivedObjectContainer.asn CPM_PerceivedObjectContainer.asn + ln -sf CPM-PerceptionRegionContainer.asn CPM_PerceptionRegionContainer.asn + ln -sf CPM-SensorInformationContainer.asn CPM_SensorInformationContainer.asn + cd - elif [ -f IVIM-PDU-Descriptions.asn ] then - ln IVIM-PDU-Descriptions.asn IVIM_PDU_Descriptions.asn - ln MAPEM-PDU-Descriptions.asn MAPEM_PDU_Descriptions.asn - ln RTCMEM-PDU-Descriptions.asn RTCMEM_PDU_Descriptions.asn - ln SPATEM-PDU-Descriptions.asn SPATEM_PDU_Descriptions.asn - ln SREM-PDU-Descriptions.asn SREM_PDU_Descriptions.asn - ln SSEM-PDU-Descriptions.asn SSEM_PDU_Descriptions.asn + ln -sf IVIM-PDU-Descriptions.asn IVIM_PDU_Descriptions.asn + ln -sf MAPEM-PDU-Descriptions.asn MAPEM_PDU_Descriptions.asn + ln -sf RTCMEM-PDU-Descriptions.asn RTCMEM_PDU_Descriptions.asn + ln -sf SPATEM-PDU-Descriptions.asn SPATEM_PDU_Descriptions.asn + ln -sf SREM-PDU-Descriptions.asn SREM_PDU_Descriptions.asn + ln -sf SSEM-PDU-Descriptions.asn SSEM_PDU_Descriptions.asn fi SUB_DIRS=`find . -type d` if [ "SUB_DIRS" != "" ] @@ -58,7 +60,7 @@ do git checkout --recurse-submodules $ASN1_BRANCH if [ -f ETSI-ITS-CDD.asn ] then - ln ETSI-ITS-CDD.asn ETSI_ITS_CDD.asn + ln -sf ETSI-ITS-CDD.asn ETSI_ITS_CDD.asn fi cd - done @@ -75,12 +77,13 @@ else git checkout devel fi cd ./ttcn/LibHttp -ln module_its.mk module.mk +ln -sf module_its.mk module.mk cd $BASE_PATH/ttcn/LibIts git checkout devel2 +cd $BASE_PATH/ttcn/LibCommon +ln -sf ../patch_lib_common_titan/module.mk module.mk cd $BASE_PATH -ln ./ttcn/patch_lib_common_titan/module.mk ./ttcn/LibCommon/module.mk exit 0 diff --git a/plantuml/README.md b/plantuml/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/plantuml/__main__.py b/plantuml/__main__.py new file mode 100644 index 0000000000000000000000000000000000000000..69134aa9d62290195f2864ea48d8fa7f11cc7e9d --- /dev/null +++ b/plantuml/__main__.py @@ -0,0 +1,186 @@ +# -*- Coding: utf-8 -*- + +from __future__ import division # Import floating-point division (1/4=0.25) instead of Euclidian division (1/4=0) + +import os +import glob +import sys +import logging + +from regex_list import * + +MSG_PATH = "" +IN_FILE_PATH = "" +OUT_FILE_PATH = "" +out_streams = object() +logger = object() +parser = object() +data_ctx = dict() + +def process_command_line_args(): + global IN_FILE_PATH + + print(f"Arguments count: {len(sys.argv)}") + for i, arg in enumerate(sys.argv): + print(f"Argument {i:>6}: {arg}") + IN_FILE_PATH = sys.argv[1] + # End of function process_command_line_args + +def process_line(line): + global MSG_PATH, out_streams, logger, parser, data_ctx + + match = parser.parse_line(line) + if match != None: + logger.info(f"Matching: {match}") + if 'testcase' in match: + logger.info('Got testcase') + out_streams.write('@startuml\n') + out_streams.write(f"title {match['testcase']}\n") + out_streams.write("/'Editor: https://plantuml-editor.kkeisuke.com/ '/\n") + out_streams.write("/'Syntax: http://plantuml.com/fr/sequence-diagram '/\n") + out_streams.write('!include etsi-style.iuml\n') + out_streams.write('!pragma teoz true\n') + out_streams.write('autonumber\n') + out_streams.write('participant system\n') + out_streams.write('box "TTCN-3 Environment" #LightBlue\n') + elif 'operation' in match: + logger.info('Got operation') + if match['operation'] == 'mapped': + out_streams.write(f"participant \"{match['comp']}:{match['protocol_port']}\"\n") + data_ctx['protocol_port'].append(f"{match['comp']}:{match['protocol_port']}") + else: + if match['protocol_port'] != 'syncPort': + out_streams.write(f"\"{match['comp']}:{match['protocol_port']}\" --> system: unmap\n") + elif 'request' in match: + logger.info('Got request') + if data_ctx['box_ended'] == False: + out_streams.write('endbox\n') + data_ctx['box_ended'] = True + for p in data_ctx['protocol_port']: + out_streams.write(f"\"{p}\" --> system: map\n") + out_streams.write(f"\"{match['comp']}:{match['port']}\" -[#green]> system: @{match['module']}.{match['message']}\n") + s = match['request'].replace(",", ",\\n").replace("\"", "").strip() + if len(s) > 128: + n = match['hours'] + "_" + match['minutes'] + "_" + match['seconds'] + "_" + match['milliseconds'] + ".txt" + n = os.path.join(MSG_PATH, n) + with open(n, "w") as msg: + msg.write(s) + s = f'[[file://{n} request := ...]]' #{Click to read the message} + out_streams.write(f"note right: {s}\n") + out_streams.write(f"note left: {match['hours']}:{match['minutes']}:{match['seconds']}.{match['milliseconds']}\n") + elif 'response' in match: + logger.info('Got response') + if data_ctx['box_ended'] == False: + out_streams.write('endbox\n') + data_ctx['box_ended'] = True + out_streams.write(f"system -[#green]> \"{match['comp']}:{match['port']}\": @{match['module']}.{match['message']}\n") + s = match['response'].replace(",", ",\\n").replace("\"", "").strip() + if len(s) > 128: + n = match['hours'] + "_" + match['minutes'] + "_" + match['seconds'] + "_" + match['milliseconds'] + ".txt" + n = os.path.join(MSG_PATH, n) + with open(n, "w") as msg: + msg.write(s) + s = f'[[file://{n} response := ...]]' #{Click to read the message} + out_streams.write(f"note right: {s}\n") + out_streams.write(f"note left: {match['hours']}:{match['minutes']}:{match['seconds']}.{match['milliseconds']}\n") + elif 'timer_name' in match: + logger.info('Got timer') + if match['timer_name'] == 'tc_sync': + pass + else: + for p in data_ctx['protocol_port']: + if p.startswith(match['comp']): + out_streams.write(f"\"{p}\" -> \"{p}\": {match['start_stop']}, duration: {match['duration']}\n") + break + out_streams.write(f"note left: {match['hours']}:{match['minutes']}:{match['seconds']}.{match['milliseconds']}\n") + elif 'verdict' in match: + logger.info('Got verdict') + if 'ptcid' in match and match['ptcid'] != None: + s = match['ptcid'].split('(') + s = s[1].split(')') + for p in data_ctx['protocol_port']: + if p.startswith(s[0]): + if match['verdict'] == 'fail': + out_streams.write(f"hnote over \"{p}\" #red: fail\n") + elif match['verdict'] == 'pass': + out_streams.write(f"hnote over \"{p}\" #green: pass\n") + elif match['verdict'] == 'inconc': + out_streams.write(f"hnote across #yellow: inconc\n") + else: + out_streams.write(f"hnote over \"{p}\" #gray: error\n") + out_streams.write(f"note left: {match['hours']}:{match['minutes']}:{match['seconds']}.{match['milliseconds']}\n") + break + elif 'final_verdict' in match: + logger.info('Got verdict') + if match['final_verdict'] == 'fail': + out_streams.write(f"hnote across #red: fail\n") + elif match['final_verdict'] == 'pass': + out_streams.write(f"hnote across #green: pass\n") + elif match['final_verdict'] == 'inconc': + out_streams.write(f"hnote across #yellow: inconc\n") + else: + out_streams.write(f"hnote across #gray: error\n") + out_streams.write(f"note left: {match['hours']}:{match['minutes']}:{match['seconds']}.{match['milliseconds']}\n") + else: + logger.info('Got unsupported item') + # End of 'if' statement + out_streams.flush() + # End of function process_line + +def main(): + global MSG_PATH, OUT_FILE_PATH, out_streams, logger, parser, data_ctx + + process_command_line_args() + + # Initialize the logger + logger = logging.getLogger(__name__) + logger.setLevel(logging.DEBUG) + l = logging.StreamHandler() + l.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')) + logger.addHandler(l) + + # Prepare outputs + OUT_FILE_PATH = sys.argv[2] + CURRENT_PATH = os.getcwd() + MSG_PATH = os.path.join(CURRENT_PATH, "msgs") + logger.info(f'CURRENT_PATH:{CURRENT_PATH} - MSG_PATH{MSG_PATH}') + if os.path.exists(MSG_PATH): + files = glob.glob(os.path.join(MSG_PATH, '*')) + for f in files: + os.remove(f) + else: + os.mkdir(MSG_PATH) + + # Setup the regex + parser = regex_list(logger) + parser.reset_state() + + data_ctx = dict() + data_ctx['protocol_port'] = [] + data_ctx['box_ended'] = False + + print(f"IN_FILE_PATH= {IN_FILE_PATH}") + with open(IN_FILE_PATH, "r") as in_stream: + with open(OUT_FILE_PATH, "w") as out_streams: + line = in_stream.readline() + while line != '': + process_line(line) + line = in_stream.readline() + # End of 'for' statement + # Add the end tag + out_streams.write('@enduml\n') + out_streams.flush() + # End of 'with' statement + # End of 'with' statement + + # Check if file is not empty + if os.path.getsize(OUT_FILE_PATH) == 0: + logger.error(f'Empty result, please check that FileMask is properly set: ERROR | WARNING | USER | MATCHING | EXECUTOR_RUNTIME | VERDICTOP | PORTEVENT | TIMEROP | TESTCASE') + else: + os.system('java -DPLANTUML_LIMIT_SIZE=8192 -jar ./plantuml.jar -svg {}'.format(OUT_FILE_PATH)) +# End of main function + +if __name__ == "__main__": + main() + +# End of file diff --git a/plantuml/etsi-style.iuml b/plantuml/etsi-style.iuml new file mode 100644 index 0000000000000000000000000000000000000000..e26d257713d678a0011da52cb4400a16a1264b16 --- /dev/null +++ b/plantuml/etsi-style.iuml @@ -0,0 +1,46 @@ +hide footbox +autonumber +skinparam { + dpi 300 + shadowing false + 'handwritten true + defaultFontSize 8 +} + +skinparam note { + FontSize 8 + FontStyle bold + FontColor White + borderColor Black + backgroundColor DimGray +} + +skinparam participant { + FontSize 8 + FontStyle bold + FontColor White + borderColor Navy + backgroundColor RoyalBlue +} + +skinparam actor { + FontSize 8 + FontStyle bold + FontColor Navy + borderColor Navy + backgroundColor RoyalBlue +} + +skinparam sequence { + ArrowFontColor Black + ArrowColor SlateGray + LifeLineBorderColor Navy + LifeLineBackgroundColor DimGray +} + +skinparam ParticipantPadding 5 +skinparam BoxPadding 5 + +!define sendrcvRTP(a,b,c) a <-[#LimeGreen]> b : c +!define sendRTP(a,b,c) a -[#LimeGreen]> b : c +!define setParticipant(a,b) participant a as b diff --git a/plantuml/plantuml.jar b/plantuml/plantuml.jar new file mode 100644 index 0000000000000000000000000000000000000000..506b8c4b818bcb6f8ac254e898da44470cbad888 Binary files /dev/null and b/plantuml/plantuml.jar differ diff --git a/plantuml/regex_list.py b/plantuml/regex_list.py new file mode 100644 index 0000000000000000000000000000000000000000..ecd5fbc6b91347cad5cc1eb0430da2756da2e6f2 --- /dev/null +++ b/plantuml/regex_list.py @@ -0,0 +1,124 @@ +# -*- coding: utf-8 -*- +from __future__ import division # Import floating-point division (1/4=0.25) instead of Euclidian division (1/4=0) + +import logging +import re +import os +class regex_list(object): + """ + For testing purposes: https://regex101.com/ + """ + def __init__(self, p_logger): + self.__logger = p_logger + self.__state = 'none' + self.__flags = re.DOTALL | re.VERBOSE + self.__regexps = dict() + self.__regexps['exec_test'] = re.compile(r'^(?P\d+):(?P\d+):(?P\d+).(?P\d+)(\s((?Pmtc|\d+))){0,1}\sTESTCASE\s.*\sTest\scase\s(?P\w+)\sstarted\.$', self.__flags) + self.__regexps['map_port'] = re.compile(r'^(?P\d+):(?P\d+):(?P\d+).(?P\d+)(\s((?Pmtc|\d+))){0,1}\sPORTEVENT\s.*\sPort\s(?P\w+)\swas\s(?P\w+)\sto\s(?P\w+):(?P\w+)\.$', self.__flags) + self.__regexps['unmap_port'] = re.compile(r'^(?P\d+):(?P\d+):(?P\d+).(?P\d+)(\s((?Pmtc|\d+))){0,1}\sPORTEVENT\s.*\sPort\s(?P\w+)\swas\s(?P\w+)\sfrom\s(?P\w+):(?P\w+)\.$', self.__flags) + self.__regexps['messages'] = self.__regexps['unmap_port'] + self.__regexps['message_out'] = re.compile(r'^(?P\d+):(?P\d+):(?P\d+).(?P\d+)(\s((?Pmtc|\d+))){0,1}\sPORTEVENT\s.*\sSent\son\s(?P\w+)\sto\ssystem(\(.*\)){0,1}\s@(?P\w+).(?P\w+)\s:\s\{(?P.+)\}$', self.__flags) + self.__regexps['message_in'] = re.compile(r'^(?P\d+):(?P\d+):(?P\d+).(?P\d+)(\s((?Pmtc|\d+))){0,1}\sPORTEVENT\s.*\sMessage\senqueued\son\s(?P\w+)\sfrom\ssystem\s@(?P\w+).(?P\w+)\s:\s\{(?P.+)\}\sid\s\w+$', self.__flags) + self.__regexps['timer'] = re.compile(r'^(?P\d+):(?P\d+):(?P\d+).(?P\d+)(\s((?Pmtc|\d+))){0,1}\sTIMEROP\s.*\s(?P\w+)\stimer\s(?P\w+):\s(?P\w+).*$', self.__flags) + self.__regexps['final_verdict'] = re.compile(r'^(?P\d+):(?P\d+):(?P\d+).(?P\d+)(\s((?Pmtc|\d+))){0,1}\sTESTCASE\s.*\sTest\scase\s(.+)\sfinished\.\sVerdict:\s(?P\w+)$', self.__flags) + self.__regexps['verdict'] = re.compile(r'^(?P\d+):(?P\d+):(?P\d+).(?P\d+)(\s((?Pmtc|\d+))){0,1}\sVERDICTOP\s.*\sLocal\sverdict\sof\s(MTC|PTC)(\s(?P.+)){0,1}:\s(?P\w+).*$', self.__flags) + # End of __init__ class + + def reset_state(self): + self.__state = 'exec_test' + self.__logger.info('Reset state: ' + self.__state) + # End of reset_state + + def parse_line(self, p_line): + self.__logger.debug('>>> regex_list::parse_line: ' + self.__get_state()) + self.__logger.debug('regex_list::parse_line: ' + p_line) + + if self.__get_state() == 'exec_test': + m = self.__regexps[self.__state].match(p_line) + if m: + self.__set_next_state() + return m.groupdict() + elif self.__get_state() == 'map_port': + m = self.__regexps[self.__state].match(p_line) + if m: + return m.groupdict() + else: # In map_port, check for TTCN-3 message sent ('message_out') and received ('message_in') + m = self.__regexps['message_out'].match(p_line) + if m: + self.__set_next_state() + return m.groupdict() + else: + m = self.__regexps['message_in'].match(p_line) + if m: + self.__set_next_state() + return m.groupdict() + else: + m = self.__regexps['timer'].match(p_line) + if m: + return m.groupdict() + elif self.__get_state() == 'messages': + m = self.__regexps[self.__state].match(p_line) + if m: + self.__set_next_state() + return m.groupdict() + else: # Check for TTCN-3 message sent ('message_out') and received ('message_in') + m = self.__regexps['message_out'].match(p_line) + if m: + return m.groupdict() + else: + m = self.__regexps['message_in'].match(p_line) + if m: + return m.groupdict() + else: + m = self.__regexps['timer'].match(p_line) + if m: + return m.groupdict() + elif self.__get_state() == 'unmap_port': + m = self.__regexps[self.__state].match(p_line) + if m: + return m.groupdict() + else: # In unmap_port, check for final_verdict + m = self.__regexps['verdict'].match(p_line) + if m: + self.__set_next_state() + return m.groupdict() + elif self.__get_state() == 'verdict' or self.__get_state() == 'final_verdict': + m = self.__regexps['verdict'].match(p_line) + if m: + return m.groupdict() + else: + m = self.__regexps['final_verdict'].match(p_line) + if m: + self.__set_next_state() + return m.groupdict() + return None + # End of method parse_line + + def __set_next_state(self): + if self.__state == 'exec_test': + self.__logger.info('regex_list::parse_line: Set state to map_port') + self.__state = 'map_port' + elif self.__state == 'map_port': + self.__logger.info('regex_list::parse_line: Set state to messages') + self.__state = 'messages' + elif self.__state == 'messages': + self.__logger.info('regex_list::parse_line: Set state to unmap_port') + self.__state = 'unmap_port' + elif self.__state == 'unmap_port': + self.__logger.info('regex_list::parse_line: Set state to verdict') + self.__state = 'verdict' + elif self.__state == 'verdict': + self.__logger.info('regex_list::parse_line: Set state to final_verdict') + self.__state = 'final_verdict' + elif self.__state == 'final_verdict': + self.__logger.info('regex_list::parse_line: Terminated') + self.reset_state() + # End of method __set_next_state + + def __get_state(self): + return self.__state + # End of method __get_state + +# End of class regex_list + +# End of file diff --git a/scripts/generate_png.sh b/scripts/generate_png.sh new file mode 100755 index 0000000000000000000000000000000000000000..37b46baa5ad5a4e0bba0dc0e876c0bfb1d1bd736 --- /dev/null +++ b/scripts/generate_png.sh @@ -0,0 +1,17 @@ +#!/bin/bash +#set -e +#set -vx + +clear + +if [ -z $ATS ] +then + echo "ATS shall be defined" + exit 1 +fi + +cd ../plantuml/ +python3 . ../logs/${ATS}/merged.log ./${ATS}.txt +cd - + +exit 0 diff --git a/titan-test-system-framework b/titan-test-system-framework index a8db2aefc860cdfec0b76ae767f5c91fe7ec042f..e477d327f4df850e487feab5c0f68b1044db3cf1 160000 --- a/titan-test-system-framework +++ b/titan-test-system-framework @@ -1 +1 @@ -Subproject commit a8db2aefc860cdfec0b76ae767f5c91fe7ec042f +Subproject commit e477d327f4df850e487feab5c0f68b1044db3cf1 diff --git a/ttcn/AtsCAM b/ttcn/AtsCAM index 2e6d1a86b54ec3eb11fc5b7f6e70f80b06834a50..3a49ddad6cc59694b4936d43dca49038325a01e7 160000 --- a/ttcn/AtsCAM +++ b/ttcn/AtsCAM @@ -1 +1 @@ -Subproject commit 2e6d1a86b54ec3eb11fc5b7f6e70f80b06834a50 +Subproject commit 3a49ddad6cc59694b4936d43dca49038325a01e7 diff --git a/ttcn/AtsCPS b/ttcn/AtsCPS index ce6120ec2ad1e6be306924f6a790d902a6b9f38a..47c561413ca8de2a664309f5651d2a15bbb18001 160000 --- a/ttcn/AtsCPS +++ b/ttcn/AtsCPS @@ -1 +1 @@ -Subproject commit ce6120ec2ad1e6be306924f6a790d902a6b9f38a +Subproject commit 47c561413ca8de2a664309f5651d2a15bbb18001 diff --git a/ttcn/AtsDENM b/ttcn/AtsDENM index 3c07554ea9b960e36dcc1e0a8efcb453f4301d9f..440d05dacb1151e77529ebba02c78fd6bb469e2b 160000 --- a/ttcn/AtsDENM +++ b/ttcn/AtsDENM @@ -1 +1 @@ -Subproject commit 3c07554ea9b960e36dcc1e0a8efcb453f4301d9f +Subproject commit 440d05dacb1151e77529ebba02c78fd6bb469e2b diff --git a/ttcn/AtsGeoNetworking b/ttcn/AtsGeoNetworking index dbe05aa91c4b01c39bc544bafd6760d002a6327e..77bc278184cc79ad11c08f2725718d5d50ff7e96 160000 --- a/ttcn/AtsGeoNetworking +++ b/ttcn/AtsGeoNetworking @@ -1 +1 @@ -Subproject commit dbe05aa91c4b01c39bc544bafd6760d002a6327e +Subproject commit 77bc278184cc79ad11c08f2725718d5d50ff7e96 diff --git a/ttcn/AtsIS b/ttcn/AtsIS index 95ed727c7cc6f32b15e94f6f3d9f6f669f041acd..873d0605293c11564f3f5186c3feb8341c8b951c 160000 --- a/ttcn/AtsIS +++ b/ttcn/AtsIS @@ -1 +1 @@ -Subproject commit 95ed727c7cc6f32b15e94f6f3d9f6f669f041acd +Subproject commit 873d0605293c11564f3f5186c3feb8341c8b951c diff --git a/ttcn/AtsSecurity b/ttcn/AtsSecurity index 2abcd22f8d08f25d0b01ec2ad0dd7de6392380f2..060d3384e88c6e61e828733dd57c23b260d9f24e 160000 --- a/ttcn/AtsSecurity +++ b/ttcn/AtsSecurity @@ -1 +1 @@ -Subproject commit 2abcd22f8d08f25d0b01ec2ad0dd7de6392380f2 +Subproject commit 060d3384e88c6e61e828733dd57c23b260d9f24e diff --git a/ttcn/AtsVRU b/ttcn/AtsVRU index fd1aabe32f0d8d6bb47855880466db4deb53b132..ccf334f7fae9212f6d7de7ba46d7d5cb9963b37b 160000 --- a/ttcn/AtsVRU +++ b/ttcn/AtsVRU @@ -1 +1 @@ -Subproject commit fd1aabe32f0d8d6bb47855880466db4deb53b132 +Subproject commit ccf334f7fae9212f6d7de7ba46d7d5cb9963b37b diff --git a/ttcn/LibIts b/ttcn/LibIts index e9c6c8a48c937bfdc685a67e9648cedc76b581ec..106441a0202a522ad4f79830fbf64b18125707dd 160000 --- a/ttcn/LibIts +++ b/ttcn/LibIts @@ -1 +1 @@ -Subproject commit e9c6c8a48c937bfdc685a67e9648cedc76b581ec +Subproject commit 106441a0202a522ad4f79830fbf64b18125707dd diff --git a/virtualization/docker-dev/Dockerfile.stfubuntu b/virtualization/docker-dev/Dockerfile.stfubuntu index 9fa6645dfc7b2239c01bf04ee2d81fad6416528c..89e6cdd68e9cc953c2d6d47cb57dfeb9a77c00ba 100644 --- a/virtualization/docker-dev/Dockerfile.stfubuntu +++ b/virtualization/docker-dev/Dockerfile.stfubuntu @@ -41,6 +41,7 @@ RUN echo "docker-STF-dev" > /etc/hostname \ libxml2-dev \ libxml2-utils \ libyaml-dev \ + libzip-dev \ lsof \ ntp \ openssh-server \ @@ -55,6 +56,7 @@ RUN echo "docker-STF-dev" > /etc/hostname \ texlive-latex-extra \ tzdata \ valgrind \ + unzip \ xutils-dev \ xsltproc \ && DEBIAN_FRONTEND=noninteractive apt-get autoremove --purge -y \ diff --git a/virtualization/docker-dev/README.md b/virtualization/docker-dev/README.md index 388edf6a7b87676fb496d8dd163340955754c374..7851b28e10ede4e134e9af5dc89c0829b185caea 100644 --- a/virtualization/docker-dev/README.md +++ b/virtualization/docker-dev/README.md @@ -28,7 +28,7 @@ Special scrips ```build.sh``` (or ```build.cmd```) can be executed to automatica There are several build stages: -1. Build STF Ubuntu 18.04 image +1. Build STF Ubuntu 20.04 image 2. Install Titan from Github 3. Install Eclipse and Titan Eclipse plugin into ~/frameworks/titan 4. Install asn1c into ~/frameworks/asn1c diff --git a/virtualization/docker-dev/home/etc/init.d/50-ats.sh b/virtualization/docker-dev/home/etc/init.d/50-ats.sh index 5911fe82c898e78964609e3c0dd6e3fb10c621ff..31aaa957bacd5cac93934baa15a98152f6dc9d54 100755 --- a/virtualization/docker-dev/home/etc/init.d/50-ats.sh +++ b/virtualization/docker-dev/home/etc/init.d/50-ats.sh @@ -11,7 +11,8 @@ cd ${HOME}/dev/TS.ITS/scripts || exit 1 echo -e "*****************************\n* Build test suites\n*****************************\n" cd ${HOME}/dev/TS.ITS -ATS_LIST="AtsCAM AtsDENM AtsCPS AtsVRU AtsIS AtsBTP AtsGeoNetworking AtsPki AtsSecurity AtsMBR" +#ATS_LIST="AtsCAM AtsDENM AtsCPS AtsVRU AtsIS AtsBTP AtsGeoNetworking AtsPki AtsSecurity AtsMBR" +ATS_LIST="AtsCAM" for i in ${ATS_LIST} do export ATS=$i diff --git a/virtualization/docker/Dockerfile b/virtualization/docker/Dockerfile index ee5edee3bdc37b18bcc712648b0b287dc434b111..cd70de01ceca6d0ab89e4bbeac6b0e2960e19021 100644 --- a/virtualization/docker/Dockerfile +++ b/virtualization/docker/Dockerfile @@ -22,8 +22,8 @@ WORKDIR /home/etsi RUN \ mkdir -p frameworks dev tmp \ && cd frameworks \ - && git clone --branch=vlm_test https://github.com/fillabs/asn1c.git ./asn1c.denis \ - && cd ./asn1c.denis \ + && git clone --branch=vlm_test https://github.com/fillabs/asn1c.git ./asn1c \ + && cd ./asn1c \ && autoreconf -iv && ./configure --prefix=${HOME} && make install \ && cd - \ && mkdir -p titan && cd ./titan \ diff --git a/virtualization/docker/docker-entrypoint.sh b/virtualization/docker/docker-entrypoint.sh index c8e1e122c570b353d1f16e086a2378a0ec8eabb9..dd0f1c7138506039a0e80234d5e73a5944134b58 100755 --- a/virtualization/docker/docker-entrypoint.sh +++ b/virtualization/docker/docker-entrypoint.sh @@ -33,10 +33,10 @@ fi case "$1" in build) - cd ${GEN_DIR} && make + cd ${GEN_DIR} && sed --in-place 's/lzip/lz/g' ./Makefile && make ;; clean) - cd ${GEN_DIR} && make clean + cd ${GEN_DIR} && sed --in-place 's/lzip/lz/g' ./Makefile && make clean ;; ip) ip address @@ -51,10 +51,10 @@ case "$1" in sudo ping $2 ;; rebuild) - cd ${GEN_DIR} && rm -fr ./bin ./build ; make + cd ${GEN_DIR} && rm -fr ./bin ./build ; sed --in-place 's/lzip/lz/g' ./Makefile ; make ;; build-run) - d ${GEN_DIR}/scripts && ./run_all.bash 0 + d ${GEN_DIR}/scripts && sed --in-place 's/lzip/lz/g' ./Makefile && ./run_all.bash 0 ;; run) cd ${GEN_DIR}/scripts && ./run_all.bash diff --git a/virtualization/docker/docker-run.sh b/virtualization/docker/docker-run.sh index 03121d672693c6e56f629841baf53c7d224a2c44..8b8c5a5304ee50c934b53262c6242cbd89bf411a 100755 --- a/virtualization/docker/docker-run.sh +++ b/virtualization/docker/docker-run.sh @@ -13,8 +13,3 @@ docker run --rm -it \ --mount type=bind,source=$HOME/var,target=/home/etsi/var,readonly \ --entrypoint $HOME/dev/$PRJ/virtualization/docker/docker-entrypoint.sh \ alpine-its:latest "$@" - -# -p 0.0.0.0:30181:30181 \ -# -p 0.0.0.0:8000-8900:8000-8900 \ -# -p 0.0.0.0:80:80 \ -# -p 0.0.0.0:443:443 \ diff --git a/virtualization/vagrant/provisioner.bash b/virtualization/vagrant/provisioner.bash index 67dbf48714bc738e60574d87493e6fbaa1a79915..91c5d0f5cadcd6032147fe985f30c19256587f6b 100755 --- a/virtualization/vagrant/provisioner.bash +++ b/virtualization/vagrant/provisioner.bash @@ -8,7 +8,7 @@ sudo DEBIAN_FRONTEND=noninteractive apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y sudo DEBIAN_FRONTEND=noninteractive apt-get install software-properties-common -y sudo DEBIAN_FRONTEND=noninteractive apt-get update -sudo DEBIAN_FRONTEND=noninteractive apt-get --allow-unauthenticated install emacs gcc-9 g++-9 git subversion lsof ntp gdb make cmake flex bison autoconf doxygen graphviz libtool libncurses5-dev expect libssl-dev libgcrypt-dev libxml2-dev libedit2 libedit-dev xutils-dev libjsoncpp-dev tcpdump libpcap-dev unzip sshpass kubuntu-desktop valgrind vim tzdata dos2unix xsltproc -y +sudo DEBIAN_FRONTEND=noninteractive apt-get --allow-unauthenticated install emacs gcc-9 g++-9 git subversion lsof ntp gdb make cmake flex bison autoconf doxygen graphviz libtool libncurses5-dev expect libssl-dev libgcrypt-dev libxml2-dev libzip-dev libedit2 libedit-dev xutils-dev libjsoncpp-dev tcpdump libpcap-dev unzip sshpass kubuntu-desktop valgrind vim tzdata dos2unix xsltproc -y #sudo DEBIAN_FRONTEND=noninteractive apt --fix-broken install -y sudo DEBIAN_FRONTEND=noninteractive apt-get autoremove --purge -y sudo DEBIAN_FRONTEND=noninteractive apt-get clean