Page tree
Skip to end of metadata
Go to start of metadata

Device CLI connection timeout and inter-connection delay

By default, Unimus uses 10 second timeouts for SSH / Telnet connections. This means that if your device takes longer than 10 second to establish an SSH / Telnet session, Unimus will not connect to it (fail the connection attempt). This timeout is controlled by the unimus.core.connect-timeout setting. After successful connection, if the connection is SSH, Unimus waits for up to unimus.core.ssh-version-validation-timeout to receive the SSH server identification.

During device Discovery (more info here), Unimus will establish multiple consecutive sessions to a device to test credentials (unless credential binding is used). Unimus waits 500 ms between session establishments by default. Especially for older / slower devices, or for purposes of slowing down device logins due to load on a central AAA system, it can be beneficial to increase this inter-connection delay. This delay is controlled by the unimus.core.inter-connection-delay setting.

Finally, during device login in certain cases Unimus needs to validate the device prompt - to be sure that the login to the device was successful. In cases this is needed, Unimus has a set duration for each of these checks. This duration should normally NOT be changed by the user - please only change this setting if asked to by our support. This is controlled by the unimus.core.login-prompt-validation-limit setting.

Data retrieval from the CLI

For device CLI communication / interaction, timeouts depend on the format of output from the device. Many devices output in 'paged' format - output is separated into multiple pages, each ending in a " – More – " or similar message and requires some key to be sent to continue. Unimus fully supports this for all devices on our Supported vendors/devices list.

For devices that use paging, Unimus uses a 20 second timeout after sending a command to wait for a device to respond with pagination or a prompt. Each page has its own 20 second timeout. For example, if the device takes longer than 20 seconds to finish outputting a response or offer pagination to a 'show version' command on Cisco IOS, Unimus will consider this a timeout. This is controlled by the unimus.core.cli-expect-timeout setting.

For devices that do not output using paging, Unimus uses a 75 second timeout. So for devices without paging, they need to output the full output for a command and return a prompt in under 75 seconds, or Unimus considers the operation failed. This is controlled by the unimus.core.max-backup-timeout setting. Please note some of our drivers for devices we support apply a multiplier to this value. This timeout should normally NOT be changed by the user - please only change this setting if asked to by our support.

All of these values can be adjusted. Please note some device drivers use a multiplier for these values, please check the Driver timeout multipliers article for more information.

On Linux (Debian/Ubuntu):

Edit the contents of /etc/default/unimus. All settings in this file should be on the same line.

Add these settings into the file:

-Dunimus.core.connect-timeout=20000 -Dunimus.core.ssh-version-validation-timeout=20000 -Dunimus.core.inter-connection-delay=1000 -Dunimus.core.cli-expect-timeout=30000

Insert proper values behind each configuration argument (in milliseconds).

Restart Unimus to apply the new timeouts.

On Windows:

For portable:
Create a file named Unimus.l4j.ini in the same directory as the Unimus executable.
Change Unimus in the above file name to exactly match the name of the Unimus executable.

For installer:
Add the below lines to Unimus.l4j.ini in 'C:\Program Files\Unimus\'.

Inside of this configuration file, please add the following lines:

-Dunimus.core.connect-timeout=20000
-Dunimus.core.ssh-version-validation-timeout=20000
-Dunimus.core.inter-connection-delay=1000
-Dunimus.core.cli-expect-timeout=30000

Please make sure to place each argument into its own line.
Insert proper values behind each configuration argument (in milliseconds).

Restart Unimus to apply the new timeouts.

  • No labels