/esa-sle-native

An interface library to the CCSDS SLE transfer protocol

Primary LanguageHaskellBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

esa-sle-native

This library is a native Haskell implementation of the CCSDS SLE (Space Link Extension) Protocol. The current version provides the mandatory implementations for RAF and FCLTU service and is acutally used within the ParagonTT simulator at ESA.

The current tests have been conducted against ESA’s SLETT tool as well as against the ESA C++ SLE API itself.

Implemented Features

Currently implemented are:

  • TML, DEL and AUT layer
  • Authentication is working
  • Transport services for RAF and FCLTU
  • Multiple RAF and FCLTU instances can be used in parallel

This implementation does not use a communications server like the ESA SLE API implementations, it directly provides TCP/IP ports to connect to.

RAF Implementation

RAF is currently the most complete implementation:

  • All transport operations (BIND, START, UNBIND, STOP, TRANSFER BUFFER) are supported.
    • production start/stop times are currently ignored
  • There is currently no distinction between online complete, online timely and offline. The focus was to integrate it into ParagonTT, which only uses online-complete
  • Configurable are buffer size, latency limit, SII, PortID and AntennaID
  • Status reports are fully supported (immediate, periodic and stopping)
  • Sync Notifications support is there, but the API currently does not allow to send them
  • Get Parameter requests are all supported
  • Currently, the production is always in running state

FCLTU Implementation

FCLTU currently does support the following functionality:

  • All transport operations (BIND, START, UNBIND, STOP, TRANSFER DATA, ASYNC NOTIFY)
    • earliest and lates production times are passed on to the application
  • Status reports are fully supproted (immediate, peridoic and stopping)
  • Get Parameter requests are all supported, for SLE versions 3, 4 and 5
  • The configuration has now a lot more fields. A lot are just directly passed to the GET PARAMETER requests and are not directly processed. Details will follow.

RCF Implementation

RCF is currently not implemented. The configuration values are already there, but no coding has been done for RCF.