‘RPD_KRT_Q_RETRIES: Route Update: No buffer space available’

The routing protocol daemon (RPD) sends updates to the kernel to maintain the current status of the routing tables. This article provides information about the RPD_KRT_Q_RETRIES: Route Update: No buffer space available error message.

  • Name: RPD_KRT_Q_RETRIES
  • Message: <reason>: <error-message>
  • Help: The attempt to update the kernel has failed.
  • Description: The routing protocol process (RPD) attempted to update the kernel in the indicated times and failed. It will continue to retry.

The routing protocol daemon (RPD) sends updates to the kernel to maintain the current status of the routing tables. When a major change occurs, such as

  • a Routing Engine mastership switchover,
  • rebuilding the routing tables (that might be caused by a restart of the routing daemon),
  • links to next hops flapping, or
  • IGP/BGP convergence,

large numbers of updates will be sent to the kernel.

These updates are processed via the KRT queue. During this state of high activity, the socket connection may run out of buffer space. The built-in flow control will assure the processing of the updates by repeated attempts to send the update to the KRT queue. When the repeat attempt is made, the message is sent to the log file. If the retries are due to Route Update: No buffer space available, this is due to flow control and is usually a transient condition. If the retries are due to other reasons, then it is mostly a software defect and further investigation is required.

This issue could be due to cases which get stuck in the KRT queue. The following examples highlight two cases for RPD_KRT_Q_RETRIES:
This case indicates that a slow IFSTATE client (MCSNOOPD) caused the KRT queue to be stuck:

Syslog messages:

System output:

Kernel side:

In this case, the system suddenly became busy, due to VMCore dumping. This caused the KRT queue to retry the syslog message for a while:

Syslog messages:

System output:

Collect the output of the following commands, two or three times at a regular interval of two minutes:

From the routing engine side:

From the kernel side:

Check the log messages and verify that the routes are being shown in the normal (in the output of show krt state) or stuck state. If the routes are in stuck state, collect the above outputs and further troubleshoot the issue.

About the author

Prasanna

Leave a Comment