gPTP Software Stack
InES-gPTP2020 (IEEE 802.1AS-2020 Software Stack)
The protocol software is a portable implementation of the TSN standard IEEE 802.1AS-2020 for Ethernet networks (full-duplex, point-to-point links - clause 11 of the standard). It has been successfully used on various operating systems such as Linux or VxWorks, it also runs on a Nios® II bare-metal system in a while(1) loop. The stack supports multiple parallel PTP instances for different PTP domains, synchronization tree creation using external port configuration, which is sometimes known as pre-engineered sync tree (PEST) and the well-known best timeTransmitter clock algorithm (BTCA – formerly BMCA).
We use the software in applied R&D projects with industry partners in joint applied R&D projects for novel sensor systems or Ethernet switches, but it can also be licensed as source code. We monitor ongoing developments at IEEE for functional extensions and plan to add new functionality as the standards mature.
Currently (2024) our focus is on the extensions required to support the «Industrial Automation Profile» for TSN (IEC/IEEE P60802 amd IEEE ASdm-2024) and for the application over multidrop Single-Pair Ethernet 10BASE-T1S, which ist he upcoming IEEE P802.1ASds.
Features
- Time-Aware System (PTP End Instance and PTP Relay Instance) according to IEEE 802.1AS-2020.
- Generic code allows porting to a wide variety of hardware and software platforms.
- An extensive API enables the connection of applications.
- The Comand Line Interface (CLI) allows evaluation, configuration, and monitoring of the gPTP software.
- Programmed in ANSI C.
- Extensive documentation.
Programming Language and Design
The programming language of the gPTP software is ANSI-C / C-99. The design of the gPTP stack is object-oriented, although C is not an object-oriented programming language.
Portability to different target systems
The gPTP software consists of a system-independent protocol engine and an OS abstraction layer. The Protocol Engine is completely system independent; the OS Abstraction Layer must be adapted to the HW/SW environment. Due to the clean structuring of the OS Abstraction Layer, the software is quickly and easily ported to different systems.
Configuration and Clock API
The Configuration and Clock API is the interface to the user application. It provides functions for configuration as well as monitoring of the stack using the data sets defined in IEEE 802.1AS-2020. It allows to control the clock(s) of the host system and to integrate advanced clock contorl algorithms as needed.
Command Line Interface (CLI)
The reference implementation for Linux provides a command line interface (CLI). The CLI allows to configure parameters at runtime and to monitor he functions of the stack and its state machines. The command line interface uses the same get() and set() functions that can be used to connect to the network management functions (YANG/MIB).
Licensing
In addition to use in joint research projects (interesting, practice-relevant research topics and requests for collaboration are always welcome), we offer InES-gPTP2020 as a source code license:
- Source code buy-out, unlimited in time and for any platforms in the licensee's portfolio.
The license includes:
- the complete source code of the protocol layer and the OS abstraction layer
- a reference implementation for Linux (currently for PC Engines’ APU2 with three Intel I210AT Ethernet Controllers running Debian Linux)
- Integration guide, PICS for host-independent functionality
- three days support by InES