LibIot_TypesAndValues.ttcn 7.38 KB
Newer Older
Bostjan Pintar's avatar
Bostjan Pintar committed
/*
 *    @author     STF 370
Bostjan Pintar's avatar
Bostjan Pintar committed
 *  @version    $Id: LibIot_TypesAndValues.ttcn 16 2009-06-16 15:06:42Z pintar $
 *    @desc        This module provides the (message) types and constants used by the test component 
Bostjan Pintar's avatar
Bostjan Pintar committed
 *              for Iot tests. 
 */

module LibIot_TypesAndValues { 
    
    import from LibCommon_BasicTypesAndValues {type UInt32, UInt16;}
    import from LibCommon_VerdictControl {type FncRetCode;}
    group commonTypes {
      type enumerated IOTExecMode { e_realtime, e_offline }
        type record Status {
            FncRetCode code,
            charstring reason optional
        }
        
    }
        
    group interfaceInformationrelatedTypes {
      
    /**
     * 
     * @desc IP address type e.g. "127.0.0.1" 
     */
    type charstring IpAddress;
    
    /**
     * 
     * @desc Type for port number, e.g. "5060" 
     */
    type UInt16 PortNumber;
    
    /**
     * 
     * @desc List of port numbers 
     */
    type record of PortNumber PortNumberList;
     
     type record InterfaceAvailable {
         charstring interfaceName,
         boolean available    
     }
     
     type set of InterfaceAvailable InterfaceAvailableList;
     
     /**
      * 
      * @desc Required information for IP interfaces
      * @member domainName the domain name
      * @member IpAddress the ip address
      * @member portNumbers the list of port numbers where message are received
      */
    type record IpInterfaceInfo {
       charstring domainName optional,
       IpAddress IpAddress,
       PortNumberList portNumbers    
    }
     
     /**
      * 
      * @desc List of IP interfacees
      */
    type record of IpInterfaceInfo IpInterfaceInfoList;
     
     /**
      * 
      * @desc Collection of different interface types, e.g for IP communications 
      *       This type can be extended with new alternative for other interface types
      */
    type union InterfaceInfo {
       IpInterfaceInfoList IpInterfaceInfo
    }
    
    /**
     * 
     * @desc Type for representing EUT interface information for monitored logical interfaces 
     * @member interfaceName Name of logical interface
     * @member interfaceInfo Interface information specific to this logical interface
     */ 
    type record MonitorInterfaceInfo {
       charstring interfaceName,
       InterfaceInfo interfaceInfo    
    }
    
    /**
     * 
     * @desc List of monitored interfaces 
     */
    type record of MonitorInterfaceInfo MonitorInterfaceInfoList;
    
    /**
    * 
    * @desc List of VxLTE Monitor interfaces 
    */
Bostjan Pintar's avatar
Bostjan Pintar committed
    type record VxLTEMonitorInterfaceList{
        MonitorInterfaceInfo gmA     optional,
        MonitorInterfaceInfo gmB     optional,
        MonitorInterfaceInfo mmB_PSAP optional,// Mm interface at IBCF to PSAP
		MonitorInterfaceInfo mwEB     optional,// Mw interface at ECSCF to IBCF
        MonitorInterfaceInfo mwS_PSAP optional,// Mw interface at SCSCF to PSAP
        MonitorInterfaceInfo ic     optional,
        MonitorInterfaceInfo mwPI     optional,// Mw interface at P-CSCF/I-CSCF or P-CSCF/S-CSCF if I-CSCF not used
        MonitorInterfaceInfo mwPS     optional,
        MonitorInterfaceInfo mwPE   optional,// Mw interface at P-CSCF to E-CSCF
        MonitorInterfaceInfo mwIS    optional,// Mw interface at I-CSCF/S-CSCF
        MonitorInterfaceInfo mwPB    optional,// Mw interface at P-CSCF/IBCF    
        MonitorInterfaceInfo mwIB    optional,// Mw interface at I-CSCF/IBCF 
        MonitorInterfaceInfo mwIE   optional,// Mw interface at I-CSCF/S-CSCF to E-CSCF
        MonitorInterfaceInfo isc    optional, 
        MonitorInterfaceInfo cxIH    optional, 
        MonitorInterfaceInfo cxSH    optional,
        MonitorInterfaceInfo gx        optional,
        MonitorInterfaceInfo rx        optional,
        MonitorInterfaceInfo s6a    optional,
        MonitorInterfaceInfo s9        optional,
        MonitorInterfaceInfo sh        optional        
     /**
      * 
      * @desc Product specific EUT interface information 
      * @member name the name of the vendor
      * @member monitorInterfaces monitor interface configuration
      */
    type record Product {
       charstring productName,
       MonitorInterfaceInfoList monitorInterfaces
    }
    
    /**
     * 
     * @desc List of product specificr EUT interface information
     */
    type record of Product ProductList;
    }
    
    group adapterConfigurationTypes {
        
Bostjan Pintar's avatar
Bostjan Pintar committed
    type union CaptureMode {
      LiveCapture liveCpature,
      OfflineCapture offlineCapture
    }
    
    //
    type record of charstring PhysicalInterfaceList;
         
    type record LiveCapture {
        PhysicalInterfaceList physicalInterfaces, // TODO document example syntax
Bostjan Pintar's avatar
Bostjan Pintar committed
      RecordMode            recordMode
    }
    
    type enumerated RecordMode {
      e_norecord,
      e_record  
    }
    
    type record of charstring FileList;

    type record MergeFileList {
      FileList    mergeFileList, 
      charstring  mergeFilePath,   
      charstring  mergeToolPath   
    }
    
    type record CaptureSource {
        charstring sessionsPath, // e.g., the path where session's PCAP files are located like /tmp/19
        MergeFileList mergeFileList
Bostjan Pintar's avatar
Bostjan Pintar committed
    }
    
    type record TimeOffset
    {
      UInt32 seconds,
      UInt32 microseconds
    }
    
    type record OfflineCapture {
      TimeOffset     offset,
      CaptureSource  captureSource
    }
    
  /**
   * 
   * @desc Required information for EUTs IP interfaces
   * @member IpAddress the ip address
   * @member portNumber the list of port number where message are received
   */
  type record EutInterfaceInfo {
     charstring     eut,
     IpAddress      ipAddress,
     PortNumber     portNumber
  }
  
 /**
   * 
   * @desc List of IP interfaces for EUTs
   */
  type record of EutInterfaceInfo EutInterfaceInfoList;
  

    
    type record GeneralConfigurationReq {
      charstring  captureProcessIpAddress,
      PortNumber  captureProcessPort,
      CaptureMode captureMode,
      EutInterfaceInfoList eutInfoList optional
    }
    
    type record GeneralConfigurationRsp
    {
      Status status
    }
    
    
    //type record (2..infinity) of InterfaceInfo InterfaceInfoList;
    type record of InterfaceInfo InterfaceInfoList;
    
    type enumerated ProtocolFilter {
        e_ip,
Bostjan Pintar's avatar
Bostjan Pintar committed
    }
    
    type record SetFilterReq {
      ProtocolFilter    protocol,
      InterfaceInfoList interfaceInfos
    }

        
    type record SetFilterRsp
    {
      Status status
    }
    
    
    type record StartTrafficCaptureReq { }
    
    type record StartTrafficCaptureRsp
    {
      Status status
    }
    
    
    type record StopTrafficCaptureReq { }
  
    type record StopTrafficCaptureRsp
    {
      Status status
    }

    group oracleRelatedTypes {
       // used for PIXIT definition
      type enumerated IotVerdictType { e_e2e, e_conformance }
    
      // used for verdict handling
      type record VerdictType {
          verdicttype verdict,
         charstring reason optional    
      }
    
      type union IotVerdict {
          VerdictType e2e,
          VerdictType conformance    
      }
    }
    /**
Bostjan Pintar's avatar
Bostjan Pintar committed
     * @desc Default record
     */
    type record of default DefaultList;
    type record ComponentId {
           charstring name,
           integer index // explain more
       }
       type set of ComponentId ComponentIdList;