X-Git-Url: http://git.onelab.eu/?p=sliver-openvswitch.git;a=blobdiff_plain;f=vswitchd%2Fvswitch.xml;h=7f2fd587d754afc469964b1111935851a2e01854;hp=9da34d9f415e27650aae050d14ca4f71b9e1abbb;hb=34c88624ad02129a1b477717fe5d3928530dccbe;hpb=9dd165e0508143d36c73f258d8bcfdbbb356830a diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml index 9da34d9f4..7f2fd587d 100644 --- a/vswitchd/vswitch.xml +++ b/vswitchd/vswitch.xml @@ -123,48 +123,45 @@

-

- A number of flows as a nonnegative integer. This sets number of - flows at which eviction from the datapath flow table will be - triggered. If there are a large number of flows then increasing this - value to around the number of flows present can result in reduced CPU - usage and packet loss. + The maximum + number of flows allowed in the datapath flow table. Internally OVS + will choose a flow limit which will likely be lower than this number, + based on real time network conditions.

- The default is 2500. Values below 100 will be rounded up to 100. + The default is 200000.

- +

- Specifies userspace behaviour for handling flow misses. This takes - precedence over flow-eviction-threshold. + Specifies the number of threads for software datapaths to use for + handling new flows. The default the number of online CPU cores minus + the number of revalidators.

-

-
auto
-
Handle automatically based on the flow-eviction-threshold and - the flow setup governer (default, recommended).
-
with-facets
-
Always create facets. Expensive kernel flow creation and - statistics tracking is always performed, even on flows with only - a small number of packets.
-
without-facets
-
Always handle without facets. Forces flow misses to be handled - in userspace. May cause an increase in CPU usage and packet loss - on high throughput.
-
+ This configuration is per datapath. If you have more than one + software datapath (e.g. some system bridges and some + netdev bridges), then the total number of threads is + n-handler-threads times the number of software + datapaths.

-

Specifies the number of threads for software datapaths to use for - handling new flows. The default is two less than the number of - online CPU cores (but at least 1). + revalidating flows in the datapath. Typically, there is a direct + correlation between the number of revalidator threads, and the number + of flows allowed in the datapath. The default is the number of cpu + cores divided by four plus one. If n-handler-threads is + set, the default changes to the number of cpu cores minus the number + of handler threads.

This configuration is per datapath. If you have more than one @@ -568,9 +565,22 @@ - List of OpenFlow protocols that may be used when negotiating a - connection with a controller. A default value of - OpenFlow10 will be used if this column is empty. +

+ List of OpenFlow protocols that may be used when negotiating + a connection with a controller. OpenFlow 1.0, 1.1, 1.2, and + 1.3 are enabled by default if this column is empty. +

+ +

+ The current implementation of OpenFlow 1.4 support is not safe: + ovs-vswitchd will abort when certain unimplemented + features are tested. Thus, for now it is suitable only for + experimental use. For this reason, OpenFlow 1.4 is supported only + if, in addition to specifying OpenFlow14 in this field, + ovs-vswitchd is invoked with the + --enable-of14 option. (When support becomes safe, this + option will be removed.) +

@@ -1306,14 +1316,19 @@

- Open vSwitch currently assigns the OpenFlow port number for an - interface once, when the client first adds the interface. It does - not change the port number later if the client sets or changes or - clears . Therefore, to ensure that - takes effect, the client should set - it in the same database transaction that creates the interface. - (Future versions of Open vSwitch might honor changes to .) + A client should ideally set this column's value in the same + database transaction that it uses to create the interface. Open + vSwitch version 2.1 and later will honor a later request for a + specific port number, althuogh it might confuse some controllers: + OpenFlow does not have a way to announce a port number change, so + Open vSwitch represents it over OpenFlow as a port deletion + followed immediately by a port addition. +

+ +

+ If is set or changed to some other + port's automatically assigned port number, Open vSwitch chooses a + new port number for the latter port.

@@ -1387,8 +1402,18 @@
lisp
- A layer 3 tunnel over the experimental, UDP-based Locator/ID - Separation Protocol (RFC 6830). +

+ A layer 3 tunnel over the experimental, UDP-based Locator/ID + Separation Protocol (RFC 6830). +

+

+ Only IPv4 and IPv6 packets are supported by the protocol, and + they are sent and received without an Ethernet header. Traffic + to/from LISP ports is expected to be configured explicitly, and + the ports are not intended to participate in learning based + switching. As such, they are always excluded from packet + flooding. +

