Rule latency thresholding is a software-based latency implementation that
-
measures elapsed time, not just processing time, to more accurately reflect the actual time required for the rule to process
a packet,
-
does not enforce strict timing, and
-
temporarily suspends rules that exceed specified processing time thresholds to improve system performance.
Rule latency thresholding operations
A timer measures the processing time each time a packet is processed against a group of rules. Any time the rule processing
time exceeds a specified rule latency threshold, the system increments a counter. If the number of consecutive threshold violations
reaches a specified number, the system takes these actions:
-
suspends the rules for the specified period
-
triggers an event indicating the rules have been suspended
-
re-enables the rules when the suspension expires
-
triggers an event indicating the rules have been re-enabled
The system zeroes the counter when the group of rules has been suspended, or when rule violations are not consecutive. Permitting
some consecutive violations before suspending rules lets you ignore occasional rule violations that might have negligible
impact on performance and focus instead on the more significant impact of rules that repeatedly exceed the rule latency threshold.
The trade-off for the performance and latency benefits derived from latency thresholding is that uninspected packets could
contain attacks.
Rule latency thresholding has no effect on intrusion events triggered by the rules processing the packet. A rule triggers
an event for any intrusion detected in the packet, regardless of whether the rule processing time exceeds the threshold. If
the rule detecting the intrusion is a drop rule in an inline deployment, the packet is dropped. When a drop rule detects an
intrusion in a packet that results in the rule being suspended, the drop rule triggers an intrusion event, the packet is dropped,
and that rule and all related rules are suspended.

Note
|
Packets are not evaluated against suspended rules. A suspended rule that would have triggered an event cannot trigger that
event and, for drop rules, cannot drop the packet.
|
Rule latency thresholding can improve system performance in both passive and inline deployments, and can reduce latency in
inline deployments, by suspending rules that take the most time to process packets. Packets are not evaluated again against
suspended rules until a configurable time expires, giving the overloaded device time to recover. These performance benefits
might occur when:
-
hastily written, largely untested rules require an excessive amount of processing time
-
a period of poor network performance, such as when someone downloads an extremely large file, causes slow packet inspection
Rule latency thresholding examples
This example shows five consecutive rule processing times that do not result in rule suspension.

In this example, the time required to process each of the first three packets violates the rule latency threshold of 1000
microseconds, and the violations counter increments with each violation. Processing of the fourth packet does not violate
the threshold, and the violations counter resets to zero. The fifth packet violates the threshold and the violations counter
restarts at one.
This example shows five consecutive rule processing times that do result in rule suspension.

In the second example, the time required to process each of the five packets violates the rule latency threshold of 1000 microseconds.
The group of rules is suspended because the rule processing time of 1100 microseconds for each packet violates the threshold
of 1000 microseconds for the specified five consecutive violations. Any subsequent packets, represented in the figure as packets
6 through n, are not examined against suspended rules until the suspension expires. If more packets occur after the rules
are re-enabled, the violations counter begins again at zero.