ETSI STF525 / Internal Testing test suite This project provides an internal testing test suite and its associated Test Adapter/Codec

Public Member Functions | Static Private Attributes | List of all members
IVIMLayerFactory Class Reference

`#include <IVIMLayerFactory.hh>`

Inheritance diagram for IVIMLayerFactory:

## Public Member Functions
| IVIMLayerFactory ()
virtual layer * | create_layer (const std::string &p_type, const std::string &p_param)
| Create the layers stack based on the provided layers stack description (cf. remark) More...
Public Member Functions inherited from layer_factory
| layer_factory ()

## Static Private Attributes
static IVIMLayerFactory | _f

## Constructor & Destructor Documentation

## ◆ IVIMLayerFactory()

IVIMLayerFactory::IVIMLayerFactory | ( |  | ) |
| inline

## Member Function Documentation

## ◆ create_layer()

virtual layer* IVIMLayerFactory::create_layer | ( | const std::string & | type,
|  | const std::string & | param
| ) |  |
| inline virtual

Create the layers stack based on the provided layers stack description (cf. remark)

Parameters

  [in] | p_type | The provided layers stack description
  [in] | p_params | Optional parameters

Returns
  0 on success, -1 otherwise

Remarks
  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 mac_src :Source MAC address mac_bc :Broadcast address 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) 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) E.g. filter=and ether src 04e548000001 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 : 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)"

Implements layer_factory.

## Member Data Documentation

## ◆ _f

IVIMLayerFactory IVIMLayerFactory::_f
| static private

The documentation for this class was generated from the following files:

- /home/vagrant/TriesAndDelete/etsi_its/framework/include/IVIMLayerFactory.hh
- /home/vagrant/TriesAndDelete/etsi_its/framework/src/IVIMLayer.cc