Giter Club home page Giter Club logo

6gsandbox-tnlcm's Introduction

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

6gsandbox-tnlcm's People

Contributors

nanitebased avatar

Forkers

alvarocurt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.