Skip to content

PelleRavn/6GSandbox-TNLCM

Repository files navigation

Trial Network Life Cycle Manager

Components

Core /core

/core contains the basic functionality for managing the life-cycle of several Trial Networks in a single Testbed. It also implements the TNLCM API. A description of the API is accessible via Swagger, when accessing to the root endpoint

Front-End /frontend

/frontend contains the initial implementation of a management dashboard for the TNLCM, which makes use of the API provided by /core to operate.

Shared /shared

/shared contains several classes that are useful for more than one component. These include the creation of log files, access to CLI, or management of threads, among others.

/shared/data contains data structures, particularly the TrialNetwork, Entity, TrialNetworkDescriptor and EntityDescriptor. These data structures encapsulate the usage of Trial Network Descriptors and the runtime status of a Trial Network.

Deployment

Installation procedure

  1. Ensure that Python 3.11 is installed in your system.
  2. Create a Python virtual environment. All components can share the same virtual environment.

python -m venv <virtualenv name>

  1. Activate the virtual environment.
  2. Install the requirements in the virtual environment.

pip install -r requirements.txt

Starting /core

  1. Activate the virtual environment.
  2. Navigate to the /core folder
  3. Run python app.py. /core will start listening for connections on port 5000.

Starting /frontend

  1. Activate the virtual environment.
  2. Navigate to the /frontend folder
  3. Run python app.py. /frontend will start listening for connections on port 5001.

Trial Network Descriptor

The format of Trial Network Descriptors has not been finalized and is expected to change in the future.

Trial Network Descriptors are yaml files with a set of expected fields and structure. This repository contains two examples of descriptors, both describing the same Trial Network:

  • sample_descriptor.yml describes the network as an additional component inside the infrastructure.
  • sample_descriptor_2.yml uses separate sections for networks and infrastructure.

It is expected that the second example will be more representative of the final Trial Network Descriptor format, however, the current implementation expects the format on sample_descriptor.yml, which the following section will describe.

Trial Network Descriptor schema:

Infrastructure:  # Mandatory, contains the description of all entities in the Trial Network
  <Entity1>:  # A unique identifier for each entity in the Trial Network
    Type:  # Mandatory, reference to the corresponding component type in the 6G-Library
    Model:  # Optional, reference to a specific physical device or subtype of component
    Expose:  # Optional, list runtime values that should be provided to experimenters, such as ids, credentials or interfaces for accessing the entity
    Parameters:  # Optional, dictionary of values that further customize the entity. The available values are specified as part of the component's entry in the 6G-Library
      <Parameter1>: <Value1>
      # ...
    Connections:  # Optional, for each connection that the entity may have (as specified in the 6G-Library), to which <component>.<interface> it should be connected.
      <Connection1>: <EntityN>.<Interface1>
      # ...
    Monitor:  # Optional, for probes, list of entities to monitor
      - EntityN
    Store:  # Optional, list of values to keep after deletion of the Trial Network

Authors

About

Trial Network Life Cycle Manager

Resources

Stars

Watchers

Forks

Packages

No packages published