| /////////////////////////////////////////////////////////////////////////////// |
| // |
| // Copyright (c) 2000-2021 Ericsson Telecom AB |
| // |
| // All rights reserved. This program and the accompanying materials |
| // are made available under the terms of the Eclipse Public License v2.0 |
| // which accompanies this distribution, and is available at |
| // https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html |
| /////////////////////////////////////////////////////////////////////////////// |
| // File: IOT_LGen_Definitions.ttcn |
| // Description: |
| // Rev: R1B |
| // Prodnr: CNL 113 909 |
| // Updated: 2021-02-03 |
| // Contact: http://ttcn.ericsson.se |
| /////////////////////////////////////////////////////////////////////////////// |
| |
| /////////////////////////////////////////////////////////// |
| // Module: IOT_LGen_Definitions |
| // |
| // Purpose: |
| // This module contains the definitions for an IoT load generator component |
| // |
| // Detailed comments: |
| // RIoT is a load generator built on top of the TitanSim load generator framework. It is |
| // capable of simulating devices using some IoT protocols (CoAP, LwM2M, MQTT, HTTP). RIoT |
| // (and the TitanSim framework) was created to support non-functional tests, where load generation |
| // is required like performance, stability, scalability. |
| // |
| // Events, TestSteps: |
| // <IOT_LGen_Steps> |
| // |
| // Module Parameters: |
| // tsp_IOT_LGen_FSMs - <EPTF_LGenBase_FsmTableDeclaratorList> - FSM declarations that can be instantiated for the traffic cases |
| // |
| // Module depends on: |
| // - <EPTF_MQTT_LGen_Definitions> |
| // - <EPTF_MQTT_LocalTransport_Definitions> |
| // - <EPTF_COAP_LGen_Definitions> |
| // - <EPTF_COAP_LocalTransport_Definitions> |
| // - <EPTF_LwM2M_LGen_Definitions> |
| // - <EPTF_LwM2M_CoapApplibTransport_Definitions> |
| // - <EPTF_LwM2M_Object_Definitions> |
| // - <EPTF_HTTP_Definitions> |
| // - <EPTF_HTTP_Transport_Definitions> |
| // - <EPTF_CLL_LGenBase_Definitions> |
| // - <EPTF_CLL_LGenBase_ConfigDefinitions> |
| // - <EPTF_CLL_ExecCtrl_Definitions> |
| // |
| // Component Diagram: |
| // (see IOT_App_Definitions.components.jpg) |
| // |
| // Related Types: |
| // - <IOT_App_CT> |
| // - <IOT_LGen_CT> |
| // - <EPTF_ExecCtrl_CT> |
| /////////////////////////////////////////////////////////////// |
| module IOT_LGen_Definitions |
| { |
| import from EPTF_MQTT_LGen_Definitions all; |
| import from EPTF_MQTT_LocalTransport_Definitions all; |
| import from EPTF_COAP_LGen_Definitions all; |
| import from EPTF_COAP_LocalTransport_Definitions all; |
| import from EPTF_LwM2M_LGen_Definitions all; |
| import from EPTF_LwM2M_CoapApplibTransport_Definitions all; |
| import from EPTF_LwM2M_Object_Definitions all; |
| import from EPTF_HTTP_Definitions all; |
| import from EPTF_HTTP_Transport_Definitions all; |
| import from EPTF_CLL_LGenBase_Definitions all; |
| import from EPTF_CLL_LGenBase_ConfigDefinitions all; |
| import from EPTF_CLL_ExecCtrl_Definitions all; |
| import from InfluxDB_Definitions all; |
| |
| modulepar boolean tsp_IOT_LGen_debug := false; |
| modulepar boolean tsp_IOT_LGen_debugVerbose := false; |
| |
| /////////////////////////////////////////////////////////// |
| // Module parameter: tsp_IOT_LGen_FSMs |
| // |
| // Purpose: |
| // FSM declarations that can be instantiated for the traffic cases |
| // |
| // Type: |
| // <EPTF_LGenBase_FsmTableDeclaratorList> |
| /////////////////////////////////////////////////////////// |
| modulepar EPTF_LGenBase_FsmTableDeclaratorList tsp_IOT_LGen_FSMs := {} |
| |
| /////////////////////////////////////////////////////////// |
| // Module parameter: tsp_IOT_LGen_dataSamples |
| // |
| // Purpose: |
| // Data sample declarations that can be used to simulate the changing |
| // values of smart object and resources. |
| // |
| // Type: |
| // <LwM2M_DataSamples_List> |
| /////////////////////////////////////////////////////////// |
| modulepar LwM2M_DataSamples_List tsp_IOT_LGen_dataSamples := {} |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_IOT_entityType |
| // |
| // Purpose: |
| // Constant for the simulated IoT entity type |
| /////////////////////////////////////////////////////////// |
| const charstring c_IOT_entityType := "IOT_Entity"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_IOT_behaviorType |
| // |
| // Purpose: |
| // Constant for the simulated IoT behavior type |
| /////////////////////////////////////////////////////////// |
| const charstring c_IOT_behaviorType := "IOT_Behavior"; |
| |
| const integer c_IOT_LGen_Logging_WARNING := 0; |
| const integer c_IOT_LGen_Logging_DEBUG := 1; |
| const integer c_IOT_LGen_Logging_DEBUGV := 2; |
| const integer c_IOT_LGen_Logging_ERROR := 3; |
| |
| const integer c_FSM_inconclusive := 0; |
| const integer c_FSM_pass := 1; |
| const integer c_FSM_fail := 2; |
| const integer c_FSM_timeout := 3; |
| |
| /////////////////////////////////////////////////////////// |
| // Type: IOT_LGen_CT |
| // |
| // Purpose: |
| // IoT load generator component |
| // |
| // Class: |
| // (see EPTF_COAP_LGen_Definitions.EPTF_COAP_LGen_CT.jpg) |
| // |
| // Extensions: |
| // - <EPTF_LGenBase_CT> |
| // - <EPTF_ExecCtrlClient_CT> |
| // - <EPTF_MQTT_LGen_CT> |
| // - <EPTF_MQTT_LocalTransport_CT> |
| // - <EPTF_COAP_LGen_CT> |
| // - <EPTF_COAP_LocalTransport_CT> |
| // - <EPTF_LwM2M_LGen_CT> |
| // - <EPTF_LwM2M_CoapApplibTransport_CT> |
| // - <EPTF_HTTP_LGen_CT> |
| // - <EPTF_HTTP_LocalTransport_CT> |
| // - <InfluxDB_CT> |
| // |
| // Variables: |
| // v_IOT_LGen_name - *charstring* - name of the current load generator instance |
| // v_IOT_LGen_idx - *integer* - unique index of the current load generator instance |
| // v_IOT_bIdx - *integer* - id of the IOT behavior defined by RIoT |
| // v_IOT_LGen_loggingMaskId - *integer* - id for RioT logging functions |
| // |
| // Instance databases: |
| // v_IOT_LGen_DataSamples_DB - <LwM2M_DataSamples_DB> - Storing data samples for LwM2M smart objects |
| // |
| // Events, TestSteps: |
| // <IOT_LGen_Steps> |
| // |
| // Related Functions: |
| // - <f_IOT_LGen_init> (in *charstring* pl_selfName, in *integer* p_idx, in <EPTF_ExecCtrl_CT> pl_ExecCtrlRef) |
| // - <f_IOT_LGen_initSamples> (in *charstring* p_selfName) |
| // - <f_IOT_LGen_behavior> (in *charstring* pl_selfName, in *integer* p_idx, in <EPTF_ExecCtrl_CT> pl_ExecCtrlRef) |
| // - <f_IOT_LGen_Logging_VERBOSE> (in @lazy *charstring* pl_message) |
| // - <f_IOT_LGen_Logging_DEBUG> (in @lazy *charstring* pl_message) |
| // - <f_IOT_LGen_Logging_WARNING> (in @lazy *charstring* pl_message) |
| // - <f_IOT_LGen_Logging_ERROR> (in @lazy *charstring* pl_message) |
| // - <f_IOT_COAP_LocalTransport_send> (in <EPTF_COAP_PDU> pl_msg) |
| // - <f_IOT_COAP_LGen_receiveMessage> (in <EPTF_COAP_PDU> pl_message) |
| // - <f_EPTF_COAP_PDU_to_Influx> () |
| /////////////////////////////////////////////////////////// |
| type component IOT_LGen_CT |
| extends EPTF_LGenBase_CT, EPTF_ExecCtrlClient_CT, |
| EPTF_MQTT_LGen_CT, EPTF_MQTT_LocalTransport_CT, |
| EPTF_COAP_LGen_CT, EPTF_COAP_LocalTransport_CT, |
| EPTF_LwM2M_LGen_CT, EPTF_LwM2M_CoapApplibTransport_CT, |
| EPTF_HTTP_LGen_CT, EPTF_HTTP_LocalTransport_CT, |
| InfluxDB_CT |
| { |
| var charstring v_IOT_LGen_name; |
| var integer v_IOT_LGen_idx; |
| |
| var integer v_IOT_bIdx; |
| var integer v_IOT_LGen_loggingMaskId; |
| |
| var LwM2M_DataSamples_DB v_IOT_LGen_DataSamples_DB := c_LwM2M_DataSamples_DB_init; |
| } |
| |
| /* |
| const LwM2M_DataSamples c_DataSamples_Latitude := |
| { |
| name := "Latitude", |
| values := |
| { |
| { floatValue := 47.475902 }, |
| { floatValue := 47.476758 }, |
| { floatValue := 47.477048 }, |
| { floatValue := 47.477657 }, |
| { floatValue := 47.478266 }, |
| { floatValue := 47.478730 }, |
| { floatValue := 47.479571 }, |
| { floatValue := 47.480325 }, |
| { floatValue := 47.481456 }, |
| { floatValue := 47.482646 }, |
| { floatValue := 47.484241 }, |
| { floatValue := 47.484589 }, |
| { floatValue := 47.485740 }, |
| { floatValue := 47.485262 }, |
| { floatValue := 47.484682 }, |
| { floatValue := 47.484102 }, |
| { floatValue := 47.483536 }, |
| { floatValue := 47.482579 }, |
| { floatValue := 47.482028 }, |
| { floatValue := 47.481390 }, |
| { floatValue := 47.480520 }, |
| { floatValue := 47.479519 }, |
| { floatValue := 47.478243 }, |
| { floatValue := 47.477286 }, |
| { floatValue := 47.476097 }, |
| { floatValue := 47.475241 }, |
| { floatValue := 47.474324 }, |
| { floatValue := 47.473134 } |
| } |
| } |
| |
| const LwM2M_DataSamples c_DataSamples_Longitude := |
| { |
| name := "Longitude", |
| values := |
| { |
| { floatValue := 19.057703 }, |
| { floatValue := 19.059430 }, |
| { floatValue := 19.060122 }, |
| { floatValue := 19.061195 }, |
| { floatValue := 19.062311 }, |
| { floatValue := 19.063405 }, |
| { floatValue := 19.065144 }, |
| { floatValue := 19.066989 }, |
| { floatValue := 19.068276 }, |
| { floatValue := 19.068877 }, |
| { floatValue := 19.069435 }, |
| { floatValue := 19.069521 }, |
| { floatValue := 19.070077 }, |
| { floatValue := 19.071772 }, |
| { floatValue := 19.073231 }, |
| { floatValue := 19.074798 }, |
| { floatValue := 19.076600 }, |
| { floatValue := 19.079325 }, |
| { floatValue := 19.080892 }, |
| { floatValue := 19.082694 }, |
| { floatValue := 19.085033 }, |
| { floatValue := 19.087780 }, |
| { floatValue := 19.091127 }, |
| { floatValue := 19.093788 }, |
| { floatValue := 19.096727 }, |
| { floatValue := 19.098938 }, |
| { floatValue := 19.097714 }, |
| { floatValue := 19.096813 } |
| } |
| } |
| */ |
| } |