Commit 44539f4d authored by reinaortega's avatar reinaortega
Browse files

CALM protocols split out

parent 2f6eb881
Loading
Loading
Loading
Loading

CALM/LibIts_Interface.ttcn

deleted100644 → 0
+0 −668
Original line number Original line Diff line number Diff line
/**
 *    @author     ETSI / STF405
 *    @version    $URL$
 *                $Id$
 *    @desc       Module containing PTCs and interface ports definitions for ITS
 *
 */
module LibIts_Interface {
    
    // LibCommon
    import from LibCommon_BasicTypesAndValues {
        type UInt16
    };
    import from LibCommon_Time {modulepar all;}
    import from LibCommon_Sync all;
    
    // LibIts - IP Protocols
    import from LibItsGeoNetworking_TypesAndValues all;
    import from LibItsIpv6OverGeoNetworking_TypesAndValues all;
    import from CAM_PDU_Descriptions language "ASN.1:1997" all;
    import from DENM_PDU_Descriptions language "ASN.1:1997" all;
    import from LibItsBtp_TypesAndValues all;
    import from LibItsCam_TypesAndValues all;
    import from LibItsDenm_TypesAndValues all;
    import from LibItsGeoNetworking_TypesAndValues all;
    import from LibItsExternal_TypesAndValues all;
    //  LibIts - Non IP Protocols
    import from CALMiitsscu language "ASN.1:1997" all;
    import from CALMmanagement language "ASN.1:1997" all;
    import from CALMllsap language "ASN.1:1997" {
        type 
            INsapPrimitivesUp, INsapPrimitivesDown
    };
    import from CALMmsap language "ASN.1:1997" all;
    import from CALMfntp language "ASN.1:1997" all;
    import from LibItsMgt_TypesAndValues all;
    import from LibItsFntp_TypesAndValues all;
    import from LibItsFsap_TypesAndValues all;
    // LibIts
    import from LibItsCommon_TypesAndValues all;
    
    group adapterInterface {
            
        group portDefinitions {
        
            /**
             * @desc Adapter control port
             */
            type port AdapterControlPort message {
                out 
                    AcGnPrimitive, AcGn6Primitive, // IP Protocols
                    AcFntpPrimitive, AcFsapPrimitive; // Non IP Protocols
                in 
                    AcGnResponse, AcGn6Response;
            } // end AdapterControlPort
    
            /**
             * @desc Upper Tester port
             */
            type port UpperTesterPort message {
                out 
                    UtInitialize, UtTrigger, UtCheck, UtCommandRequest;
                in 
                    UtResult, UtCommandConfirm, UtCommandIndication
            } // end UpperTesterPort
            
        } // end portDefinitions
        
        group adapterComponent {
            
            /**
             * @desc    Upper tester and Adapter control component 
             * @remark  SelfSyncComp extends ClientSyncComp. 
             *          We can self-sync in a single-component setup or server-sync in a multi-component setup
             */
            type component ItsAdapterComponent extends SelfSyncComp {
                
                // Adapter ports
                port UpperTesterPort utPort;
                port AdapterControlPort acPort;
                
                // timers
                timer tc_wait := PX_TWAIT;
                timer tc_ac := PX_TAC;
                timer tc_noac := PX_TNOAC;
                
            } // end AdapterComponent
               
        } // end adapterComponent    

    } // adapterInterface     
    
