Commit 773b07ac authored by garciay's avatar garciay
Browse files

Session Week #30:

- Continue typing and templates for Tunnel Management
- Add S4 triggering component (SGSN)
parent daf47778
Loading
Loading
Loading
Loading
+108 −35
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ module LibGtpv2C_Configuration {
    import from LibGtpv2C_TypesAndValues all;
    import from LibGtpv2C_TestSystem all;
    import from LibGtpv2C_Templates all;
    import from LibGtpv2C_Pics all;
    
    group configurationFunctions {
        
@@ -25,15 +26,15 @@ module LibGtpv2C_Configuration {
         *       - Port mapping
         *       - Sync port connection
         *       - Component setup:
         *           - one SGW node (IUT)
         *           - one MME node (IUT)
         *           - varaibles initialisation
         * @verdict Unchanged
         * @reference ETSI TS 103 202-3 V0.0.2 (2015-06) Figure 1: Test configuration CF_MME
         */
        function f_cf01_S11Up_MME() runs on Gtpv2CComponent {
            // Map ports
            map(self:acPort, system:acPort);
            map(self:gtpv2CPort, system:gtpv2CPort);
            map(vc_sgw:acPort, system:acPort);
            map(vc_sgw:s11Port, system:s11Port);
            
            // Connect sync ports
            f_connect4SelfOrClientSync();
@@ -41,7 +42,7 @@ module LibGtpv2C_Configuration {
            // Activate sync default for MTC
            activate(a_mtc_shutdown());
            
            vc_gtpv2c_sgw := Gtpv2CComponent.create; 
            vc_sgw := Gtpv2CComponent.create; 
            
            vc_sequenceNumber := 0;
            vc_restartCounter := 0;
@@ -52,24 +53,31 @@ module LibGtpv2C_Configuration {
         *       - Port mapping
         *       - Sync port connection
         *       - Component setup:
         *           - one SGW node (IUT)
         *           - one MME node (IUT)
         *           - one S1-MME node (UT)
         *           - varaibles initialisation
         * @verdict Unchanged
         * @reference ETSI TS 103 202-3 V0.0.2 (2015-06) Figure 2: Test configuration CF_MME_ENB
         */
        function f_cf02_S11Up_MME() runs on Gtpv2CComponent {
            // Map ports
            map(self:acPort, system:acPort);
            map(self:gtpv2CPort, system:gtpv2CPort);
            map(vc_sgw:acPort, system:acPort);
            map(vc_sgw:s11Port, system:s11Port);
            if (PICS_SUPPORT_S1_MME_TRIGGERS) {
                map(vc_s1mme:s1MmePort, system:s1MmePort);
            }
            
            // Connect sync ports
            f_connect4SelfOrClientSync();
            
            // Activate sync default for MTC
            activate(a_mtc_shutdown());
            if (PICS_SUPPORT_S1_MME_TRIGGERS) {
                activate(a_s1mme_default());
            }
            
            vc_gtpv2c_sgw := Gtpv2CComponent.create; 
            vc_gtpv2c_s1mme := Gtpv2CComponent.create; 
            vc_sgw := Gtpv2CComponent.create; 
            vc_s1mme := Gtpv2CComponent.create; 
            
            vc_sequenceNumber := 0;
            vc_restartCounter := 0;
@@ -90,9 +98,9 @@ module LibGtpv2C_Configuration {
            
            // Unmap ports
            unmap(self:acPort, system:acPort);
            unmap(self:gtpv2CPort, system:gtpv2CPort);
            unmap(self:s11Port, system:s11Port);
            
            vc_gtpv2c_sgw.done;
            vc_sgw.done;
            
        } // End of function f_cf01_S11Down_MME 
        
@@ -110,11 +118,14 @@ module LibGtpv2C_Configuration {
            f_disconnect4SelfOrClientSync();
            
            // Unmap ports
            unmap(self:acPort, system:acPort);
            unmap(self:gtpv2CPort, system:gtpv2CPort);
            unmap(vc_sgw:acPort, system:acPort);
            unmap(vc_sgw:s11Port, system:s11Port);
            if (PICS_SUPPORT_S1_MME_TRIGGERS) {
                unmap(vc_s1mme:s1MmePort, system:s11Port);
            }
            
            vc_gtpv2c_sgw.done; 
            vc_gtpv2c_s1mme.done; 
            vc_sgw.done; 
            vc_s1mme.done; 
            
        } // End of function f_cf01_S11Down_MME 
        
@@ -124,15 +135,14 @@ module LibGtpv2C_Configuration {
         *       - Sync port connection
         *       - Component setup:
         *           - one MME node (IUT)
         *           - one S1-MME node (UT)
         *           - varaibles initialisation
         * @verdict Unchanged
         * @reference ETSI TS 103 202-3 V0.0.2 (2015-06) Figure 3: Test configuration CF_SGW
         */
        function f_cf01_S11Up_SGW() runs on Gtpv2CComponent {
            // Map ports
            map(self:acPort, system:acPort);
            map(self:gtpv2CPort, system:gtpv2CPort);
            map(vc_mme:acPort, system:acPort);
            map(vc_mme:s11Port, system:s11Port);
            
            // Connect sync ports
            f_connect4SelfOrClientSync();
@@ -140,7 +150,7 @@ module LibGtpv2C_Configuration {
            // Activate sync default for MTC
            activate(a_mtc_shutdown());
            
            vc_gtpv2c_mme := Gtpv2CComponent.create; 
            vc_mme := Gtpv2CComponent.create; 
            
            vc_sequenceNumber := 0;
            vc_restartCounter := 0;
@@ -152,29 +162,66 @@ module LibGtpv2C_Configuration {
         *       - Sync port connection
         *       - Component setup:
         *           - one MME node (IUT)
         *           - one S1-MME node (UT)
         *           - one S5 node (UT)
         *           - varaibles initialisation
         * @verdict Unchanged
         * @reference ETSI TS 103 202-3 V0.0.2 (2015-06) Figure 2: Test configuration CF_SGW_PGW
         * @reference ETSI TS 103 202-3 V0.0.2 (2015-06) Figure 4: Test configuration CF_SGW_PGW
         */
        function f_cf02_S11Up_SGW() runs on Gtpv2CComponent {
            // Map ports
            map(self:acPort, system:acPort);
            map(self:gtpv2CPort, system:gtpv2CPort);
            map(vc_mme:acPort, system:acPort);
            map(vc_mme:s11Port, system:s11Port);
            map(vc_s5:s5Port, system:s5Port);
            
            // Connect sync ports
            f_connect4SelfOrClientSync();
            
            // Activate sync default for MTC
            activate(a_mtc_shutdown());
            activate(a_s5_default());
            
            vc_gtpv2c_s5 := Gtpv2CComponent.create; 
            vc_gtpv2c_mme := Gtpv2CComponent.create; 
            vc_s5 := Gtpv2CComponent.create; 
            vc_mme := Gtpv2CComponent.create; 
            
            vc_sequenceNumber := 0;
            vc_restartCounter := 0;
        } // End of function f_cf02_S11Up_SGW 
        
        /**
         * @desc This configuration features:
         *       - Port mapping
         *       - Sync port connection
         *       - Component setup:
         *           - one MME node (IUT)
         *           - one S4 node (UT)
         *           - one S5 node (UT)
         *           - varaibles initialisation
         * @verdict Unchanged
         * @reference ETSI TS 103 202-3 V0.0.2 (2015-06) Figure 5: Test configuration CF_SGW_PGW_SGSN
         */
        function f_cf03_S11Up_SGW() runs on Gtpv2CComponent {
            // Map ports
            map(vc_mme:acPort, system:acPort);
            map(vc_mme:s11Port, system:s11Port);
            map(vc_s4:s4Port, system:s4Port);
            map(vc_s5:s5Port, system:s5Port);
            
            // Connect sync ports
            f_connect4SelfOrClientSync();
            
            // Activate sync default for MTC
            activate(a_mtc_shutdown());
            activate(a_s4_default());
            activate(a_s5_default());
            
            vc_s4 := Gtpv2CComponent.create; 
            vc_s5 := Gtpv2CComponent.create; 
            vc_mme := Gtpv2CComponent.create; 
            
            vc_sequenceNumber := 0;
            vc_restartCounter := 0;
        } // End of function f_cf03_S11Up_SGW 
        
        /**
         * @desc Copmenent shutdown
         * @verdict Unchanged
@@ -189,10 +236,10 @@ module LibGtpv2C_Configuration {
            f_disconnect4SelfOrClientSync();
            
            // Unmap ports
            unmap(self:acPort, system:acPort);
            unmap(self:gtpv2CPort, system:gtpv2CPort);
            unmap(vc_mme:acPort, system:acPort);
            unmap(vc_mme:s11Port, system:s11Port);
            
            vc_gtpv2c_mme.done;
            vc_mme.done;
            
        } // End of function f_cf01_S11Down_SGW 
        
@@ -210,13 +257,39 @@ module LibGtpv2C_Configuration {
            f_disconnect4SelfOrClientSync();
            
            // Unmap ports
            unmap(self:acPort, system:acPort);
            unmap(self:gtpv2CPort, system:gtpv2CPort);
            unmap(vc_mme:acPort, system:acPort);
            unmap(vc_mme:s11Port, system:s11Port);
            unmap(vc_s5:s5Port, system:s5Port);
            
            vc_gtpv2c_s5.done;
            vc_gtpv2c_mme.done;
            vc_s5.done;
            vc_mme.done;
            
        } // End of function f_cf01_S11Down_SGW 
        } // End of function f_cf02_S11Down_SGW 
        
        /**
         * @desc Copmenent shutdown
         * @verdict Unchanged
         * @reference ETSI TS 103 202-3 V0.0.2 (2015-06) Figure 3: Test configuration CF_SGW
         */
        function f_cf03_S11Down_SGW() runs on Gtpv2CComponent {
            
             // De-activate all
             deactivate;
             
            // Disconnect sync ports
            f_disconnect4SelfOrClientSync();
            
            // Unmap ports
            unmap(vc_mme:acPort, system:acPort);
            unmap(vc_mme:s11Port, system:s11Port);
            unmap(vc_s4:s4Port, system:s4Port);
            unmap(vc_s5:s5Port, system:s5Port);
            
            vc_s4.done;
            vc_s5.done;
            vc_mme.done;
            
        } // End of function f_cf03_S11Down_SGW 
        
        /**
         * @desc Shutdown alstep in case the sync delf server is requesting shutdown
@@ -283,7 +356,7 @@ module LibGtpv2C_Configuration {
        
        group extractInformationElementFunctions { 
            
            function f_extract_teid(in Gtpv2Pdu p_gtpv2Pdu) return Oct4 { 
            function f_extract_teid(in Gtpv2CPdu p_gtpv2Pdu) return Oct4 { 
                // Sanity check
                if (not(ispresent(p_gtpv2Pdu.extHeader.teid))) { 
                    return '00000000'O;
@@ -292,7 +365,7 @@ module LibGtpv2C_Configuration {
                return p_gtpv2Pdu.extHeader.teid;
            }
            
            function f_extract_sequenceNumber(in Gtpv2Pdu p_gtpv2Pdu) return UInt24 {
            function f_extract_sequenceNumber(in Gtpv2CPdu p_gtpv2Pdu) return UInt24 {
                return p_gtpv2Pdu.extHeader.sequenceNumber;
            }
            
+293 −62

File changed.

Preview size limit exceeded, changes collapsed.

+27 −3
Original line number Diff line number Diff line
@@ -96,6 +96,18 @@ module LibGtpv2C_Pics {
         */
        modulepar boolean PICS_MME_MODIFY_BEARER_REQUEST := true;
        
        /**
         * @desc Does the IUT support Delete Bearer Request?
         * @see  ETSI TS 103 202-1 V0.0.3 (2013-10) Table A.3/8
         */
        modulepar boolean PICS_MME_DELETE_SESSION_REQUEST := true;
        
        /**
         * @desc Does the IUT support Delete Bearer Request?
         * @see  ETSI TS 103 202-1 V0.0.3 (2013-10) Table A.3/9
         */
        modulepar boolean PICS_MME_DELETE_BEARER_RESPONSE := true;
        
    } // End of group mmeSystemCapabilities
    
    group sgwSystemCapabilities {
@@ -110,19 +122,31 @@ module LibGtpv2C_Pics {
         * @desc Does the IUT support Create Bearer Request?
         * @see  ETSI TS 103 202-1 V0.0.3 (2013-10) Table A.4/5
         */
        modulepar boolean PICS_MME_CREATE_BEARER_REQUEST := true;
        modulepar boolean PICS_SGW_CREATE_BEARER_REQUEST := true;
        
        /**
         * @desc Does the IUT support Bearer Resource Failure Indication?
         * @see  ETSI TS 103 202-1 V0.0.3 (2013-10) Table A.4/6
         */
        modulepar boolean PICS_MME_BEARER_RESOURCE_FAILURE_INDICATION := true;
        modulepar boolean PICS_SGW_BEARER_RESOURCE_FAILURE_INDICATION := true;
        
        /**
         * @desc Does the IUT support Modify Bearer Response?
         * @see  ETSI TS 103 202-1 V0.0.3 (2013-10) Table A.4/7
         */
        modulepar boolean PICS_MME_MODIFY_BEARER_RESPONSE := true;
        modulepar boolean PICS_SGW_MODIFY_BEARER_RESPONSE := true;
        
        /**
         * @desc Does the IUT support Delete Bearer Request?
         * @see  ETSI TS 103 202-1 V0.0.3 (2013-10) Table A.4/8
         */
        modulepar boolean PICS_SGW_DELETE_BEARER_REQUEST := true;
        
        /**
         * @desc Does the IUT support Delete Session Response?
         * @see  ETSI TS 103 202-1 V0.0.3 (2013-10) Table A.4/9
         */
        modulepar boolean PICS_SGW_DELETE_SESSION_RESPONSE := true;
        
    } // End of sgwSystemCapabilities
    
+32 −5
Original line number Diff line number Diff line
@@ -62,14 +62,41 @@ module LibGtpv2C_Pixits {
    modulepar charstring PX_GTPC_S11_SUT_SGW_PORT := "12348";
    
    /**
     * @desc EPS Bearer ID
     * @see  3GPP TS 29.274 version 9.13.0 Release 9 Clause 8.8   EPS Bearer ID (EBI)
     * @desc IP address of the test system acting as P-GW
     * @see  ETSI TS 103 202-3 V0.0.1 2 (2015-06) Table A.7/9
     */
    modulepar Bit4 PX_EBI := '0101'B;
    modulepar charstring PX_GTPC_S5_ETS_PGW_IPADDR := "127.0.0.1";
    
    /**
     * @desc Port number of the stest system acting as P-GW
     * @see  ETSI TS 103 202-3 V0.0.1 2 (2015-06) Table A.7/10
     */
    modulepar charstring PX_GTPC_S5_ETS_PGW_PORT := "12349";
    
    /**
     * @desc IP address of the test system acting as SGSN
     * @see  ETSI TS 103 202-3 V0.0.1 2 (2015-06) Table A.7/11
     */
    modulepar charstring PX_GTPC_S4_ETS_SGSN_IPADDR := "127.0.0.1";
    
    /**
     * @desc Port number of the stest system acting as SGSN
     * @see  ETSI TS 103 202-3 V0.0.1 2 (2015-06) Table A.7/12
     */
    modulepar charstring PX_GTPC_S4_ETS_SGSN_PORT := "12350";
    
    /**
     * @desc Echo request/response invalid protocol number
     * @see  ETSI TS 103 202-3 V0.0.1 2 (2015-06) Table A.7/13
     */
    modulepar UInt3 PX_WRONG_PROTOCOL_VERSION := 0;
    
    /**
     * @desc EPS Bearer ID
     * @see  3GPP TS 29.274 version 9.13.0 Release 9 Clause 8.8   EPS Bearer ID (EBI)
     * @see  ETSI TS 103 202-3 V0.0.1 2 (2015-06) Table A.7/14
     */
    modulepar Bit4 PX_EBI := '0101'B;
    
    modulepar charstring PX_VISITED_APN := "visited.com";
    
@@ -103,8 +130,8 @@ module LibGtpv2C_Pixits {
    modulepar MacAddress PX_SGW_MAC_ADDRESS := '000000000000'O;
    
    /**
     * @desc 
     * @desc MAC address of SGSNthe system under test acting as S-GW
     */
    modulepar UInt3 PX_WRONG_PROTOCOL_VERSION := 0;
    modulepar MacAddress PX_SGSN_MAC_ADDRESS := '000000000000'O;
    
} // End of module LibGtpv2C_Pixits 
+442 −91

File changed.

Preview size limit exceeded, changes collapsed.

Loading