gPTP Software Stack
InES-gPTP2020 (IEEE 802.1AS-2020 Software Stack)
Die Protokollsoftware ist eine portable Implementierung des TSN Standards IEEE 802.1AS-2020 für Ethernet-Netzwerke (Vollduplex, Punkt-zu-Punkt Verbindungen – Abschnitt 11 des Standards). Sie wurde bereits erfolgreich auf verschiedenen Betriebssystemen wie Linux oder VxWorks eingesetzt und läuft auch auf einem Nios® II Bare-Metal System in einem while(1) Loop. Der Stack unterstützt mehrere parallele PTP-Instanzen für unterschiedliche PTP-Domains, die Erstellung des Synchronisationsbaumes über externe Portkonfiguration (PEST - pre-engineered Sync Tree) und den bekannten «Best TimeTransmitter Clock Algorithmus» (BTCA – ehemals BMCA).
Wir verwenden die Software in angewandten F&E-Projekten mit Industriepartnern wie Sensor oder Switchherstellern. Der Zeitsynchronisations-Stack kann auch als Source Code lizenziert werden. Wir beobachten die bei IEEE diskutierten Erweiterungen und planen, den Stack um neue Funktionen zu erweitern, wenn die Entwürfe in der Standardisierung entsprechend ausgereift sind.
Derzeit (2024) arbeiten wir an den Erweiterungen für das «Industrial Automation Profile for TSN» (IIEC/IEEE P60802 und IEEE 802.1ASdm-2024) und für den Einsatz über Multidrop Single-Pair Ethernet nach 10BASE-T1S (IEEE 802.1ASds).
Features
- Time-Aware System (PTP End Instance und PTP Relay Instance) nach IEEE 802.1AS-2020.
- Generischer Code erlaubt die Portierung auf verschiedenste Hardware- und Softwareplattformen.
- Ein umfangreiches API ermöglicht die Anbindung von Applikationen.
- Das Command Line Interface (CLI) ermöglicht Evaluation, Konfiguration und Monitoring der gPTP-Software.
- Programmiert in ANSI C.
- Umfangreiche Dokumentation.
Programmiersprache und Design
Die Programmiersprache ist ANSI-C / C-99. Das Design von InES-gPTP2020 ist objektorientiert, obwohl C keine objektorientierte Programmiersprache ist.
Portabilität auf verschiedene Systeme
Die gPTP-Software besteht aus einer systemunabhängigen Protocol Engine sowie aus einem OS Abstraction Layer. Die Protocol-Engine ist vollkommen systemunabhängig, der OS Abstraction Layer muss an die HW/SW-Umgebung angepasst werden. Durch die saubere Strukturierung des OS Abstraction Layers wird die Software schnell und einfach auf verschiedene Systeme portiert.
Konfigurations- und Clock API
Das Konfigurations- und Clock-API ist die Schnittstelle zur Benutzerapplikation. Es stellt Funktionen zur Konfiguration sowie zum Monitoring des Stacks durch die in IEEE 802.1AS definierten Datasets zur Verfügung und erlaubt, die Regelung der Uhr(en) des Host-Systems zu beeinflussen und eigene Algorithmen zur Regelung und Filterung einzubinden.
Command Line Interface (CLI)
Die Referenzimplementierung für Linux beinhaltet auch ein Command Line Interface. Damit lassen sich zur Laufzeit Parameter konfigurieren und die Funktion des Stacks und seiner State Machines überwachen. Das Command Line Interface verwendet dieselben get() und set() Funktionen, die auch zur Anbindung ans Netzwerkmanagement (YANG/MIB) verwendet werden können.
Lizenzierung
Neben der Verwendung in Forschungsprojekten mit Industriepartnern (wir sind immer auf der Suche nach interessanten, praxisrelevanten Fragestellungen) bieten wir InES-gPTP2020 als Source Code Lizenz an:
- Source Code Buy-Out, zeitlich unbegrenzt und für beliebige Plattformen im Portfolio des Lizenznehmers
Die Lizenz beinhaltet:
- den kompletten Source Code der Protocol Engine und des OS Abstraction Layer
- eine Referenzimplementierung für Linux (derzeit Debian Linux auf PC Engines APU2 mit drei Intel I210AT Ethernet Controllern).
- umfangreiche Dokumentation: Integration Guide und Protocol Implementation Conformance Statement (PICS)
- drei Tage Support durch das InES