From 1e71b9444d78a54d26c860d40b3a9a3871e9e05e Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Mon, 3 Aug 2015 14:11:12 -0700 Subject: [PATCH 1/1] ovs-ofctl: Refine documentation of Geneve option mapping. The text didn't say how to actually match on them. I took the liberty of massaging the text a little further, too. Suggested-by: Alex Wang Signed-off-by: Ben Pfaff Acked-by: Alex Wang --- utilities/ovs-ofctl.8.in | 47 ++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/utilities/ovs-ofctl.8.in b/utilities/ovs-ofctl.8.in index 92a29f395..850fd767c 100644 --- a/utilities/ovs-ofctl.8.in +++ b/utilities/ovs-ofctl.8.in @@ -421,14 +421,25 @@ 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. +Open vSwitch maintains a mapping table between Geneve options (defined +by ) and an NXM field \fBtun_metadata\fIn\fR, +where \fIn\fR ranges from 0 to 63, 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. -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. +A Geneve option mapping is specified with the syntax +\fB{class=\fIclass\fB,type=\fItype\fB,len=\fIlength\fB}->tun_metadata\fIn\fR. +When an option mapping exists for a given \fBtun_metadata\fIn\fR, +matching on the defined field becomes possible, e.g.: + +.RS +ovs-ofctl add-geneve-map br0 "{class=0xffff,type=0,len=4}->tun_metadata0" +.PP +ovs-ofctl add-flow br0 tun_metadata0=1234,actions=controller +.RE + +A 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 @@ -437,29 +448,19 @@ 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 +.IP "\fBadd\-geneve\-map \fIswitch option\fR[\fB,\fIoption\fR]..." +Add each \fIoption\fR 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 "\fBdel\-geneve\-map \fIswitch \fR[\fIoption\fR[\fB,\fIoption\fR]]..." +Delete each \fIoption\fR from \fIswitch\fR's table, or all Geneve option +mapping if no \fIoption\fR is specified. +Fields that aren't mapped are ignored. . .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" -- 2.20.1