OpenFlow protocol is a communications protocol that gives a remote controller access to the packet forwarding plane of a network switch or router over the network. It enables the remote controller to determine the routing path of network packets through the network switch by adding, modifying and removing packet matching rules and actions from the packet forwarding (or flow) tables of the network switch as described below. The OpenFlow protocol separates the high level routing decision plane (control path) from the packet forwarding plane (data path) of the network switch, wherein the data path still resides on the network switch while the control path is moved to the separate remote controller, typically a standard server. The switch and the controller communicate with each other via the OpenFlow protocol, which defines types of messages, such as packet-received, send-packet-out, modify-forwarding-table, and get-stats, being exchanged between the network switch and the controller. The OpenFlow protocol thus allows for more sophisticated traffic management of the network switch than what is feasible using access control lists (ACLs) and routing protocols. In addition, OpenFlow protocol allows network switches from different suppliers—often each with its own proprietary interfaces and scripting languages—to be managed remotely using a single, open protocol.
Under the OpenFlow protocol, the data path of the network switch presents a clean flow table, wherein each flow table entry contains a set of fields that include but are not limited to, matching fields with a packet received, priority, counters, instructions for action on the packet (such as send-out-port, modify-field, or drop) based on the matching result, timeouts and cookie for the action (as shown below).
When the network switch receives a packet it has never seen before, for which there are no matching flow table entries, it sends the packet to the controller, which then makes a decision on how to handle this packet. The controller may either drop the packet or add a flow table entry directing the network switch on how to forward similar packets in the future.
A meter measures the rate of a packet flow assigned to it and enables controlling the rate of those packets, if they exceed configured thresholds. Meters are attached directly to the flow entries (as opposed to queues which are attached to ports). Any flow entry can have an associated meter, which measures and controls the rate of the aggregate of all flow entries to which it is attached. Multiple meters can be used in the same table, but in an exclusive way (disjoint set of flow entries). Multiple meters can be used on the same set of packets by using them in successive flow tables. Under the OpenFlow protocol, a meter table includes a plurality of meter entries, which define per-flow meters that enable OpenFlow to have fine control over various simple Quality of Service (QoS) operations, such as rate-limit for each flow. Each meter entry can be identified by its meter identifier and contains the following:
Here, the Meter Identifier is a 32 bit unsigned integer, the Meter bands is an unordered list of meter bands, where each meter band specifies the rate of the band and the way to process the packet, and counters is updated when packets are processed by the meter.
Implementing QoS metering in software adds burden on system resources (CPU, memory etc.) as metering and rate-limiting for several hundreds of thousand/million flow entries can be extremely complex and hard on the system resources. Guaranteeing accuracy of the rate-limits and each flow adhering to the strict QoS rate-limits puts heavy load of CPU, memory and other internal system resources, and is error prone. Incorrect rate-limit could impact network serviceability for the applications sharing the corresponding network bandwidth. Therefore, there is a need for an improved system and method to enable accelerated metering implementation under the OpenFlow protocol.
The foregoing examples of the related art and limitations related therewith are intended to be illustrative and not exclusive. Other limitations of the related art will become apparent upon a reading of the specification and a study of the drawings.