X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=utilities%2Fovs-ofctl.8.in;h=fc5f2921c82d88fd0aa4d3b72bc0d5de3f2a801d;hb=802cb46ebc18fa33b33581e1e2b2ca8c6a53d0df;hp=63c2ecca8651b2505ebf7ff85999756b95ea1dd4;hpb=03ce866e44835e43f04747cfc65b2c592d780165;p=cascardo%2Fovs.git diff --git a/utilities/ovs-ofctl.8.in b/utilities/ovs-ofctl.8.in index 63c2ecca8..fc5f2921c 100644 --- a/utilities/ovs-ofctl.8.in +++ b/utilities/ovs-ofctl.8.in @@ -62,20 +62,17 @@ Prints to the console statistics for each of the flow tables used by \fBdump\-table\-features \fIswitch\fR Prints to the console features for each of the flow tables used by \fIswitch\fR. -. -.IP "\fBmod\-table \fIswitch\fR \fItable_id\fR \fIflow_miss_handling\fR" -An OpenFlow 1.0 switch looks up each packet that arrives at the switch -in table 0, then in table 1 if there is no match in table 0, then in -table 2, and so on until the packet finds a match in some table. -Finally, if no match was found, the switch sends the packet to the -controller -.IP -OpenFlow 1.1 and later offer more flexibility. This command -configures the flow table miss handling configuration for table -\fItable_id\fR in \fIswitch\fR. \fItable_id\fR may be an OpenFlow -table number between 0 and 254, inclusive, or the keyword \fBALL\fR to -modify all tables. \fIflow_miss_handling\fR may be any one of the -following: +.TP +\fBdump\-table\-desc \fIswitch\fR +Prints to the console configuration for each of the flow tables used +by \fIswitch\fR for OpenFlow 1.4+. +.IP "\fBmod\-table \fIswitch\fR \fItable_id\fR \fIsetting\fR" +This command configures flow table settings for OpenFlow table +\fItable_id\fR within \fIswitch\fR. The available settings depend on +the OpenFlow version in use. In OpenFlow 1.1 and 1.2 (which must be +enabled with the \fB\-O\fR option) only, \fBmod\-table\fR configures +behavior when no flow is found when a packet is looked up in a flow +table. The following \fIsetting\fR values are available: .RS .IP \fBdrop\fR Drop the packet. @@ -87,6 +84,21 @@ tables other than the last one.) Send to controller. (This is how an OpenFlow 1.0 switch always handles packets that do not match any flow in the last table.) .RE +.IP +In OpenFlow 1.4 and later (which must be enabled with the \fB\-O\fR +option) only, \fBmod\-table\fR configures the behavior when a +controller attempts to add a flow to a flow table that is full. The +following \fIsetting\fR values are available: +.RS +.IP \fBevict\fR +Delete some existing flow from the flow table, according to the +algorithm described for the \fBFlow_Table\fR table in +\fBovs-vswitchd.conf.db\fR(5). +.IP \fBnoevict\fR +Refuse to add the new flow. (Eviction might still be enabled through +the \fBoverflow_policy\fR oclumn in the \fBFlow_Table\fR table +documented in \fBovs-vswitchd.conf.db\fR(5).) +.RE . .TP \fBdump\-ports \fIswitch\fR [\fInetdev\fR] @@ -407,6 +419,47 @@ Remove buckets to an existing group present in the \fIswitch\fR's group table. If no \fIcommand_bucket_id\fR is present in the group specification then all buckets of the group are removed. . +.SS "OpenFlow Switch Geneve Option Table Commands" +. +In order to work with Geneve options, it is necessary to maintain a mapping +table between an option (defined by ) and an NXM field +that can be operated on for the purposes of matches, actions, etc. This +mapping must be explicitly specified by the user through the following +commands. The format for \fIoptions\fR is given in \fBOption Syntax\fR below. + +Note that a given mapping should not be changed while it is in active use by +a flow. The result of doing so is undefined. + +Currently, the Geneve mapping table is shared between all OpenFlow +switches in a given instance of Open vSwitch. This restriction will +be lifted in the future to allow for easier management. + +These commands are Nicira extensions to OpenFlow and require Open vSwitch +2.5 or later. + +.IP "\fBadd\-geneve\-map \fIswitch options\fR" +Add each option entry to \fIswitch\fR's tables. Duplicate fields are +rejected. +. +.IP "\fBdel\-geneve\-map \fIswitch \fR[\fIoptions\fR]" +Delete each option entry in \fIswitch\fR's tables based on its field index. +Fields that aren't already mapped will be ignored. If no options are +specified then the entire table will be cleared. +. +.IP "\fBdump\-geneve\-map \fIswitch\fR" +Show the currently mapped fields in the switch's option table as well +as switch capabilities. +. +.IP "\fBOption Syntax\fR" +\fB{class=\fIclass\fB,type=\fItype\fB,len=\fIlength\fB}->tun_metadata\fIn\fR + +An option can be specified in this form (repeating as necessary and +separated by commas). For example, the follow is used to map a new option: + +.RS +add-geneve-map br0 "{class=0xffff,type=0,len=4}->tun_metadata0" +.RE +. .SS "OpenFlow Switch Monitoring Commands" . .IP "\fBsnoop \fIswitch\fR" @@ -1141,6 +1194,19 @@ set. For more information, please see the corresponding IETF draft: https://tools.ietf.org/html/draft-smith-vxlan-group-policy . +.IP "\fBtun_metadata\fIidx\fB=\fIvalue\fR[\fB/\fImask\fR]" +Matches \fIvalue\fR either exactly or with optional \fImask\fR in +tunnel metadata field number \fIidx\fR (numbered from 0 to 63). +Tunnel metadata fields can be dynamically assigned onto the data +contained in the options of Geneve packets using the commands +described in the section \fBOpenFlow Switch Geneve Option Table +Commands\fR. Once assigned, the length of the field is variable +according to the size of the option. Before updating a mapping in +the option table, flows with references to it should be removed, +otherwise the result is non-deterministic. +.IP +These fields were introduced in Open vSwitch 2.5. +. .IP "\fBreg\fIidx\fB=\fIvalue\fR[\fB/\fImask\fR]" Matches \fIvalue\fR either exactly or with optional \fImask\fR in register number \fIidx\fR. The valid range of \fIidx\fR depends on @@ -1553,8 +1619,32 @@ numbered 0 through \fIn_links\fR minus 1, and stores the link into \fIdst\fB[\fIstart\fB..\fIend\fB]\fR, which must be an NXM field as described above. .IP -Currently, \fIfields\fR must be either \fBeth_src\fR or -\fBsymmetric_l4\fR and \fIalgorithm\fR must be one of \fBmodulo_n\fR, +\fIfields\fR must be one of the following: +.RS +.IP \fBeth_src\fR +Hashes Ethernet source address only. +.IP \fBsymmetric_l4\fR +Hashes Ethernet source, destination, and type, VLAN ID, IPv4/IPv6 +source, destination, and protocol, and TCP or SCTP (but not UDP) +ports. The hash is computed so that pairs of corresponding flows in +each direction hash to the same value, in environments where L2 paths +are the same in each direction. UDP ports are not included in the +hash to support protocols such as VXLAN that use asymmetric ports in +each direction. +.IP \fBsymmetric_l3l4\fR +Hashes IPv4/IPv6 source, destination, and protocol, and TCP or SCTP +(but not UDP) ports. Like \fBsymmetric_l4\fR, this is a symmetric +hash, but by excluding L2 headers it is more effective in environments +with asymmetric L2 paths (e.g. paths involving VRRP IP addresses on a +router). Not an effective hash function for protocols other than IPv4 +and IPv6, which hash to a constant zero. +.IP \fBsymmetric_l3l4+udp\fR +Like \fBsymmetric_l3l4+udp\fR, but UDP ports are included in the hash. +This is a more effective hash when asymmetric UDP protocols such as +VXLAN are not a consideration. +.RE +.IP +\fIalgorithm\fR must be one of \fBmodulo_n\fR, \fBhash_threshold\fR, \fBhrw\fR, and \fBiter_hash\fR. Only the \fBiter_hash\fR algorithm uses \fIarg\fR. .IP @@ -1567,8 +1657,8 @@ slaves represented as \fIslave_type\fR. Currently the only supported \fIslave_type\fR is \fBofport\fR. Thus, each \fIs1\fR through \fIsN\fR should be an OpenFlow port number. Outputs to the selected slave. .IP -Currently, \fIfields\fR must be either \fBeth_src\fR or \fBsymmetric_l4\fR and -\fIalgorithm\fR must be one of \fBhrw\fR and \fBactive_backup\fR. +Currently, \fIfields\fR must be either \fBeth_src\fR, \fBsymmetric_l4\fR, \fBsymmetric_l3l4\fR, or \fBsymmetric_l3l4+udp\fR, +and \fIalgorithm\fR must be one of \fBhrw\fR and \fBactive_backup\fR. .IP Example: \fBbundle(eth_src,0,hrw,ofport,slaves:4,8)\fR uses an Ethernet source hash with basis 0, to select between OpenFlow ports 4 and 8 using the Highest @@ -1961,8 +2051,9 @@ example, then the flow that matches \fBip_src=\fIb\fR would have two of \fBconjunction\fR actions within a list of actions is not significant. .IP \(bu -A flow with \fBconjunction\fR actions may not have any other actions. -(It would not be useful.) +A flow with \fBconjunction\fR actions may also include \fBnote\fR +actions for annotations, but not any other kind of actions. (They +would not be useful because they would never be executed.) .IP \(bu All of the flows that constitute a conjunctive flow with a given \fIid\fR must have the same priority. (Flows with the same \fIid\fR