    group interfaceComponents {
        
        /**
         * @desc Test component for ITS Access layer 
         */
        type component ItsAc extends ItsAdapterComponent {
            
            // AC1 ports
            port MacM5Port macM5Port;
            
            // AC2 ports
            port MacIrPort macIrPort;
        } // End of component ItsAc

        /**
         * @desc Test component for ITS Facility layer 
         */
        type component ItsFa extends ItsAdapterComponent {
 
            // FA1 ports
            port CamPort camPort;
            port DenmPort denmPort;
            
            // FA2 ports
            port CooperPort cooperPort;
            
            //timers
            
            //component variables
			var CamInd vc_camMsg;
            //default
            var default vc_default := null;
            
            //global variables
            var SequenceNo vc_sequenceNo := 0;
            var boolean vc_camReceived := false;
            var boolean vc_denmReceived := false;
            
        } // End of component ItsFa

        /**
         * @desc Test component for ITS Management layer 
         */
        type component ItsMgt extends ItsAdapterComponent {
            
            // MGT1 ports - Used to send remote command to/from 
            port IicpPort iicpPort;
            // MGT2 ports - Used to send command to/from through SAP interfaces
            port MgtMFSapPort mgtMFSapPort; 
            port MgtMNSapPort mgtMNSapPort;
            
            // timers
            
            // variables
            var CommandRef vc_commandRef := 0; // Cyclic counter identifying a NF-FNTP-COM.request
            var PduCounter vc_pduCounter := 0; // Cyclic counter identifying a PDU counter
            var integer vc_noFNTPfwtEntry := 0;
            
        } // End of component ItsMgt

        /**
         * @desc Test component for ITS Network and Transport layer 
         */
        type component ItsNt extends ItsMgt/*ItsAdapterComponent*/ {
            
            // NT1 ports 
            port BtpPort btpPort;
            
            // NT2 ports
            port GeoNetworkingPort geoNetworkingPort;
            port IPv6OverGeoNetworkingPort ipv6OverGeoNetworkingPort;
            
            // NT3 ports
            port FntpPort fntpPort;
            // FIXM To be removed at the end port FastPort fastPort;
            
            // timers
            
            //variables for Gn
            var UInt16 vc_localSeqNumber := 0;
            var PositionTable vc_positionTable := {};
            var GeoAreaTable vc_areaTable := {};
            var charstring vc_componentName := "";
            var default vc_neighbourDefault;
            
            //variables for Gn6
            var GvlTable vc_gvlTable := {};
            var AddressTable vc_addressTable := {};
            
            // Variables for Fntp
            var PortNumber vc_portNumber := { portLong := 0 };
            var ITS_scuId vc_scuId := 0; // TODO Check if it is used or not
            var UtCommandConfirm vc_utCommandConf; // FIXME To be removed
            
        } // End of component ItsNt
        
    } // End of group interfaceComponents
    
