# A Modular Experimentation Methodology for 5G Deployments: The 5 GENESIS Approach
## 4 Formalization of the Experimentation Methodology
### Experiment Descriptor  
The ED is a data structure that includes all of the values that are required for completely defining an experiment execution, as shown in Listing 2. It includes the following fields:  
```
1\"ExperimentType:Standard/Custom/MONROE
2\"Automated:<bool>
3\"TestCases:<List[str]>
4\"UEs:<List[str]>UEsIDs
5\"Slices:<List[str]>
6\"NSs:<List[Tuple[str,str]]>(NSDId,Location)
7\"Scenarios:<List[str]>
8\"ExclusiveExecution:<bool>
9\"ReservationTime:<int>(Minutes)
10\"Application:<str>
11\"Parameters:<Dict[str,obj]>
12\"Remote:<str>RemoteplatformId
13\"RemoteDescriptor:<ExperimentDescriptor>
14\"Version:<str>
15\"Extra:<Dict[str,obj]>
16\"
17\"
```  
**Listing 2** ED Template. Experiment type: it is part of the definition of the experiment. The 5 GENESIS experimentation methodology currently supports three types of experiments. However, the methodology is sustainable and can be easily extended with new types of experiments. The standard experiments are based on the test cases specified by the 5 GENESIS Consortium, and enable the comparison and benchmarking of different variants of a same solution (devices, services, applications, etc.). The custom experiments are those that are defined based on specific requirements of the solution under test. For example, in a custom test case, the measurements could be specific with respect to a product being tested. Finally, MONROE experiments are containerized experiments initially designed in the MONROE project [51; 52]. Within 5 GENESIS, a virtual MONROE node has been developed that decouples the MONROE software from the MONROE hardware infrastructure. The MONROE virtual node can be used at the UE, providing a generalized mechanism for running arbitrary containerized experiments without any need to update the experimentation framework. **Automated**: it indicates if the experiment is fully automated, i.e., no human intervention is required for the execution. Automated experiments target the execution of exhaustive testing looking for the benchmarking of the solutions under test. Human intervention is expected when the network can be configured automatically but the applications and UEs are operated by the vertical use case owners. **Test Cases**: it includes the IDs of the test cases selected to be executed in the experiment. **UEs**: it includes the ID(s) of the UE(s) used during the experiment. **Slices**: it contains the ID(s) of the slice(s) to be used during the experiment. The full slice definition is available in a separate data structure, as described in Section 4.3. **NSs**: it refers to the Network Services (NSs) that are used during the experiment. Depending on the target of the experiment, the NSs could be deployed at different stages of the experiment. This stage is specified in the test case. **Scenarios**: the ID(s) of the scenario(s) to be used during the experiment are listed in this field. The full scenario definition is available in a separate data structure, as described in Section 4.2. **Exclusive Execution**: it controls the scheduling of different experiments in the testbed. An Exclusive experiment is not executed at the same time with other experiments. **Reservation Time**: it defines the duration of the experiment when automation is not enabled. **Application**: this field depends on the type of experiment and test case. It may be used for standard and custom experiments to specify the application to run (e.g., in the second case, the application may be directly defined by the experimenter). In the case of MONROE experiments, the field defines the container to deploy in the MONROE virtual node. **Parameters**: this field depends on the type of experiment. In particular, it is used for specifying customized parameters in custom experiments, but it could be also used to include tool-specific settings not explicitly reported in the test case of a standard experiment. For MONROE experiments, the field provides the configuration for the containers involved in the experiment.