patch
@@ -1943,10 +1968,13 @@ - True to consider the interface capable of packet I/O as long as it - continues to receive any packets (not just BFD packets). This - prevents link congestion that causes consecutive BFD control packets - to be lost from marking the interface down. + When true, traffic received on the + is used to indicate the capability of packet + I/O. BFD control packets are still transmitted and received. At + least one BFD control packet must be received every 100 * amount of time. Otherwise, even if + traffic are received, the + will be false. @@ -1970,6 +1998,16 @@ expected as destination for received BFD packets. The default is 00:23:20:00:00:01. + + + Set to an IPv4 address to set the IP address used as source for + transmitted BFD packets. The default is 169.254.1.0. + + + + Set to an IPv4 address to set the IP address used as destination + for transmitted BFD packets. The default is 169.254.1.1. + @@ -2009,6 +2047,13 @@ In case of a problem, set to a short message that reports what the remote endpoint's BFD session thinks is wrong. + + + Counts the number of + flaps since start. A flap is considered as a change of the + value. + @@ -2038,11 +2083,18 @@

- A Maintenance Point ID (MPID) uniquely identifies each endpoint within - a Maintenance Association. The MPID is used to identify this endpoint - to other Maintenance Points in the MA. Each end of a link being - monitored should have a different MPID. Must be configured to enable - CFM on this . +

+ A Maintenance Point ID (MPID) uniquely identifies each endpoint + within a Maintenance Association. The MPID is used to identify this + endpoint to other Maintenance Points in the MA. Each end of a link + being monitored should have a different MPID. Must be configured to + enable CFM on this . +

+

+ According to the 802.1ag specification, MPIDs can only range between + [1, 8191]. However, extended mode (see ) supports eight byte MPIDs. +

@@ -2172,8 +2224,8 @@ with compliant implementations which may be running concurrently on the network. Furthermore, extended mode increases the accuracy of the cfm_interval configuration parameter by breaking wire - compatibility with 802.1ag compliant implementations. Defaults to - false. + compatibility with 802.1ag compliant implementations. And extended + mode allows eight byte MPIDs. Defaults to false. @@ -2182,9 +2234,10 @@ is true, the CFM module operates in demand mode. When in demand mode, traffic received on the is used to indicate - liveness. CCMs are still transmitted and received, but if the - is receiving traffic, their absence does not - cause a connectivity fault. + liveness. CCMs are still transmitted and received. At least one + CCM must be received every 100 * amount of time. Otherwise, even if traffic + are received, the CFM module will raise the connectivity fault.

@@ -2517,6 +2570,75 @@ column has no effect.

+ + +

+ This string set specifies which fields should be used for + address prefix tracking. Prefix tracking allows the + classifier to skip rules with longer than necessary prefixes, + resulting in better wildcarding for datapath flows. +

+

+ Prefix tracking may be beneficial when a flow table contains + matches on IP address fields with different prefix lengths. + For example, when a flow table contains IP address matches on + both full addresses and proper prefixes, the full address + matches will typically cause the datapath flow to un-wildcard + the whole address field (depending on flow entry priorities). + In this case each packet with a different address gets handed + to the userspace for flow processing and generates its own + datapath flow. With prefix tracking enabled for the address + field in question packets with addresses matching shorter + prefixes would generate datapath flows where the irrelevant + address bits are wildcarded, allowing the same datapath flow + to handle all the packets within the prefix in question. In + this case many userspace upcalls can be avoided and the + overall performance can be better. +

+

+ This is a performance optimization only, so packets will + receive the same treatment with or without prefix tracking. +

+

+ The supported fields are: tun_id, + tun_src, tun_dst, + nw_src, nw_dst (or aliases + ip_src and ip_dst), + ipv6_src, and ipv6_dst. (Using this + feature for tun_id would only make sense if the + tunnel IDs have prefix structure similar to IP addresses.) +

+

+ For example, prefixes=ip_dst,ip_src instructs the + flow classifier to track the IP destination and source + addresses used by the rules in this specific flow table. To + set the prefix fields, the flow table record needs to exist: +

+
+
ovs-vsctl set Bridge br0 flow_tables:0=@N1 -- --id=@N1 create Flow_Table name=table0
+
+ Creates a flow table record for the OpenFlow table number 0. +
+ +
ovs-vsctl set Flow_Table table0 prefixes=ip_dst,ip_src
+
+ Enables prefix tracking for IP source and destination + address fields. +
+
+ +

+ There is a maximum number of fields that can be enabled for any + one flow table. Currently this limit is 3. +

+
+ + + The overall purpose of these columns is described under Common + Columns at the beginning of this document. + + + @@ -2880,12 +3002,18 @@
tcp:ip[:port]
-

