Giter VIP home page Giter VIP logo

tsn-distributed-reservation's Introduction

TSN Reservation Protocol

This repository contains the implementation of a minimalistic reservation protocol for real-time network streams in non-TSN networks. Included are APIs for the talker- and listeners in such an environment, as well as a controller script that implements the protocol on an OpenFlow-supporting network switch (NEC PF5420). Whereas the APIs are of a generic nature, the controller script is, in large parts, adapted to that particular switch's telnet control interface.

An evaluation of this protocol in a hardware testbed has been made with the talker-, listener- and controller software each running on a seperate Raspberry Pi 3B device. The scripts used for generating measurements, their preprocessing and visualization are also included in this repository in the evaluation directory.

Requirements

  • PyYAML for parsing the talker configuration file
  • ryu framework used to interface with the OpenFlow switch
  • scapy used for implementing the custom data plane protocol

Usage

Talker

python src/run_talker.py [-h] [--iface IFACE] [--ip IP]
                         [--broadcast-ip BROADCAST_IP] [--mac MAC]
                         [--stream-file STREAM_FILE] [--timeout TIMEOUT]
                         [--resends RESENDS] [--load-test LOAD_TEST]

optional arguments:
  --iface IFACE         The interface from which to send the requests from
  --ip IP               Source IP address to put into advertisements
  --broadcast-ip BROADCAST_IP
                        The Broadcast IPv4 address of the used subnet.
  --mac MAC             Source MAC address to put into advertisements
  --stream-file STREAM_FILE
                        Path to .yaml with stream specifications
  --timeout TIMEOUT     The time in seconds until an advertisement is resent
  --resends RESENDS     The number of times an advertisement would be resent
  --load-test LOAD_TEST
                        Use this to send n advertisements for random port-
                        combinations of the given streams

Listener

python src/run_listener.py [--iface IFACE] [--ip IP] [--mac MAC]

optional arguments:
  --iface IFACE  The interfaceo on which to listen for Advertisements
  --ip IP        The IP address to set as the destination address in
                 subscriptions
  --mac MAC      The MAC address used as the MAC source address in answers

SDN-Controller

ryu-manager src/controller.py

Authors

This work is based on the distributed latency model from Bounded Latency with Bridge-Local Stream Reservation and Strict Priority Queuing by Grigorjew et al., published on the 11th International Conference on Network of the Future (NoF) (2020).

It has been implemented and applied later in the paper:

Distributed Implementation of Deterministic Networking in Existing Non-TSN Ethernet Switches, Workshop on Time-sensitive and Deterministic Networking of the ICC, 2021.

When referring to this work, please cite this paper.

tsn-distributed-reservation's People

Contributors

brain-dev-null avatar

Watchers

James Cloos avatar

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.