summaryrefslogtreecommitdiff
path: root/vswitchd/vswitch.xml
diff options
context:
space:
mode:
Diffstat (limited to 'vswitchd/vswitch.xml')
-rw-r--r--vswitchd/vswitch.xml112
1 files changed, 88 insertions, 24 deletions
diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml
index ee2892b54..d47fc1a6e 100644
--- a/vswitchd/vswitch.xml
+++ b/vswitchd/vswitch.xml
@@ -3223,7 +3223,7 @@
</column>
</group>
- <group title="Asynchronous Message Configuration">
+ <group title="Asynchronous Messages">
<p>
OpenFlow switches send certain messages to controllers spontanenously,
that is, not in response to any request from the controller. These
@@ -3243,38 +3243,102 @@
on any messages that it does want to receive, if any.
</column>
- <column name="controller_rate_limit">
+ <group title="Controller Rate Limiting">
<p>
- The maximum rate at which the switch will forward packets to the
- OpenFlow controller, in packets per second. This feature prevents a
- single bridge from overwhelming the controller. If not specified,
- the default is implementation-specific.
+ A switch can forward packets to a controller over the OpenFlow
+ protocol. Forwarding packets this way at too high a rate can
+ overwhelm a controller, frustrate use of the OpenFlow connection for
+ other purposes, increase the latency of flow setup, and use an
+ unreasonable amount of bandwidth. Therefore, Open vSwitch supports
+ limiting the rate of packet forwarding to a controller.
</p>
<p>
- In addition, when a high rate triggers rate-limiting, Open vSwitch
- queues controller packets for each port and transmits them to the
- controller at the configured rate. The <ref
- column="controller_burst_limit"/> value limits the number of queued
- packets. Ports on a bridge share the packet queue fairly.
+ There are two main reasons in OpenFlow for a packet to be sent to a
+ controller: either the packet ``misses'' in the flow table, that is,
+ there is no matching flow, or a flow table action says to send the
+ packet to the controller. Open vSwitch limits the rate of each kind
+ of packet separately at the configured rate. Therefore, the actual
+ rate that packets are sent to the controller can be up to twice the
+ configured rate, when packets are sent for both reasons.
</p>
<p>
- Open vSwitch maintains two such packet rate-limiters per bridge: one
- for packets sent up to the controller because they do not correspond
- to any flow, and the other for packets sent up to the controller by
- request through flow actions. When both rate-limiters are filled with
- packets, the actual rate that packets are sent to the controller is
- up to twice the specified rate.
+ This feature is specific to forwarding packets over an OpenFlow
+ connection. It is not general-purpose QoS. See the <ref
+ table="QoS"/> table for quality of service configuration, and <ref
+ column="ingress_policing_rate" table="Interface"/> in the <ref
+ table="Interface"/> table for ingress policing configuration.
</p>
- </column>
- <column name="controller_burst_limit">
- In conjunction with <ref column="controller_rate_limit"/>,
- the maximum number of unused packet credits that the bridge will
- allow to accumulate, in packets. If not specified, the default
- is implementation-specific.
- </column>
+ <column name="controller_rate_limit">
+ <p>
+ The maximum rate at which the switch will forward packets to the
+ OpenFlow controller, in packets per second. If no value is
+ specified, rate limiting is disabled.
+ </p>
+ </column>
+
+ <column name="controller_burst_limit">
+ <p>
+ When a high rate triggers rate-limiting, Open vSwitch queues
+ packets to the controller for each port and transmits them to the
+ controller at the configured rate. This value limits the number of
+ queued packets. Ports on a bridge share the packet queue fairly.
+ </p>
+
+ <p>
+ This value has no effect unless <ref
+ column="controller_rate_limit"/> is configured. The current
+ default when this value is not specified is one-quarter of <ref
+ column="controller_rate_limit"/>, meaning that queuing can delay
+ forwarding a packet to the controller by up to 250 ms.
+ </p>
+ </column>
+
+ <group title="Controller Rate Limiting Statistics">
+ <p>
+ These values report the effects of rate limiting. Their values are
+ relative to establishment of the most recent OpenFlow connection,
+ or since rate limiting was enabled, whichever happened more
+ recently. Each consists of two values, one with <code>TYPE</code>
+ replaced by <code>miss</code> for rate limiting flow table misses,
+ and the other with <code>TYPE</code> replaced by
+ <code>action</code> for rate limiting packets sent by OpenFlow
+ actions.
+ </p>
+
+ <p>
+ These statistics are reported only when controller rate limiting is
+ enabled.
+ </p>
+
+ <column name="status" key="packet-in-TYPE-bypassed"
+ type='{"type": "integer", "minInteger": 0}'>
+ Number of packets sent directly to the controller, without queuing,
+ because the rate did not exceed the configured maximum.
+ </column>
+
+ <column name="status" key="packet-in-TYPE-queued"
+ type='{"type": "integer", "minInteger": 0}'>
+ Number of packets added to the queue to send later.
+ </column>
+
+ <column name="status" key="packet-in-TYPE-dropped"
+ type='{"type": "integer", "minInteger": 0}'>
+ Number of packets added to the queue that were later dropped due to
+ overflow. This value is less than or equal to <ref column="status"
+ key="packet-in-TYPE-queued"/>.
+ </column>
+
+ <column name="status" key="packet-in-TYPE-backlog"
+ type='{"type": "integer", "minInteger": 0}'>
+ Number of packets currently queued. The other statistics increase
+ monotonically, but this one fluctuates between 0 and the <ref
+ column="controller_burst_limit"/> as conditions change.
+ </column>
+ </group>
+ </group>
</group>
<group title="Additional In-Band Configuration">