Loading ccsrc/Ports/LibIts_ports/DENM_ports/UpperTesterPort_DENM.partC +23 −5 Original line number Diff line number Diff line Loading @@ -93,16 +93,34 @@ namespace LibItsDenm__TestSystem { loggers::get_instance().set_stop_time(_time_key, duration); } void UpperTesterPort::outgoing_send(const LibItsDenm__TypesAndValues::UtDenmTrigger& /*send_par*/) void UpperTesterPort::outgoing_send(const LibItsDenm__TypesAndValues::UtDenmTrigger& send_par) { loggers::get_instance().log_msg(">>> UppertesterPort::outgoing_send: ", send_par); float duration; loggers::get_instance().set_start_time(_time_key); static_cast<UpperTesterDenmLayer *>(_layer)->sendMsg(send_par, _layer_params); loggers::get_instance().set_stop_time(_time_key, duration); } void UpperTesterPort::outgoing_send(const LibItsDenm__TypesAndValues::UtDenmUpdate& /*send_par*/) void UpperTesterPort::outgoing_send(const LibItsDenm__TypesAndValues::UtDenmUpdate& send_par) { loggers::get_instance().log_msg(">>> UppertesterPort::outgoing_send: ", send_par); float duration; loggers::get_instance().set_start_time(_time_key); static_cast<UpperTesterDenmLayer *>(_layer)->sendMsg(send_par, _layer_params); loggers::get_instance().set_stop_time(_time_key, duration); } void UpperTesterPort::outgoing_send(const LibItsDenm__TypesAndValues::UtDenmTermination& /*send_par*/) void UpperTesterPort::outgoing_send(const LibItsDenm__TypesAndValues::UtDenmTermination& send_par) { loggers::get_instance().log_msg(">>> UppertesterPort::outgoing_send: ", send_par); float duration; loggers::get_instance().set_start_time(_time_key); static_cast<UpperTesterDenmLayer *>(_layer)->sendMsg(send_par, _layer_params); loggers::get_instance().set_stop_time(_time_key, duration); } void UpperTesterPort::outgoing_send(const LibItsDenm__TypesAndValues::UtDenmChangePosition& send_par) Loading Loading @@ -132,10 +150,10 @@ namespace LibItsDenm__TestSystem { return; } //loggers::get_instance().log("UpperTesterPort::receive_msg: %s", p_ind.get_descriptor()->name); loggers::get_instance().log("UpperTesterPort::receive_msg: %s", p_ind.get_descriptor()->name); if (std::string(p_ind.get_descriptor()->name).compare("@LibItsDenm_TypesAndValues.UtDenmResults") == 0) { // TODO To be refined incoming_message((LibItsDenm__TypesAndValues::UtDenmResults&)p_ind); } } // TODO Implement UtDenmEventInd part } } /* end of namespace */ ccsrc/Protocols/DENM/DENMLayer.cc +6 −0 Original line number Diff line number Diff line Loading @@ -29,9 +29,15 @@ void DENMLayer::sendData(OCTETSTRING& data, Params& params) { void DENMLayer::receiveData(OCTETSTRING& data, Params& params) { loggers::get_instance().log_msg(">>> DENMLayer::receiveData: ", data); // Decode the payload LibItsDenm__TestSystem::DenmInd p; _codec.decode(data, p.msgIn()); if (!p.msgIn().is_bound()) { // Discard it return; } // else, continue // Process lower layer data // gnNextHeader Loading ccsrc/Protocols/Pcap/PcapLayer.cc +1 −1 Original line number Diff line number Diff line Loading @@ -201,7 +201,7 @@ void PcapLayer::sendData(OCTETSTRING& data, Params& params) { } void PcapLayer::receiveData(OCTETSTRING& data, Params& params) { //loggers::get_instance().log(">>> PcapLayer::receiveData: Received %d bytes", data.lengthof()); loggers::get_instance().log(">>> PcapLayer::receiveData: Received %d bytes", data.lengthof()); loggers::get_instance().log_to_hexa("Packet dump", data); // Pass the packet to the upper layers Loading ccsrc/Protocols/UpperTester/UpperTesterDenmCodec.cc +31 −15 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ int UpperTesterDenmCodec::encode (const Record_Type& msg, OCTETSTRING& data) flags |= 0x02; } encoding_buffer.put_c(flags); loggers::get_instance().log_to_hexa("UpperTesterDenmCodec::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<unsigned char>(UpperTesterDenmCodec::c_utDenmUpdate)); Loading Loading @@ -73,6 +74,7 @@ int UpperTesterDenmCodec::encode (const Record_Type& msg, OCTETSTRING& data) flags |= 0x02; } encoding_buffer.put_c(flags); loggers::get_instance().log_to_hexa("UpperTesterDenmCodec::encode: flags=", encoding_buffer); } else if (std::string(msg.get_descriptor()->name).compare("@LibItsDenm_TypesAndValues.UtDenmTermination") == 0) { encoding_buffer.put_c(static_cast<unsigned char>(UpperTesterDenmCodec::c_utDenmTermination)); } else { // Error Loading Loading @@ -101,11 +103,29 @@ int UpperTesterDenmCodec::encode_ (const Base_Type& type, const TTCN_Typedescrip loggers::get_instance().warning("UpperTesterDenmCodec::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) ) { // Pad with three bytes encoding_buffer.put_c((unsigned char)0x00); encoding_buffer.put_c((unsigned char)0x00); encoding_buffer.put_c((unsigned char)0x00); } else if ( (s.rfind(".transmissionInterval") != string::npos) || (s.rfind(".repetitionInterval") != string::npos) ) { // Pad with two bytes encoding_buffer.put_c((unsigned char)0x00); encoding_buffer.put_c((unsigned char)0x00); } else if (s.rfind(".relevanceTrafficDirection") != string::npos) { // Pad with one byte encoding_buffer.put_c((unsigned char)0x00); } else if (std::string(r.fld_name(i)).compare("alacarte") == 0) { // Add empty field length loggers::get_instance().log("UpperTesterDenmCodec::encode_: alacarte is missing, add 0x00"); encoding_buffer.put_c(0x00); } } } // End of 'for' statement } else { std::string s(field_descriptor.name); Loading Loading @@ -138,12 +158,10 @@ int UpperTesterDenmCodec::encode_ (const Base_Type& type, const TTCN_Typedescrip (s.rfind(".validityDuration") != string::npos) || (s.rfind(".repetitionDuration") != string::npos) ) { if (type.is_present()) { const OPTIONAL<INTEGER> &o = dynamic_cast<const OPTIONAL<INTEGER> &>(type); const INTEGER& i = static_cast<const INTEGER&>(*o.get_opt_value()); loggers::get_instance().log_msg("UpperTesterDenmCodec::encode_: i=", i); encoding_buffer.put_string(int2oct(i, 3)); } } else if ( (s.rfind(".informationQuality") != string::npos) || (s.rfind(".causeCode") != string::npos) || Loading @@ -160,11 +178,9 @@ int UpperTesterDenmCodec::encode_ (const Base_Type& type, const TTCN_Typedescrip (s.rfind(".transmissionInterval") != string::npos) || (s.rfind(".repetitionInterval") != string::npos) ) { if (type.is_present()) { const OPTIONAL<INTEGER> &o = dynamic_cast<const OPTIONAL<INTEGER> &>(type); const INTEGER& i = static_cast<const INTEGER&>(*o.get_opt_value()); encoding_buffer.put_string(int2oct(i, 2)); } } else if (s.rfind(".originatingStationID") != string::npos) { const INTEGER& i = static_cast<const INTEGER&>(type); encoding_buffer.put_string(int2oct(i, 4)); Loading ccsrc/Protocols/UpperTester/UpperTesterDenmLayer.cc +15 −9 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmIniti OCTETSTRING data; _codec.encode((const Record_Type &)send_par, data); // Update parameters Params par(params); // FIXME Review all const Param& in method declarations sendData(data, params); } Loading @@ -28,7 +27,6 @@ void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmChang OCTETSTRING data; _codec.encode((const Record_Type &)send_par, data); // Update parameters Params par(params); // FIXME Review all const Param& in method declarations sendData(data, params); } Loading @@ -40,11 +38,10 @@ void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmChang OCTETSTRING data; _codec.encode((const Record_Type &)send_par, data); // Update parameters Params par(params); // FIXME Review all const Param& in method declarations sendData(data, params); } /*void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmTrigger& send_par, Params& params) void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmTrigger& send_par, Params& params) { loggers::get_instance().log_msg(">>> UpperTesterDenmLayer::sendMsg", send_par); Loading @@ -52,11 +49,21 @@ void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmChang OCTETSTRING data; _codec.encode((const Record_Type &)send_par, data); // Update parameters Params par(params); // FIXME Review all const Param& in method declarations sendData(data, params); }*/ } void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmUpdate& send_par, Params& params) { loggers::get_instance().log_msg(">>> UpperTesterDenmLayer::sendMsg", send_par); // Encode UpperTester PDU OCTETSTRING data; _codec.encode((const Record_Type &)send_par, data); // Update parameters sendData(data, params); } /*void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtAutoInteropTrigger& send_par, Params& params) void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmTermination& send_par, Params& params) { loggers::get_instance().log_msg(">>> UpperTesterDenmLayer::sendMsg", send_par); Loading @@ -64,9 +71,8 @@ void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmChang OCTETSTRING data; _codec.encode((const Record_Type &)send_par, data); // Update parameters Params par(params); // FIXME Review all const Param& in method declarations sendData(data, params); }*/ } void UpperTesterDenmLayer::sendData(OCTETSTRING& data, Params& params) { loggers::get_instance().log_msg(">>> UpperTesterDenmLayer::sendData: ", data); Loading Loading
ccsrc/Ports/LibIts_ports/DENM_ports/UpperTesterPort_DENM.partC +23 −5 Original line number Diff line number Diff line Loading @@ -93,16 +93,34 @@ namespace LibItsDenm__TestSystem { loggers::get_instance().set_stop_time(_time_key, duration); } void UpperTesterPort::outgoing_send(const LibItsDenm__TypesAndValues::UtDenmTrigger& /*send_par*/) void UpperTesterPort::outgoing_send(const LibItsDenm__TypesAndValues::UtDenmTrigger& send_par) { loggers::get_instance().log_msg(">>> UppertesterPort::outgoing_send: ", send_par); float duration; loggers::get_instance().set_start_time(_time_key); static_cast<UpperTesterDenmLayer *>(_layer)->sendMsg(send_par, _layer_params); loggers::get_instance().set_stop_time(_time_key, duration); } void UpperTesterPort::outgoing_send(const LibItsDenm__TypesAndValues::UtDenmUpdate& /*send_par*/) void UpperTesterPort::outgoing_send(const LibItsDenm__TypesAndValues::UtDenmUpdate& send_par) { loggers::get_instance().log_msg(">>> UppertesterPort::outgoing_send: ", send_par); float duration; loggers::get_instance().set_start_time(_time_key); static_cast<UpperTesterDenmLayer *>(_layer)->sendMsg(send_par, _layer_params); loggers::get_instance().set_stop_time(_time_key, duration); } void UpperTesterPort::outgoing_send(const LibItsDenm__TypesAndValues::UtDenmTermination& /*send_par*/) void UpperTesterPort::outgoing_send(const LibItsDenm__TypesAndValues::UtDenmTermination& send_par) { loggers::get_instance().log_msg(">>> UppertesterPort::outgoing_send: ", send_par); float duration; loggers::get_instance().set_start_time(_time_key); static_cast<UpperTesterDenmLayer *>(_layer)->sendMsg(send_par, _layer_params); loggers::get_instance().set_stop_time(_time_key, duration); } void UpperTesterPort::outgoing_send(const LibItsDenm__TypesAndValues::UtDenmChangePosition& send_par) Loading Loading @@ -132,10 +150,10 @@ namespace LibItsDenm__TestSystem { return; } //loggers::get_instance().log("UpperTesterPort::receive_msg: %s", p_ind.get_descriptor()->name); loggers::get_instance().log("UpperTesterPort::receive_msg: %s", p_ind.get_descriptor()->name); if (std::string(p_ind.get_descriptor()->name).compare("@LibItsDenm_TypesAndValues.UtDenmResults") == 0) { // TODO To be refined incoming_message((LibItsDenm__TypesAndValues::UtDenmResults&)p_ind); } } // TODO Implement UtDenmEventInd part } } /* end of namespace */
ccsrc/Protocols/DENM/DENMLayer.cc +6 −0 Original line number Diff line number Diff line Loading @@ -29,9 +29,15 @@ void DENMLayer::sendData(OCTETSTRING& data, Params& params) { void DENMLayer::receiveData(OCTETSTRING& data, Params& params) { loggers::get_instance().log_msg(">>> DENMLayer::receiveData: ", data); // Decode the payload LibItsDenm__TestSystem::DenmInd p; _codec.decode(data, p.msgIn()); if (!p.msgIn().is_bound()) { // Discard it return; } // else, continue // Process lower layer data // gnNextHeader Loading
ccsrc/Protocols/Pcap/PcapLayer.cc +1 −1 Original line number Diff line number Diff line Loading @@ -201,7 +201,7 @@ void PcapLayer::sendData(OCTETSTRING& data, Params& params) { } void PcapLayer::receiveData(OCTETSTRING& data, Params& params) { //loggers::get_instance().log(">>> PcapLayer::receiveData: Received %d bytes", data.lengthof()); loggers::get_instance().log(">>> PcapLayer::receiveData: Received %d bytes", data.lengthof()); loggers::get_instance().log_to_hexa("Packet dump", data); // Pass the packet to the upper layers Loading
ccsrc/Protocols/UpperTester/UpperTesterDenmCodec.cc +31 −15 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ int UpperTesterDenmCodec::encode (const Record_Type& msg, OCTETSTRING& data) flags |= 0x02; } encoding_buffer.put_c(flags); loggers::get_instance().log_to_hexa("UpperTesterDenmCodec::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<unsigned char>(UpperTesterDenmCodec::c_utDenmUpdate)); Loading Loading @@ -73,6 +74,7 @@ int UpperTesterDenmCodec::encode (const Record_Type& msg, OCTETSTRING& data) flags |= 0x02; } encoding_buffer.put_c(flags); loggers::get_instance().log_to_hexa("UpperTesterDenmCodec::encode: flags=", encoding_buffer); } else if (std::string(msg.get_descriptor()->name).compare("@LibItsDenm_TypesAndValues.UtDenmTermination") == 0) { encoding_buffer.put_c(static_cast<unsigned char>(UpperTesterDenmCodec::c_utDenmTermination)); } else { // Error Loading Loading @@ -101,11 +103,29 @@ int UpperTesterDenmCodec::encode_ (const Base_Type& type, const TTCN_Typedescrip loggers::get_instance().warning("UpperTesterDenmCodec::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) ) { // Pad with three bytes encoding_buffer.put_c((unsigned char)0x00); encoding_buffer.put_c((unsigned char)0x00); encoding_buffer.put_c((unsigned char)0x00); } else if ( (s.rfind(".transmissionInterval") != string::npos) || (s.rfind(".repetitionInterval") != string::npos) ) { // Pad with two bytes encoding_buffer.put_c((unsigned char)0x00); encoding_buffer.put_c((unsigned char)0x00); } else if (s.rfind(".relevanceTrafficDirection") != string::npos) { // Pad with one byte encoding_buffer.put_c((unsigned char)0x00); } else if (std::string(r.fld_name(i)).compare("alacarte") == 0) { // Add empty field length loggers::get_instance().log("UpperTesterDenmCodec::encode_: alacarte is missing, add 0x00"); encoding_buffer.put_c(0x00); } } } // End of 'for' statement } else { std::string s(field_descriptor.name); Loading Loading @@ -138,12 +158,10 @@ int UpperTesterDenmCodec::encode_ (const Base_Type& type, const TTCN_Typedescrip (s.rfind(".validityDuration") != string::npos) || (s.rfind(".repetitionDuration") != string::npos) ) { if (type.is_present()) { const OPTIONAL<INTEGER> &o = dynamic_cast<const OPTIONAL<INTEGER> &>(type); const INTEGER& i = static_cast<const INTEGER&>(*o.get_opt_value()); loggers::get_instance().log_msg("UpperTesterDenmCodec::encode_: i=", i); encoding_buffer.put_string(int2oct(i, 3)); } } else if ( (s.rfind(".informationQuality") != string::npos) || (s.rfind(".causeCode") != string::npos) || Loading @@ -160,11 +178,9 @@ int UpperTesterDenmCodec::encode_ (const Base_Type& type, const TTCN_Typedescrip (s.rfind(".transmissionInterval") != string::npos) || (s.rfind(".repetitionInterval") != string::npos) ) { if (type.is_present()) { const OPTIONAL<INTEGER> &o = dynamic_cast<const OPTIONAL<INTEGER> &>(type); const INTEGER& i = static_cast<const INTEGER&>(*o.get_opt_value()); encoding_buffer.put_string(int2oct(i, 2)); } } else if (s.rfind(".originatingStationID") != string::npos) { const INTEGER& i = static_cast<const INTEGER&>(type); encoding_buffer.put_string(int2oct(i, 4)); Loading
ccsrc/Protocols/UpperTester/UpperTesterDenmLayer.cc +15 −9 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmIniti OCTETSTRING data; _codec.encode((const Record_Type &)send_par, data); // Update parameters Params par(params); // FIXME Review all const Param& in method declarations sendData(data, params); } Loading @@ -28,7 +27,6 @@ void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmChang OCTETSTRING data; _codec.encode((const Record_Type &)send_par, data); // Update parameters Params par(params); // FIXME Review all const Param& in method declarations sendData(data, params); } Loading @@ -40,11 +38,10 @@ void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmChang OCTETSTRING data; _codec.encode((const Record_Type &)send_par, data); // Update parameters Params par(params); // FIXME Review all const Param& in method declarations sendData(data, params); } /*void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmTrigger& send_par, Params& params) void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmTrigger& send_par, Params& params) { loggers::get_instance().log_msg(">>> UpperTesterDenmLayer::sendMsg", send_par); Loading @@ -52,11 +49,21 @@ void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmChang OCTETSTRING data; _codec.encode((const Record_Type &)send_par, data); // Update parameters Params par(params); // FIXME Review all const Param& in method declarations sendData(data, params); }*/ } void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmUpdate& send_par, Params& params) { loggers::get_instance().log_msg(">>> UpperTesterDenmLayer::sendMsg", send_par); // Encode UpperTester PDU OCTETSTRING data; _codec.encode((const Record_Type &)send_par, data); // Update parameters sendData(data, params); } /*void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtAutoInteropTrigger& send_par, Params& params) void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmTermination& send_par, Params& params) { loggers::get_instance().log_msg(">>> UpperTesterDenmLayer::sendMsg", send_par); Loading @@ -64,9 +71,8 @@ void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmChang OCTETSTRING data; _codec.encode((const Record_Type &)send_par, data); // Update parameters Params par(params); // FIXME Review all const Param& in method declarations sendData(data, params); }*/ } void UpperTesterDenmLayer::sendData(OCTETSTRING& data, Params& params) { loggers::get_instance().log_msg(">>> UpperTesterDenmLayer::sendData: ", data); Loading