X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=utilities%2Fovs-ofctl.8.in;h=95b0884293af9fcd1e9122e992874cb41f79f14b;hb=9591fefeea4b475ee0d1387486a410bbb592b050;hp=c3cbbf1e0d43a9747a36eff9dd715476647b4327;hpb=b9298d3f825703063c9538aa37407da43e1e4781;p=openvswitch diff --git a/utilities/ovs-ofctl.8.in b/utilities/ovs-ofctl.8.in index c3cbbf1e..95b08842 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 2010" "Open vSwitch" "Open vSwitch Manual" +.TH ovs\-ofctl 8 "January 2011" "Open vSwitch" "Open vSwitch Manual" .ds PN ovs\-ofctl . .SH NAME @@ -299,24 +299,31 @@ or 0x0806, the values of \fBnw_src\fR and \fBnw_dst\fR are ignored .IP \fBnw_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. 6 to match TCP packets). +between 0 and 255, inclusive (e.g. 1 to match ICMP packets or 6 to match +TCP packets). +.IP +When \fBipv6\fR or \fBdl_type=0x86dd\fR is specified, matches IPv6 +header type \fIproto\fR, which is specified as a decimal number between +0 and 255, inclusive (e.g. 58 to match ICMPv6 packets or 6 to match +TCP). The header type is the terminal header as described in the +\fBDESIGN\fR document. .IP When \fBarp\fR or \fBdl_type=0x0806\fR is specified, matches the lower 8 bits of the ARP opcode. ARP opcodes greater than 255 are treated as 0. .IP -When \fBdl_type\fR is wildcarded or set to a value other than 0x0800 -or 0x0806, the value of \fBnw_proto\fR is ignored (see \fBFlow +When \fBdl_type\fR is wildcarded or set to a value other than 0x0800, +0x0806, or 0x86dd, the value of \fBnw_proto\fR is ignored (see \fBFlow Syntax\fR above). . .IP \fBnw_tos=\fItos\fR -Matches IP ToS/DSCP field \fItos\fR, which is specified as a decimal -number between 0 and 255, inclusive. Note that the two lower reserved -bits are ignored for matching purposes. +Matches IP ToS/DSCP or IPv6 traffic class field \fItos\fR, which is +specified as a decimal number between 0 and 255, inclusive. Note that +the two lower reserved bits are ignored for matching purposes. .IP -The value of \fBnw_proto\fR is ignored unless \fBdl_type=0x0800\fR, -\fBip\fR, \fBicmp\fR, \fBtcp\fR, or \fBudp\fR is also specified (see -\fBFlow Syntax\fR above). +When \fBdl_type\fR is wildcarded or set to a value other than 0x0800, +0x0806, or 0x86dd, the value of \fBnw_tos\fR is ignored (see \fBFlow +Syntax\fR above). . .IP \fBtp_src=\fIport\fR .IQ \fBtp_dst=\fIport\fR @@ -331,33 +338,91 @@ these settings are ignored (see \fBFlow Syntax\fR above). . .IP \fBicmp_type=\fItype\fR .IQ \fBicmp_code=\fIcode\fR -When \fBdl_type\fR and \fBnw_proto\fR specify ICMP, \fItype\fR matches -the ICMP type and \fIcode\fR matches the ICMP code. Each is specified -as a decimal number between 0 and 255, inclusive. +When \fBdl_type\fR and \fBnw_proto\fR specify ICMP or ICMPv6, \fItype\fR +matches the ICMP type and \fIcode\fR matches the ICMP code. Each is +specified as a decimal number between 0 and 255, inclusive. .IP When \fBdl_type\fR and \fBnw_proto\fR take other values, the values of these settings are ignored (see \fBFlow Syntax\fR above). -.IP \fBtun_id=\fItunnel\-id\fR -Matches tunnel identifier \fItunnel\-id\fR. Only packets that arrive +. +.PP +The following shorthand notations are also available: +. +.IP \fBip\fR +Same as \fBdl_type=0x0800\fR. +. +.IP \fBicmp\fR +Same as \fBdl_type=0x0800,nw_proto=1\fR. +. +.IP \fBtcp\fR +Same as \fBdl_type=0x0800,nw_proto=6\fR. +. +.IP \fBudp\fR +Same as \fBdl_type=0x0800,nw_proto=17\fR. +. +.IP \fBarp\fR +Same as \fBdl_type=0x0806\fR. +. +.PP +The following field assignments require support for the NXM (Nicira +Extended Match) extension to OpenFlow. When one of these is specified, +\fBovs\-ofctl\fR will automatically attempt to negotiate use of this +extension. If the switch does not support NXM, then \fBovs\-ofctl\fR +will report a fatal error. +. +.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 ARP, \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. +. +.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 +or \fBtcp6\fR), matches IPv6 source (or destination) address \fIipv6\fR, +which may be specified as defined in RFC 2373. The preferred format is +\fIx\fB:\fIx\fB:\fIx\fB:\fIx\fB:\fIx\fB:\fIx\fB:\fIx\fB:\fIx\fR, where +\fIx\fR are the hexadecimal values of the eight 16-bit pieces of the +address. A single instance of \fB::\fR may be used to indicate multiple +groups of 16-bits of zeros. The optional \fInetmask\fR allows +restricting a match to an IPv6 address prefix. A netmask is specified +as a CIDR block (e.g. \fB2001:db8:3c4d:1::/64\fR). +. +.IP \fBnd_target=\fIipv6\fR +When \fBdl_type\fR, \fBnw_proto\fR, and \fBicmp_type\fR specify +IPv6 Neighbor Discovery (ICMPv6 type 135 or 136), matches the target address +\fIipv6\fR. \fIipv6\fR is in the same format described earlier for the +\fBipv6_src\fR and \fBipv6_dst\fR fields. +. +.IP \fBnd_sll=\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fR +When \fBdl_type\fR, \fBnw_proto\fR, and \fBicmp_type\fR specify IPv6 +Neighbor Solicitation (ICMPv6 type 135), matches the source link\-layer +address option. An address is specified as 6 pairs of hexadecimal +digits delimited by colons. +. +.IP \fBnd_tll=\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fR +When \fBdl_type\fR, \fBnw_proto\fR, and \fBicmp_type\fR specify IPv6 +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 \fBtun_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) will have a nonzero tunnel ID. -.IP -\fBtun_id\fR requires use of one of two Nicira extensions to OpenFlow: -.RS -.IP "NXM (Nicira Extended Match)" -This extension fully supports \fBtun_id\fR. -.IP "Tunnel ID from Cookie" -This extension supports \fBtun_id\fR with two caveats: the top 32 bits -of the \fBcookie\fR (see below) are used for \fItunnel\-id\fR and thus -unavailable for other use, and specifying \fBtun_id\fR on -\fBdump\-flows\fR or \fBdump\-aggregate\fR has no effect. -.RE +extension) will have a nonzero tunnel ID. If \fImask\fR is omitted, +\fItunnel-id\fR is the exact tunnel ID to match; 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 -When \fBtun_id\fR is specified, \fBovs\-ofctl\fR will automatically -attempt to negotiate use of one of these extensions. It will use the -``tunnel ID from cookie'' extension if neither caveat applies and NXM -otherwise. If the switch does not support the needed extension, then -\fBovs\-ofctl\fR will report a fatal error. +In an attempt to be compatible with more switches, \fBovs\-ofctl\fR will +prefer to use the ``tunnel ID from cookie'' Nicira extension to NXM. +The use of this extension comes with three caveats: the top 32 bits of +the \fBcookie\fR (see below) are used for \fItunnel-id\fR and thus +unavailable for other use, specifying \fBtun_id\fR on \fBdump\-flows\fR +or \fBdump\-aggregate\fR has no effect, and \fImask\fR is not supported. +If any of these caveats apply, \fBovs-ofctl\fR will use NXM. +. .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 @@ -369,30 +434,23 @@ exactly, and a 0-bit wildcards that bit. .IP When a packet enters an OpenFlow switch, all of the registers are set to 0. Only explicit Nicira extension actions change register values. -.IP -Register matches require support for the NXM (Nicira Extended Match) -extension to OpenFlow. When a register match is specified, -\fBovs\-ofctl\fR will automatically attempt to negotiate use of this -extension. If the switch does not support NXM, then \fBovs\-ofctl\fR -will report a fatal error. . .PP -The following shorthand notations are also available: -. -.IP \fBip\fR -Same as \fBdl_type=0x0800\fR. +Defining IPv6 flows (those with \fBdl_type\fR equal to 0x86dd) requires +support for NXM. The following shorthand notations are available for +IPv6-related flows: . -.IP \fBicmp\fR -Same as \fBdl_type=0x0800,nw_proto=1\fR. +.IP \fBipv6\fR +Same as \fBdl_type=0x86dd\fR. . -.IP \fBtcp\fR -Same as \fBdl_type=0x0800,nw_proto=6\fR. +.IP \fBtcp6\fR +Same as \fBdl_type=0x86dd,nw_proto=6\fR. . -.IP \fBudp\fR -Same as \fBdl_type=0x0800,nw_proto=17\fR. +.IP \fBudp6\fR +Same as \fBdl_type=0x86dd,nw_proto=17\fR. . -.IP \fBarp\fR -Same as \fBdl_type=0x0806\fR. +.IP \fBicmp6\fR +Same as \fBdl_type=0x86dd,nw_proto=58\fR. . .PP The \fBadd\-flow\fR and \fBadd\-flows\fR commands require an additional @@ -508,10 +566,10 @@ Stops processing further actions, if the packet being processed is an Ethernet+IPv4 ARP packet for which the source Ethernet address inside the ARP packet differs from the source Ethernet address in the Ethernet header. -. -This is useful because OpenFlow does not provide a way to match on the -Ethernet addresses inside ARP packets, so there is no other way to -drop spoofed ARPs other than sending every ARP packet to a controller. +.IP +This action is deprecated in favor of defining flows using the +\fBarp_sha\fR match field described earlier and will likely be removed +in a future version of Open vSwitch. . .IP \fBset_queue\fB:\fIqueue\fR Sets the queue that should be used to \fIqueue\fR when packets are @@ -549,6 +607,21 @@ in field \fBdst\fR. .IP 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 "\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, +then the applies multipath link selection \fIalgorithm\fR (with +parameter \fIarg\fR) to choose one of \fIn_links\fR output links +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 register 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, +\fBhash_threshold\fR, \fBhrw\fR, and \fBiter_hash\fR. Only +the \fBiter_hash\fR algorithm uses \fIarg\fR. +.IP +Refer to \fBnicira\-ext.h\fR for more details. .RE . .IP