HP OpenFlow 1.3 Administrator Guide Wired Switches K/KA/KB/WB 15.15
4 OpenFlow per-flow rate limiting
OpenFlow supports per-flow rate-limiters for OpenFlow 1.0 as HP vendor extensions.
A rate-limiter controls the rate of packets passing through a switch. Per-flow rate-limiters associate
an arbitrary number of flows with a rate-limiter. Using OpenFlow with per flow rate-limiters, any
number of flows can be flexibly mapped to a rate-limiter, regardless of their source and destination
ports. The use of rate-limiters requires a version of ovs-ofctl which includes HP QoS extension.
Rate-limiters are addressed by a limiter_id, an arbitrary 32 bit number. Configuration of rate-limiters
is done through a simple message from the OpenFlow controller which can add, modify or remove
a rate-limiter. Flows are directed to rate-limiters through an action. Multiple flows can be associated
with the same rate-limiter. Statistics can be read from the OpenFlow controller for each rate-limiter.
NOTE: Per-flow rate-limiters are used only if the hardware rate-limiter for the instance is disabled.
QoS extensions
HP QoS extension to the OpenFlow protocol provides support for rate-limiters. A rate-limiter controls
the rate of packets passed through it. Per-flow rate-limiters associate an arbitrary number of flows
with a rate-limiter. The HP QoS vendor extensions support per-flow rate-limiters with only drop rate
flag and not mark rate or other flags.
Maintain limiter in rule
The rule structure maintains the limiter identification and a flag to indicate if the rule has a limiter
ID associated with it.
Create a limiter
A per-flow rate-limiter is added/created from the OpenFlow controller using the add-limiter
command. Note that this requires the controller to have the HP QoS extensions.
On receiving a vendor request from the OpenFlow controller, the vendor ID is checked for
HPX_VENDOR_ID and then passed on to “ofputil_decode_hpx” to be decoded. On receiving a
message of type OFPUTIL_HPX_ADD_LIMITER, a new meter is created with the parameters received
in the message. The meters are created, updated and deleted by calls to platform independent
functions, which in turn call the platform dependent functions.
Get limiter details
The details on the limiters configured can be retrieved by issuing a dump-limiters command
from the OpenFlow controller. These details can also be checked on the switch using show
openflow <inst_name> limiters.
Support flow with a limiter
A flow can be associated with a per-flow rate-limiter by giving the limiter ID in actions. For example,
assume that a per flow rate-limiter with ID 100 is created with an add-limiter command from
the OpenFlow controller. From an ovs controller with HP QoS extensions, a flow can be associated
with this rate-limiter using the rate_limit key word in the actions as indicated below.
ovs-ofctl add-flow tcp:192.168.1.2:6633
idle_timeout=0,ip,nw_src=20.20.20.41,
action=output:57,rate_limit:100
QoS extensions 33










