SDK Resources > Redirection Library > Redirection Library Overview

Redirection Library Overview

The Redirection Package contains the following components:

   A Redirection Library: A C dynamic library (for Windows) and a C static library (for Linux), that provides support for:

   Managing clients – Maintaining a list of managed clients, adding and removing clients.

   Performing SOL operations on a client (opening an SOL session, transferring text, etc.).

   Performing Storage Redirection operations on a client (opening a Storage Redirection session, enabling/disabling storage devices, etc.).

   Storing Client states into a file for later retrieval (encrypting sensitive properties).

   Translating error codes into error strings.

   Sample code for Windows of an MFC-based Management Console, which uses the Redirection Library to provide GUI support for:

   Client management – Showing existing clients’ properties as well as adding and removing clients.

   A terminal-like interface for SOL.

   Sample code for Linux, which uses the Redirection Library to provide support for:

   Client management – Showing existing clients’ properties as well as adding and removing clients.

   Redirecting SOL data from/to the standard input/output.

   Header files that define the library API to external applications.

note-icon Note:

In an open Storage Redirection session, an executing image can overwrite the host FQDN with the image’s FQDN in the DNS. Once the original session is established, it is no longer dependent on FQDN so this change does not affect the open Storage Redirection session.

However, if the remote console shuts down the Storage Redirection session and then tries to restart it, or the console tries some other action with the platform via Intel AMT (for example, a restart command), the command will fail if it depends on the old FQDN that was in place before the image executed on the host. The console will lose all connection with the managed platform.

The console has to be aware of the FQDN change. Alternatively, the image should do a reboot or other function to restore the previous FQDN.



The Redirection Library provides an interface for translating the library error codes into English strings. The strings are also provided outside of the library in a source file. Applications linking to the library can use the C interface to get the matching error string from the library itself, or use the source file to find the corresponding error strings independently. This allows for the replacement of the error strings source file with a translation file that contains messages in other languages.

Quantity Limitations

The Redirection Library supports the following:

   Simultaneous SOL/Storage Redirection sessions to multiple (different) clients.

   At most one SOL and one Storage Redirection session simultaneously to a single client.


All redirection traffic is sent through the following IANA assigned ports:

   Storage Redirection/SOL over TCP = 16994

   Storage Redirection/SOL over TLS = 16995

You can also send redirection traffic through a Web socket on ports 16992 (HTTP) or 16993 (HTTP over TLS).


When performing a remote boot or remote installation from a CD drive of a Windows based OS, the OS constantly polls the floppy disk as well. To optimize the Storage Redirection session, it is recommended to supply (in the mandatory drive0 parameter) a pointer to a floppy drive image and not a physical drive.

Storage Redirection performance was measured over a range of environments. With 533 MHz memory and a TCP connection over a 1 GB switch, the transfer rate is over 1.05 MB per second, which is equivalent to a CD drive operating at a 7X transfer rate. TLS reduces the rate to 804 KB. Using faster memory improves performance.

The tests were performed using DMA (direct memory access). The alternative approach is to use PIO (Programmed Input/Output). For improved performance, it is recommended to use the BIOS setting, if available, to configure SOL/Storage Redirection to use DMA instead of PIO.

Additional Support: Error Logging

The library provides a logging mechanism for all components. At least three logging levels are supported (silent, errors only and verbose logging). The user can configure the logging level using the library ini file.

Additional Support: Application-Managed Sockets

The library allocates and manages sockets used for connections with Intel AMT devices. An application can manage sockets directly and allocate and de-allocate sockets as necessary. To use this feature, initialize the library with the function IMR_InitEx, which accepts callbacks to socket management functions. The library invokes these functions when it opens, closes, writes to, or reads from a connection to an Intel AMT device. The application must inform the library when there is data to read on a particular connection. IT does this by calling IMR_ReadyReadSock.

Copyright © 2006-2022, Intel Corporation. All rights reserved.