The specified TCP port on the host at the - given ip, which must be expressed as an IP - address (not a DNS name).

-

If port is not specified, it currently - defaults to 6633. In the future, the default will change to - 6653, which is the IANA-defined value.

+

+ The specified TCP port on the host at the given + ip, which must be expressed as an IP address (not a + DNS name), where ip can be IPv4 or IPv6 address. If + ip is an IPv6 address, wrap it in square brackets, + e.g. tcp:[::1]:6632. +

+

+ If port is not specified, it currently defaults to + 6633. In the future, the default will change to 6653, which is + the IANA-defined value. +

@@ -2895,29 +3023,48 @@

pssl:[port][:ip]
-

Listens for SSL connections on the specified TCP - port. If ip, which must be expressed - as an IP address (not a DNS name), is specified, then - connections are restricted to the specified local IP - address. The - column in the table must point - to a valid SSL configuration when this form is used.

-

If port is not specified, it currently - defaults to 6633. In the future, the default will change to - 6653, which is the IANA-defined value.

-

SSL support is an optional feature that is not always built as - part of Open vSwitch.

+

+ Listens for SSL connections on the specified TCP port. + If ip, which must be expressed as an IP address (not a + DNS name), is specified, then connections are restricted to the + specified local IP address (either IPv4 or IPv6). If + ip is an IPv6 address, wrap it in square brackets, + e.g. pssl:6632:[::1]. +

+

+ If port is not specified, it currently defaults to + 6633. If ip is not specified then it listens only on + IPv4 (but not IPv6) addresses. The + + column in the table must point to a + valid SSL configuration when this form is used. +

+

+ If port is not specified, it currently defaults to + 6633. In the future, the default will change to 6653, which is + the IANA-defined value. +

+

+ SSL support is an optional feature that is not always built as + part of Open vSwitch. +

ptcp:[port][:ip]
-

Listens for connections on the specified TCP - port. If ip, which must be expressed - as an IP address (not a DNS name), is specified, then - connections are restricted to the specified local IP - address.

-

If port is not specified, it currently - defaults to 6633. In the future, the default will change to - 6653, which is the IANA-defined value.

+

+ Listens for connections on the specified TCP port. If + ip, which must be expressed as an IP address (not a + DNS name), is specified, then connections are restricted to the + specified local IP address (either IPv4 or IPv6). If + ip is an IPv6 address, wrap it in square brackets, + e.g. ptcp:6632:[::1]. If ip is not + specified then it listens only on IPv4 addresses. +

+

+ If port is not specified, it currently defaults to + 6633. In the future, the default will change to 6653, which is + the IANA-defined value. +

When multiple controllers are configured for a single bridge, the @@ -3211,8 +3358,10 @@

The specified TCP port on the host at the given - ip, which must be expressed as an IP address - (not a DNS name). + ip, which must be expressed as an IP address (not a + DNS name), where ip can be IPv4 or IPv6 address. If + ip is an IPv6 address, wrap it in square brackets, + e.g. tcp:[::1]:6632.

If port is not specified, it currently defaults @@ -3223,13 +3372,16 @@

pssl:[port][:ip]

- Listens for SSL connections on the specified TCP - port. Specify 0 for port to have - the kernel automatically choose an available port. If - ip, which must be expressed as an IP address - (not a DNS name), is specified, then connections are - restricted to the specified local IP address. The column in the port. + Specify 0 for port to have the kernel automatically + choose an available port. If ip, which must be + expressed as an IP address (not a DNS name), is specified, then + connections are restricted to the specified local IP address + (either IPv4 or IPv6 address). If ip is an IPv6 + address, wrap in square brackets, + e.g. pssl:6632:[::1]. If ip is not + specified then it listens only on IPv4 (but not IPv6) addresses. + The column in the table must point to a valid SSL configuration when this form is used.

@@ -3246,12 +3398,15 @@
ptcp:[port][:ip]

- Listens for connections on the specified TCP - port. Specify 0 for port to have - the kernel automatically choose an available port. If - ip, which must be expressed as an IP address - (not a DNS name), is specified, then connections are - restricted to the specified local IP address. + Listens for connections on the specified TCP port. + Specify 0 for port to have the kernel automatically + choose an available port. If ip, which must be + expressed as an IP address (not a DNS name), is specified, then + connections are restricted to the specified local IP address + (either IPv4 or IPv6 address). If ip is an IPv6 + address, wrap it in square brackets, + e.g. ptcp:6632:[::1]. If ip is not + specified then it listens only on IPv4 addresses.

If port is not specified, it currently defaults