| /////////////////////////////////////////////////////////////////////////////// |
| // Copyright (c) 2000-2019 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: SCTP_Daemon_Dynamic_Types.ttcn |
| // Description: IPDD types |
| // Rev: <RnXnn> |
| // Prodnr: CNL 113 630 |
| // Updated: 2012-05-07 |
| // Contact: http://ttcn.ericsson.se |
| |
| module IP_Daemon_Dynamic_Types |
| { |
| |
| //========================================================================= |
| // Import Part |
| //========================================================================= |
| |
| import from IP_Daemon_Dynamic_Interface_Definitions all; |
| |
| import from IPL4asp_Types all; |
| import from IPL4asp_PortType all; |
| |
| //========================================================================= |
| // Data Types |
| //========================================================================= |
| |
| type record of integer IntegerList; |
| |
| type record ConnectionRuntimeAttributes { |
| IntegerList subscribedTestcases, |
| integer socket, |
| integer endpointIndex, |
| SAC_STATE sctpState, |
| charstring userState |
| } |
| |
| type record of ConnectionRuntimeAttributes ConnectionRuntimeAttributesList; |
| |
| type record IPDD_ConnectionConfig { |
| boolean serverConnection, // true := server, false: client |
| boolean autoReconnect, |
| IPDD_Interface localInterface optional, |
| IPDD_Interface remoteInterface optional, |
| ProtoTupleEnum proto |
| } |
| |
| type record of IPDD_ConnectionConfig IPDD_ConnectionConfigList; |
| |
| type record of integer TCP_connections_List; //xxx for added SGsAP functionality |
| |
| type function Connection_Insert(octetstring pl_data, integer pl_id) runs on self; //xxx |
| type function Connection_Lookup(octetstring pl_data) runs on self return TCP_connections_List; //xxx |
| type function Connection_Delete(integer pl_id) runs on self; //xxx |
| |
| //========================================================================= |
| //Component Types |
| //========================================================================= |
| |
| type component IPDD_CT { |
| port IPDD_Interface_PT daemonPort; |
| port IPL4asp_PT IP_PCO; |
| |
| var IPDD_ConnectionList vc_connectionList := {}; |
| var ConnectionRuntimeAttributesList vc_connectionRuntimeAttributesList := {}; |
| var IPDD_InterfaceList v_localEndpointList := {}; |
| |
| //var ASP_TCP_Connected vc_connected; |
| var IPDD_Message_with_ClientId vc_daemonMessage; |
| |
| timer vc_reconnectTimer; |
| timer vc_inactivityTimer; |
| |
| var ASP_RecvFrom vc_asp_IP_ReceivedMessage; |
| var ASP_Event vc_asp_IP_Event; |
| var ASP_Event vc_asp_TCP_Event; |
| var ASP_Event vc_ipResult; |
| |
| var ASP_Event vc_tcpClose; |
| |
| var RegisteredAutoReplyFunctionList vc_registeredAutoReplyFunctionList := {}; |
| var RegisteredAutoStateChangeHandlerFunctionList vc_registeredAutoStateChangeHandlerFunctionList := {}; |
| var RegisteredAutoStartupFunctionList vc_registeredAutoStartupFunctionList := {}; |
| |
| var Connection_Insert v_Connection_Insert:=null; |
| var Connection_Lookup v_Connection_Lookup:=null; |
| var Connection_Delete v_Connection_Delete:=null; |
| var TCP_connections_List v_TCP_connections_List; |
| } |
| |
| //========================================================================= |
| // Signatures |
| //========================================================================= |
| |
| // return true if the message should not be passed to TTCN but replied with the ipReply |
| type function f_IPDD_AutoReplyFunction(in integer connectionIndex, in ASP_RecvFrom ipReceived, out ASP_Send ipReply) |
| runs on self return boolean; |
| |
| type record of f_IPDD_AutoReplyFunction RegisteredAutoReplyFunctionList; |
| |
| // return true if the state should not be passed to TTCN, but ipMsg has to be automatically sent on the connection |
| type function f_IPDD_AutoStateChangeHandlerFunction(in integer connectionIndex, in SAC_STATE newState, out ASP_Send ipMsg) |
| runs on self return boolean; |
| |
| type record of f_IPDD_AutoStateChangeHandlerFunction RegisteredAutoStateChangeHandlerFunctionList; |
| |
| // return true if the message should be sent to SUT and put the message in the ipMsg |
| type function f_IPDD_AutoStartupFunction(in integer connectionIndex, out ASP_Send ipMsg) |
| runs on self return boolean; |
| |
| type record of f_IPDD_AutoStartupFunction RegisteredAutoStartupFunctionList; |
| |
| //========================================================================= |
| // Constants |
| //========================================================================= |
| |
| const IPDD_Connection c_emptyConnection := { |
| connectionId := -1, |
| serverConnection := false, // true := server, false: client |
| autoReconnect := true, |
| localInterfacePresent := false, |
| localInterface := omit, |
| remoteInterfacePresent := false, |
| remoteInterface := omit, |
| sctpProtoAttributesPresent := false, |
| sctpProtoAttributes := omit |
| } |
| |
| const ConnectionRuntimeAttributes c_emptyConnectionRuntimeAttribute := { |
| subscribedTestcases := {}, |
| socket := -1, |
| endpointIndex := -1, |
| sctpState := SCTP_COMM_LOST, |
| userState := "" |
| } |
| |
| //========================================================================= |
| // Templates |
| //========================================================================= |
| |
| template IPDD_Message_with_ClientId t_IPDD_Message_with_ClientId := { |
| client_id := ?, |
| msg := ? |
| } |
| |
| template IPDD_Message_with_ClientId t_queryConnections modifies t_IPDD_Message_with_ClientId := { |
| msg := { |
| ipdd_queryConnections := ? |
| } |
| } |
| |
| template IPDD_Message_with_ClientId t_connect modifies t_IPDD_Message_with_ClientId := { |
| msg := { |
| ipdd_connect := ? |
| } |
| } |
| |
| template IPDD_Message_with_ClientId t_listen modifies t_IPDD_Message_with_ClientId := { |
| msg := { |
| ipdd_listen := ? |
| } |
| } |
| |
| template IPDD_Message_with_ClientId t_close modifies t_IPDD_Message_with_ClientId := { |
| msg := { |
| ipdd_close := ? |
| } |
| } |
| |
| template IPDD_Message_with_ClientId t_ipData modifies t_IPDD_Message_with_ClientId := { |
| msg := { |
| ipdd_data := ? |
| } |
| } |
| |
| template IPDD_Message_with_ClientId t_subscribeToConnection modifies t_IPDD_Message_with_ClientId := { |
| msg := { |
| ipdd_subscribeToConnection := ? |
| } |
| } |
| |
| //SCTP Assoc Change |
| template ASP_Event tr_sctpEvent |
| ( template integer pl_connectionID, |
| template SAC_STATE pl_state |
| ) := |
| { |
| sctpEvent := |
| { |
| sctpAssocChange := |
| { |
| clientId := pl_connectionID, |
| proto := |
| { |
| sctp := ? |
| }, |
| sac_state := pl_state |
| } |
| } |
| } |
| |
| //SCTP ShutdownEvent |
| template ASP_Event tr_S_SCTP_ShutdownEvent:= |
| { |
| sctpEvent := |
| { |
| sctpShutDownEvent := |
| { |
| clientId := ? |
| } |
| } |
| } |
| |
| //Result |
| template ASP_Event tr_ASP_Result := |
| { |
| result := |
| { |
| errorCode := *, |
| connId := *, |
| os_error_code := *, |
| os_error_text := * |
| } |
| } |
| |
| //IP Connected |
| template ASP_Event tr_ASP_IP_Connected:= |
| { |
| connOpened := |
| { |
| connId := ?, |
| remName := ?, |
| remPort := ?, |
| locName := ?, |
| locPort := ?, |
| proto := ?, |
| userData := ? |
| } |
| } |
| |
| //IP Closed |
| template ASP_Event tr_ASP_IP_Closed := |
| { |
| connClosed := |
| { |
| connId := ?, |
| remName := ?, |
| remPort := ?, |
| locName := ?, |
| locPort := ?, |
| proto := ?, |
| userData := ? |
| } |
| } |
| |
| //SCTP Peer Address Change |
| template ASP_Event tr_S_SCTP_PeerAddressChange:= |
| { |
| sctpEvent := |
| { |
| sctpPeerAddrChange := |
| { |
| clientId :=?, |
| spc_state := ? |
| } |
| } |
| } |
| |
| //TCP Connection Openned |
| template ASP_Event tr_ASP_TCP_Connected := |
| { |
| connOpened := |
| { |
| connId := ?, |
| remName := ?, |
| remPort := ?, |
| locName := ?, |
| locPort := ?, |
| proto :={tcp:={}}, |
| userData := ? |
| } |
| } |
| |
| |
| //TCP Close Connection |
| template ASP_Event tr_ASP_TCP_Close:= |
| { |
| connClosed := |
| { |
| connId := ?, |
| remName := ?, |
| remPort := ?, |
| locName := ?, |
| locPort := ?, |
| proto :={tcp:={}}, |
| userData := ? |
| } |
| } |
| |
| } // end of module |