| /////////////////////////////////////////////////////////////////////////////// |
| // Copyright (c) 2000-2018 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: SDD types |
| // Rev: <RnXnn> |
| // Prodnr: CNL 113 630 |
| // Updated: 2012-01-20 |
| // Contact: http://ttcn.ericsson.se |
| |
| module SCTP_Daemon_Dynamic_Types |
| { |
| |
| //========================================================================= |
| // Import Part |
| //========================================================================= |
| |
| import from SCTP_Daemon_Dynamic_Interface_Definitions all; |
| |
| import from IPL4asp_Types all; |
| import from IPL4asp_PortType all; |
| |
| //========================================================================= |
| // Data Types |
| //========================================================================= |
| |
| type record of integer IntegerList; |
| |
| type record AssociationRuntimeAttributes { |
| IntegerList subscribedTestcases, |
| integer socket, |
| integer endpointIndex, |
| SAC_STATE associationState, |
| charstring userState |
| } |
| |
| type record of AssociationRuntimeAttributes AssociationRuntimeAttributesList; |
| |
| type record SDD_AssociationConfig { |
| boolean serverAssociation, // true := server, false: client |
| boolean autoReconnect, |
| SDD_Interface localInterface optional, |
| SDD_Interface remoteInterface optional |
| } |
| |
| type record of SDD_AssociationConfig SDD_AssociationConfigList; |
| |
| 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 |
| //========================================================================= |
| //Port Types |
| //========================================================================= |
| |
| // Insert port type defintions here if applicable! |
| // You can use the port_type skeleton! |
| |
| //========================================================================= |
| //Component Types |
| //========================================================================= |
| |
| type component SDD_CT { |
| port SDD_Interface_PT daemonPort; |
| port IPL4asp_PT SCTP_PCO; |
| |
| var SDD_AssociationList vc_associationList := {}; |
| var AssociationRuntimeAttributesList vc_associationRuntimeAttributesList := {}; |
| var SDD_InterfaceList v_localEndpointList := {}; |
| |
| //var ASP_TCP_Connected vc_connected; |
| var SDD_Message_with_ClientId vc_daemonMessage; |
| |
| timer vc_reconnectTimer; |
| timer vc_inactivityTimer; |
| |
| var ASP_RecvFrom vc_asp_SCTP_ReceivedMessage; |
| var ASP_Event vc_asp_SCTP_Event; |
| var ASP_Event vc_asp_TCP_Event; |
| var ASP_Event vc_sctpResult; |
| |
| var ASP_Event vc_tcpClose; |
| |
| var RegisteredAutoReplyFunctionList vc_registeredAutoReplyFunctionList := {}; |
| var RegisteredAutoStateChangeHandlerFunctionList vc_registeredAutoStateChangeHandlerFunctionList := {}; |
| |
| 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 sctpReply |
| type function f_SDD_AutoReplyFunction(in integer associationIndex, in ASP_RecvFrom sctpReceived, out ASP_Send sctpReply) |
| runs on self return boolean; |
| |
| type record of f_SDD_AutoReplyFunction RegisteredAutoReplyFunctionList; |
| |
| // return true if the state should not be passed to TTCN, but sctpMsg has to be automatically sent on the association |
| type function f_SDD_AutoStateChangeHandlerFunction(in integer associationIndex, in SAC_STATE newState, out ASP_Send sctpMsg) |
| runs on self return boolean; |
| |
| type record of f_SDD_AutoStateChangeHandlerFunction RegisteredAutoStateChangeHandlerFunctionList; |
| |
| //========================================================================= |
| // Constants |
| //========================================================================= |
| |
| const SDD_Association c_emptyAssociation := { |
| associationId := -1, |
| serverAssociation := false, // true := server, false: client |
| autoReconnect := true, |
| localInterfacePresent := false, |
| localInterface := omit, |
| remoteInterfacePresent := false, |
| remoteInterface := omit |
| } |
| |
| const AssociationRuntimeAttributes c_emptyAssociationRuntimeAttribute := { |
| subscribedTestcases := {}, |
| socket := -1, |
| endpointIndex := -1, |
| associationState := SCTP_COMM_LOST, |
| userState := "" |
| } |
| |
| //========================================================================= |
| // Templates |
| //========================================================================= |
| |
| template SDD_Message_with_ClientId t_SDD_Message_with_ClientId := { |
| client_id := ?, |
| msg := ? |
| } |
| |
| template SDD_Message_with_ClientId t_queryAssociations modifies t_SDD_Message_with_ClientId := { |
| msg := { |
| queryAssociations := ? |
| } |
| } |
| |
| template SDD_Message_with_ClientId t_connect modifies t_SDD_Message_with_ClientId := { |
| msg := { |
| sctpConnect := ? |
| } |
| } |
| |
| template SDD_Message_with_ClientId t_listen modifies t_SDD_Message_with_ClientId := { |
| msg := { |
| sctpListen := ? |
| } |
| } |
| |
| template SDD_Message_with_ClientId t_close modifies t_SDD_Message_with_ClientId := { |
| msg := { |
| sctpClose := ? |
| } |
| } |
| |
| template SDD_Message_with_ClientId t_sctpData modifies t_SDD_Message_with_ClientId := { |
| msg := { |
| sctpData := ? |
| } |
| } |
| |
| template SDD_Message_with_ClientId t_subscribeToAssociation modifies t_SDD_Message_with_ClientId := { |
| msg := { |
| subscribeToAssociation := ? |
| } |
| } |
| |
| //SCTP Assoc Change |
| template ASP_Event tr_S_SCTP_AssocChange |
| ( template integer pl_associationID, |
| template SAC_STATE pl_state |
| ) := |
| { |
| sctpEvent := |
| { |
| sctpAssocChange := |
| { |
| clientId := pl_associationID, |
| proto := |
| { |
| sctp:= |
| { |
| sinfo_stream := *, |
| sinfo_ppid := *, |
| remSocks := *, |
| assocId := * |
| } |
| }, |
| 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 := * |
| } |
| } |
| |
| //SCTP Connected |
| template ASP_Event tr_ASP_SCTP_Connected:= |
| { |
| connOpened := |
| { |
| connId := ?, |
| remName := ?, |
| remPort := ?, |
| locName := ?, |
| locPort := ?, |
| proto := |
| { |
| sctp:= |
| { |
| sinfo_stream := *, |
| sinfo_ppid := *, |
| remSocks := *, |
| assocId := * |
| } |
| }, |
| userData := ? |
| } |
| } |
| |
| template ASP_Event tr_ASP_SCTP_Closed := |
| { |
| connClosed := |
| { |
| connId := ?, |
| remName := ?, |
| remPort := ?, |
| locName := ?, |
| locPort := ?, |
| proto := |
| { |
| sctp:= |
| { |
| sinfo_stream := *, |
| sinfo_ppid := *, |
| remSocks := *, |
| assocId := * |
| } |
| }, |
| 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 |