NAL 2.0 Release Notes
Key Features
NAL Runtime and Drivers
- A Network Abstraction Layer that provides access to Network Interface Cards and their resources, such as queues and timestamping capabilities.
- Provides support for common INTEL IGB, 10GB, PCH, and E1000 NICs. For a complete list of NAL drivers, see the RTX64 NAL Supported NICs document.
- Provides a command line utility for configuring the NAL.
Samples
- NalDataStream sample that uses the NAL API to send and transmit data. (5384)
Notes
- The NAL cannot use the same physical interface as the RT-TCP/IP Stack. Note that there is no check for this. You must manually ensure that the NAL and RT-TCP/IP use different physical interfaces.
- When a new interface is configured, you should run RTX64Nal.rtss to configure the correct maximum number of receive and transmit queues for that interface, which can be printed by RtNalConfig.exe. RtNalConfig.exe can then be used to change the number of receive and transmit queues if needed.
- The Subsystem cannot be stopped when the RTX64 Network Abstraction Layer (NAL) is running. Attempts to stop the Subsystem in this scenario will result in an error message: The Subsystem cannot be stopped because the RTX64 Network Abstraction Layer (NAL) is currently running. Please stop the NAL with Real-time utility RtNalStop and try again.
- The driver queue object is used exclusively by a single application process.
- The NAL does not support the ability to set the NIC system timer.
- There is no binary or SDK compatibility with previous NAL BETA releases.
- Currently, only the RtNalI10GB and RtNalIGB drivers support timestamps.
- For the devices listed below, timestamps are retrieved from the packet descriptor, not the registers (6358):
- Intel® I210 Flash-less Copper-only Ethernet Controller
- Intel® I210 T1 Copper-only Ethernet Controller
- Intel® I211-AT Ethernet Controller
- Intel® I350 Quad/Dual PCIe Copper Ethernet Controller
- Intel® I350 Quad/Dual PCIe 1000BASE-KX/BX Ethernet Controller
Known Issues
- The system may become unresponsive when a NAL application crashes in an application registered callback. (6790)
- An application cannot use both NAL APIs and RT-TCP/IP Stack APIs.
- Using RtssKill or RTX64 Task Manager to terminate the RTX64 NAL process can cause the system to crash. To work around this issue, use the termination utility provided for the NAL process:
RtssRun RtNalStop.rtss
- The RtNalI10GB driver performs poorly on a 1 GB connection. In this scenario, you may experience slowness and missed packets. (7060)
- A NAL-dependent RtDll explicitly linked to an RTSS process hangs when an attempt is made to terminate it with RtssKill. To work around this issue, perform the following steps:
- Link
RtNal.lib
into the linking application. - Call RtNalInit in the linking application. You can ignore the error from the second call of RtNalInit (in the RtDll code).
The application should now terminate without issue. (7044)
- The NAL shutdown handler fails on Windows 10. To avoid this issue, use the termination utility provided with the NAL (
RtssRun RtNalStop.rtss
) to terminate all NAL applications before shutting down Windows 10. (7048)