Commit 75d7bf96 authored by Yann Garcia's avatar Yann Garcia
Browse files

Merge branch 'TTF_T044' of https://forge.etsi.org/rep/int/vx5g/emergency-5g-iop into TTF_T044

parents e955c271 9488c4af
Loading
Loading
Loading
Loading
+14 −14
Original line number Diff line number Diff line
# Voice and Video over LTE/Emergency VoLTE Interoperability Tests
# Voice and Video over 5G/Emergency VoNR Interoperability Tests

## Introduction
This repositories contains the test specifications and test adapter code
@@ -31,7 +31,7 @@ NOTE All draft can be found in the 'IETF XML Registry', accessible [here](https:

# Installation

The ETSI Emergency VoLTE Interoperability Tests project builds and tests regularly on the following platforms:
The ETSI Emergency VoNR Interoperability Tests project builds and tests regularly on the following platforms:

  - Linux (Ubuntu)

@@ -67,8 +67,8 @@ Pre-requisites on your host machine:

Procedure on the host machine:
- Open a Terminal
- Clone the ETSI Emergency VoLTE Interoperability Test System
- From the ETSI Emergency VoLTE Interoperability Test System root directory, build the Docker image executing the following commands:
- Clone the ETSI Emergency VoNR Interoperability Test System
- From the ETSI Emergency VoNR Interoperability Test System root directory, build the Docker image executing the following commands:

```sh
$ cd ./virtualization/docker
@@ -76,7 +76,7 @@ $ docker build --no-cache --tag alpine-emergency-5g-iop -f Dockerfile --force-rm
$ docker images
```

To build the Emergency VoLTE Interoperability Test Suite, execute the following command:
To build the Emergency VoNRE Interoperability Test Suite, execute the following command:

```sh
$ ./docker-run.sh build
@@ -90,21 +90,21 @@ To retrieve the list of the available test cases, execute the following command:
$ ./docker-run.sh list
```

Before to execute the Emergency VoLTE Interoperability Test Suite, prepare, edit and update the configuration file:
Before to execute the Emergency VoNR Interoperability Test Suite, prepare, edit and update the configuration file:

```sh
$ ln -sf ../../etc/AtsXxx/AtsXxx_yyy.cf_ ../../etc/AtsXxx/AtsXxx.cfg
$ vi ../../etc/AtsXxx/AtsXxx.cfg # To update it
```

To execute the Emergency VoLTE Interoperability Test Suite, execute the following command:
To execute the Emergency VoNR Interoperability Test Suite, execute the following command:

```sh
$ ./docker-run.sh run
```

<b>Notes</b>:
- The Emergency VoLTE Interoperability Test System is listening on port 443
- The Emergency VoNR interoperability Test System is listening on port 443
- Updating the file etc/AtsXxx/AtsXxx.cfg is about (e.g. etc/AtsBCF/AtsBCF.cfg):
. Selecting the test(s) to be executed
. Updating value of PICs and PIXITs
@@ -120,7 +120,7 @@ Pre-requisites on your host machine:
Procedure for a Windows host machine:
- On your host machine, open a the Docker Quickstart Terminal
- On your host machine, clone the ETSI EEmergency Communications project. NOTE that only Docker folder and .jenkins.sh script file are required
- From the ETSI Emergency VoLTE Interoperability Tests project root directory, execute the following commands:
- From the ETSI Emergency VoNR Interoperability Tests project root directory, execute the following commands:

```sh
$ ./.jenkins.sh
@@ -150,7 +150,7 @@ Pre-requisites on your host machine:

Procedure:
- On your host machine, open a command line session (PuTTY, DOS window...)
- From the ETSI Emergency VoLTE Interoperability Tests project, clone the Vagrant folder
- From the ETSI Emergency VoNR Interoperability Tests project, clone the Vagrant folder
- In the file Vagrantfile, modify the tag config.vm.provision replacing <username> & <password> strings by your ETSI credentials
- In the Vagrant folder, execute the following commands:

@@ -256,10 +256,10 @@ $ ./configure --prefix=/home/etsi
$ make && make install
```

- Clone the ETSI Emergency VoLTE Interoperability Tests project into $HOME/dev folder
- Clone the ETSI Emergency VoNR Interoperability Tests project into $HOME/dev folder

```sh
$ git clone --recurse-submodules --branch devel https://forge.etsi.org/rep/int/vxlte/emergency-5g-iop.git
$ git clone --recurse-submodules --branch devel https://forge.etsi.org/rep/int/vx5g/emergency-5g-iop.git
```

- Apply patches
@@ -273,7 +273,7 @@ $ ./install.sh
- Switch to the next clause (Usage)


# Generate certificates for TLS and Emergency VoLTE Interoperability security support 
# Generate certificates for TLS and Emergency VoNR Interoperability security support 

This clause describes how generate certificates desrived from Let's encrypt certificate. These certificate will be used for TS mutual authentication.
<b>NOTE:</b>
@@ -335,5 +335,5 @@ $ ./run-all.bash

# How to Report a Bug

The ETSI Emergency VoLTE Interoperability Tests project is under constant development, so it is possible that you will
The ETSI Emergency VoNR Interoperability Tests project is under constant development, so it is possible that you will
encounter a bug while using it. Please report bugs at cti_support at etsi dot org.
+21 −21
Original line number Diff line number Diff line
/*
Copyright (c) ETSI 2023.
Copyright (c) ETSI 2025.

This software is subject to copyrights owned by ETSI. Non-exclusive permission
is hereby granted, free of charge, to copy, reproduce and amend this file
@@ -228,7 +228,7 @@ Package TP_E_CSCF {
        Test objective  "Verify that the E-CSCF successfully processes an callback INVITE from PSAP over the IM CN subsystem of own network and routes the request to the P-CSCF."
        
        Reference 
            "ETSI TS 123 167 [1], Clause 4.1 item 12"
            "ETSI TS 123 167 [10], Clause 4.1 item 12"
        
        Config Id CF_VoNR_INT_ES
        
@@ -374,7 +374,7 @@ Package TP_E_CSCF {
        Test objective  "Verify that the E-CSCF successfully processes a callback INVITE from the PSAP in another network over the IBCF and routes the request to the P-CSCF."
        
        Reference 
            "ETSI TS 123 167 [1], Clause 4.1 item 12"
            "ETSI TS 123 167 [10], Clause 4.1 item 12"
        
        Config Id CF_VoNR_INT_ES
        
@@ -418,7 +418,7 @@ Package TP_E_CSCF {

    Test Purpose {
        
        TP Id TP_MI_ECSCF_ECO_INVITE_01
        TP Id TP_MI_ECSCF_5G_ECO_INVITE_01
        /* Mx interface at E-CSCF/BGCF */

        Test objective  "Verify that the E-CSCF successfully processes an initial INVITE from the P-CSCF and routes the request to the BGCF for a PSAP in the PSTN."
@@ -465,11 +465,11 @@ Package TP_E_CSCF {
                }
            }
            
    } // End of TP_MI_ECSCF_ECO_INVITE_01
    } // End of TP_MI_ECSCF_5G_ECO_INVITE_01

    Test Purpose {
        
        TP Id TP_MI_ECSCF_ECO_INVITE_02
        TP Id TP_MI_ECSCF_5G_ECO_INVITE_02
        /* Mx interface at E-CSCF/BGCF */

        Test objective  "Verify that the E-CSCF successfully processes an initial INVITE from the P-CSCF and routes the request to the BGCF for a PSAP in the PSTN and includes the LRF provided URI in the Request-URI."
@@ -512,17 +512,17 @@ Package TP_E_CSCF {
                }
            }
            
    } // End of TP_MI_ECSCF_ECO_INVITE_02
    } // End of TP_MI_ECSCF_5G_ECO_INVITE_02

    Test Purpose {
        
        TP Id TP_MI_ECSCF_ECO_INVITE_03
        TP Id TP_MI_ECSCF_5G_ECO_INVITE_03
        /* Mx interface at E-CSCF/BGCF */

        Test objective  "Verify that the E-CSCF successfully processes a callback INVITE from PSAP in the PSTN over BGCF and routes the request to the P-CSCF."
        
        Reference 
            "ETSI TS 123 167 [1], Clause 4.1 item 12"
            "ETSI TS 123 167 [10], Clause 4.1 item 12"
        
        Config Id CF_VoNR_INT_ES
        
@@ -563,7 +563,7 @@ Package TP_E_CSCF {
                }
            }
            
    } // End of TP_MI_ECSCF_ECO_INVITE_03
    } // End of TP_MI_ECSCF_5G_ECO_INVITE_03

    Test Purpose {
        
@@ -734,7 +734,7 @@ Package TP_E_CSCF {

    Test Purpose {
        
        TP Id TP_MI_ECSCF_ECO_BYE_01
        TP Id TP_MI_ECSCF_5G_ECO_BYE_01
        /* Mx interface at E-CSCF/BGCF */

        Test objective  "Verify that the E-CSCF successfully processes a BYE from the P-CSCF for an Emergency Call and routes the request to the BGCF for a PSAP in the PSTN."
@@ -773,11 +773,11 @@ Package TP_E_CSCF {
                }
            }
            
    } // End of TP_MI_ECSCF_ECO_BYE_01
    } // End of TP_MI_ECSCF_5G_ECO_BYE_01

    Test Purpose {
        
        TP Id TP_MI_ECSCF_ECO_BYE_02
        TP Id TP_MI_ECSCF_5G_ECO_BYE_02
        /* Mx interface at E-CSCF/BGCF */

        Test objective  "Verify that the E-CSCF successfully processes a BYE from the BGCF for a PSAP in the PSTN for an Emergency Call and routes the request to the P-CSCF."
@@ -814,7 +814,7 @@ Package TP_E_CSCF {
                }
            }
            
    } // End of TP_MI_ECSCF_ECO_BYE_02
    } // End of TP_MI_ECSCF_5G_ECO_BYE_02

    Test Purpose {
        
@@ -904,7 +904,7 @@ Package TP_E_CSCF {

    Test Purpose {
        
        TP Id TP_MI_ECSCF_EMC_CANCEL_01
        TP Id TP_MI_ECSCF_5G_EMC_CANCEL_01
        /* Mx interface at E-CSCF/BGCF */

        Test objective  "Verify that the E-CSCF successfully processes a CANCEL from the P-CSCF for an Emergency Call under establishment and routes the request to the BGCF for a PSAP in the PSTN."
@@ -943,7 +943,7 @@ Package TP_E_CSCF {
                }
            }
            
    } // End of TP_MI_ECSCF_EMC_CANCEL_01
    } // End of TP_MI_ECSCF_5G_EMC_CANCEL_01
    
    Test Purpose {
        
@@ -1032,7 +1032,7 @@ Package TP_E_CSCF {

    Test Purpose {
        
        TP Id TP_MI_ECSCF_ECO_480INVITE_01
        TP Id TP_MI_ECSCF_5G_ECO_480INVITE_01
        /* Mx interface at E-CSCF/BGCF */

        Test objective  "Verify that the E-CSCF successfully processes a 480 response from the BGCF for a PSAP in the PSTN for an Emergency Call and routes the response to the P-CSCF."
@@ -1071,7 +1071,7 @@ Package TP_E_CSCF {
                }
            }
            
    } // End of TP_MI_ECSCF_ECO_480INVITE_01
    } // End of TP_MI_ECSCF_5G_ECO_480INVITE_01
    
    Test Purpose {
        
@@ -1160,7 +1160,7 @@ Package TP_E_CSCF {

    Test Purpose {
        
        TP Id TP_MI_ECSCF_EMC_487INVITE_01
        TP Id TP_MI_ECSCF_5G_EMC_487INVITE_01
        /* Mx interface at E-CSCF/BGCF */

        Test objective  "Verify that the E-CSCF successfully processes a 487 response from the BGCF for a PSAP in the PSTN for an Emergency Call and routes the response to the P-CSCF."
@@ -1199,7 +1199,7 @@ Package TP_E_CSCF {
                }
            }
            
    } // End of TP_MI_ECSCF_EMC_487INVITE_01
    } // End of TP_MI_ECSCF_5G_EMC_487INVITE_01

} // End of Package TP_E_CSCF
+93 −1
Original line number Diff line number Diff line
@@ -725,6 +725,98 @@ Package TP_MW_PS {
        
    } // End of TP_MW_PCSCF_5G_EMC_200OK_CANCEL_01
    
    Test Purpose {
        
        TP Id TP_MW_PCSCF_5G_EMC_200OK_BYE_01
        
        Test objective  "Verify that the P-CSCF successfully processes a 200 (OK) BYE (Originating Leg)."
        
        Reference 
            "ETSI TS 124 229 [1], clauses 5.2.7 and 6.2"
        
        Config Id CF_VoNR_INT_ES
        
        PICS Selection  NONE
        
        Initial conditions with {
            the UE_A entity is5GEmergencyRegisteredTo the _5GC_A and
            the UE_A entity isEmergencyRegisteredTo the IMS_A and
            the UE_B entity is5GEmergencyRegisteredTo the _5GC_B and
            the UE_B entity isEmergencyRegisteredTo the IMS_B
        }
        
        Expected behaviour
            ensure that { 
                when { 
                    the IMS_P_CSCF_A entity receives a 200_Ok containing
                        From indicating value PX_UE_B_SIP_URI,
                        To indicating value PX_UE_A_SIP_URI,
                        CallId indicating value PX_UE_B_CALLID,
                        Via indicating value PX_UE_B_VIA,
                        Route indicating value PX_UE_B_SERVICE_ROUTE
                        ;
                    from the IMS_S_CSCF_A entity
                }
                then {
                    the IMS_P_CSCF_A entity sends a 200_Ok containing
                        From indicating value PX_UE_B_SIP_URI,
                        To indicating value PX_UE_A_SIP_URI,
                        CallId indicating value PX_UE_B_CALLID,
                        Via indicating value PX_UE_B_VIA,
                        Route indicating value PX_UE_B_SERVICE_ROUTE
                        ;
                    to the UE_A entity
                }
            }
        
    } // End of TP_MW_PCSCF_5G_EMC_200OK_BYE_01
    
    Test Purpose {
        
        TP Id TP_MW_PCSCF_5G_EMC_200OK_BYE_02
        
        Test objective  "Verify that the P-CSCF successfully processes a 200 (OK) BYE (Terminating Leg)."
        
        Reference 
            "ETSI TS 124 229 [1], clauses 5.2.7 and 6.2"
        
        Config Id CF_VoNR_INT_ES
        
        PICS Selection  NONE
        
        Initial conditions with {
            the UE_A entity is5GEmergencyRegisteredTo the _5GC_A and
            the UE_A entity isEmergencyRegisteredTo the IMS_A and
            the UE_B entity is5GEmergencyRegisteredTo the _5GC_B and
            the UE_B entity isEmergencyRegisteredTo the IMS_B
        }
        
        Expected behaviour
            ensure that { 
                when { 
                    the IMS_P_CSCF_B entity receives a 200_Ok containing
                        From indicating value PX_UE_A_SIP_URI,
                        To indicating value PX_UE_B_SIP_URI,
                        CallId indicating value PX_UE_A_CALLID,
                        Via indicating value PX_UE_A_VIA,
                        Route indicating value PX_UE_A_SERVICE_ROUTE
                        ;
                    from the IMS_S_CSCF_B entity
                }
                then {
                    the IMS_P_CSCF_B entity sends a 200_Ok containing
                        From indicating value PX_UE_A_SIP_URI,
                        To indicating value PX_UE_B_SIP_URI,
                        CallId indicating value PX_UE_A_CALLID,
                        Via indicating value PX_UE_A_VIA,
                        Route indicating value PX_UE_A_SERVICE_ROUTE
                        ;
                    to the UE_B entity
                }
            }
        
    } // End of TP_MW_PCSCF_5G_EMC_200OK_BYE_02
    
    Test Purpose {
        
        TP Id TP_MW_PCSCF_5G_EMC_487INVITE_01
+138 −0
Original line number Diff line number Diff line
/*
Copyright (c) ETSI 2025
This software is subject to copyrights owned by ETSI. Non-exclusive permission
is hereby granted, free of charge, to copy, reproduce and amend this file
under the following conditions: It is provided "as is", without warranty of any
kind, expressed or implied.

ETSI shall never be liable for any claim, damages, or other liability arising
from its use or inability of use.This permission does not apply to any documentation
associated with this file for which ETSI keeps all rights reserved. The present
copyright notice shall be included in all copies of whole or part of this
file and shall not imply any sub-license right.
*
*  @author   TTF T044
*/

Package TP_N26_AMF_MME {
    
    import all from Sip_Common;
    import all from Ngnas_Common;
     

//TODO Decide whether to create library for gtp or leave in the present module

    Domain {
        events:
            - N26_supported
            - hasInitiatedFallbackViaN26
        ;
     } // End of Domain section

    Data {
    	
        type GtpMessage;

        // ETSI TS 129 274 Table 6.1-1: Message types for GTPv2     
        GtpMessage Forward_Relocation_Request;
        GtpMessage Forward_Relocation_Response;
        GtpMessage Forward_Relocation_Complete_Notification;
        GtpMessage Forward_Relocation_Complete_Acknowledge;
    } // End of Data section

    Test Purpose {
        TP Id TP_N26_AMF_01
        Test objective  "Verify that IUT after reception of NGAP HANDOVER REQUIRED from the gNB
                         sends GTP_v2-C Forward Relocation Request to the MME via the N26 interface."
        
        Reference 
            "TS 123 502, Clause 4.11.1, 4.13.4, TS 129 274, Clause 7.3.1"
        
        Config Id CF_VoNR_FB_INT_ES
        
        PICS Selection NONE
        
        Initial conditions with {
            the UE_A entity is5GRegisteredTo the _5GC_A and
            the UE_A entity isRegisteredTo the IMS_A and 
            the UE_A entity previouslyEstablishedEmergencyCallWith the PSAP and
            N26_supported
        }
        
        Expected behaviour
            ensure that {
                when {
                    the IUT entity receives a HANDOVER_REQUIRED
                    from the GNB entity
                }
                then {
                    the IUT entity sends the Forward_Relocation_Request 
                    to the EPC_MME_A entity
                }
            }  
    }  // End of TP_N26_AMF_01
    
   Test Purpose {
        TP Id TP_N26_AMF_02
        Test objective  "Verify that IUT after reception of GTP_v2-C Forward Relocation Response from the MME
                         via the N26 interface sends NGAP HANDOVER_COMMAND to the gNB."
        
        Reference 
            "TS 123 502, Clause 4.11.1, 4.13.4, TS 129 274, Clause 7.3.2"
        
        Config Id CF_VoNR_FB_INT_ES
        
        PICS Selection NONE
        
        Initial conditions with {
            the UE_A entity is5GRegisteredTo the _5GC_A and
            the UE_A entity isRegisteredTo the IMS_A and 
            the UE_A entity previouslyEstablishedEmergencyCallWith the PSAP and
            N26_supported and IUT hasInitiatedFallbackViaN26
        }
        
        Expected behaviour
            ensure that {
                when {
                    the IUT entity receives a Forward_Relocation_Response
                    from the EPC_MME_A entity
                }
                then {
                    the IUT entity sends the HANDOVER_COMMAND
                    to the GNB entity
                }
            }  
    }  // End of TP_N26_AMF_02
    
   Test Purpose {
        TP Id TP_N26_AMF_03
        Test objective  "Verify that IUT after reception of GTP_v2-C Forward Relocation Complete Notification from the MME
                         via the N26 interface responds GTP_v2-C Forward Relocation Complete Acknowledge to the MME."

        Reference 
            "TS 123 502, Clause 4.11.1, 4.13.4, TS 129 274, Clause 7.3.3, 7.3.4"
        
        Config Id CF_VoNR_FB_INT_ES
        
        PICS Selection NONE
        
        Initial conditions with {
            the UE_A entity is5GRegisteredTo the _5GC_A and
            the UE_A entity isRegisteredTo the IMS_A and 
            the UE_A entity previouslyEstablishedEmergencyCallWith the PSAP and
            N26_supported and IUT hasInitiatedFallbackViaN26
        }
        
        Expected behaviour
            ensure that {
                when {
                    the IUT entity receives a Forward_Relocation_Complete_Notification
                    from the EPC_MME_A entity
                }
                then {
                    the IUT entity sends the Forward_Relocation_Complete_Acknowledge
                    to the EPC_MME_A entity
                }
            }  
    }  // End of TP_N26_AMF_03
} // End Package TP_N26_AMF_MME
+5 −5
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@ Package TP_N5_PCF {
                                    ueIpv4 indicating value "IPv4_Address of UE_A",
                                    "or" ueIpv6 indicating value "IPv6_Address of UE_A",
                                    afReqData indicating value "UE_IDENTITY",
                                    servUrn indicating value "sos*";;;;;
                                    servUrn indicating value "sos*";;;;
                    to the _5GC_PCF_A entity
                }
                then {
@@ -238,7 +238,7 @@ Package TP_N5_PCF {
    }  // End of TP_N5_PCSCF_5G_ECO_PCR_02
    
    Test Purpose {
        TP Id TP_N5_PCSCF_5G_ECO_PUR_01
        TP Id TP_N5_PCSCF_5G_ECO_PUR_04

        Test objective  "Verify that IUT sends an Npcf_PolicyAuthorization_Update request in case of session establishment for originating side after 183 response with SDP answer is received."
        
@@ -354,7 +354,7 @@ Package TP_N5_PCF {
                        uri indicating value "{notifUri}/notify",
                        body containing
                              evsNotif containing
                                event indicating value "SUCCESSFUL_RESOURCES_ALLOCATION",
                                event_ indicating value "SUCCESSFUL_RESOURCES_ALLOCATION",
                                succResourcAllocReports indicating value "any_value";;; 
                    to the IMS_P_CSCF_A entity
                }
@@ -367,7 +367,7 @@ Package TP_N5_PCF {
    }  // End of TP_N5_PCSCF_5G_ECO_PNA_01
     
    Test Purpose {
        TP Id TP_N5_PCRF_5G_ECO_PDA_02
        TP Id TP_N5_PCF_5G_ECO_PDA_02

        Test objective  "Verify that IUT after reception of Npcf_PolicyAuthorization_Delete request sends Npcf_PolicyAuthorization_Delete response."
        
@@ -398,7 +398,7 @@ Package TP_N5_PCF {
                    to the IMS_P_CSCF_A entity
                }
            }  
    }  // End of TP_N5_PCRF_5G_ECO_PDA_02
    }  // End of TP_N5_PCF_5G_ECO_PDA_02
    
    Test Purpose {
        TP Id TP_N5_PCSCF_5G_ECO_PDR_01
Loading