diff options
Diffstat (limited to 'vswitchd/vswitch.xml')
-rw-r--r-- | vswitchd/vswitch.xml | 112 |
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"> |