    group interfacePorts {
        
        group accessPorts {
        
            group ac1Ports {
                
                /**
                 * @desc AC1 Mac M5 Port (MacM5/PhyM5) 
                 */
                type port MacM5Port message {
                    in MacM5Ind;
                    out MacM5Req;
                } // End of port MacM5Port
                
            } // End of group ac1Ports

            group ac2Ports {
                
                /**
                 * @desc AC2 Mac IR Port (MacIR/PhyIR) 
                 */
                type port MacIrPort message {
                    in MacIrInd;
                    out MacIrReq;
                } // End of port MacIrPort
                
            } // End of group ac2Ports
            
        } // End of group accessPorts

        group facilityPorts {
            
            group fa1Ports {
    
                /**
                 * @desc FA1 CAM Port (CAM/BTP/GeoNet/G5) 
                 */
                type port CamPort message {
                    in CamInd;
                    out CamReq;
                } // End of port CamPort
                
                /**
                 * @desc FA1 DENM Port (DENM/BTP/GeoNet/G5) 
                 */
                type port DenmPort message {
                    in DenmInd;
                    out DenmReq;
                } // End of port DenmPort
                
            } // End of group fa1Ports
            
            group fa2Ports {
                
                /**
                 * @desc FA2 Cooper Port (Cooper/Fast/M5-IR) 
                 */
                type port CooperPort message {
                    in CooperInd;
                    out CooperReq;
                } // End of port CooperPort
                
            } // End of group fa2Ports
            
        } // End of group facilityPorts
        
        group managementPorts {
            
            group mgt1Ports {
                
                /**
                 * @desc MGT1 IISC Port (IISC/LAN) 
                 */
                type port IicpPort message {
                    inout
                        IicpReq,
                        IicpResp;
                } // End of port IicpPort
                
            } // End of group mgt1Ports
            
            group mgt2Ports {
                
                /**
                 * @desc MGT2 Management Port - MF-SAP service primitives
                 */
                type port MgtMFSapPort message {
                    inout 
                        MgtMFSapRequestReq; 
                    in 
                        MgtMFSapCommandReq, 
                        MgtMFSapRequestConfirm; 
                } // End of port MgtMFSapPort
                
                /**
                 * @desc MGT2 Management Port - MN-SAP service primitives
                 */
                type port MgtMNSapPort message { 
                    inout 
                        MgtMNSapCommandReq, 
                        MgtMNSapRequestReq;
                    in 
                        MgtMNSapCommandConfirm, 
                        MgtMNSapRequestConfirm;
                } // End of port MgtMNSapPort
                
            } // End of group mgt2Ports
            
        } // End of group managementPorts

        group networkAndTransportPorts {
            
            group nt1Ports {

                /**
                 * @desc NT1 BTP Port (BTP/GeoNet/G5) 
                 */
                type port BtpPort message {
                    in BtpInd;
                    out BtpReq;
                } // end BtpPort
                                
            } // End of group nt1Ports
            
            group nt2Ports {

                /**
                 * @desc NT2 GeoNetworking Port (GeoNetworking/G5) 
                 */
                type port GeoNetworkingPort message {
                    in GeoNetworkingInd;
                    out GeoNetworkingReq;
                } // end GeoNetworkingPort

                /**
                 * @desc NT2 IPv6 over GeoNetworking Port (IPv6/GeoNetworking/G5) 
                 */
                type port IPv6OverGeoNetworkingPort message {
                    in IPv6OverGeoNetworkingInd;
                    out IPv6OverGeoNetworkingReq;
                } // end IPv6OverGeoNetworkingPort
                
            } // End of group nt2Ports
            
            group nt3Ports {
                
                /**
                 * @desc NT3 Fntp Port
                 */
                type port FntpPort message {
                    inout 
                        INsapPrimitivesUp,
                        INsapPrimitivesDown
                } // End of port FntpPort
                
                // FIXME To be remove at the end
//                /**
//                 * @desc NT3 Fast Port (Fast/M5-IR) 
//                 */
//                type port FastPort message {
//                    in FastInd;
//                    out FastReq;
//                } // end FastPort
                
            } // End of group nt3Ports
            
        } // End of group networkAndTransportPorts
    
    } // End of group interfacePorts

