X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=utilities%2Fovs-ofctl.8.in;h=9923715904235ef754267dadea811e09ae92342e;hb=28c5588e8e1a8d091c5d2275232c35f2968a97fa;hp=9608c528f53bf70b54ffe04c03f28781572fecb7;hpb=0d8e96383bb5dd9f1ffe8314e2e3fb020278c99e;p=sliver-openvswitch.git diff --git a/utilities/ovs-ofctl.8.in b/utilities/ovs-ofctl.8.in index 9608c528f..992371590 100644 --- a/utilities/ovs-ofctl.8.in +++ b/utilities/ovs-ofctl.8.in @@ -4,7 +4,7 @@ . ns . IP "\\$1" .. -.TH ovs\-ofctl 8 "January 2011" "Open vSwitch" "Open vSwitch Manual" +.TH ovs\-ofctl 8 "@VERSION@" "Open vSwitch" "Open vSwitch Manual" .ds PN ovs\-ofctl . .SH NAME @@ -58,6 +58,10 @@ information on its flow tables and ports. \fBdump\-tables \fIswitch\fR Prints to the console statistics for each of the flow tables used by \fIswitch\fR. +.TP +\fBdump\-table\-features \fIswitch\fR +Prints to the console features for each of the flow tables used by +\fIswitch\fR. . .TP \fBdump\-ports \fIswitch\fR [\fInetdev\fR] @@ -190,6 +194,90 @@ statistics are printed for all queues on \fIport\fR; if only \fIport\fR is omitted, then statistics are printed for \fIqueue\fR on every port where it exists. . +.SS "OpenFlow 1.1+ Group Table Commands" +. +The following commands work only with switches that support OpenFlow +1.1 or later. Because support for OpenFlow 1.1 and later is still +experimental in Open vSwitch, it is necessary to explicitly enable +these protocol versions in \fBovs\-ofctl\fR (using \fB\-O\fR) and in +the switch itself (with the \fBprotocols\fR column in the \fBBridge\fR +table). For more information, see ``Q: What versions of OpenFlow does +Open vSwitch support?'' in the Open vSwitch FAQ. +. +.IP "\fBdump\-groups \fIswitch" +Prints to the console all group entries in \fIswitch\fR's tables. Each line +of output is a group entry as described in \fBGroup Syntax\fR below. +. +.IP "\fBdump\-group\-features \fIswitch" +Prints to the console the group features of the \fIswitch\fR. +. +.IP "\fBdump\-group-stats \fIswitch \fR[\fIgroups\fR]" +Prints to the console statistics for the specified \fIgroups in the +\fIswitch\fR's tables. If \fIgroups\fR is omitted then statistics for all +groups are printed. See \fBGroup Syntax\fR, below, for the syntax of +\fIgroups\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: +.RS +.IP \fBdrop\fR +Drop the packet. +.IP \fBcontinue\fR +Continue to the next table in the pipeline. (This is how an OpenFlow +1.0 switch always handles packets that do not match any flow, in +tables other than the last one.) +.IP \fBcontroller\fR +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 +. +.SS "OpenFlow 1.3+ Switch Meter Table Commands" +. +These commands manage the meter table in an OpenFlow switch. In each +case, \fImeter\fR specifies a meter entry in the format described in +\fBMeter Syntax\fR, below. +. +.PP +OpenFlow 1.3 introduced support for meters, so these commands only +work with switches that support OpenFlow 1.3 or later. The caveats +described for groups in the previous section also apply to meters. +. +.IP "\fBadd\-meter \fIswitch meter\fR" +Add a meter entry to \fIswitch\fR's tables. The \fImeter\fR syntax is +described in section \fBMeter Syntax\fR, below. +. +.IP "\fBmod\-meter \fIswitch meter\fR" +Modify an existing meter. +. +.IP "\fBdel\-meters \fIswitch\fR" +.IQ "\fBdel\-meter \fIswitch\fR [\fImeter\fR]" +Delete entries from \fIswitch\fR's meter table. \fImeter\fR can specify +a single meter with syntax \fBmeter=\fIid\fR, or all meters with syntax +\fBmeter=all\fR. +. +.IP "\fBdump\-meters \fIswitch\fR" +.IQ "\fBdump\-meter \fIswitch\fR [\fImeter\fR]" +Print meter configuration. \fImeter\fR can specify a single meter with +syntax \fBmeter=\fIid\fR, or all meters with syntax \fBmeter=all\fR. +. +.IP "\fBmeter\-stats \fIswitch\fR [\fImeter\fR]" +Print meter statistics. \fImeter\fR can specify a single meter with +syntax \fBmeter=\fIid\fR, or all meters with syntax \fBmeter=all\fR. +. +.IP "\fBmeter\-features \fIswitch\fR" +Print meter features. +. .SS "OpenFlow Switch Flow Table Commands" . These commands manage the flow table in an OpenFlow switch. In each @@ -258,6 +346,30 @@ keyword \fBLOCAL\fR (the preferred way to refer to the OpenFlow ``local'' port), or the keyword \fBNONE\fR to indicate that the packet was generated by the switch itself. . +.SS "OpenFlow Switch Group Table Commands" +. +These commands manage the group table in an OpenFlow switch. In each +case, \fIgroup\fR specifies a group entry in the format described in +\fBGroup Syntax\fR, below, and \fIfile\fR is a text file that contains +zero or more groups in the same syntax, one per line. + +.IP "\fBadd\-group \fIswitch group\fR" +.IQ "\fBadd\-group \fIswitch \fB\- < \fIfile\fR" +.IQ "\fBadd\-groups \fIswitch file\fR" +Add each group entry to \fIswitch\fR's tables. +. +.IP "\fBmod\-group \fIswitch group\fR" +.IQ "\fBmod\-group \fIswitch \fB\- < \fIfile\fR" +Modify the action buckets in entries from \fIswitch\fR's tables for +each group entry. +. +.IP "\fBdel\-groups \fIswitch\fR" +.IQ "\fBdel\-groups \fIswitch \fR[\fIgroup\fR]" +.IQ "\fBdel\-groups \fIswitch \fB\- < \fIfile\fR" +Deletes entries from \fIswitch\fR's group table. With only a +\fIswitch\fR argument, deletes all groups. Otherwise, deletes the group +for each group entry. +. .SS "OpenFlow Switch Monitoring Commands" . .IP "\fBsnoop \fIswitch\fR" @@ -274,7 +386,8 @@ between a switch and its controller. When a switch has more than one controller configured, only the traffic to and from a single controller is output. If none of the controllers is configured as a master or a slave (using a Nicira -extension to OpenFlow), then a controller is chosen arbitrarily among +extension to OpenFlow 1.0 or 1.1, or a standard request in OpenFlow +1.2 or later), then a controller is chosen arbitrarily among them. If there is a master controller, it is chosen; otherwise, if there are any controllers that are not masters or slaves, one is chosen arbitrarily; otherwise, a slave controller is chosen @@ -370,6 +483,29 @@ response. Reports the total time required. This is a measure of the maximum bandwidth to \fItarget\fR for round-trips of \fIn\fR-byte messages. . +.SS "Other Commands" +. +.IP "\fBofp\-parse\fR \fIfile\fR" +Reads \fIfile\fR (or \fBstdin\fR if \fIfile\fR is \fB\-\fR) as a +series of OpenFlow messages in the binary format used on an OpenFlow +connection, and prints them to the console. This can be useful for +printing OpenFlow messages captured from a TCP stream. +. +.IP "\fBofp\-parse\-pcap\fR \fIfile\fR [\fIport\fR...]" +Reads \fIfile\fR, which must be in the PCAP format used by network +capture tools such as \fBtcpdump\fR or \fBwireshark\fR, extracts all +the TCP streams for OpenFlow connections, and prints the OpenFlow +messages in those connections in human-readable format on +\fBstdout\fR. +.IP +OpenFlow connections are distinguished by TCP port number. +Non-OpenFlow packets are ignored. By default, data on TCP ports 6633 +and 6653 are considered to be OpenFlow. Specify one or more +\fIport\fR arguments to override the default. +.IP +This command cannot usefully print SSL encrypted traffic. It does not +understand IPv6. +. .SS "Flow Syntax" .PP Some \fBovs\-ofctl\fR commands accept an argument that describes a flow or @@ -393,8 +529,8 @@ flows not in normal form. The following field assignments describe how a flow matches a packet. If any of these assignments is omitted from the flow syntax, the field is treated as a wildcard; thus, if all of them are omitted, the -resulting flow matches all packets. The string \fB*\fR or \fBANY\fR -may be specified to explicitly mark any of these fields as a wildcard. +resulting flow matches all packets. The string \fB*\fR may be specified +to explicitly mark any of these fields as a wildcard. (\fB*\fR should be quoted to protect it from shell expansion.) . .IP \fBin_port=\fIport\fR @@ -478,6 +614,7 @@ When \fBdl_type\fR is wildcarded or set to a value other than 0x0800, (see \fBFlow Syntax\fR above). . .IP \fBnw_proto=\fIproto\fR +.IQ \fBip_proto=\fIproto\fR When \fBip\fR or \fBdl_type=0x0800\fR is specified, matches IP protocol type \fIproto\fR, which is specified as a decimal number between 0 and 255, inclusive (e.g. 1 to match ICMP packets or 6 to match @@ -510,7 +647,16 @@ When \fBdl_type\fR is wildcarded or set to a value other than 0x0800 or 0x86dd, the value of \fBnw_tos\fR is ignored (see \fBFlow Syntax\fR above). . +.IP \fBip_dscp=\fIdscp\fR +Matches IP ToS/DSCP or IPv6 traffic class field \fIdscp\fR, which is +specified as a decimal number between 0 and 63, inclusive. +.IP +When \fBdl_type\fR is wildcarded or set to a value other than 0x0800 or +0x86dd, the value of \fBip_dscp\fR is ignored (see \fBFlow Syntax\fR +above). +. .IP \fBnw_ecn=\fIecn\fR +.IQ \fBip_ecn=\fIecn\fR Matches \fIecn\fR bits in IP ToS or IPv6 traffic class fields, which is specified as a decimal number between 0 and 3, inclusive. .IP @@ -529,8 +675,8 @@ above). . .IP \fBtp_src=\fIport\fR .IQ \fBtp_dst=\fIport\fR -When \fBdl_type\fR and \fBnw_proto\fR specify TCP or UDP, \fBtp_src\fR -and \fBtp_dst\fR match the UDP or TCP source or destination port +When \fBdl_type\fR and \fBnw_proto\fR specify TCP or UDP or SCTP, \fBtp_src\fR +and \fBtp_dst\fR match the UDP or TCP or SCTP source or destination port \fIport\fR, respectively, which is specified as a decimal number between 0 and 65535, inclusive (e.g. 80 to match packets originating from a HTTP server). @@ -540,7 +686,7 @@ these settings are ignored (see \fBFlow Syntax\fR above). . .IP \fBtp_src=\fIport\fB/\fImask\fR .IQ \fBtp_dst=\fIport\fB/\fImask\fR -Bitwise match on TCP (or UDP) source or destination port, +Bitwise match on TCP (or UDP or SCTP) source or destination port, respectively. The \fIport\fR and \fImask\fR are 16-bit numbers written in decimal or in hexadecimal prefixed by \fB0x\fR. Each 1-bit in \fImask\fR requires that the corresponding bit in \fIport\fR must @@ -598,8 +744,50 @@ ports. .IP Like the exact-match forms of \fBtp_src\fR and \fBtp_dst\fR described above, the bitwise match forms apply only when \fBdl_type\fR and -\fBnw_proto\fR specify TCP or UDP. -. +\fBnw_proto\fR specify TCP or UDP or SCTP. +. +.IP \fBtcp_flags=\fIflags\fB/\fImask\fR +.IQ \fBtcp_flags=\fR[\fB+\fIflag\fR...][\fB-\fIflag\fR...] +Bitwise match on TCP flags. The \fIflags\fR and \fImask\fR are 16-bit +numbers written in decimal or in hexadecimal prefixed by \fB0x\fR. +Each 1-bit in \fImask\fR requires that the corresponding bit in +\fIflags\fR must match. Each 0-bit in \fImask\fR causes the corresponding +bit to be ignored. +.IP +Alternatively, the flags can be specified by their symbolic names +(listed below), each preceded by either \fB+\fR for a flag that must +be set, or \fB\-\fR for a flag that must be unset, without any other +delimiters between the flags. Flags not mentioned are wildcarded. +For example, \fBtcp,tcp_flags=+syn\-ack\fR matches TCP SYNs that are +not ACKs. +.IP +TCP protocol currently defines 9 flag bits, and additional 3 bits are +reserved (must be transmitted as zero), see RFCs 793, 3168, and 3540. +The flag bits are, numbering from the least significant bit: +.RS +.IP "\fB0: fin\fR" +No more data from sender. +.IP "\fB1: syn\fR" +Synchronize sequence numbers. +.IP "\fB2: rst\fR" +Reset the connection. +.IP "\fB3: psh\fR" +Push function. +.IP "\fB4: ack\fR" +Acknowledgement field significant. +.IP "\fB5: urg\fR" +Urgent pointer field significant. +.IP "\fB6: ece\fR" +ECN Echo. +.IP "\fB7: cwr\fR" +Congestion Windows Reduced. +.IP "\fB8: ns\fR" +Nonce Sum. +.IP "\fB9-11:\fR" +Reserved. +.IP "\fB12-15:\fR" +Not matchable, must be zero. +.RE .IP \fBicmp_type=\fItype\fR .IQ \fBicmp_code=\fIcode\fR When \fBdl_type\fR and \fBnw_proto\fR specify ICMP or ICMPv6, \fItype\fR @@ -610,23 +798,60 @@ When \fBdl_type\fR and \fBnw_proto\fR take other values, the values of these settings are ignored (see \fBFlow Syntax\fR above). . .IP \fBtable=\fInumber\fR -If specified, limits the flow manipulation and flow dump commands to -only apply to the table with the given \fInumber\fR between 0 and 254. -. -Behavior varies if \fBtable\fR is not specified (equivalent to -specifying 255 as \fInumber\fR). For flow table -modification commands without \fB\-\-strict\fR, the switch will choose -the table for these commands to operate on. For flow table -modification commands with \fB\-\-strict\fR, the command will operate -on any single matching flow in any table; it will do nothing if there -are matches in more than one table. The \fBdump-flows\fR and -\fBdump-aggregate\fR commands will gather statistics about flows from -all tables. -.IP -When this field is specified in \fBadd-flow\fR, \fBadd-flows\fR, -\fBmod-flows\fR and \fBdel-flows\fR commands, it activates a Nicira -extension to OpenFlow, which as of this writing is only known to be -implemented by Open vSwitch. +For flow dump commands, limits the flows dumped to those in the table +with the given \fInumber\fR between 0 and 254. If not specified (or if +255 is specified as \fInumber\fR), then flows in all tables are +dumped. +. +.IP +For flow table modification commands, behavior varies based on the +OpenFlow version used to connect to the switch: +. +.RS +.IP "OpenFlow 1.0" +OpenFlow 1.0 does not support \fBtable\fR for modifying flows. +\fBovs\-ofctl\fR will exit with an error if \fBtable\fR (other than +\fBtable=255\fR) is specified for a switch that only supports OpenFlow +1.0. +.IP +In OpenFlow 1.0, the switch chooses the table into which to insert a +new flow. The Open vSwitch software switch always chooses table 0. +Other Open vSwitch datapaths and other OpenFlow implementations may +choose different tables. +.IP +The OpenFlow 1.0 behavior in Open vSwitch for modifying or removing +flows depends on whether \fB\-\-strict\fR is used. Without +\fB\-\-strict\fR, the command applies to matching flows in all tables. +With \fB\-\-strict\fR, the command will operate on any single matching +flow in any table; it will do nothing if there are matches in more +than one table. (The distinction between these behaviors only matters +if non-OpenFlow 1.0 commands were also used, because OpenFlow 1.0 +alone cannot add flows with the same matching criteria to multiple +tables.) +. +.IP "OpenFlow 1.0 with table_id extension" +Open vSwitch implements an OpenFlow extension that allows the +controller to specify the table on which to operate. \fBovs\-ofctl\fR +automatically enables the extension when \fBtable\fR is specified and +OpenFlow 1.0 is used. \fBovs\-ofctl\fR automatically detects whether +the switch supports the extension. As of this writing, this extension +is only known to be implemented by Open vSwitch. +. +.IP +With this extension, \fBovs\-ofctl\fR operates on the requested table +when \fBtable\fR is specified, and acts as described for OpenFlow 1.0 +above when no \fBtable\fR is specified (or for \fBtable=255\fR). +. +.IP "OpenFlow 1.1" +OpenFlow 1.1 requires flow table modification commands to specify a +table. When \fBtable\fR is not specified (or \fBtable=255\fR is +specified), \fBovs\-ofctl\fR defaults to table 0. +. +.IP "OpenFlow 1.2 and later" +OpenFlow 1.2 and later allow flow deletion commands, but not other +flow table modification commands, to operate on all flow tables, with +the behavior described above for OpenFlow 1.0. +.RE . .IP \fBmetadata=\fIvalue\fR[\fB/\fImask\fR] Matches \fIvalue\fR either exactly or with optional \fImask\fR in the metadata @@ -651,6 +876,9 @@ Same as \fBdl_type=0x0800,nw_proto=6\fR. .IP \fBudp\fR Same as \fBdl_type=0x0800,nw_proto=17\fR. . +.IP \fBsctp\fR +Same as \fBdl_type=0x0800,nw_proto=132\fR. +. .IP \fBarp\fR Same as \fBdl_type=0x0806\fR. . @@ -722,12 +950,32 @@ The \fBip_frag\fR match type is likely to be most useful in \fBnx\-match\fR mode. See the description of the \fBset\-frags\fR command, above, for more details. . +.IP \fBarp_spa=\fIip\fR[\fB/\fInetmask\fR] +.IQ \fBarp_tpa=\fIip\fR[\fB/\fInetmask\fR] +When \fBdl_type\fR specifies either ARP or RARP, \fBarp_spa\fR and +\fBarp_tpa\fR match the source and target IPv4 address, respectively. +An address may be specified as an IP address or host name +(e.g. \fB192.168.1.1\fR or \fBwww.example.com\fR). The optional +\fInetmask\fR allows restricting a match to an IPv4 address prefix. +The netmask may be specified as a dotted quad +(e.g. \fB192.168.1.0/255.255.255.0\fR) or as a CIDR block +(e.g. \fB192.168.1.0/24\fR). +. .IP \fBarp_sha=\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fR .IQ \fBarp_tha=\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fR When \fBdl_type\fR specifies either ARP or RARP, \fBarp_sha\fR and \fBarp_tha\fR match the source and target hardware address, respectively. An -address is specified as 6 pairs of hexadecimal digits delimited by colons. +address is specified as 6 pairs of hexadecimal digits delimited by colons +(e.g. \fB00:0A:E4:25:6B:B0\fR). +. +.IP \fBarp_sha=\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB/\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fR +.IQ \fBarp_tha=\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB/\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fR +When \fBdl_type\fR specifies either ARP or RARP, \fBarp_sha\fR and +\fBarp_tha\fR match the source and target hardware address, respectively. An +address is specified as 6 pairs of hexadecimal digits delimited by colons +(e.g. \fB00:0A:E4:25:6B:B0\fR), with a wildcard mask following the slash. . + .IP \fBipv6_src=\fIipv6\fR[\fB/\fInetmask\fR] .IQ \fBipv6_dst=\fIipv6\fR[\fB/\fInetmask\fR] When \fBdl_type\fR is 0x86dd (possibly via shorthand, e.g., \fBipv6\fR @@ -766,7 +1014,32 @@ Neighbor Advertisement (ICMPv6 type 136), matches the target link\-layer address option. An address is specified as 6 pairs of hexadecimal digits delimited by colons. . +.IP \fBmpls_bos=\fIbos\fR +When \fBdl_type\fR is 0x8847 or 0x8848 (possibly via shorthand e.g., +\fBmpls\fR or \fBmplsm\fR), matches the bottom-of-stack bit of the +outer-most MPLS label stack entry. Valid values are 0 and 1. +.IP +If 1 then for a packet with a well-formed MPLS label stack the +bottom-of-stack bit indicates that the outer label stack entry is also +the inner-most label stack entry and thus that is that there is only one +label stack entry present. Conversely, if 0 then for a packet with a +well-formed MPLS label stack the bottom-of-stack bit indicates that the +outer label stack entry is not the inner-most label stack entry and +thus there is more than one label stack entry present. +. +.IP \fBmpls_label=\fIlabel\fR +When \fBdl_type\fR is 0x8847 or 0x8848 (possibly via shorthand e.g., +\fBmpls\fR or \fBmplsm\fR), matches the label of the outer +MPLS label stack entry. The label is a 20-bit value that is decimal by default; +use a \fB0x\fR prefix to specify them in hexadecimal. +. +.IP \fBmpls_tc=\fItc\fR +When \fBdl_type\fR is 0x8847 or 0x8848 (possibly via shorthand e.g., +\fBmpls\fR or \fBmplsm\fR), matches the traffic-class of the outer +MPLS label stack entry. Valid values are between 0 (lowest) and 7 (highest). +. .IP \fBtun_id=\fItunnel-id\fR[\fB/\fImask\fR] +.IQ \fBtunnel_id=\fItunnel-id\fR[\fB/\fImask\fR] Matches tunnel identifier \fItunnel-id\fR. Only packets that arrive over a tunnel that carries a key (e.g. GRE with the RFC 2890 key extension and a nonzero key value) will have a nonzero tunnel ID. @@ -775,6 +1048,17 @@ if \fImask\fR is specified, then a 1-bit in \fImask\fR indicates that the corresponding bit in \fItunnel-id\fR must match exactly, and a 0-bit wildcards that bit. . +.IP \fBtun_src=\fIip\fR[\fB/\fInetmask\fR] +.IQ \fBtun_dst=\fIip\fR[\fB/\fInetmask\fR] +Matches tunnel IPv4 source (or destination) address \fIip\fR. Only packets +that arrive over a tunnel will have nonzero tunnel addresses. +The address may be specified as an IP address or host name +(e.g. \fB192.168.1.1\fR or \fBwww.example.com\fR). The optional +\fInetmask\fR allows restricting a match to a masked IPv4 address. +The netmask may be specified as a dotted quad +(e.g. \fB192.168.1.0/255.255.255.0\fR) or as a CIDR block +(e.g. \fB192.168.1.0/24\fR). +. .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 @@ -787,6 +1071,13 @@ exactly, and a 0-bit wildcards that bit. When a packet enters an OpenFlow switch, all of the registers are set to 0. Only explicit Nicira extension actions change register values. . +.IP \fBpkt_mark=\fIvalue\fR[\fB/\fImask\fR] +Matches packet metadata mark \fIvalue\fR either exactly or with optional +\fImask\fR. The mark is associated data that may be passed into other +system components in order to facilitate interaction between subsystems. +On Linux this corresponds to the skb mark but the exact implementation is +platform-dependent. +. .PP Defining IPv6 flows (those with \fBdl_type\fR equal to 0x86dd) requires support for NXM. The following shorthand notations are available for @@ -801,6 +1092,9 @@ Same as \fBdl_type=0x86dd,nw_proto=6\fR. .IP \fBudp6\fR Same as \fBdl_type=0x86dd,nw_proto=17\fR. . +.IP \fBsctp6\fR +Same as \fBdl_type=0x86dd,nw_proto=132\fR. +. .IP \fBicmp6\fR Same as \fBdl_type=0x86dd,nw_proto=58\fR. . @@ -813,31 +1107,28 @@ command to be used as input for other commands that parse flows. The \fBadd\-flow\fR, \fBadd\-flows\fR, and \fBmod\-flows\fR commands require an additional field, which must be the final field specified: . -.IP \fBactions=\fR[\fItarget\fR][\fB,\fItarget\fR...]\fR +.IP \fBactions=\fR[\fIaction\fR][\fB,\fIaction\fR...]\fR Specifies a comma-separated list of actions to take on a packet when the -flow entry matches. If no \fItarget\fR is specified, then packets -matching the flow are dropped. The \fItarget\fR may be an OpenFlow port -number designating the physical port on which to output the packet, or one -of the following keywords: +flow entry matches. If no \fIaction\fR is specified, then packets +matching the flow are dropped. The following forms of \fIaction\fR +are supported: . .RS -.IP \fBoutput:\fIport\fR -Outputs the packet to \fIport\fR, which must be an OpenFlow port -number or keyword (e.g. \fBLOCAL\fR). +.IP \fIport\fR +.IQ \fBoutput:\fIport\fR +Outputs the packet to OpenFlow port number \fIport\fR. If \fIport\fR +is the packet's input port, the packet is not output. . .IP \fBoutput:\fIsrc\fB[\fIstart\fB..\fIend\fB] Outputs the packet to the OpenFlow port number read from \fIsrc\fR, which must be an NXM field as described above. For example, \fBoutput:NXM_NX_REG0[16..31]\fR outputs to the OpenFlow port number -written in the upper half of register 0. This form of \fBoutput\fR -uses an OpenFlow extension that is not supported by standard OpenFlow -switches. -. -.IP \fBenqueue:\fIport\fB:\fIqueue\fR -Enqueues the packet on the specified \fIqueue\fR within port -\fIport\fR, which must be an OpenFlow port number or keyword -(e.g. \fBLOCAL\fR).. The number of supported queues depends on the -switch; some OpenFlow implementations do not support queuing at all. +written in the upper half of register 0. If the port number is the +packet's input port, the packet is not output. +.IP +This form of \fBoutput\fR was added in Open vSwitch 1.3.0. This form +of \fBoutput\fR uses an OpenFlow extension that is not supported by +standard OpenFlow switches. . .IP \fBnormal\fR Subjects the packet to the device's normal L2/L3 processing. (This @@ -853,6 +1144,13 @@ tree protocol). Outputs the packet on all switch physical ports other than the port on which it was received. . +.IP \fBlocal\fR +Outputs the packet on the ``local port,'' which corresponds to the +network device that has the same name as the bridge. +. +.IP \fBin_port\fR +Outputs the packet on the port from which it was received. +. .IP \fBcontroller(\fIkey\fB=\fIvalue\fR...\fB) Sends the packet to the OpenFlow controller as a ``packet in'' message. The supported key-value pairs are: @@ -873,6 +1171,7 @@ controller connection will only have a nonzero connection ID if its controller uses the \fBNXT_SET_CONTROLLER_ID\fR Nicira extension to OpenFlow. .RE +.IP Any \fIreason\fR other than \fBaction\fR and any nonzero \fIcontroller-id\fR uses a Nicira vendor extension that, as of this writing, is only known to be implemented by Open vSwitch (version 1.6 @@ -883,12 +1182,11 @@ or later). Shorthand for \fBcontroller()\fR or \fBcontroller(max_len=\fInbytes\fB)\fR, respectively. . -.IP \fBlocal\fR -Outputs the packet on the ``local port,'' which corresponds to the -network device that has the same name as the bridge. -. -.IP \fBin_port\fR -Outputs the packet on the port from which it was received. +.IP \fBenqueue(\fIport\fB,\fIqueue\fB)\fR +Enqueues the packet on the specified \fIqueue\fR within port +\fIport\fR, which must be an OpenFlow port number or keyword +(e.g. \fBLOCAL\fR). The number of supported queues depends on the +switch; some OpenFlow implementations do not support queuing at all. . .IP \fBdrop\fR Discards the packet, so no further processing or forwarding takes place. @@ -915,6 +1213,31 @@ for the tag. Only ethertype 0x8100 should be used. (0x88a8 which the spec allows isn't supported at the moment.) A priority of zero and the tag of zero are used for the new tag. . +.IP \fBpush_mpls\fR:\fIethertype\fR +Changes the packet's Ethertype to \fIethertype\fR, which must be either +\fB0x8847\fR or \fB0x8848\fR, and pushes an MPLS LSE. +.IP +If the packet does not already contain any MPLS labels then an initial +label stack entry is pushed. The label stack entry's label is 2 if the +packet contains IPv6 and 0 otherwise, its default traffic control value is +the low 3 bits of the packet's DSCP value (0 if the packet is not IP), and +its TTL is copied from the IP TTL (64 if the packet is not IP). +.IP +If the packet does already contain an MPLS label, pushes a new +outermost label as a copy of the existing outermost label. +.IP +A limitation of the implementation is that processing of actions will stop +if \fBpush_mpls\fR follows another \fBpush_mpls\fR unless there is a +\fBpop_mpls\fR in between. +. +.IP \fBpop_mpls\fR:\fIethertype\fR +Strips the outermost MPLS label stack entry. +Currently the implementation restricts \fIethertype\fR to a non-MPLS Ethertype +and thus \fBpop_mpls\fR should only be applied to packets with +an MPLS label stack depth of one. A further limitation is that processing of +actions will stop if \fBpop_mpls\fR follows another \fBpop_mpls\fR unless +there is a \fBpush_mpls\fR in between. +. .IP \fBmod_dl_src\fB:\fImac\fR Sets the source Ethernet address to \fImac\fR. . @@ -928,15 +1251,29 @@ Sets the IPv4 source address to \fIip\fR. Sets the IPv4 destination address to \fIip\fR. . .IP \fBmod_tp_src\fB:\fIport\fR -Sets the TCP or UDP source port to \fIport\fR. +Sets the TCP or UDP or SCTP source port to \fIport\fR. . .IP \fBmod_tp_dst\fB:\fIport\fR -Sets the TCP or UDP destination port to \fIport\fR. +Sets the TCP or UDP or SCTP destination port to \fIport\fR. . .IP \fBmod_nw_tos\fB:\fItos\fR -Sets the IPv4 ToS/DSCP field to \fItos\fR. Valid values are between 0 and -255, inclusive. Note that the two lower reserved bits are never -modified. +Sets the DSCP bits in the IPv4 ToS/DSCP or IPv6 traffic class field to +\fItos\fR, which must be a multiple of 4 between 0 and 255. This action +does not modify the two least significant bits of the ToS field (the ECN bits). +. +.IP \fBmod_nw_ecn\fB:\fIecn\fR +Sets the ECN bits in the IPv4 ToS or IPv6 traffic class field to \fIecn\fR, +which must be a value between 0 and 3, inclusive. This action does not modify +the six most significant bits of the field (the DSCP bits). +.IP +Requires OpenFlow 1.1 or later. +. +.IP \fBmod_nw_ttl\fB:\fIttl\fR +Sets the IPv4 TTL or IPv6 hop limit field to \fIttl\fR, which is specified as +a decimal number between 0 and 255, inclusive. Switch behavior when setting +\fIttl\fR to zero is not well specified, though. +.IP +Requires OpenFlow 1.1 or later. .RE .IP The following actions are Nicira vendor extensions that, as of this writing, are @@ -977,7 +1314,8 @@ actions were applied. .IP \fBdec_ttl\fR .IQ \fBdec_ttl\fB[\fR(\fIid1,id2\fI)\fR]\fR Decrement TTL of IPv4 packet or hop limit of IPv6 packet. If the -TTL or hop limit is initially zero, no decrement occurs. Instead, +TTL or hop limit is initially zero or decrementing would make it so, no +decrement occurs, as packets reaching TTL zero must be rejected. Instead, a ``packet-in'' message with reason code \fBOFPR_INVALID_TTL\fR is sent to each connected controller that has enabled receiving them, if any. Processing the current set of actions then stops. However, @@ -990,6 +1328,28 @@ invalid ttl packets. If controller ids are not specified, the ``packet_in'' message will be sent only to the controllers having controller id zero which have registered for the invalid ttl packets. . +.IP \fBset_mpls_label\fR:\fIlabel\fR +Set the label of the outer MPLS label stack entry of a packet. +\fIlabel\fR should be a 20-bit value that is decimal by default; +use a \fB0x\fR prefix to specify them in hexadecimal. +. +.IP \fBset_mpls_tc\fR:\fItc\fR +Set the traffic-class of the outer MPLS label stack entry of a packet. +\fItc\fR should be a in the range 0 to 7 inclusive. +. +.IP \fBset_mpls_ttl\fR:\fIttl\fR +Set the TTL of the outer MPLS label stack entry of a packet. +\fIttl\fR should be in the range 0 to 255 inclusive. +. +.IP \fBdec_mpls_ttl\fR +Decrement TTL of the outer MPLS label stack entry of a packet. If the TTL +is initially zero or decrementing would make it so, no decrement occurs. +Instead, a ``packet-in'' message with reason code \fBOFPR_INVALID_TTL\fR +is sent to the main controller (id zero), if it has enabled receiving them. +Processing the current set of actions then stops. However, if the current +set of actions was reached through ``resubmit'' then remaining actions in +outer levels resume processing. +. .IP \fBnote:\fR[\fIhh\fR]... Does nothing at all. Any number of bytes represented as hex digits \fIhh\fR may be included. Pairs of hex digits may be separated by @@ -1022,14 +1382,31 @@ in field \fIdst\fR. Example: \fBload:55\->NXM_NX_REG2[0..5]\fR loads value 55 (bit pattern \fB110111\fR) into bits 0 through 5, inclusive, in register 2. . +.IP "\fBpush:\fIsrc\fB[\fIstart\fB..\fIend\fB]" +Pushes \fIstart\fR to \fIend\fR bits inclusive, in fields +on top of the stack. +.IP +Example: \fBpush:NXM_NX_REG2[0..5]\fR push the value stored in register +2 bits 0 through 5, inclusive, on to the internal stack. +. +.IP "\fBpop:\fIdst\fB[\fIstart\fB..\fIend\fB]" +Pops from the top of the stack, retrieves the \fIstart\fR to \fIend\fR bits +inclusive, from the value popped and store them into the corresponding +bits in \fIdst\fR. +. +.IP +Example: \fBpop:NXM_NX_REG2[0..5]\fR pops the value from top of the stack. +Set register 2 bits 0 through 5, inclusive, based on bits 0 through 5 from the +value just popped. +. .IP "\fBset_field:\fIvalue\fB\->\fIdst" Writes the literal \fIvalue\fR into the field \fIdst\fR, which should be specified as a name used for matching. (This is similar to \fBload\fR but more closely matches the set-field action defined in -Open Flow 1.2 and above.) +OpenFlow 1.2 and above.) . .IP -Example: \fBset_field:fe80:0123:4567:890a:a6ba:dbff:fefe:59fa\->ipv6_src\fR +Example: \fBset_field:00:11:22:33:44:55->eth_src\fR. . .IP "\fBmultipath(\fIfields\fB, \fIbasis\fB, \fIalgorithm\fB, \fIn_links\fB, \fIarg\fB, \fIdst\fB[\fIstart\fB..\fIend\fB])\fR" Hashes \fIfields\fR using \fIbasis\fR as a universal hash parameter, @@ -1046,21 +1423,6 @@ the \fBiter_hash\fR algorithm uses \fIarg\fR. .IP Refer to \fBnicira\-ext.h\fR for more details. . -.IP "\fBautopath(\fIid\fB, \fIdst\fB[\fIstart\fB..\fIend\fB])\fR" -Deprecated and slated for removal in Feburary 2013. -.IP -Given \fIid\fR, chooses an OpenFlow port and populates it in -\fIdst\fB[\fIstart\fB..\fIend\fB]\fR, which must be an NXM field as -described above. -.IP -Currently, \fIid\fR should be the OpenFlow port number of an interface on the -bridge. If it isn't then \fIdst\fB[\fIstart\fB..\fIend\fB]\fR will be -populated with the OpenFlow port "none". If \fIid\fR is a member of a bond, -the normal bond selection logic will be used to choose the destination port. -Otherwise, the register will be populated with \fIid\fR itself. -.IP -Refer to \fBnicira\-ext.h\fR for more details. -. .IP "\fBbundle(\fIfields\fB, \fIbasis\fB, \fIalgorithm\fB, \fIslave_type\fB, slaves:[\fIs1\fB, \fIs2\fB, ...])\fR" Hashes \fIfields\fR using \fIbasis\fR as a universal hash parameter, then applies the bundle link selection \fIalgorithm\fR to choose one of the listed @@ -1156,6 +1518,7 @@ For best performance, segregate learned flows into a table (using possibly for a lowest-priority ``catch-all'' flow, that is, a flow with no match criteria. (This is why the default \fBtable\fR is 1, to keep the learned flows separate from the primary flow table 0.) +.RE . .RS .IP \fBapply_actions(\fR[\fIaction\fR][\fB,\fIaction\fR...]\fB) @@ -1165,6 +1528,91 @@ to \fBactions=\fR field. .IP \fBclear_actions\fR Clears all the actions in the action set immediately. . +.IP \fBwrite_actions(\fR[\fIaction\fR][\fB,\fIaction\fR...]\fB) +Add the specific actions to the action set. The syntax of +\fIactions\fR is the same as in the \fBactions=\fR field. The action +set is carried between flow tables and then executed at the end of the +pipeline. +. +.IP +The actions in the action set are applied in the following order, as +required by the OpenFlow specification, regardless of the order in +which they were added to the action set. Except as specified +otherwise below, the action set only holds at most a single action of +each type. When more than one action of a single type is written to +the action set, the one written later replaces the earlier action: +. +.RS +.IP 1. +\fBstrip_vlan\fR +.IQ +\fBpop_mpls\fR +. +.IP 2. +\fBpush_mpls\fR +. +.IP 3. +\fBpush_vlan\fR +. +.IP 4. +\fBdec_ttl\fR +.IQ +\fBdec_mpls_ttl\fR +. +.IP 5. +\fBload\fR +.IQ +\fBmod_dl_dst\fR +.IQ +\fBmod_dl_src\fR +.IQ +\fBmod_nw_dst\fR +.IQ +\fBmod_nw_src\fR +.IQ +\fBmod_nw_tos\fR +.IQ +\fBmod_nw_ecn\fR +.IQ +\fBmod_nw_ttl\fR +.IQ +\fBmod_tp_dst\fR +.IQ +\fBmod_tp_src\fR +.IQ +\fBmod_vlan_pcp\fR +.IQ +\fBmod_vlan_vid\fR +.IQ +\fBset_field\fR +.IQ +\fBset_tunnel\fR +.IQ +\fBset_tunnel64\fR +.IQ +The action set can contain any number of these actions, with +cumulative effect. That is, when multiple actions modify the same +part of a field, the later modification takes effect, and when they +modify different parts of a field (or different fields), then both +modifications are applied. +. +.IP 6. +\fBset_queue\fR +. +.IP 7. +\fBgroup\fR +.IQ +\fBoutput\fR +.IQ +If both actions are present, then \fBgroup\fR is executed and +\fBoutput\fR is ignored, regardless of the order in which they were +added to the action set. (If neither action is present, the action +set has no real effect, because the modified packet is not sent +anywhere and thus the modifications are not visible.) +.RE +.IP +Only the actions listed above may be written to the action set. +. .IP \fBwrite_metadata\fB:\fIvalue\fR[/\fImask\fR] Updates the metadata field for the flow. If \fImask\fR is omitted, the metadata field is set exactly to \fIvalue\fR; if \fImask\fR is specified, then @@ -1173,9 +1621,14 @@ field will be replaced with the corresponding bit from \fIvalue\fR. Both \fIvalue\fR and \fImask\fR are 64-bit values that are decimal by default; use a \fB0x\fR prefix to specify them in hexadecimal. . +.IP \fBmeter\fR:\fImeter_id\fR +Apply the \fImeter_id\fR before any other actions. If a meter band rate is +exceeded, the packet may be dropped, or modified, depending on the meter +band type. See the description of the \fBMeter Table Commands\fR, above, +for more details. +. .IP \fBgoto_table\fR:\fItable\fR Indicates the next table in the process pipeline. -.RE . .IP "\fBfin_timeout(\fIargument\fR[\fB,\fIargument\fR]\fB)" This action changes the idle timeout or hard timeout, or both, of this @@ -1198,11 +1651,37 @@ flow's creation, not since the receipt of the FIN or RST.) .RE .IP This action was added in Open vSwitch 1.5.90. +. +.IP "\fBsample(\fIargument\fR[\fB,\fIargument\fR]...\fB)\fR" +Samples packets and sends one sample for every sampled packet. +.IP +\fIargument\fR takes the following forms: +.RS +.IP "\fBprobability=\fIpackets\fR" +The number of sampled packets out of 65535. Must be greater or equal to 1. +.IP "\fBcollector_set_id=\fIid\fR" +The unsigned 32-bit integer identifier of the set of sample collectors +to send sampled packets to. Defaults to 0. +.IP "\fBobs_domain_id=\fIid\fR" +When sending samples to IPFIX collectors, the unsigned 32-bit integer +Observation Domain ID sent in every IPFIX flow record. Defaults to 0. +.IP "\fBobs_point_id=\fIid\fR" +When sending samples to IPFIX collectors, the unsigned 32-bit integer +Observation Point ID sent in every IPFIX flow record. Defaults to 0. +.RE +.IP +Refer to \fBovs\-vswitchd.conf.db\fR(8) for more details on +configuring sample collector sets. +.IP +This action was added in Open vSwitch 1.10.90. +. .IP "\fBexit\fR" -This action causes Open vSwitch to immediately halt execution of further -actions. Those actions which have already been executed are unaffected. Any -further actions, including those which may be in other tables, or different -levels of the \fBresubmit\fR call stack, are ignored. +This action causes Open vSwitch to immediately halt execution of +further actions. Those actions which have already been executed are +unaffected. Any further actions, including those which may be in +other tables, or different levels of the \fBresubmit\fR call stack, +are ignored. Actions in the action set is still executed (specify +\fBclear_actions\fR before \fBexit\fR to discard them). .RE . .PP @@ -1300,7 +1779,7 @@ and \fBdel\-flows\fR commands support one additional optional field: .TP \fBout_port=\fIport\fR If set, a matching flow must include an output action to \fIport\fR, -which must an OpenFlow port number or name (e.g. \fBlocal\fR). +which must be an OpenFlow port number or name (e.g. \fBlocal\fR). . .SS "Table Entry Output" . @@ -1339,6 +1818,131 @@ of \fBduration\fR. (This is separate from \fBduration\fR because The integer number of seconds that have passed without any packets passing through the flow. . +.SS "Group Syntax" +.PP +Some \fBovs\-ofctl\fR commands accept an argument that describes a group or +groups. Such flow descriptions comprise a series +\fIfield\fB=\fIvalue\fR assignments, separated by commas or white +space. (Embedding spaces into a group description normally requires +quoting to prevent the shell from breaking the description into +multiple arguments.). Unless noted otherwise only the last instance +of each field is honoured. +.PP +.IP \fBgroup_id=\fIid\fR +The integer group id of group. +When this field is specified in \fBdel-groups\fR or \fBdump-groups\fR, +the keyword "all" may be used to designate all groups. +. +This field is required. + + +.IP \fBtype=\fItype\fR +The type of the group. This \fBadd-group\fR, \fBadd-groups\fR and +\fBdel-groups\fR command require this field. The following keywords +designated the allowed types: +.RS +.IP \fBall\fR +Execute all buckets in the group. +.IP \fBselect\fR +Execute one bucket in the group. +The switch should select the bucket in such a way that should implement +equal load sharing is achieved. The switch may optionally select the +bucket based on bucket weights. +.IP \fBindirect\fR +Executes the one bucket in the group. +.IP \fBff\fR +.IQ \fBfast_failover\fR +Executes the first live bucket in the group which is associated with +a live port or group. +.RE + +.IP \fBbucket\fR=\fIbucket_parameters\fR +The \fBadd-group\fR, \fBadd-groups\fR and \fBmod-group\fR commands +require at least one bucket field. Bucket fields must appear after +all other fields. +. +Multiple bucket fields to specify multiple buckets. +The order in which buckets are specified corresponds to their order in +the group. If the type of the group is "indirect" then only one group may +be specified. +. +\fIbucket_parameters\fR consists of a list of \fIfield\fB=\fIvalue\fR +assignments, separated by commas or white space followed by a +comma-separated list of actions. +The syntax of actions are same +to \fBactions=\fR field described in \fBFlow Syntax\fR above. +The fields for \fIbucket_parameters\fR are: +. +.RS +.IP \fBweight=\fIvalue\fR +The relative weight of the bucket as an integer. This may be used by the switch +during bucket select for groups whose \fBtype\fR is \fBselect\fR. +.IP \fBwatch_port=\fIport\fR +Port used to determine liveness of group. +This or the \fBwatch_group\fR field is required +for groups whose \fBtype\fR is \fBff\fR or \fBfast_failover\fR. +.IP \fBwatch_group=\fIgroup_id\fR +Group identifier of group used to determine liveness of group. +This or the \fBwatch_port\fR field is required +for groups whose \fBtype\fR is \fBff\fR or \fBfast_failover\fR. +.RE +. +.SS "Meter Syntax" +.PP +The meter table commands accept an argument that describes a meter. +Such meter descriptions comprise a series \fIfield\fB=\fIvalue\fR +assignments, separated by commas or white space. +(Embedding spaces into a group description normally requires +quoting to prevent the shell from breaking the description into +multiple arguments.). Unless noted otherwise only the last instance +of each field is honoured. +.PP +.IP \fBmeter=\fIid\fR +The integer meter id of the meter. +When this field is specified in \fBdel-meter\fR, \fBdump-meter\fR, or +\fBmeter-stats\fR, the keyword "all" may be used to designate all meters. +. +This field is required, exept for \fBmeter-stats\fR, which dumps all stats +when this field is not specified. + +.IP \fBkbps\fR +.IQ \fBpktps\fR +The unit for the meter band rate parameters, either kilobits per second, or +packets per second, respectively. One of these must be specified. The burst +size unit corresponds to the rate unit by dropping the "per second", i.e., +burst is in units of kilobits or packets, respectively. + +.IP \fBburst\fR +Specify burst size for all bands, or none of them, if this flag is not given. + +.IP \fBstats\fR +Collect meter and band statistics. + +.IP \fBbands\fR=\fIband_parameters\fR +The \fBadd-meter\fR and \fBmod-meter\fR commands require at least one +band specification. Bands must appear after all other fields. +.RS +.IP \fBtype=\fItype\fR +The type of the meter band. This keyword starts a new band specification. +Each band specifies a rate above which the band is to take some action. The +action depends on the band type. If multiple bands' rate is exceeded, then +the band with the highest rate among the exceeded bands is selected. +The following keywords designate the allowed +meter band types: +.RS +.IP \fBdrop\fR +Drop packets exceeding the band's rate limit. +.RE +. +.IP "The other \fIband_parameters\fR are:" +.IP \fBrate=\fIvalue\fR +The relative rate limit for this band, in kilobits per second or packets per +second, depending on the meter flags defined above. +.IP \fBburst_size=\fIport\fR +The maximum burst allowed for the band. If unspecified, the switch is free to +select some reasonable value depending on it's configuration. +.RE +. .SH OPTIONS .TP \fB\-\-strict\fR @@ -1375,6 +1979,11 @@ format. .IQ "\fBOXM-OpenFlow13\fR" These are the standard OXM (OpenFlow Extensible Match) flow format in OpenFlow 1.2 and 1.3, respectively. +.IP "\fBOXM-OpenFlow14\fR" +The standard OXM (OpenFlow Extensible Match) flow format in OpenFlow +1.4. OpenFlow 1.4 is not yet well supported; in particular, the +implementation is unsafe, such that sending an unsupported message in +OpenFlow 1.4 to \fBovs\-vswitchd\fR can cause it to crash. .RE . .IP @@ -1382,13 +1991,15 @@ OpenFlow 1.2 and 1.3, respectively. collections of flow formats: .RS .IP "\fBany\fR" -Any supported flow format. +Any supported flow format except \fBOXM-OpenFlow14\fR, which is not +yet well supported (see above). .IP "\fBOpenFlow10\fR" \fBOpenFlow10\-table_id\fR or \fBOpenFlow10+table_id\fR. .IP "\fBNXM\fR" \fBNXM\-table_id\fR or \fBNXM+table_id\fR. .IP "\fBOXM\fR" -\fBOXM-OpenFlow12\fR or \fBOXM-OpenFlow13\fR. +\fBOXM-OpenFlow12\fR or \fBOXM-OpenFlow13\fR. \fBOXM-OpenFlow14\fR is +not included because it is not yet well supported (see above). .RE . .IP @@ -1426,7 +2037,8 @@ affects the \fBmonitor\fR command. . .IP "\fB\-\-timestamp\fR" Print a timestamp before each received packet. This option only -affects the \fBmonitor\fR and \fBsnoop\fR commands. +affects the \fBmonitor\fR, \fBsnoop\fR, and \fBofp\-parse\-pcap\fR +commands. . .IP "\fB\-m\fR" .IQ "\fB\-\-more\fR" @@ -1451,7 +2063,7 @@ A flow that does not specify any part of a field that is used for sorting is sorted after all the flows that do specify the field. For example, \fB\-\-sort=tcp_src\fR will sort all the flows that specify a TCP source port in ascending order, followed by the flows that do not -specify a TCP source port at all. +specify a TCP source port at all. .IP \(bu A flow that only specifies some bits in a field is sorted as if the wildcarded bits were zero. For example, \fB\-\-sort=nw_src\fR would @@ -1510,5 +2122,5 @@ Prints the flow entries in the switch. .SH "SEE ALSO" . .BR ovs\-appctl (8), -.BR ovs\-controller (8), .BR ovs\-vswitchd (8) +.BR ovs\-vswitchd.conf.db (8)