Tips, Tricks and Configuration Hints

This topic contains helpful tips, tricks, and configuration recommendations for the real-time network (Network Abstraction Layer and RT-TCP/IP Stack).

Packet Schedule Mini Port Drivers

A network adapter in Windows may have multiple instances in the Windows Device Manager: one for the NIC driver, and one for the Packet Schedule mini-port driver associated with it. When you convert the adapter from Windows to RTX64 control, you only need to convert the NIC driver. You do not need to convert the associated mini-port driver.

NOTE: A warning indicator may appear for the mini port driver associated with the NIC you converted. This is intended behavior that requires no further action.

Port IO Conflicts

Conflicts may occur when an RTX64 device and a Windows device utilize the same IO space address range. If the IO space is not a required resource for the RTX64 device, you can filter out the IO port resource for the RTX64 device. This procedure can be done after Converting a Windows Device to an RTX64 Device.

Delays in Stack Response

When the stack is started, initialization procedures occur before the stack is online. You will experience a delayed response from the stack if you begin calling the stack before the initialization has completed. RTX64 provides API functions that can be used to get online status:

Running in Verbose Mode

You can run the RT-TCP/IP stack in verbose mode to enable verbose logging, which can be helpful in determining issues with the stack. You can turn on verbose mode using the RTX64 Control Panel:

Using the RTX64 Control Panel:

  1. Open the Control Panel.
  2. Click Configure and Control the Network.
  3. Check the Run in verbose mode check box to enable verbose logging. Uncheck this box to disable verbose mode logging.

NOTE: Running the stack in Verbose mode may cause the RT-TCP/IP stack to slow during system shutdown.

NOTE: You must restart the network for your changes to take effect. If you plan to make other changes that require a restart of the network, make those additional changes first and then restart the network when you are finished. You must stop all network-enabled processes before you can restart.

Potential Causes of Driver Lockup

If the Interrupt Thread Priority for a driver is configured to a value that is less than the priority of the application thread that sends data, it can result in a lockup of the device interface.

Error Messages

Error Meaning

tfSheapMalloc: Memory allocation failed. Increase the configuration for the TCP/IP Stack heap.

This error may appear when you attempt to increase the number of Max Sockets without first allocating enough memory for the Stack, or when a buffer to be used in send or sendto is too large. To resolve this issue, increase the Stack heap size through the Control Panel. The default value is 4096 kilobytes.

tfCountSemAlloc: The configured value of MaxConcurrency is too low.

RTTCPIP: FATAL ERROR in TCP/IP STACK. Please terminate attached applications and stop the Stack.

These errors appear if the configured maximum concurrency for the TCP/IP Stack is too low. To resolve the issue, increase the maximum concurrency configuration in the Control Panel, terminate RTSS applications using the Stack, and restart the Stack.

RTTCPIP: PLEASE RESTART TCP/IP STACK! It's not safe after an exception in a socket application.

This error occurs when an RTSS application has generated an exception without completing a socket API call, blocking recv, recffrom, accept, or select. It’s impossible for the RT-TCP/IP Stack to cleanup its resources and continue running, as it might cause a BSOD or lockup.

RTTCPIP: Error in RtndInitializeInterface for network card RtNalIGB.

RTTCPIP: Error (0x5) initializing interface card RtNalIGB.

Error 0x5 is ERROR_ACCESS_DENIED. This means that the receive and/or transmit queues needed for the Stack are already used by another NAL application.

NOTE: The name RtNalIGB in these error codes was an example.

Topics: