Loading ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorLayer.cc +33 −1 Original line number Original line Diff line number Diff line Loading @@ -103,7 +103,7 @@ void ConfigRsuSimulatorLayer::sendMsg(const LibItsPki__TypesAndValues::UtPkiResu encoding_buffer.put_c(0x01/*static_cast<const unsigned char>(uppertester_pki_codec::c_utPkiInitializeResult)*/); encoding_buffer.put_c(0x01/*static_cast<const unsigned char>(uppertester_pki_codec::c_utPkiInitializeResult)*/); encoding_buffer.put_c((unsigned char)static_cast<const boolean>(send_par.utPkiInitializeResult())); encoding_buffer.put_c((unsigned char)static_cast<const boolean>(send_par.utPkiInitializeResult())); } else if (send_par.ischosen(LibItsPki__TypesAndValues::UtPkiResults::ALT_utPkiTriggerResult)) { } else if (send_par.ischosen(LibItsPki__TypesAndValues::UtPkiResults::ALT_utPkiTriggerResult)) { encoding_buffer.put_c(0x11/*static_cast<const unsigned char>(uppertester_pki_codec::c_utPkiTriggerResult)*/); encoding_buffer.put_c(0xBC/*static_cast<const unsigned char>(uppertester_pki_codec::c_utPkiTriggerResult)*/); encoding_buffer.put_c((unsigned char)static_cast<const boolean>(send_par.utPkiTriggerResult())); encoding_buffer.put_c((unsigned char)static_cast<const boolean>(send_par.utPkiTriggerResult())); } else { } else { loggers::get_instance().warning("ConfigRsuSimulatorLayer::sendMsg: Unsupported UtPkiResults variant"); loggers::get_instance().warning("ConfigRsuSimulatorLayer::sendMsg: Unsupported UtPkiResults variant"); Loading Loading @@ -135,6 +135,8 @@ void ConfigRsuSimulatorLayer::receive_data(OCTETSTRING& data, params& params) process_ut_cam_changeheading_data(data, params); process_ut_cam_changeheading_data(data, params); } else if ((id >= 0x50) && (id <= 0x54)) { // Receive an UtGnTrigger } else if ((id >= 0x50) && (id <= 0x54)) { // Receive an UtGnTrigger process_ut_geonetworking_trigger(data, params); process_ut_geonetworking_trigger(data, params); } else if ((id >= 0xBB) && (id <= 0xBF)) { // Receive an UtPkiTrigger process_ut_pki_trigger(data, params); } else { } else { loggers::get_instance().warning("ConfigRsuSimulatorLayer::receive_data: Unsupported tag %02x", id); loggers::get_instance().warning("ConfigRsuSimulatorLayer::receive_data: Unsupported tag %02x", id); } } Loading Loading @@ -165,6 +167,11 @@ int ConfigRsuSimulatorLayer::process_utinitialize_data(const OCTETSTRING& data, LibItsDenm__TypesAndValues::UtDenmInitialize p(hashedId); LibItsDenm__TypesAndValues::UtDenmInitialize p(hashedId); // Pass it to the ports if any // Pass it to the ports if any to_all_upper_ports(p, params); to_all_upper_ports(p, params); } else if (_params[std::string("ut")].compare("pki") == 0) { OCTETSTRING hashedId(data.lengthof() - 1, 1 + static_cast<const unsigned char*>(data)); LibItsPki__TypesAndValues::UtPkiInitialize p(hashedId); // Pass it to the ports if any to_all_upper_ports(p, params); } else { } else { loggers::get_instance().warning("ConfigRsuSimulatorLayer::process_utinitialize_data: Unsupported protocol"); loggers::get_instance().warning("ConfigRsuSimulatorLayer::process_utinitialize_data: Unsupported protocol"); return -1; return -1; Loading Loading @@ -281,4 +288,29 @@ int ConfigRsuSimulatorLayer::process_ut_geonetworking_trigger(const OCTETSTRING& return 0; return 0; } } int ConfigRsuSimulatorLayer::process_ut_pki_trigger(const OCTETSTRING& data, params& params) { loggers::get_instance().log(">>> ConfigRsuSimulatorLayer::process_ut_pki_trigger"); params::const_iterator it = _params.find("ut"); if (it == _params.cend()) { loggers::get_instance().warning("ConfigRsuSimulatorLayer::process_ut_pki_trigger: CF layer's ut parameter is missing"); return -1; } if (_params[std::string("ut")].compare("pki") == 0) { LibItsPki__TypesAndValues::UtPkiTrigger p; p.triggerEnrolmentRequest().cannonicalId() = OCTETSTRING(0, nullptr); // No parameter used p.triggerEnrolmentRequest().encAlgorithm() = OCTETSTRING(0, nullptr); // No parameter used p.triggerEnrolmentRequest().privateKey() = OCTETSTRING(0, nullptr); // No parameter used p.triggerEnrolmentRequest().compressedPublickey() = OCTETSTRING(0, nullptr); // No parameter used // Pass it to the ports if any to_all_upper_ports(p, params); } else { loggers::get_instance().warning("ConfigRsuSimulatorLayer::process_ut_pki_trigger: Unsupported protocol"); return -1; } return 0; } ConfigRsuSimulatorLayerFactory ConfigRsuSimulatorLayerFactory::_f; ConfigRsuSimulatorLayerFactory ConfigRsuSimulatorLayerFactory::_f; ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorLayer.hh +1 −0 Original line number Original line Diff line number Diff line Loading @@ -48,5 +48,6 @@ private: int process_ut_cam_changecurvature_data(const OCTETSTRING& data, params& params); int process_ut_cam_changecurvature_data(const OCTETSTRING& data, params& params); int process_ut_cam_changeheading_data(const OCTETSTRING& data, params& params); int process_ut_cam_changeheading_data(const OCTETSTRING& data, params& params); int process_ut_geonetworking_trigger(const OCTETSTRING& data, params& params); int process_ut_geonetworking_trigger(const OCTETSTRING& data, params& params); int process_ut_pki_trigger(const OCTETSTRING& data, params& params); }; // End of class ConfigRsuSimulatorLayer }; // End of class ConfigRsuSimulatorLayer ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorPort.cc +10 −0 Original line number Original line Diff line number Diff line Loading @@ -211,6 +211,16 @@ namespace ItsRSUsSimulator__TestSystem { incoming_message(p_ind); incoming_message(p_ind); } } void ConfigRsuSimulatorPort::receiveMsg (const LibItsPki__TypesAndValues::UtPkiInitialize& 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 LibItsPki__TypesAndValues::UtPkiTrigger& p_ind, const params& p_params) { void ConfigRsuSimulatorPort::receiveMsg (const LibItsPki__TypesAndValues::UtPkiTrigger& p_ind, const params& p_params) { loggers::get_instance().log_msg(">>> ConfigRsuSimulatorPort::receive_msg: ", p_ind); loggers::get_instance().log_msg(">>> ConfigRsuSimulatorPort::receive_msg: ", p_ind); // Sanity check // Sanity check Loading ccsrc/Protocols/Tcp/tcp_layer.cc +22 −2 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,11 @@ tcp_layer::tcp_layer(const std::string & p_type, const std::string & param) : la } else if (it->second.compare("1") == 0) { } else if (it->second.compare("1") == 0) { set_socket_debugging(true); set_socket_debugging(true); } } bool server_mode = false; it = _params.find(params::server_mode); if (it != _params.cend()) { server_mode = (1 == std::stoi(it->second)); } it = _params.find(params::server); it = _params.find(params::server); if (it == _params.cend()) { if (it == _params.cend()) { _params.insert(std::pair<std::string, std::string>(std::string("server"), "127.0.0.1")); _params.insert(std::pair<std::string, std::string>(std::string("server"), "127.0.0.1")); Loading @@ -46,10 +51,25 @@ tcp_layer::tcp_layer(const std::string & p_type, const std::string & param) : la if (!parameter_set(params::port.c_str(), _params[params::port].c_str())) { if (!parameter_set(params::port.c_str(), _params[params::port].c_str())) { loggers::get_instance().warning("tcp_layer::set_parameter: Unprocessed parameter: %s", params::server.c_str()); loggers::get_instance().warning("tcp_layer::set_parameter: Unprocessed parameter: %s", params::server.c_str()); } } it = _params.find(params::local_port); if (it == _params.cend()) { if (_params[params::use_ssl].compare("0") == 0) { // Use standard HTTP local_port _params.insert(std::pair<std::string, std::string>(std::string("local_port"), "80")); } else { // Use standard HTTPS local_port _params.insert(std::pair<std::string, std::string>(std::string("local_port"), "443")); } } if (!parameter_set(params::local_port.c_str(), _params[params::local_port].c_str())) { loggers::get_instance().warning("tcp_layer::set_parameter: Unprocessed parameter: %s", params::local_port.c_str()); } parameter_set(use_connection_ASPs_name(), "yes"); parameter_set(use_connection_ASPs_name(), (!server_mode) ? "yes" : "no"); parameter_set(server_backlog_name(), "1024"); parameter_set(server_backlog_name(), "1024"); set_server_mode(false); loggers::get_instance().log("tcp_layer::tcp_layer: server_mode=%x", server_mode); set_server_mode(server_mode); if (server_mode) { parameter_set("serverPort", _params[params::local_port].c_str()); } set_ttcn_buffer_usercontrol(false); set_ttcn_buffer_usercontrol(false); set_handle_half_close(true); set_handle_half_close(true); Loading ccsrc/Protocols/UDP/udp_layer.cc +2 −1 Original line number Original line Diff line number Diff line Loading @@ -32,7 +32,8 @@ udp_layer::udp_layer(const std::string & p_type, const std::string & param) : la // Initialize the socket // Initialize the socket _saddr.sin_family = AF_INET; _saddr.sin_family = AF_INET; _saddr.sin_addr.s_addr = INADDR_ANY; _saddr.sin_addr.s_addr = htonl(INADDR_ANY); loggers::get_instance().log("udp_layer::udp_layer: Port tolisten=%d", std::atoi(_params["src_port"].c_str())); _saddr.sin_port = htons(std::atoi(_params["src_port"].c_str())); _saddr.sin_port = htons(std::atoi(_params["src_port"].c_str())); // Create socket // Create socket _fd = ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); _fd = ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); Loading Loading
ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorLayer.cc +33 −1 Original line number Original line Diff line number Diff line Loading @@ -103,7 +103,7 @@ void ConfigRsuSimulatorLayer::sendMsg(const LibItsPki__TypesAndValues::UtPkiResu encoding_buffer.put_c(0x01/*static_cast<const unsigned char>(uppertester_pki_codec::c_utPkiInitializeResult)*/); encoding_buffer.put_c(0x01/*static_cast<const unsigned char>(uppertester_pki_codec::c_utPkiInitializeResult)*/); encoding_buffer.put_c((unsigned char)static_cast<const boolean>(send_par.utPkiInitializeResult())); encoding_buffer.put_c((unsigned char)static_cast<const boolean>(send_par.utPkiInitializeResult())); } else if (send_par.ischosen(LibItsPki__TypesAndValues::UtPkiResults::ALT_utPkiTriggerResult)) { } else if (send_par.ischosen(LibItsPki__TypesAndValues::UtPkiResults::ALT_utPkiTriggerResult)) { encoding_buffer.put_c(0x11/*static_cast<const unsigned char>(uppertester_pki_codec::c_utPkiTriggerResult)*/); encoding_buffer.put_c(0xBC/*static_cast<const unsigned char>(uppertester_pki_codec::c_utPkiTriggerResult)*/); encoding_buffer.put_c((unsigned char)static_cast<const boolean>(send_par.utPkiTriggerResult())); encoding_buffer.put_c((unsigned char)static_cast<const boolean>(send_par.utPkiTriggerResult())); } else { } else { loggers::get_instance().warning("ConfigRsuSimulatorLayer::sendMsg: Unsupported UtPkiResults variant"); loggers::get_instance().warning("ConfigRsuSimulatorLayer::sendMsg: Unsupported UtPkiResults variant"); Loading Loading @@ -135,6 +135,8 @@ void ConfigRsuSimulatorLayer::receive_data(OCTETSTRING& data, params& params) process_ut_cam_changeheading_data(data, params); process_ut_cam_changeheading_data(data, params); } else if ((id >= 0x50) && (id <= 0x54)) { // Receive an UtGnTrigger } else if ((id >= 0x50) && (id <= 0x54)) { // Receive an UtGnTrigger process_ut_geonetworking_trigger(data, params); process_ut_geonetworking_trigger(data, params); } else if ((id >= 0xBB) && (id <= 0xBF)) { // Receive an UtPkiTrigger process_ut_pki_trigger(data, params); } else { } else { loggers::get_instance().warning("ConfigRsuSimulatorLayer::receive_data: Unsupported tag %02x", id); loggers::get_instance().warning("ConfigRsuSimulatorLayer::receive_data: Unsupported tag %02x", id); } } Loading Loading @@ -165,6 +167,11 @@ int ConfigRsuSimulatorLayer::process_utinitialize_data(const OCTETSTRING& data, LibItsDenm__TypesAndValues::UtDenmInitialize p(hashedId); LibItsDenm__TypesAndValues::UtDenmInitialize p(hashedId); // Pass it to the ports if any // Pass it to the ports if any to_all_upper_ports(p, params); to_all_upper_ports(p, params); } else if (_params[std::string("ut")].compare("pki") == 0) { OCTETSTRING hashedId(data.lengthof() - 1, 1 + static_cast<const unsigned char*>(data)); LibItsPki__TypesAndValues::UtPkiInitialize p(hashedId); // Pass it to the ports if any to_all_upper_ports(p, params); } else { } else { loggers::get_instance().warning("ConfigRsuSimulatorLayer::process_utinitialize_data: Unsupported protocol"); loggers::get_instance().warning("ConfigRsuSimulatorLayer::process_utinitialize_data: Unsupported protocol"); return -1; return -1; Loading Loading @@ -281,4 +288,29 @@ int ConfigRsuSimulatorLayer::process_ut_geonetworking_trigger(const OCTETSTRING& return 0; return 0; } } int ConfigRsuSimulatorLayer::process_ut_pki_trigger(const OCTETSTRING& data, params& params) { loggers::get_instance().log(">>> ConfigRsuSimulatorLayer::process_ut_pki_trigger"); params::const_iterator it = _params.find("ut"); if (it == _params.cend()) { loggers::get_instance().warning("ConfigRsuSimulatorLayer::process_ut_pki_trigger: CF layer's ut parameter is missing"); return -1; } if (_params[std::string("ut")].compare("pki") == 0) { LibItsPki__TypesAndValues::UtPkiTrigger p; p.triggerEnrolmentRequest().cannonicalId() = OCTETSTRING(0, nullptr); // No parameter used p.triggerEnrolmentRequest().encAlgorithm() = OCTETSTRING(0, nullptr); // No parameter used p.triggerEnrolmentRequest().privateKey() = OCTETSTRING(0, nullptr); // No parameter used p.triggerEnrolmentRequest().compressedPublickey() = OCTETSTRING(0, nullptr); // No parameter used // Pass it to the ports if any to_all_upper_ports(p, params); } else { loggers::get_instance().warning("ConfigRsuSimulatorLayer::process_ut_pki_trigger: Unsupported protocol"); return -1; } return 0; } ConfigRsuSimulatorLayerFactory ConfigRsuSimulatorLayerFactory::_f; ConfigRsuSimulatorLayerFactory ConfigRsuSimulatorLayerFactory::_f;
ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorLayer.hh +1 −0 Original line number Original line Diff line number Diff line Loading @@ -48,5 +48,6 @@ private: int process_ut_cam_changecurvature_data(const OCTETSTRING& data, params& params); int process_ut_cam_changecurvature_data(const OCTETSTRING& data, params& params); int process_ut_cam_changeheading_data(const OCTETSTRING& data, params& params); int process_ut_cam_changeheading_data(const OCTETSTRING& data, params& params); int process_ut_geonetworking_trigger(const OCTETSTRING& data, params& params); int process_ut_geonetworking_trigger(const OCTETSTRING& data, params& params); int process_ut_pki_trigger(const OCTETSTRING& data, params& params); }; // End of class ConfigRsuSimulatorLayer }; // End of class ConfigRsuSimulatorLayer
ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorPort.cc +10 −0 Original line number Original line Diff line number Diff line Loading @@ -211,6 +211,16 @@ namespace ItsRSUsSimulator__TestSystem { incoming_message(p_ind); incoming_message(p_ind); } } void ConfigRsuSimulatorPort::receiveMsg (const LibItsPki__TypesAndValues::UtPkiInitialize& 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 LibItsPki__TypesAndValues::UtPkiTrigger& p_ind, const params& p_params) { void ConfigRsuSimulatorPort::receiveMsg (const LibItsPki__TypesAndValues::UtPkiTrigger& p_ind, const params& p_params) { loggers::get_instance().log_msg(">>> ConfigRsuSimulatorPort::receive_msg: ", p_ind); loggers::get_instance().log_msg(">>> ConfigRsuSimulatorPort::receive_msg: ", p_ind); // Sanity check // Sanity check Loading
ccsrc/Protocols/Tcp/tcp_layer.cc +22 −2 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,11 @@ tcp_layer::tcp_layer(const std::string & p_type, const std::string & param) : la } else if (it->second.compare("1") == 0) { } else if (it->second.compare("1") == 0) { set_socket_debugging(true); set_socket_debugging(true); } } bool server_mode = false; it = _params.find(params::server_mode); if (it != _params.cend()) { server_mode = (1 == std::stoi(it->second)); } it = _params.find(params::server); it = _params.find(params::server); if (it == _params.cend()) { if (it == _params.cend()) { _params.insert(std::pair<std::string, std::string>(std::string("server"), "127.0.0.1")); _params.insert(std::pair<std::string, std::string>(std::string("server"), "127.0.0.1")); Loading @@ -46,10 +51,25 @@ tcp_layer::tcp_layer(const std::string & p_type, const std::string & param) : la if (!parameter_set(params::port.c_str(), _params[params::port].c_str())) { if (!parameter_set(params::port.c_str(), _params[params::port].c_str())) { loggers::get_instance().warning("tcp_layer::set_parameter: Unprocessed parameter: %s", params::server.c_str()); loggers::get_instance().warning("tcp_layer::set_parameter: Unprocessed parameter: %s", params::server.c_str()); } } it = _params.find(params::local_port); if (it == _params.cend()) { if (_params[params::use_ssl].compare("0") == 0) { // Use standard HTTP local_port _params.insert(std::pair<std::string, std::string>(std::string("local_port"), "80")); } else { // Use standard HTTPS local_port _params.insert(std::pair<std::string, std::string>(std::string("local_port"), "443")); } } if (!parameter_set(params::local_port.c_str(), _params[params::local_port].c_str())) { loggers::get_instance().warning("tcp_layer::set_parameter: Unprocessed parameter: %s", params::local_port.c_str()); } parameter_set(use_connection_ASPs_name(), "yes"); parameter_set(use_connection_ASPs_name(), (!server_mode) ? "yes" : "no"); parameter_set(server_backlog_name(), "1024"); parameter_set(server_backlog_name(), "1024"); set_server_mode(false); loggers::get_instance().log("tcp_layer::tcp_layer: server_mode=%x", server_mode); set_server_mode(server_mode); if (server_mode) { parameter_set("serverPort", _params[params::local_port].c_str()); } set_ttcn_buffer_usercontrol(false); set_ttcn_buffer_usercontrol(false); set_handle_half_close(true); set_handle_half_close(true); Loading
ccsrc/Protocols/UDP/udp_layer.cc +2 −1 Original line number Original line Diff line number Diff line Loading @@ -32,7 +32,8 @@ udp_layer::udp_layer(const std::string & p_type, const std::string & param) : la // Initialize the socket // Initialize the socket _saddr.sin_family = AF_INET; _saddr.sin_family = AF_INET; _saddr.sin_addr.s_addr = INADDR_ANY; _saddr.sin_addr.s_addr = htonl(INADDR_ANY); loggers::get_instance().log("udp_layer::udp_layer: Port tolisten=%d", std::atoi(_params["src_port"].c_str())); _saddr.sin_port = htons(std::atoi(_params["src_port"].c_str())); _saddr.sin_port = htons(std::atoi(_params["src_port"].c_str())); // Create socket // Create socket _fd = ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); _fd = ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); Loading