RTX64 Network Abstraction Layer (NAL)

Modern Ethernet adapters are including features that are not available through the traditional TCP/IP stack interface. For example, the Intel i210 includes support for Layer 2 protocols, such as IEEE 802.1AS (Time Synchronization) and 802.1Qav (Audio-Video Bridging), as well as hardware support for IEEE 802.1Qat (Stream Reservation Protocol) and IEEE 1588/802.1AS (time stamping). Many Ethernet adapters also include support for multiple priority queues which allow you to isolate time sensitive traffic from other traffic at the hardware layer.

More and more embedded applications can benefit from these features. Audio-Video streaming, low latency data sharing, and priority isolation are just a few. Crucial to many of these applications is time synchronization between computers on the LAN. With as IEEE 802.1AS time synchronization any two LAN-attached stations can create a common clock accurate to within +/- 500ns. A new real-time interface is needed to access these features.

To exploit these hardware features and offer a faster Ethernet Layer 2 interface, IntervalZero developed the RTX64 Network Abstraction Layer (NAL). The RTX64 NAL is a network layer that abstracts the network hardware and driver functions from the upper-level protocol stacks and provides management interfaces for those upper layers to easily query for and use available network assets. It is a separate protocol layer from the RT-TCP/IP Stack. Using the NAL, you can more easily take advantage of network functionality such as EtherCAT, TSN (Time Sensitive Networks), and PTP (Precision Time Protocol).

For example, the user can call a transmit function in the driver that allows the caller to pass multiple packets at once. This greatly improves performance and allows for transmission of small packets at near line speed. The driver will direct the packets through whichever priority queue it was instructed and can call the caller back with extended information like the actual transmission time of the packet.

Topics: