Skip to content
A TAPS implementation based on Python asyncio
Python C++ Shell
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
PyTAPS
docs Update documentation to include multicast Sep 16, 2019
examples multicast join+receive working on mac and linux Jul 22, 2019
tests run_tests: Only kill echo servers Jul 21, 2019
.gitignore Add tls-client model instance and bash script to run tests Jul 21, 2019
LICENSE added yang support May 7, 2019
README.md Merge branch 'master' into multicast Jul 22, 2019
build_dependencies.sh
mktestcert.sh fixes to script to generate test certs Mar 26, 2019

README.md

python-asyncio-taps

This is an implementation of a transport system as described by the TAPS (Transport Services) Working Group in the IETF in draft-ietf-taps-interface-04. The full documentation can be found on readthedocs.io

A transport system is a novel way to offer transport layer services to the application layer. It provides an interface on top of multiple different transport protocols, such as TCP, SCTP, UDP, or QUIC. Instead of having to choose a transport protocol itself, the application only provides abstract requirements (Transport Properties), e.g., Reliable Data Transfer. The transport system maps then maps these properties to specific transport protocols, possibly trying out multiple different protocols in parallel. Furthermore, it can select between multiple local interfaces and remote IP addresses.

TAPS is currently being standardized in the IETF TAPS Working Group:

People interested in participating in TAPS can join the mailing list.

Requirements:

  • Python 3.7 or above
  • termcolor (pip install termcolor)
  • pytest, pytest-asyncio, pytest-timeout (for tests)

Build Dependencies:

Yang support relies on some shared libraries. Run the script to download, build, and install them into dependencies/install/lib.

Requirements:

  • gcc or clang

  • cmake

  • libtool

  • autotools

    ./build_dependencies.sh

Use

You'll need the path to load the dependent dynamic libraries set:

export LD_LIBRARY_PATH=dependencies/install/lib

To run a server with a yang model specified in examples/yang_example/test-server2.json run

python examples/yang_example/yangServer.py -f examples/yang_example/test-server2.json

For a client with a model specified in examples/yang_example/test-client2.json run

python examples/yang_example/yangClient.py -f examples/yang_example/test-client2.json

Running Tests

cd tests/
./run_tests.sh
You can’t perform that action at this time.