    group interfacePrimitives { 
        
        group accessPrimitives {
            
            group ac1Primitives {
                
                /**
                 * @desc AC1 Mac M5 Indication Primitive 
                 */
                type record MacM5Ind {
                }
                
                /**
                 * @desc AC1 Mac M5 Request Primitive 
                 */
                type record MacM5Req {
                }
                
            } // End of group ac1Primitives
            
            group ac2Primitives {
                
                /**
                 * @desc AC2 Mac IR Indication Primitive 
                 */
                type record MacIrInd {
                }
                                
                /**
                 * @desc AC2 Mac IR Request Primitive 
                 */
                type record MacIrReq {
                }
                
            } // End of group ac2Primitives
            
        } // End of group accessPrimitives
        
        group facilityPrimitives {
            
            group fa1Primitives {
                
                /**
                 * @desc FA1 CAM Indication Primitive 
                 */
                type record CamInd {
                    CamPdu msgIn
                }
                with {
                    encode (msgIn) "LibItsCam_asn1"
                }
                    
                /**
                 * @desc FA1 CAM Request Primitive 
                 */
                type record CamReq {
                    CamPdu msgOut
                }
                with {
                    encode (msgOut) "LibItsCam_asn1"
                }

                /**
                 * @desc FA1 DENM Indication Primitive 
                 * 
                 * @member denmMsg
                 */
                type record DenmInd {
                    DenmPdu msgIn,
                    TimeStamp receptionTime
                }
                with {
                    encode (msgIn) "LibItsDenm_asn1"
                }
                
                /**
                 * @desc FA1 DENM Request Primitive 
                 * 
                 * @member denmMsg
                 */
                type record DenmReq {
                    DenmPdu msgOut
                }
                with {
                    encode (msgOut) "LibItsDenm_asn1"
                }
                
            } // End of group fa1Primitives
            
            group fa2Primitives {
                
                /**
                 * @desc FA2 Cooper Indication Primitive 
                 */
                type record CooperInd {
                }
                                
                /**
                 * @desc FA2 Cooper Request Primitive 
                 */
                type record CooperReq {
                }            
                
            } // End of group fa2Primitives
            
        } // End of group facilityPrimitives
        
        group managementPrimitives {
            
            group mgt1Primitives {
                
                /**
                 * @desc MGT1 IISC Indication Primitive 
                 */
                type record IicpResp {
                    IIC_Response msgInOut
                }
                
                /**
                 * @desc MGT1 IISC Request Primitive 
                 */
                type record IicpReq {
                    IIC_Request msgInOut
                }
                
            } // End of group mgt1Primitives
            
            /**
             * @desc    MGT2 Management Service Primitives
             * @see     ISO/CD 24102-3
             */
            group mgt2Primitives {
                
                /**
                 * @desc    MF-SAP service primitives
                 * @see     ISO/CD 24102-3 Clause 8.1
                 */
                group MF_SAP {
                    
//                    /**
//                     * @desc    Management service primitive MF-COMMAND.request
//                     * @see     ISO/CD 24102-3 Clause 8.2.2
//                     */
//                    type record MgtMFSapCommandInd {
//                        MF_Command_request msgIn
//                    }
//                    
                    /**
                     * @desc    Management service primitive MF-REQUEST.confirm
                     * @see     ISO/CD 24102-3 Clause 8.3.3
                     */
                    type record MgtMFSapRequestConfirm {
                        MF_Request_confirm msgIn
                    }
                    
//                    /**
//                     * @desc MGT2 Management Request Primitive 
//                     */
//                    type record MgtMFSapRequestInd { // FIXME To be removed
//                        MF_Request_request msgIn
//                    }
                    
                    /**
                     * @desc    Management service primitive MF-COMMAND.confirm
                     * @see     ISO/CD 24102-3 Clause 8.2.3
                     */
                    type record MgtMFSapCommandReq {
                        MF_Command_request msgIn
                    }
                    
                    /**
                     * @desc    Management service primitive MF-REQUEST.request
                     * @see     ISO/CD 24102-3 Clause 8.3.2
                     */
                    type record MgtMFSapRequestReq {
                        MF_Request_request msgInOut
                    }
                    
                } // End of group MF_SAP
                
                /**
                 * @desc    MF-SAP service primitives
                 * @see     ISO/CD 24102-3 Clause 7.1
                 */
                group MN_SAP {
                    
                    /**
                     * @desc    Management service primitive MN-COMMAND.request
                     * @see     ISO/CD 24102-3 Clause 7.2.2
                     */
                    type record MgtMNSapCommandReq {
                        MN_Command_request msgInOut
                    }
                    
                    /**
                     * @desc    Management service primitive MN-REQUEST.request
                     * @see     ISO/CD 24102-3 Clause 7.3.2
                     */
                    type record MgtMNSapRequestReq {
                        MN_Request_request msgInOut
                    }
                    
                    /**
                     * @desc    Management service primitive MN-COMMAND.confirm
                     * @see     ISO/CD 24102-3 Clause 7.2.3
                     */
                    type record MgtMNSapCommandConfirm {
                        MN_Command_confirm msgIn
                    }
                    
                    /**
                     * @desc    Management service primitive MN-REQUEST.confirm
                     * @see     ISO/CD 24102-3 Clause 7.3.3
                     */
                    type record MgtMNSapRequestConfirm {
                        MN_Request_confirm msgIn
                    }
                    
                } // End of group MN_SAP
                
            } // End of group mgt2Primitives
            
        } // End of group managementPrimitives 
        
        group networkAndTransportPrimitives { 
            
            group nt1Primitives {

                /**
                 * @desc NT1 BTP Indication Primitive 
                 */
                type record BtpInd {
                    BtpPacket msgIn
                }
            
                /**
                 * @desc NT1 BTP Request Primitive 
                 */
                type record BtpReq {
                    BtpPacket msgOut
                }
                            
            } // end nt1Primitives
        
            group nt2Primitives {
                
                /**
                 * @desc NT2 GeoNetworking Indication Primitive 
                 */
                type record GeoNetworkingInd {
                    GeoNetworkingPacket msgIn,
                    MacAddress macDestinationAddress
                }
                
                /**
                 * @desc NT2 GeoNetworking Request Primitive 
                 */
                type record GeoNetworkingReq {
                    GeoNetworkingPacket msgOut,
                    MacAddress macDestinationAddress
                }
                
                /**
                 * @desc NT2 IPv6 over GeoNetworking Indication Primitive 
                 */
                type record IPv6OverGeoNetworkingInd {
                    charstring interface,
                    MacAddress macSourceAddress,
                    MacAddress macDestinationAddress,
                    Ipv6Packet ipv6Packet
                }
                
                /**
                 * @desc NT2 IPv6 over GeoNetworking Request Primitive 
                 */
                type record IPv6OverGeoNetworkingReq {
                    charstring interface,
                    MacAddress macSourceAddress,
                    MacAddress macDestinationAddress,
                    Ipv6Packet ipv6Packet
                }
                
            } // end nt2Primitives
            
            group nt3Primitives {
                
//                /**
//                 * @desc NT3 Fast Indication Primitive 
//                 */
//                type record FastInd {
//                }
//            
//                /**
//                 * @desc NT3 Fast Request Primitive 
//                 */
//                type record FastReq {
//                }
//            
            } // end nt3Primitives
            
        } // End of group networkAndTransportPrimitives
        
    }
    with {
        encode "LibIts_Interface"
    } // end interfacePrimitives    
    
} // End of module LibIts_Interface
 No newline at end of file

