Systems and methods for optimized protocol aware dynamic control plane policing
Control plane policing (CoPP) is a mechanism to police incoming traffic to the control plane for control plane protection and routing stability. Currently, networking switches are statically configured for CoPP limits in hardware/firmware. Such an approach of using a static CoPP limit does not work well in dynamic scenarios where one protocol load could be more than the other. The present patent document discloses embodiments of dynamic CoPP limit derivation. CoPP limits are initially estimated based on protocol configuration and are dynamically updated based on application load. A congestion notification may be sent to a sender to limit a transmission rate. Use of dynamic CoPP limit embodiments have advantages of faster protocol convergence, efficient slow packet processing notification to peer, and effective CoPP drop setting based on application load.
1 . An information handling system comprising:
a data plane comprising a network processing unit (NPU) that is communicatively coupled to one or more physical ports; and
a control plane that controls the data plane for traffic routing and packet forwarding, the control plane comprising a monitoring module to monitor one or more applications operating in the control plane, the monitoring module comprising:
a configuration monitoring module that tracks one or more configurations for each protocol of a set of one or more protocols operating on an information handling system;
a resource monitoring module that monitors, for each protocol of the set of one or more protocols, one or more resources of the information handling system regarding resource usage related to the protocol; and
a control plane policing (CoPP) limit calculator communicatively coupled to the configuration monitoring module and to the resource monitoring module, the CoPP limit calculator, for each protocol of the set of one or more protocols:
determines an initial value of a CoPP limit using one or more protocol-related configurations related to one or more conditions associated with the information handling system's deployment; and
dynamically updates the CoPP limit using at least one or more values related to the resource usage.
2 . The information handling system of claim 1 wherein the CoPP limit is programmed, by the monitoring module, into the NPU for operation of the protocol.
3 . The information handling system of claim 1 further comprising:
a congestion notification module communicatively coupled to the resource monitoring module, wherein the congestion notification module sends a congestion notification to a peer information handling system when resource usage regarding the protocol indicates a congestion.
4 . The information handling system of claim 3 wherein the protocol is a Layer 2 (L2) protocol, and the congestion notification is a priority-based flow control (PFC) pause frame that has control packets priority for the L2 protocol.
5 . The information handling system of claim 3 wherein the protocol is a Layer 3 (L3) protocol, and the congestion notification is a packet with explicit congestion notification (ECN) bit or bits set.
6 . The information handling system of claim 1 wherein the protocol is a Layer 3 (L3) protocol, and the initial CoPP limit is derived using one or more of a number of neighbors, a number of keepalive messages per second, and a number of route update messages based on estimated route scale and maximum transmission unit (MTU).
7 . The information handling system of claim 1 wherein the protocol is a Layer 2 (L2) protocol, and the initial CoPP limit is derived using one or more of a number of L2 protocol enabled interfaces and a number of messages per second.
8 . The information handling system of claim 1 wherein the CoPP limit is dynamically updated using steps comprising:
checking resource usage and receiving queue-depth thresholds for the protocol;
categorizing the thresholds as low, medium, or high watermarks;
mapping the protocol to a watermark based on resource usage; and
applying a multiplier related to the mapped watermark to the initial value of the CoPP limit for update.
9 . The information handling system of claim 1 wherein the CoPP limit calculator is communicatively coupled to an external CoPP limit enforcer and the CoPP limit is an externally configured CoPP limit enforced by the external CoPP limit enforcer.
10 . A processor-implemented method for setting control plane policing, the method comprising:
for an information handling system, which comprises:
a data plane comprising a network processing unit (NPU) that is communicatively coupled to one or more physical ports; and
a control plane that controls the data plane for traffic routing and packet forwarding, the control plane comprising a monitoring module to monitor one or more applications operating in the control plane, the monitoring module comprising:
a configuration monitoring module that tracks one or more configurations for a protocol operating on the information handling system;
a resource monitoring module that monitors one or more resources of the information handling system regarding resource usage related to the protocol; and
a control plane policing (CoPP) limit calculator communicatively coupled to the configuration monitoring module and to the resource monitoring module, the CoPP limit calculator causing steps to be performed comprising:
determining an initial value of a CoPP limit using one or more protocol-related configurations; and
dynamically updating the CoPP limit using at least one or more values related to the resource usage.
11 . The processor-implemented method of claim 10 further comprising:
programming the data plane NPU with the initial CoPP limit for operation of the protocol; and
monitoring one or more resources of the information handling system regarding resource usage related to the protocol to be used in the step of dynamically updating the CoPP limit.
12 . The processor-implemented method of claim 10 wherein:
at least one of the one or more protocol-related configurations related to one or more conditions associated with the information handling system's deployment.
13 . The processor-implemented method of claim 10 further comprising:
responsive to resource usage indicating that a congestion notification to a peer information handling system is desired, the information handling system causing steps to be performed comprising:
responsive to the protocol being a Layer 3 (L3) protocol, setting an explicit congestion notification (ECN) indicator in a packet and transmitting the packet to the peer information handling system; and
responsive to the protocol being a Layer 2 (L2) protocol, constructing a priority-based flow control (PFC) pause frame and transmitting the PFC pause frame to the peer information handling system.
14 . The processor-implemented method of claim 10 wherein:
responsive to the protocol being an L3 protocol, the initial CoPP limit is derived using one or more of a number of neighbors, a number of keepalive messages per second, and a number of route update messages based on estimated route scale and maximum transmission unit (MTU).
15 . The processor-implemented method of claim 10 wherein:
responsive to the protocol being an L2 protocol, the initial CoPP limit is derived using one or more of a number of L2 protocol enabled interfaces and a number of messages per second.
16 . The processor-implemented method of claim 10 wherein the information handling system further causes steps to be performed comprising:
responsive to receiving from a peer information handling system a congestion notification being related to priority-based flow control (PFC):
receiving a PFC pause frame that has control packets priority for a Layer 2 (L2) protocol; and
notifying a control plane of the information handling system to limit control packets intake rate from the L2 protocol; and
responsive to receiving from a peer information handling system an explicit congestion notification (ECN) indicator:
notifying the control plane of the information handling system to limit control packets intake rate for a Layer 3 (L3) protocol; and
deciding a transmission rate.
17 . A non-transitory information-handling-system-readable medium or media comprising one or more sequences of instructions for an information handling system, which comprises:
a data plane comprising a network processing unit (NPU) that is communicatively coupled to one or more physical ports; and
a control plane that controls the data plane for traffic routing and packet forwarding, the control plane comprising a monitoring module to monitor one or more applications operating in the control plane, the monitoring module comprising:
a configuration monitoring module that tracks one or more configurations for a protocol operating on the information handling system; and
a resource monitoring module that monitors one or more resources of the information handling system regarding resource usage related to the protocol,
the one or more sequences of instructions which, when executed by at least one processor, causes a control plane policing (CoPP) limit calculator communicatively coupled to the configuration monitoring module and to the resource monitoring module, to cause steps to be performed comprising:
determining an initial value of a CoPP limit using one or more protocol-related configurations; and
dynamically updating the CoPP limit using at least one or more values related to the resource usage.
18 . The non-transitory information-handling-system-readable medium or media of claim 17 further comprising one or more sequences of instructions that cause one or more steps to be performed comprising:
programming the data plane NPU with the initial CoPP limit for operation of the protocol; and
monitoring one or more resources of the information handling system regarding resource usage related to the protocol to be used in the step of dynamically updating the CoPP limit.
19 . The non-transitory information-handling-system-readable medium or media of claim 17 wherein:
at least one of the one or more protocol-related configurations is related to one or more conditions associated with the information handling system's deployment.
20 . The non-transitory information-handling-system-readable medium or media of claim 17 further comprising one or more sequences of instructions that cause one or more steps to be performed comprising:
responsive to resource usage indicating that a congestion notification to a peer information handling system is desired, causing steps to be performed comprising:
responsive to the protocol being a Layer 3 (L3) protocol, setting an explicit congestion notification (ECN) indicator in a packet and transmitting the packet to the peer information handling system; and
responsive to the protocol being a Layer 2 (L2) protocol, constructing a priority-based flow control (PFC) pause frame and transmitting the PFC pause frame to the peer information handling system.