Loading ccsrc/Framework/include/base_time.hh +1 −1 Original line number Original line Diff line number Diff line /*! /*! * \file base_time.hh * \file base_time.hh * \brief Header file for the control port base_time functionality. * \brief Header file for base_time functionality. * \author ETSI STF525 * \author ETSI STF525 * \copyright ETSI Copyright Notification * \copyright ETSI Copyright Notification * No part may be reproduced except as authorized by written permission. * No part may be reproduced except as authorized by written permission. Loading ccsrc/Framework/include/codec_gen.hh +1 −1 Original line number Original line Diff line number Diff line Loading @@ -50,7 +50,7 @@ public: //! \publicsection */ */ virtual int encode(const TPDUEnc &p_message, OCTETSTRING &p_data) = 0; virtual int encode(const TPDUEnc &p_message, OCTETSTRING &p_data) = 0; /*! /*! * \fn int decode(const OCTETSTRING& p_, TPDUDec& p_message, params_its* p_params = NULL); * \fn int decode(const OCTETSTRING& p_, TPDUDec& p_message, params* p_params = NULL); * \brief Encode typed message into an octet string format * \brief Encode typed message into an octet string format * \param[in] p_data The message in its octet string * \param[in] p_data The message in its octet string * \param[out] p_message The decoded typed message * \param[out] p_message The decoded typed message Loading ccsrc/Framework/include/converter.hh +21 −12 Original line number Original line Diff line number Diff line Loading @@ -366,22 +366,31 @@ public: */ */ std::vector<std::string> split_arguments_line(const std::string& p_value); std::vector<std::string> split_arguments_line(const std::string& p_value); /*! * \brief Replace string or character into the the provided string * \param[in] p_value The original string value * \param[in] p_from The pattern to be replaced * \param[in] p_to The new pattern * \return The modified string */ std::string replace(const std::string& p_value, const std::string& p_from, const std::string& p_to); /*! /*! * \brief Convert the provided buffer into a Base64 * \brief Convert the provided buffer into a Base64 * \param[in] p_value The buffer value * \param[in] p_value The buffer value * \return The Base64 encoded buffert * \return The Base64 encoded buffert */ */ std::vector<unsigned char> buffer_to_base64(const std::vector<unsigned char> &p_value); std::vector<unsigned char> buffer_to_base64(const std::vector<unsigned char> &p_value, const bool p_is_url = false); /*! /*! * \brief Convert the provided Base64 buffer * \brief Convert the provided Base64 buffer * \param[in] p_value The buffer value * \param[in] p_value The buffer value * \return The Base64 encoded buffert * \return The Base64 encoded buffert */ */ std::vector<unsigned char> base64_to_buffer(const std::vector<unsigned char> &p_value); std::vector<unsigned char> base64_to_buffer(const std::vector<unsigned char> &p_value, const bool p_remove_crlf = true); static const std::string lut_u; static const std::string lut_u; static const std::string lut_l; static const std::string lut_l; static const std::string base64_enc_map; static const std::string base64_enc_map[2]; }; // End of class converter }; // End of class converter ccsrc/Framework/include/layer.hh +3 −3 Original line number Original line Diff line number Diff line Loading @@ -102,7 +102,7 @@ public: //! \publicsection /*! /*! * \virtual * \virtual * \fn void receive_data(OCTETSTRING& data, params_its& params); * \fn void receive_data(OCTETSTRING& data, params& params); * \brief Receive bytes formated data from the lower layers * \brief Receive bytes formated data from the lower layers * \param[in] p_data The bytes formated data received * \param[in] p_data The bytes formated data received * \param[in] p_params Some lower layers parameters values when data was received * \param[in] p_params Some lower layers parameters values when data was received Loading ccsrc/Framework/include/layer_factory.hh +2 −60 Original line number Original line Diff line number Diff line Loading @@ -36,52 +36,10 @@ public: //! \publicsection * \param[in] p_params Optional parameters * \param[in] p_params Optional parameters * \return 0 on success, -1 otherwise * \return 0 on success, -1 otherwise * \remark The description below introduces layers stack in case of ITS project: * \remark The description below introduces layers stack in case of ITS project: * 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 * its_aid : ITS AID as defined by ETSI TS 102 965 V1.2.1. Default: 141 * 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 * Beaconing timer expiry : 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 * certificate : Certificate identifier the Test Adapter shall use * secure_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, BP-256 and BP-384 * Default: NISTP-256 * cypher : Cyphering algorithm to be used when secured mode is set * Ethernet layer * Ethernet layer * mac_src :Source MAC address * mac_src :Source MAC address * mac_bc :Broadcast address * mac_bc :Broadcast address * eth_type : Ethernet type * eth_type : Ethernet type * Commsignia layer * mac_src : Device 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) * UDP layer (IP/UDP based on Pcap) * UDP layer (IP/UDP based on Pcap) * dst_ip : destination IPv4 address (aa.bb.cc.dd) * dst_ip : destination IPv4 address (aa.bb.cc.dd) * dst_port: destination port * dst_port: destination port Loading @@ -99,22 +57,6 @@ public: //! \publicsection * frame_offset: Frame offset, used to skip packets with frame number < frame_offset * 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 * time_offset : Time offset, used to skip packets with time offset < time_offset * save_mode : 1 to save sent packet, 0 otherwise * save_mode : 1 to save sent packet, 0 otherwise * Here are some examples: * GeoNetworking multiple component case: * NodeB.geoNetworkingPort.params := "GN(ll_address=04e548000001,latitude=43551050,longitude=10298730,beaconing=0,expiry=1000,its_aid=141)/COMMSIGNIA(mac_src=04e548000001,mac_bc=FFFFFFFFFFFF,eth_type=8947,target_host=10.200.1.101,target_port=7942,source_port=7943,its_aid=141,interface_id=2,tx_power=-32)/UDP(dst_ip=192.168.56.1,dst_port=12346,src_ip=192.168.156.4,src_port=12345)/ETH(mac_src=04e548000001,mac_dst=0A0027000011,eth_type=0800)/PCAP(mac_src=04e548000001,file=/home/vagrant/TriesAndDelete/etsi_its/testdata/TC_AUTO_IOT_DENM_RWW_BV_01_short.pcap,filter=and (udp port 30000 or udp port 7943))" NodeC.geoNetworkingPort.params := "GN(ll_address=70b3d5791b48,latitude=43551050,longitude=10298730,beaconing=0,expiry=1000,its_aid=141)/COMMSIGNIA(mac_src=70b3d5791b48,mac_bc=FFFFFFFFFFFF,eth_type=8947,target_host=10.200.1.101,target_port=7942,source_port=7943,its_aid=141,interface_id=2,tx_power=-32)/UDP(dst_ip=192.168.56.1,dst_port=12346,src_ip=192.168.156.4,src_port=12345)/ETH(mac_src=70b3d5791b48,mac_dst=0A0027000011,eth_type=0800)/PCAP(mac_src=70b3d5791b48,file=/home/vagrant/TriesAndDelete/etsi_its/testdata/TC_AUTO_IOT_DENM_RWW_BV_01_short.pcap,filter=and (udp port 30000 or udp port 7943))" * NodeB.geoNetworkingPort.params := "GN(ll_address=04e548000001,latitude=43551050,longitude=10298730,beaconing=0,expiry=1000,its_aid=141)/ETH(mac_src=04e548000001,mac_dst=0A0027000011,eth_type=0800)/PCAP(mac_src=04e548000001,file=/home/vagrant/TriesAndDelete/etsi_its/testdata/TC_AUTO_IOT_DENM_RWW_BV_01.pcap,filter=and ether src 04e548000001)" #NodeC.geoNetworkingPort.params := "GN(ll_address=70b3d5791b48,latitude=43551050,longitude=10298730,beaconing=0,expiry=1000,its_aid=141)/ETH(mac_src=70b3d5791b48,mac_dst=0A0027000011,eth_type=0800)/PCAP(mac_src=70b3d5791b48,file=/home/vagrant/TriesAndDelete/etsi_its/testdata/TC_AUTO_IOT_DENM_RWW_BV_01.pcap,filter=and ether src 70b3d5791b48)" * UpperTester port based on UDP * system.utPort.params := "UT_GN/UDP(dst_ip=192.168.1.1,dst_port=12346,src_ip=192.168.156.4,src_port=12345)/ETH(mac_src=026f8338c1e5,mac_dst=0A0027000011,eth_type=0800)/PCAP(mac_src=0800275c4959,nic=enp0s8,filter=and udp port 12346)" * \pure * \pure */ */ virtual layer *create_layer(const std::string& p_type, const std::string& p_params) = 0; virtual layer *create_layer(const std::string& p_type, const std::string& p_params) = 0; Loading Loading
ccsrc/Framework/include/base_time.hh +1 −1 Original line number Original line Diff line number Diff line /*! /*! * \file base_time.hh * \file base_time.hh * \brief Header file for the control port base_time functionality. * \brief Header file for base_time functionality. * \author ETSI STF525 * \author ETSI STF525 * \copyright ETSI Copyright Notification * \copyright ETSI Copyright Notification * No part may be reproduced except as authorized by written permission. * No part may be reproduced except as authorized by written permission. Loading
ccsrc/Framework/include/codec_gen.hh +1 −1 Original line number Original line Diff line number Diff line Loading @@ -50,7 +50,7 @@ public: //! \publicsection */ */ virtual int encode(const TPDUEnc &p_message, OCTETSTRING &p_data) = 0; virtual int encode(const TPDUEnc &p_message, OCTETSTRING &p_data) = 0; /*! /*! * \fn int decode(const OCTETSTRING& p_, TPDUDec& p_message, params_its* p_params = NULL); * \fn int decode(const OCTETSTRING& p_, TPDUDec& p_message, params* p_params = NULL); * \brief Encode typed message into an octet string format * \brief Encode typed message into an octet string format * \param[in] p_data The message in its octet string * \param[in] p_data The message in its octet string * \param[out] p_message The decoded typed message * \param[out] p_message The decoded typed message Loading
ccsrc/Framework/include/converter.hh +21 −12 Original line number Original line Diff line number Diff line Loading @@ -366,22 +366,31 @@ public: */ */ std::vector<std::string> split_arguments_line(const std::string& p_value); std::vector<std::string> split_arguments_line(const std::string& p_value); /*! * \brief Replace string or character into the the provided string * \param[in] p_value The original string value * \param[in] p_from The pattern to be replaced * \param[in] p_to The new pattern * \return The modified string */ std::string replace(const std::string& p_value, const std::string& p_from, const std::string& p_to); /*! /*! * \brief Convert the provided buffer into a Base64 * \brief Convert the provided buffer into a Base64 * \param[in] p_value The buffer value * \param[in] p_value The buffer value * \return The Base64 encoded buffert * \return The Base64 encoded buffert */ */ std::vector<unsigned char> buffer_to_base64(const std::vector<unsigned char> &p_value); std::vector<unsigned char> buffer_to_base64(const std::vector<unsigned char> &p_value, const bool p_is_url = false); /*! /*! * \brief Convert the provided Base64 buffer * \brief Convert the provided Base64 buffer * \param[in] p_value The buffer value * \param[in] p_value The buffer value * \return The Base64 encoded buffert * \return The Base64 encoded buffert */ */ std::vector<unsigned char> base64_to_buffer(const std::vector<unsigned char> &p_value); std::vector<unsigned char> base64_to_buffer(const std::vector<unsigned char> &p_value, const bool p_remove_crlf = true); static const std::string lut_u; static const std::string lut_u; static const std::string lut_l; static const std::string lut_l; static const std::string base64_enc_map; static const std::string base64_enc_map[2]; }; // End of class converter }; // End of class converter
ccsrc/Framework/include/layer.hh +3 −3 Original line number Original line Diff line number Diff line Loading @@ -102,7 +102,7 @@ public: //! \publicsection /*! /*! * \virtual * \virtual * \fn void receive_data(OCTETSTRING& data, params_its& params); * \fn void receive_data(OCTETSTRING& data, params& params); * \brief Receive bytes formated data from the lower layers * \brief Receive bytes formated data from the lower layers * \param[in] p_data The bytes formated data received * \param[in] p_data The bytes formated data received * \param[in] p_params Some lower layers parameters values when data was received * \param[in] p_params Some lower layers parameters values when data was received Loading
ccsrc/Framework/include/layer_factory.hh +2 −60 Original line number Original line Diff line number Diff line Loading @@ -36,52 +36,10 @@ public: //! \publicsection * \param[in] p_params Optional parameters * \param[in] p_params Optional parameters * \return 0 on success, -1 otherwise * \return 0 on success, -1 otherwise * \remark The description below introduces layers stack in case of ITS project: * \remark The description below introduces layers stack in case of ITS project: * 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 * its_aid : ITS AID as defined by ETSI TS 102 965 V1.2.1. Default: 141 * 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 * Beaconing timer expiry : 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 * certificate : Certificate identifier the Test Adapter shall use * secure_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, BP-256 and BP-384 * Default: NISTP-256 * cypher : Cyphering algorithm to be used when secured mode is set * Ethernet layer * Ethernet layer * mac_src :Source MAC address * mac_src :Source MAC address * mac_bc :Broadcast address * mac_bc :Broadcast address * eth_type : Ethernet type * eth_type : Ethernet type * Commsignia layer * mac_src : Device 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) * UDP layer (IP/UDP based on Pcap) * UDP layer (IP/UDP based on Pcap) * dst_ip : destination IPv4 address (aa.bb.cc.dd) * dst_ip : destination IPv4 address (aa.bb.cc.dd) * dst_port: destination port * dst_port: destination port Loading @@ -99,22 +57,6 @@ public: //! \publicsection * frame_offset: Frame offset, used to skip packets with frame number < frame_offset * 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 * time_offset : Time offset, used to skip packets with time offset < time_offset * save_mode : 1 to save sent packet, 0 otherwise * save_mode : 1 to save sent packet, 0 otherwise * Here are some examples: * GeoNetworking multiple component case: * NodeB.geoNetworkingPort.params := "GN(ll_address=04e548000001,latitude=43551050,longitude=10298730,beaconing=0,expiry=1000,its_aid=141)/COMMSIGNIA(mac_src=04e548000001,mac_bc=FFFFFFFFFFFF,eth_type=8947,target_host=10.200.1.101,target_port=7942,source_port=7943,its_aid=141,interface_id=2,tx_power=-32)/UDP(dst_ip=192.168.56.1,dst_port=12346,src_ip=192.168.156.4,src_port=12345)/ETH(mac_src=04e548000001,mac_dst=0A0027000011,eth_type=0800)/PCAP(mac_src=04e548000001,file=/home/vagrant/TriesAndDelete/etsi_its/testdata/TC_AUTO_IOT_DENM_RWW_BV_01_short.pcap,filter=and (udp port 30000 or udp port 7943))" NodeC.geoNetworkingPort.params := "GN(ll_address=70b3d5791b48,latitude=43551050,longitude=10298730,beaconing=0,expiry=1000,its_aid=141)/COMMSIGNIA(mac_src=70b3d5791b48,mac_bc=FFFFFFFFFFFF,eth_type=8947,target_host=10.200.1.101,target_port=7942,source_port=7943,its_aid=141,interface_id=2,tx_power=-32)/UDP(dst_ip=192.168.56.1,dst_port=12346,src_ip=192.168.156.4,src_port=12345)/ETH(mac_src=70b3d5791b48,mac_dst=0A0027000011,eth_type=0800)/PCAP(mac_src=70b3d5791b48,file=/home/vagrant/TriesAndDelete/etsi_its/testdata/TC_AUTO_IOT_DENM_RWW_BV_01_short.pcap,filter=and (udp port 30000 or udp port 7943))" * NodeB.geoNetworkingPort.params := "GN(ll_address=04e548000001,latitude=43551050,longitude=10298730,beaconing=0,expiry=1000,its_aid=141)/ETH(mac_src=04e548000001,mac_dst=0A0027000011,eth_type=0800)/PCAP(mac_src=04e548000001,file=/home/vagrant/TriesAndDelete/etsi_its/testdata/TC_AUTO_IOT_DENM_RWW_BV_01.pcap,filter=and ether src 04e548000001)" #NodeC.geoNetworkingPort.params := "GN(ll_address=70b3d5791b48,latitude=43551050,longitude=10298730,beaconing=0,expiry=1000,its_aid=141)/ETH(mac_src=70b3d5791b48,mac_dst=0A0027000011,eth_type=0800)/PCAP(mac_src=70b3d5791b48,file=/home/vagrant/TriesAndDelete/etsi_its/testdata/TC_AUTO_IOT_DENM_RWW_BV_01.pcap,filter=and ether src 70b3d5791b48)" * UpperTester port based on UDP * system.utPort.params := "UT_GN/UDP(dst_ip=192.168.1.1,dst_port=12346,src_ip=192.168.156.4,src_port=12345)/ETH(mac_src=026f8338c1e5,mac_dst=0A0027000011,eth_type=0800)/PCAP(mac_src=0800275c4959,nic=enp0s8,filter=and udp port 12346)" * \pure * \pure */ */ virtual layer *create_layer(const std::string& p_type, const std::string& p_params) = 0; virtual layer *create_layer(const std::string& p_type, const std::string& p_params) = 0; Loading