CALM/LibIts_TestSystem.ttcn

deleted100644 → 0
+0 −71
Original line number Original line Diff line number Diff line
/**
 *    @author     ETSI / STF405
 *  @version     $URL$
 *                $Id$
 *    @desc        Test System module for ITS
 *
 */
module LibIts_TestSystem {
    
    // LibCommon
    import from LibCommon_Time {modulepar all};
    import from LibCommon_Sync all;
    
    // LibIts
    import from LibIts_Interface all;
    
    group componentDefinitions {

        /**
         * @desc ITS Main Test Component 
         */
        type component ItsMtc extends ItsAdapterComponent, ServerSyncComp {

            // timers
               timer tc_guard := PX_TDONE;   

        } // end ItsMtc
    
        /**
         * @desc ITS System Adapter
         */
        type component ItsSystem {
            
            port UpperTesterPort utPort;
            port AdapterControlPort acPort;
            
            // AC1 ports
            port MacM5Port macM5Port;
            
            // AC2 ports
            port MacIrPort macIrPort;
            
            // FA1 ports
            port CamPort camPort;
            port DenmPort denmPort;
            
            // FA2 ports
            port CooperPort cooperPort;
            
            // MGT1 ports
            port IicpPort iicpPort;
            // MGT2 ports
            port MgtMFSapPort mgtMFSapPort;
            port MgtMNSapPort mgtMNSapPort;
            
            // NT1 ports 
            port BtpPort btpPort;
            
            // NT2 ports
            port GeoNetworkingPort geoNetworkingPort;
            port IPv6OverGeoNetworkingPort ipv6OverGeoNetworkingPort;
            
            // NT3 ports
            port FntpPort fntpPort; // Fast Network & Transport layer Protocol and Fast Service Advertisement Protocol
// FIXME To be removed at the end            port FastPort fastPort;

        } // end component ItsAdapter
        
    } // End of group componentDefinitions
     
} // End of module LibIts_TestSystem
 No newline at end of file