Skip to content

wilson20010327/iotg_tsn_ref_sw

 
 

Repository files navigation

IOTG TSN Reference Software for Linux

Overview

This project is a set of C-applications and scripts used to showcase different Ethernet-TSN features in Linux on specific Intel IOTG platform/software.

These serve as a practical example for those interested in developing TSN-capable software.

This project introduces three applications, each with their own set of examples:

  • TSQ - Time Synchronization Quality Measurement

    • tsq1 showcases the nanosecond-precision time synchronization between platforms using pulse-per-second (PPS) output & auxiliary timestamping (AUX_TS) input pins.
  • TXRX-TSN - AF_PACKET & AF_XDP socket-based application

    • vs1 showcases the bounded low-latency transmission/reception achievable via AF_PACKET & AF_XDP standard linux socket interfaces, while leveraging various device-specific Ethernet-TSN features.
  • OPCUA-SERVER - AF_PACKET & AF_XDP OPCUA-based application

    • opcua-pkt1 showcases the bounded low-latency transmission/reception achievable via AF_PACKET over libopen62541 (an OPC-UA-based library) APIs, while leveraging various device-specific Ethernet-TSN features over a single-ethernet connection. This application uses JSON files as an input.
    • opcua-pkt2 & opcua-xdp2 showcases the bounded low-latency transmission/reception achievable via AF_PACKET & AF_XDP over libopen62541 (an OPC-UA-based library) APIs, while leveraging various device-specific Ethernet-TSN features over two ethernet connection. This application uses JSON files as an input and require platforms with at least 2 Ethernet-TSN ports (e.g. EHL).
    • opcua-pkt3 & opcua-xdp3 is the same as opcua-*2 but with iperf3 background traffic.

Compatibility

Currently supported hardwares are:

  • Intel Atom XXX (formerly Elkhart Lake) with its integrated Ethernet controller
  • Intel Core XXX (formerly Tiger Lake UP3) with its integrated Ethernet controller

This project is optimized to run on the supported hardware list and their respective bundled softwares (IFWI, BSP, preempt-rt kernel) which has been optimized for each platform's capabilities.

Dependencies

List of dependencies in DEPENDENCIES.md

Documentation

Contents

Disclaimer

  • This project only serves to demonstrate TSN functionality and its usage on supported platforms and their environments.

  • This project is not for intended for production use.

  • This project is intended to be used with specific platforms and bsp, other hardware/software combinations YMMV

  • Users are responsible for their own products' functionality and performance.

Report Issues

If you see an issue, include these details in your issue submission:

  • Hardware setup (Platform, Ethernet controller/NIC)
  • Dependency version, refer to DEPENDENCIES.md
  • OS or Linux distribution
  • Linux kernel version
  • Problem statement
  • Steps to reproduce
  • Images/Screenshots

Contribute

Refer to CONTRIBUTING.md

License

Refer to LICENSE.md

About

IOTG Time-Sensitive Networking Reference Software

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 43.4%
  • Shell 28.3%
  • Assembly 21.6%
  • Python 4.3%
  • Gnuplot 2.1%
  • Makefile 0.2%
  • M4 0.1%