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 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, aber sie kann auch als Source Code lizenziert werden. Wir beobachten die derzeit bei IEEE diskutierten Erweiterungen und planen, den Stack um neue Funktionen zu erweitern wenn die Entwürfe in der Standardisierung entsprechend ausgereift sind.
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.
Application Programming Interface (API)
Das API ist die Schnittstelle zur Benutzerapplikation. Es stellt Funktionen zur Konfiguration sowie zum Monitoring des Stacks zur Verfügung.
Command Line Interface (CLI)
Entwickler konfigurieren und überwachen gPTP zur Laufzeit. Beispielsweise kann die State-Machine und diverse Laufzeitparameter überwacht werden. 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
Künftige Erweiterungen von IEEE 802.1AS
Im IEEE sind derzeit (Ende 2023) mehrere Projekte in Arbeit, um erweiterte Funktionen für verschiedene TSN-Profile zu definieren: Hot-Standby Redundanz, Verbesserungen bei der Synchronisationsgenauigkeit für lange Linienstrukturen, oder das Abschalten gewisser heute als verpflichtend vorgeschriebener Funktionen sind Beispiele hierfür. Wir verfolgen diese Entwicklungen aus erster Hand und werden relevante Funktionalität zeitnah zur Verabschiedung im IEEE umsetzen.