Commit f4aa01bc authored by Denis Filatov's avatar Denis Filatov
Browse files

Merge branch 'STF525' of https://forge.etsi.org/gitlab/ITS/ITS into STF525

parents df975a0f 7c8f25e2
#include <TTCN3.hh>
#include "loggers.hh"
#include "registration.hh"
#include "cam_layer.hh"
//=============================================================================
namespace LibItsCam__TestSystem {
......@@ -63,9 +70,36 @@ void AdapterControlPort::outgoing_send(const LibItsCommon__TypesAndValues::AcGns
}
void AdapterControlPort::outgoing_send(const LibItsCommon__TypesAndValues::AcSecPrimitive& /*send_par*/)
void AdapterControlPort::outgoing_send(const LibItsCommon__TypesAndValues::AcSecPrimitive& send_par)
{
loggers::get_instance().log_msg(">>> AdapterControlPort::outgoing_send: ", send_par);
// Register this object for AdapterControlPort
cam_layer* p = registration<cam_layer>::get_instance().get_item(std::string("CAM"));
if (p != NULL) {
loggers::get_instance().log("AdapterControlPort::outgoing_send: Got GN layer %p", p);
LibItsCommon__TypesAndValues::AdapterControlResults response;
response.acSecResponse() = BOOLEAN(true);
if (send_par.ischosen(LibItsCommon__TypesAndValues::AcSecPrimitive::ALT_acEnableSecurity)) {
loggers::get_instance().log("AdapterControlPort::outgoing_send: Enable secured mode");
std::string str(static_cast<const char*>(send_par.acEnableSecurity().certificateId()));
if (p->enable_secured_mode(str, send_par.acEnableSecurity().enforceSecurity()) == -1) {
response.acSecResponse() = BOOLEAN(false);
}
} else if (send_par.ischosen(LibItsCommon__TypesAndValues::AcSecPrimitive::ALT_acDisableSecurity)) {
loggers::get_instance().log("AdapterControlPort::outgoing_send: Disable secured mode");
if (p->disable_secured_mode() == -1) {
response.acSecResponse() = BOOLEAN(false);
}
} else {
response.acSecResponse() = BOOLEAN(false);
}
// Send response
loggers::get_instance().log_msg("AdapterControlPort::outgoing_send: Send response: ", response);
incoming_message(response);
} else {
loggers::get_instance().error("AdapterControlPort::outgoing_send: %s not registered", "geoNetworkingPort");
}
}
} /* end of namespace */
#include <TTCN3.hh>
#include "loggers.hh"
#include "registration.hh"
#include "denm_layer.hh"
//=============================================================================
namespace LibItsDenm__TestSystem {
......@@ -63,8 +70,35 @@ void AdapterControlPort::outgoing_send(const LibItsCommon__TypesAndValues::AcGns
}
void AdapterControlPort::outgoing_send(const LibItsCommon__TypesAndValues::AcSecPrimitive& /*send_par*/)
{
void AdapterControlPort::outgoing_send(const LibItsCommon__TypesAndValues::AcSecPrimitive& send_par)
{ loggers::get_instance().log_msg(">>> AdapterControlPort::outgoing_send: ", send_par);
// Register this object for AdapterControlPort
denm_layer* p = registration<denm_layer>::get_instance().get_item(std::string("DENM"));
if (p != NULL) {
loggers::get_instance().log("AdapterControlPort::outgoing_send: Got GN layer %p", p);
LibItsCommon__TypesAndValues::AdapterControlResults response;
response.acSecResponse() = BOOLEAN(true);
if (send_par.ischosen(LibItsCommon__TypesAndValues::AcSecPrimitive::ALT_acEnableSecurity)) {
loggers::get_instance().log("AdapterControlPort::outgoing_send: Enable secured mode");
std::string str(static_cast<const char*>(send_par.acEnableSecurity().certificateId()));
if (p->enable_secured_mode(str, send_par.acEnableSecurity().enforceSecurity()) == -1) {
response.acSecResponse() = BOOLEAN(false);
}
} else if (send_par.ischosen(LibItsCommon__TypesAndValues::AcSecPrimitive::ALT_acDisableSecurity)) {
loggers::get_instance().log("AdapterControlPort::outgoing_send: Disable secured mode");
if (p->disable_secured_mode() == -1) {
response.acSecResponse() = BOOLEAN(false);
}
} else {
response.acSecResponse() = BOOLEAN(false);
}
// Send response
loggers::get_instance().log_msg("AdapterControlPort::outgoing_send: Send response: ", response);
incoming_message(response);
} else {
loggers::get_instance().error("AdapterControlPort::outgoing_send: %s not registered", "geoNetworkingPort");
}
}
......
......@@ -2,6 +2,8 @@
#include "cam_layer_factory.hh"
#include "registration.hh"
#include "loggers.hh"
cam_layer::cam_layer(const std::string & p_type, const std::string & param) : t_layer<LibItsCam__TestSystem::CamPort>(p_type), _params(), _codec() {
......@@ -10,6 +12,10 @@ cam_layer::cam_layer(const std::string & p_type, const std::string & param) : t_
params::convert(_params, param);
_params.insert(std::make_pair<std::string, std::string>("its_aid", "36")); // ETSI TS 102 965 V1.2.1 (2015-06)
_params.insert(std::make_pair<std::string, std::string>("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);
registration<cam_layer>::get_instance().add_item(p_type, this);
}
void cam_layer::sendMsg(const LibItsCam__TestSystem::CamReq& p, params& params){
......@@ -120,4 +126,16 @@ void cam_layer::receive_data(OCTETSTRING& data, params& params)
to_all_upper_ports(p, params);
}
int cam_layer::enable_secured_mode(const std::string& p_certificate_id, const boolean p_enforce_security) {
loggers::get_instance().log(">>> cam_layer::enable_secured_mode: '%s' - %x", p_certificate_id.c_str(), p_enforce_security);
return 0;
}
int cam_layer::disable_secured_mode() {
loggers::get_instance().log(">>> cam_layer::disable_secured_mode");
return 0;
}
cam_layer_factory cam_layer_factory::_f;
......@@ -68,5 +68,10 @@ public: //! \publicsection
* \param[in] p_params Some lower layers parameters values when data was received
*/
virtual void receive_data(OCTETSTRING& data, params& info);
int enable_secured_mode(const std::string& p_certificate_id, const boolean p_enforce_security);
int disable_secured_mode();
}; // End of class cam_layer
......@@ -2,6 +2,8 @@
#include "denm_layer_factory.hh"
#include "registration.hh"
#include "loggers.hh"
denm_layer::denm_layer(const std::string & p_type, const std::string & param) : t_layer<LibItsDenm__TestSystem::DenmPort>(p_type), _params(), _codec() {
......@@ -10,6 +12,10 @@ denm_layer::denm_layer(const std::string & p_type, const std::string & param) :
params::convert(_params, param);
_params.insert(std::make_pair<std::string, std::string>("its_aid", "37")); // ETSI TS 102 965 V1.2.1 (2015-06)
_params.insert(std::make_pair<std::string, std::string>("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);
registration<denm_layer>::get_instance().add_item(p_type, this);
}
void denm_layer::sendMsg(const LibItsDenm__TestSystem::DenmReq& p, params& params){
......@@ -119,4 +125,16 @@ void denm_layer::receive_data(OCTETSTRING& data, params& params)
to_all_upper_ports(p, params);
}
int denm_layer::enable_secured_mode(const std::string& p_certificate_id, const boolean p_enforce_security) {
loggers::get_instance().log(">>> denm_layer::enable_secured_mode: '%s' - %x", p_certificate_id.c_str(), p_enforce_security);
return 0;
}
int denm_layer::disable_secured_mode() {
loggers::get_instance().log(">>> denm_layer::disable_secured_mode");
return 0;
}
denm_layer_factory denm_layer_factory::_f;
......@@ -68,5 +68,10 @@ public: //! \publicsection
* \param[in] p_params Some lower layers parameters values when data was received
*/
virtual void receive_data(OCTETSTRING& data, params& info);
int enable_secured_mode(const std::string& p_certificate_id, const boolean p_enforce_security);
int disable_secured_mode();
}; // End of class denm_layer
......@@ -12,6 +12,8 @@
#include "LibItsHttp_MessageBodyTypes.hh"
#include "LibItsHttp_XmlMessageBodyTypes.hh"
#include "http_etsi_ieee1609dot2_codec.hh" // FIXME Work-around, to be removed
int http_codec::encode (const LibItsHttp__TypesAndValues::HttpMessage& msg, OCTETSTRING& data)
{
loggers::get_instance().log_msg(">>> http_codec::encode: ", (const Base_Type&)msg);
......@@ -391,10 +393,11 @@ int http_codec::encode_body(const LibItsHttp__MessageBodyTypes::HttpMessageBody&
std::map<std::string, std::unique_ptr<codec<Record_Type, Record_Type> > >::const_iterator it;
bool processed = false;
if (p_content_type.find("x-its") != std::string::npos) {
loggers::get_instance().log("http_codec::encode_body: Find x-its");
it = _codecs.find("http_its"); // TODO Use params
if (it != _codecs.cend()) {
loggers::get_instance().log("http_codec::encode_body: Call 'http_etsi_ieee1609dot2_codec'");
_codecs["http_its"]->encode((Record_Type&)binary_body, p_encoding_buffer); // TODO Use params
loggers::get_instance().log("http_codec::encode_body: Call '%s'", it->first.c_str());
_codecs["http_its"]->encode((Record_Type&)binary_body.ieee1609dot2__data(), p_encoding_buffer); // TODO Use params
processed = true;
}
} // TODO Add new HTTP message codec here
......@@ -414,7 +417,6 @@ int http_codec::encode_body(const LibItsHttp__MessageBodyTypes::HttpMessageBody&
} else {
std::map<std::string, std::unique_ptr<codec<Record_Type, Record_Type> > >::const_iterator it;
bool processed = false;
loggers::get_instance().log("http_codec::encode_body: # of codecs=%d - %p", _codecs.size(), this);
loggers::get_instance().log("http_codec::encode_body: Content-type:'%s'", p_content_type.c_str());
if (p_content_type.find("held") != std::string::npos) {
it = _codecs.find("held"); // TODO Use params
......@@ -450,8 +452,8 @@ int http_codec::encode_body(const LibItsHttp__MessageBodyTypes::HttpMessageBody&
int http_codec::decode_body(TTCN_Buffer& decoding_buffer, LibItsHttp__MessageBodyTypes::HttpMessageBody& message_body, const std::string& p_content_type) {
loggers::get_instance().log(">>> http_codec::decode_body");
loggers::get_instance().log_to_hexa("http_codec::decode_body", decoding_buffer);
loggers::get_instance().log("http_codec::decode_body: Content-Type=%s", p_content_type.c_str());
loggers::get_instance().log("http_codec::decode_body: # of codecs=%d - %p", _codecs.size(), this);
loggers::get_instance().log("http_codec::decode_body: Content-Type=%s", p_content_type.c_str());
// Sanity checks
if (decoding_buffer.get_len() - decoding_buffer.get_pos() <= 0) {
......@@ -502,29 +504,38 @@ int http_codec::decode_body(TTCN_Buffer& decoding_buffer, LibItsHttp__MessageBod
loggers::get_instance().log("http_codec::decode_body: Binary mode: %x", _dc.is_binary);
LibItsHttp__MessageBodyTypes::HttpMessageBody v;
if (_dc.is_binary == 0x01) {
LibItsHttp__BinaryMessageBodyTypes::BinaryBody bb;
LibItsHttp__BinaryMessageBodyTypes::BinaryBody binary_body;
std::map<std::string, std::unique_ptr<codec<Record_Type, Record_Type> > >::const_iterator it;
bool processed = false;
// TODO To be refined adding a string identifier to check which codec to use. E.g. held_code.id() returns "xmlns=\"urn:ietf:params:xml:ns:geopriv:held\">"
if (p_content_type.find("x-its") != std::string::npos) {
loggers::get_instance().log("http_codec::decode_body: Find 'x-its'");
/*std::for_each(
_codecs.cbegin(),
_codecs.cend(),
[](const std::pair<const std::string, std::unique_ptr<codec<Record_Type, Record_Type> > >& p)
{
loggers::get_instance().log("http_codec::decode_body: Key='%s', %p", p.first.c_str(), p.second.get());
}
);*/
if (_codecs["http_its"].get() != nullptr) { // TODO Use params
loggers::get_instance().log("http_codec::decode_body: Call 'http_etsi_ieee1609dot2_codec'");
_codecs["http_its"]->decode(body, bb.ieee1609dot2__data());
processed = true;
it = _codecs.cbegin();//_codecs.find("http_its");
if (it != _codecs.cend()) {
/***
FIXME:
This code generate a codedump, I don't undertsand the reason.
The same code works file for Ng112 HELD & LOST codec. Ununderstandable!!!!
==> Use a patch
if (_codecs["http_its"].get() != nullptr) {
loggers::get_instance().log("http_codec::decode_body: Call 'http_etsi_ieee1609dot2_codec'");
if (_codecs["http_its"]->decode(body, (Record_Type&)binary_body) == 0) {
processed = true;
}
}*/
loggers::get_instance().log("http_codec::decode_body: Call '%s'", it->first.c_str());
http_etsi_ieee1609dot2_codec* codec = new http_etsi_ieee1609dot2_codec();
if (codec->decode(body, binary_body.ieee1609dot2__data()) == 0) {
message_body.binary__body() = binary_body;
processed = true;
}
delete codec;
}
} // TODO Add new HTTP message codec here
if (!processed) {
loggers::get_instance().warning("http_codec::decode_body: Unsupported HTTP codec, use raw field as default");
bb.raw() = body;
message_body.binary__body() = bb;
binary_body.raw() = body;
message_body.binary__body() = binary_body;
}
} else {
// Convert into string
......
......@@ -46,7 +46,7 @@ LibItsHttp__TypesAndValues::HttpMessage>
std::map<std::string, std::unique_ptr<codec<Record_Type, Record_Type> > > _codecs;
public:
explicit http_codec() : codec<LibItsHttp__TypesAndValues::HttpMessage, LibItsHttp__TypesAndValues::HttpMessage>(), _ec(), _dc(), _codecs() { };
virtual ~http_codec() { };
virtual ~http_codec() { _codecs.clear(); };
virtual int encode (const LibItsHttp__TypesAndValues::HttpMessage&, OCTETSTRING& data);
virtual int decode (const OCTETSTRING& data, LibItsHttp__TypesAndValues::HttpMessage&, params* params = NULL);
......
......@@ -8,36 +8,31 @@
#include "loggers.hh"
int http_etsi_ieee1609dot2_codec::encode (const LibItsHttp__BinaryMessageBodyTypes::BinaryBody& p_binary_body, OCTETSTRING& p_data)
int http_etsi_ieee1609dot2_codec::encode (const IEEE1609dot2::Ieee1609Dot2Data& p_ieee_1609dot2_data, OCTETSTRING& p_data)
{
loggers::get_instance().log_msg(">>> http_etsi_ieee1609dot2_codec::encode: ", p_binary_body);
loggers::get_instance().log_msg(">>> http_etsi_ieee1609dot2_codec::encode: ", p_ieee_1609dot2_data);
if (p_binary_body.ischosen(LibItsHttp__BinaryMessageBodyTypes::BinaryBody::ALT_ieee1609dot2__data)) {
// Encode the Ieee1609Dot2Data
if (_codec.encode(p_binary_body.ieee1609dot2__data(), p_data) == -1) {
loggers::get_instance().warning("http_etsi_ieee1609dot2_codec::encode: Failed to encode InnerEcRequest");
return -1;
}
loggers::get_instance().log_msg("<<< http_etsi_ieee1609dot2_codec::encode: ", p_data);
return 0;
// Encode the Ieee1609Dot2Data
if (_codec.encode(p_ieee_1609dot2_data, p_data) == -1) {
loggers::get_instance().warning("http_etsi_ieee1609dot2_codec::encode: Failed to encode InnerEcRequest");
return -1;
}
loggers::get_instance().warning("http_etsi_ieee1609dot2_codec::encode: No codec found");
return -1;
loggers::get_instance().log_msg("<<< http_etsi_ieee1609dot2_codec::encode: ", p_data);
return 0;
}
int http_etsi_ieee1609dot2_codec::decode (const OCTETSTRING& p_data, LibItsHttp__BinaryMessageBodyTypes::BinaryBody& p_binary_body, params* p_params)
int http_etsi_ieee1609dot2_codec::decode (const OCTETSTRING& p_data, IEEE1609dot2::Ieee1609Dot2Data& p_ieee_1609dot2_data, params* p_params)
{
loggers::get_instance().log_msg(">>> http_etsi_ieee1609dot2_codec::decode: ", p_data);
/*if (p_binary_body.ischosen(LibItsHttp__BinaryMessageBodyTypes::BinaryBody::ALT_innerEcResponse)) {
return codec.decode(p_data, p_binary_body.innerEcResponse(), p_data);
}*/
loggers::get_instance().warning("http_etsi_ieee1609dot2_codec::decode: No codec found");
return -1;
if (_codec.decode(p_data, p_ieee_1609dot2_data, p_params) == -1) {
loggers::get_instance().warning("http_etsi_ieee1609dot2_codec::decode: Failed to decode data");
return -1;
}
loggers::get_instance().log_msg("<<< http_etsi_ieee1609dot2_codec::decode: ", p_ieee_1609dot2_data);
return 0;
}
http_etsi_ieee1609dot2_codec_factory http_etsi_ieee1609dot2_codec_factory::_f;
......@@ -8,13 +8,13 @@ namespace LibItsHttp__BinaryMessageBodyTypes {
class BinaryBody;
}
class http_etsi_ieee1609dot2_codec : public codec<LibItsHttp__BinaryMessageBodyTypes::BinaryBody, LibItsHttp__BinaryMessageBodyTypes::BinaryBody>
class http_etsi_ieee1609dot2_codec : public codec<IEEE1609dot2::Ieee1609Dot2Data, IEEE1609dot2::Ieee1609Dot2Data>
{
etsi_ts103097_data_codec _codec;
public:
explicit http_etsi_ieee1609dot2_codec() : codec<LibItsHttp__BinaryMessageBodyTypes::BinaryBody, LibItsHttp__BinaryMessageBodyTypes::BinaryBody>(), _codec() { };
explicit http_etsi_ieee1609dot2_codec() : codec<IEEE1609dot2::Ieee1609Dot2Data, IEEE1609dot2::Ieee1609Dot2Data>(), _codec() { };
virtual ~http_etsi_ieee1609dot2_codec() { };
virtual int encode (const LibItsHttp__BinaryMessageBodyTypes::BinaryBody& p_binary_body, OCTETSTRING& p_data);
virtual int decode (const OCTETSTRING& p_data, LibItsHttp__BinaryMessageBodyTypes::BinaryBody& p_binary_body, params* params = NULL);
virtual int encode (const IEEE1609dot2::Ieee1609Dot2Data& p_ieee_1609dot2_data, OCTETSTRING& p_data);
virtual int decode (const OCTETSTRING& p_data, IEEE1609dot2::Ieee1609Dot2Data& p_ieee_1609dot2_data, params* params = NULL);
};
......@@ -2,10 +2,19 @@
[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
# The GeoNetworking address of the IUT.
LibItsGeoNetworking_Pics.PICS_GN_LOCAL_GN_ADDR := { typeOfAddress := e_manual,
stationType := e_passengerCar,
stationCountryCode := 0,
mid := '000000000001'O
# typeOfAddress := e_initial,
# stationType := e_unknown, #e_roadSideUnit,
# stationCountryCode := 0, #33,
# mid := '4C5E0C14D2EA'O
}
LibItsGeoNetworking_Pixits.PX_GN_UPPER_LAYER := e_btpB
LibItsGeoNetworking_Pixits.PX_NEIGHBOUR_DISCOVERY_DELAY := 2.0
LibItsHttp_Pics.PICS_HEADER_HOST := "127.0.0.1" #"ptsv2.com"
LibItsHttp_Pics.PICS_HEADER_CONTENT_TYPE := "application/x-its-request"
......@@ -104,7 +113,7 @@ LogEventTypes:= Yes
# save_mode : 1 to save sent packet, 0 otherwise
# Single GeoNetworking component port
#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,beaconing=!)/ETH(mac_src=080027500f9b)/PCAP(mac_src=080027500f9b,nic=eth2,filter=and ether proto 0x8947)"
system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730)/ETH(mac_src=080027500f9b)/PCAP(mac_src=080027500f9b,nic=eth2)"
#system.httpPort.params := "HTTP(codecs=http_its:http_etsi_ieee1609dot2_codec)/TCP(debug=1,server=ptsv2.com,use_ssl=0)"
system.httpPort.params := "HTTP(codecs=http_its:http_etsi_ieee1609dot2_codec)/TCP(server=127.0.0.1,port=8000,use_ssl=0)"
system.pkiPort.params := "PKI/HTTP(device_mode=1,uri=/its/inner_ec_request,host=httpbin.org,content_type=application/x-its-request)/TCP(server=127.0.0.1,port=8000,use_ssl=0)"
......@@ -113,9 +122,10 @@ system.pkiPort.params := "PKI/HTTP(device_mode=1,uri=/its/inner_ec_request,host=
system.utPort.params := "UT_CAM/UDP(dst_ip=172.23.0.1,dst_port=8000)"
[EXECUTE]
#ItsPki_TestCases.TC_SEC_PKI_ITSS_ENR_BV_01
ItsPki_TestCases.TC_SEC_PKI_ITSS_ENR_BV_01
#ItsPki_TestCases.TC_SEC_PKI_SND_EA_BV_01
ItsPki_TestCases.TC_SEC_PKI_SND_EA_BV_02
#ItsPki_TestCases.TC_SEC_PKI_SND_EA_BV_02
#ItsPki_TestCases.TC_SEC_PKI_SND_EA_BV_03
[MAIN_CONTROLLER]
# The options herein control the behavior of MC.
......
......@@ -341,9 +341,9 @@ system.pkiPort.params := "PKI/HTTP(device_mode=1,uri=/its/inner_ec_request,host=
# Pki
#TestCodec_Pki.tc_inner_ec_request_1
#TestCodec_Pki.tc_inner_ec_request_2
#TestCodec_Pki.tc_inner_ec_request_3
TestCodec_Pki.tc_inner_ec_request_3
#TestCodec_Pki.tc_inner_ec_response_1
TestCodec_Pki.tc_inner_ec_response_2
#TestCodec_Pki.tc_inner_ec_response_2
[MAIN_CONTROLLER]
# The options herein control the behavior of MC.
......
......@@ -85,7 +85,7 @@ then
fi
fi
REFERENCES="LibCommon LibIts/Common LibIts/BTP LibIts/GeoNetworking LibIts/Ipv6OverGeoNetworking LibIts/Security LibIts/CAM LibIts/DENM LibIts/IVIM LibIts/MapemSpatem LibIts/SremSsem LibIts/Http"
REFERENCES="LibCommon LibIts/Common LibIts/BTP LibIts/GeoNetworking LibIts/Ipv6OverGeoNetworking LibIts/Security LibIts/CAM LibIts/DENM LibIts/IVIM LibIts/MapemSpatem LibIts/SremSsem LibIts/Http LibIts/Pki"
for i in ${REFERENCES}
do
# TTCN code
......
......@@ -85,7 +85,7 @@ then
fi
fi
REFERENCES="LibCommon LibIts/Common LibIts/BTP LibIts/GeoNetworking LibIts/Ipv6OverGeoNetworking LibIts/Security LibIts/CAM LibIts/DENM LibIts/IVIM LibIts/MapemSpatem LibIts/SremSsem LibIts/Http"
REFERENCES="LibCommon LibIts/Common LibIts/BTP LibIts/GeoNetworking LibIts/Ipv6OverGeoNetworking LibIts/Security LibIts/CAM LibIts/DENM LibIts/IVIM LibIts/MapemSpatem LibIts/SremSsem LibIts/Http LibIts/Pki"
for i in ${REFERENCES}
do
# TTCN code
......
......@@ -85,7 +85,7 @@ then
fi
fi
REFERENCES="LibCommon LibIts/Common LibIts/BTP LibIts/GeoNetworking LibIts/Ipv6OverGeoNetworking LibIts/Security LibIts/CAM LibIts/DENM LibIts/IVIM LibIts/MapemSpatem LibIts/SremSsem LibIts/Http"
REFERENCES="LibCommon LibIts/Common LibIts/BTP LibIts/GeoNetworking LibIts/Ipv6OverGeoNetworking LibIts/Security LibIts/CAM LibIts/DENM LibIts/IVIM LibIts/MapemSpatem LibIts/SremSsem LibIts/Http LibIts/Pki"
for i in ${REFERENCES}
do
# TTCN code
......
......@@ -85,7 +85,7 @@ then
fi
fi
REFERENCES="LibCommon LibIts/Common LibIts/BTP LibIts/GeoNetworking LibIts/Ipv6OverGeoNetworking LibIts/Security LibIts/CAM LibIts/DENM LibIts/IVIM LibIts/MapemSpatem LibIts/SremSsem LibIts/Http"
REFERENCES="LibCommon LibIts/Common LibIts/BTP LibIts/GeoNetworking LibIts/Ipv6OverGeoNetworking LibIts/Security LibIts/CAM LibIts/DENM LibIts/IVIM LibIts/MapemSpatem LibIts/SremSsem LibIts/Http LibIts/Pki"
for i in ${REFERENCES}
do
# TTCN code
......
......@@ -85,7 +85,7 @@ then
fi
fi
REFERENCES="LibCommon LibIts/Common LibIts/BTP LibIts/GeoNetworking LibIts/Ipv6OverGeoNetworking LibIts/Security LibIts/CAM LibIts/DENM LibIts/IVIM LibIts/MapemSpatem LibIts/SremSsem LibIts/Http"
REFERENCES="LibCommon LibIts/Common LibIts/BTP LibIts/GeoNetworking LibIts/Ipv6OverGeoNetworking LibIts/Security LibIts/CAM LibIts/DENM LibIts/IVIM LibIts/MapemSpatem LibIts/SremSsem LibIts/Http LibIts/Pki"
for i in ${REFERENCES}
do
# TTCN code
......
......@@ -85,7 +85,7 @@ then
fi
fi
REFERENCES="LibCommon LibIts/Common LibIts/BTP LibIts/GeoNetworking LibIts/Ipv6OverGeoNetworking LibIts/Security LibIts/CAM LibIts/DENM LibIts/IVIM LibIts/MapemSpatem LibIts/SremSsem LibIts/Http"
REFERENCES="LibCommon LibIts/Common LibIts/BTP LibIts/GeoNetworking LibIts/Ipv6OverGeoNetworking LibIts/Security LibIts/CAM LibIts/DENM LibIts/IVIM LibIts/MapemSpatem LibIts/SremSsem LibIts/Http LibIts/Pki"
for i in ${REFERENCES}
do
# TTCN code
......
This diff is collapsed.
Subproject commit f18d6e1245310ecab9e33e80c741d40694590ff8
Subproject commit 82720e1582ec32c60abcbb99d5ac0db17a8c93e5
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment