Commit 10e01aa2 authored by garciay's avatar garciay
Browse files

Separate IICP and FAST protocols (see draft ETSI TS 102 797-2 v0.0.8, clauses 8 (IICP) and 9 (FSAP)

parent 58a7db0a
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ module LibItsCommon_TypesAndValues {
        type 
            UtFsapInitialize, 
            UtFsapEvent, 
            UtFsapCommandRequest, UtFsapCommandConfirm 
            UtFsapCommandRequest // , UtFsapCommandConfirm FIXME To be removed
    };
    import from LibItsIicp_TypesAndValues {
        type 
@@ -85,8 +85,8 @@ module LibItsCommon_TypesAndValues {
     * @desc Upper Tester message describing an action/event 
     */
    type union UtCommandConfirm {
        UtFntpCommandConfirm utFntpCommandConfirm,
        UtFsapCommandConfirm utFsapCommandConfirm
        UtFntpCommandConfirm utFntpCommandConfirm
// FIXME To be removed       UtFsapCommandConfirm utFsapCommandConfirm
    }
    
    /**
+7 −3
Original line number Diff line number Diff line
@@ -40,9 +40,10 @@ module LibItsFntp_Functions {
    import from LibItsFntp_Pics {
        modulepar PICS_ITS_S_INW;
    };
    import from LibItsCommon_TypesAndValues {
        type UtCommandConfirm
    };
    // FIXME To be removed
//    import from LibItsCommon_TypesAndValues {
//        type UtCommandConfirm
//    };
    import from LibItsCommon_Functions {
        function
            f_utInitializeIut, 
@@ -139,6 +140,9 @@ module LibItsFntp_Functions {
            
        } // end f_cf01Down
        
        /**
         * @desc Deletes configuration cf02
         */
        function f_cf02Down() runs on ItsNt {
            
            deactivate;
+86 −9
Original line number Diff line number Diff line
@@ -57,13 +57,19 @@ module LibItsFsap_Functions {
         */
        function f_cf01Up() runs on ItsMgt {
            
            // Sanity check
            if (PICS_ITS_S_INW) {
                log("*** f_cf01Up: ERROR: PICS_ITS_S_INW shall not be required for executing the TC ***");
                stop;
            }
            
            // Map
            map(self:acPort, system:acPort);
            map(self:utPort, system:utPort);
            map(self:mgtMFSapPort, system:mgtMFSapPort);
            
            // Connect
            f_connect4SelfOrClientSync();
            f_connect4SelfOrClientSync(); // FIXME Check if we have to use f_connectNSelfOrClientSync(3, xxx)
            
            // Set processing on shutdown
            activate(a_cf01Down());
@@ -76,6 +82,42 @@ module LibItsFsap_Functions {
            
        } // End of function f_cf01Up
        
        /**
         * @desc This configuration features:
         * <li>Host and Router are separated (see ISO/WD 29281-2 - Figure 3 - Implementation architecture II & III)</li>
         * <li>MGT1 IISC Port (IISC/LAN) is not used</li>
         */
        function f_cf02Up() runs on ItsMgt {
            
            // Sanity check
            if (not(PICS_ITS_S_INW)) {
                log("*** f_cf02Up: ERROR: PICS_ITS_S_INW required for executing the TC ***");
                stop;
            }
            
            vc_commandRef := 0;
            vc_pduCounter := 0;
            
            // Map
            map(self:acPort, system:acPort);
            map(self:utPort, system:utPort);
            map(self:mgtMNSapPort, system:mgtMNSapPort);
            map(self:iicpPort, system:iicpPort);
            
            // Connect
            f_connect4SelfOrClientSync();
            
            // Set processing on shutdown
            activate(a_cf02Down());
            
            // Initialize the component
            f_initialiseComponent("cf02Up");

            // Initialze the IUT
            f_initialState();
            
        } // End of function f_cf02Up
        
        /**
         * @desc    Deletes configuration cf01
         */
@@ -93,6 +135,24 @@ module LibItsFsap_Functions {
            
        } // End of f_cf01Down
        
        /**
         * @desc Deletes configuration cf02
         */
        function f_cf02Down() runs on ItsMgt {
            
            deactivate;
            
            // Unmap
            unmap(self:acPort, system:acPort);
            unmap(self:utPort, system:utPort);
            unmap(self:mgtMFSapPort, system:mgtMFSapPort);
            unmap(self:iicpPort, system:iicpPort);
            
            // Disconnect
            f_disconnect4SelfOrClientSync();
            
        } // End of f_cf02Down
        
        /**
         * @desc    Behavior function for initializing component's variables and tables
         * @param   p_componentName Name of the component
@@ -174,25 +234,25 @@ module LibItsFsap_Functions {
        /**
         * @desc    Gets the SAM retransmit timer.
         * @return  SAM retransmit timer 
         * @see     PICS_SAM_RETRANSMIT_TIMER
         */
        function f_getIutSAMRetransmitTimer() return float {
            return int2float(
                PICS_SAM_RETRANSMIT_TIMER) / 1000.0; 
            return int2float(PICS_SAM_RETRANSMIT_TIMER) / 1000.0; 
        }
        
        /**
         * @desc    Gets the maximum SAM jitter.
         * @return  Maximum SAM jitter
         * @see     PICS_SAM_RETRANSMIT_TIMER
         */
        function f_getIutSAMMaxJitter() return float {
            return int2float(
                PICS_SAM_RETRANSMIT_TIMER) / 1000.0; 
            return int2float(PICS_SAM_RETRANSMIT_TIMER) / 1000.0; 
        }
        
        /**
         * @desc    TODO
         * @return  TODO
         * @verdict TODO
         * @desc    Get the ITS application object ID (ITS-AID)
         * @return  The ITS application object ID (ITS-AID)
         * @see     PX_APPLICATION_ID
         */
        function f_getIutApplicationID() return ApplicationID {
            return PX_APPLICATION_ID;
@@ -216,6 +276,11 @@ module LibItsFsap_Functions {
            return { PX_GSCHED_ACCESS_TECH_NONIP };
        }
        
        function f_getIutGCscheduleWithUnknownAccessTechAndNonIP() return GCschedule {
            return { PX_GSCHED_ACCESS_UNKNOWN_TECH_NONIP };
        }
        
                
        /**
         * @desc    TODO
         * @return  TODO
@@ -285,6 +350,18 @@ module LibItsFsap_Functions {
            }
        } // End of altstep a_cf01Down()
        
        /**
         * @desc Default handling cf02 de-initialisation.
         */
        altstep a_cf02Down() runs on ItsMgt {
            [] a_shutdown() {
                f_poDefault();
                f_cf02Down();
                log("*** a_cf02Down: INFO: TEST COMPONENT NOW STOPPING ITSELF! ***");
                stop;
            }
        } // End of altstep a_cf02Down()
        
    } // End of group fsapAltsteps
    
} // End of module LibItsFsap_Functions
 No newline at end of file
+23 −4
Original line number Diff line number Diff line
@@ -65,13 +65,17 @@ module LibItsFsap_Pixits {
        
        modulepar PortNumber PX_NO_SESSION_PORT := { portLong := c_portNon }
        
        /**
         * @desc    ITS application object ID (ITS-AID) 
         * @see     ISO EN 17419
         */
        modulepar ApplicationID PX_APPLICATION_ID := {
            hostITS_scuId := 1,
            seqNumber := 1
        }
        
        /**
         * @desc 
         * @desc TODO
         * 'medium' field indicates the required access technology
         */
        modulepar GCsched PX_GSCHED_ACCESS_TECH_NONIP := {
@@ -86,7 +90,22 @@ module LibItsFsap_Pixits {
        } // End of modulepar PX_GSCHED_ACCESS_TECH_NONIP
        
        /**
         * @desc 
         * @desc TODO
         * 'medium' field indicates the required access technology
         */
        modulepar GCsched PX_GSCHED_ACCESS_UNKNOWN_TECH_NONIP := {
            medium := 254, // FIXME TTwb does not generate MedType_can_
            directivity := {
                mode := 0, // FIXME TTwb does not generate DirMode.fixed label
                dirPredef := 0,
                fill := '0000000'B, 
                dirVar := { }
            }, // End of field 'directivity'
            gcInterval := 1
        } // End of modulepar PX_GSCHED_ACCESS_TECH_NONIP
        
        /**
         * @desc TODO
         * 'medium' field indicates no required access technology selected
         */
        modulepar GCsched PX_GSCHED_NONIP := {
@@ -131,9 +150,9 @@ module LibItsFsap_Pixits {
     */
    modulepar float PX_WAIT_FOR_IUT_READY := 1.0;
    
    modulepar FmtID PX_FMTID_SAM := 0;
    modulepar FmtID PX_FMTID_SAM := 0; // TODO Use CLAMfsap.FmtID_sam_
    
    modulepar FmtID PX_FMTID_CTX := 0;
    modulepar FmtID PX_FMTID_CTX := 1; // TODO Use CLAMfsap.FmtID_ctx_
    
    modulepar VersionFSAP PX_VERSION_FSAP := 0;
    
+66 −18
Original line number Diff line number Diff line
@@ -32,9 +32,11 @@ module LibItsFsap_Templates {
    import from CALMfsap language "ASN.1:1997" {
        type 
            ApplicationID, 
            CTX, CTXrxNot, GCctxTxCmd,  GCregServer, GCregClient, GCderegClient, GCschedule, 
            ServiceDataReg, SAMserviceData, ServiceData, 
            SAM, SAMrxNot 
            GCctxTxCmd,  GCregServer, GCregClient, GCderegClient, GCschedule, 
            ServiceDataReg, ServiceData, ContextData, 
            SAMserviceData, CTXserviceData, 
            SAM, SAMrxNot, 
            CTX, CTXrxNot 
    };
    import from LibItsFsap_Pixits {
        modulepar 
@@ -280,12 +282,16 @@ module LibItsFsap_Templates {
                /**
                 * @desc 
                 */
                template MF_Command mw_mfCommad_gCSAM(
                template (present) MF_Command mw_mfCommand_any := {
                    fill := ?,
                    mfCmd := ?
                } // End of template mw_mfCommand_any
                
                template (present) MF_Command mdw_mfCommand_gCSAM(
                    in template (present) ApplicationID p_applicationID,
                    in template (present) StationID p_serverID,
                    in template (present) SAMserviceData p_serviceData
                ) := {
                    fill := ?,
                ) modifies mw_mfCommand_any := {
                    mfCmd := {
                        gCsam := {
                            applicationID := p_applicationID,
@@ -293,14 +299,28 @@ module LibItsFsap_Templates {
                            serviceData := p_serviceData
                        } // End of header 'gCsam'
                    } // End of header 'mfCmd'
                } // End of template mw_mfCommad_gCSAM
                } // End of template mw_mfCommand_gCSAM
                
                template (present) MF_Command mdw_mfCommand_gCctx( 
                    in template (present) ApplicationID p_applicationID, 
                    in template (present) StationID p_clientID, 
                    in template (present) CTXserviceData p_serviceContext 
                ) modifies mw_mfCommand_any := { 
                    mfCmd := {
                        gCctx := {
                            applicationID := p_applicationID, 
                            clientID := p_clientID, 
                            serviceContext := p_serviceContext 
                        } // End of header 'gCctx'
                    } // End of header 'mfCmd'
                } // End of template mw_mfCommand_gCctx 
                
                template SAMserviceData mw_samDataServercice_any := {
                template (present) SAMserviceData mw_samDataServercice_any := { 
                    fill := ?, 
                    servData := ? 
                } // End of template mw_samDataServercice_any 
                
                template SAMserviceData mw_samDataServerciceWithAccessTechAndNonIP( 
                template (present) SAMserviceData mdw_samDataServerciceWithAccessTechAndNonIP( 
                    in template (present) ITSaid p_serviceID, 
                    in template (present) ServiceData p_serviceData, 
                    in template (present) PortNumber p_providerPort 
@@ -312,7 +332,26 @@ module LibItsFsap_Templates {
                            providerPort := p_providerPort 
                        } // End of field 'nonipService'
                    } // End of field 'servData'
                } // End of template mw_samDataServerciceWithAccessTechAndNonIP
                } // End of template mdw_samDataServerciceWithAccessTechAndNonIP
                
                template (present) CTXserviceData mw_ctxDataServercice_any := {
                    fill := ?,
                    servData := ?
                } // End of template mw_ctxDataServercice_any
                
                template (present) CTXserviceData mdw_ctxServiceDataNonIP(
                    in template (present) ITSaid p_serviceID,
                    in template (present) ContextData p_contextData,
                    in template (present) PortNumber p_userPort
                ) modifies mw_ctxDataServercice_any := {
                    servData := {
                        nonipContext := {
                            serviceID := p_serviceID,
                            contextData := p_contextData,
                            userPort := p_userPort
                        } // End of field 'nonipService'
                    } // End of field 'servData'
                } // End of template mdw_ctxServiceDataNonIP
                 
//                template SAMrxNot mw_sAMrxNot(
//                    in template (present) IN_SAPaddress p_csap,
@@ -428,6 +467,15 @@ module LibItsFsap_Templates {
            
            group recv_ {
                
                template (present) CTXrxNot mw_ctxRxNotify( 
                    in template (present) CALMllsap.LLserviceAddr p_link,
                    in template (present) CTX p_ctx
                ) := {
                    link := p_link,
                    ctx := p_ctx
                } // End of template mw_ctxRxNotify
            
                
//                /**
//                 * @desc  Confirmation of Service context message transmission
//                 * @param p_csap      Source address - see ISO 21218 Clause 5.4.2.1 & 5.4.2.2
Loading