~ubuntu-branches/ubuntu/wily/openvswitch/wily

« back to all changes in this revision

Viewing changes to utilities/ovs-ofctl.8.in

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2015-08-10 11:35:15 UTC
  • mfrom: (1.1.30)
  • Revision ID: package-import@ubuntu.com-20150810113515-575vj06oq29emxsn
Tags: 2.4.0~git20150810.97bab95-0ubuntu1
* New upstream snapshot from 2.4 branch:
  - d/*: Align any relevant packaging changes with upstream.
* d/*: wrap-and-sort.
* d/openvswitch-{common,vswitch}.install: Correct install location for
  bash completion files.
* d/tests/openflow.py: Explicitly use ovs-testcontroller as provided
  by 2.4.0 release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
63
63
Prints to the console features for each of the flow tables used by
64
64
\fIswitch\fR.
65
65
.
 
66
.IP "\fBmod\-table \fIswitch\fR \fItable_id\fR  \fIflow_miss_handling\fR"
 
67
An OpenFlow 1.0 switch looks up each packet that arrives at the switch
 
68
in table 0, then in table 1 if there is no match in table 0, then in
 
69
table 2, and so on until the packet finds a match in some table.
 
70
Finally, if no match was found, the switch sends the packet to the
 
71
controller
 
72
.IP
 
73
OpenFlow 1.1 and later offer more flexibility.  This command
 
74
configures the flow table miss handling configuration for table
 
75
\fItable_id\fR in \fIswitch\fR.  \fItable_id\fR may be an OpenFlow
 
76
table number between 0 and 254, inclusive, or the keyword \fBALL\fR to
 
77
modify all tables.  \fIflow_miss_handling\fR may be any one of the
 
78
following:
 
79
.RS
 
80
.IP \fBdrop\fR
 
81
Drop the packet.
 
82
.IP \fBcontinue\fR
 
83
Continue to the next table in the pipeline.  (This is how an OpenFlow
 
84
1.0 switch always handles packets that do not match any flow, in
 
85
tables other than the last one.)
 
86
.IP \fBcontroller\fR
 
87
Send to controller.  (This is how an OpenFlow 1.0 switch always
 
88
handles packets that do not match any flow in the last table.)
 
89
.RE
 
90
.
66
91
.TP
67
92
\fBdump\-ports \fIswitch\fR [\fInetdev\fR]
68
93
Prints to the console statistics for network devices associated with 
231
256
groups are printed.  See \fBGroup Syntax\fR, below, for the syntax of
232
257
\fIgroups\fR.
233
258
.
234
 
.IP "\fBmod\-table \fIswitch\fR \fItable_id\fR  \fIflow_miss_handling\fR"
235
 
An OpenFlow 1.0 switch looks up each packet that arrives at the switch
236
 
in table 0, then in table 1 if there is no match in table 0, then in
237
 
table 2, and so on until the packet finds a match in some table.
238
 
Finally, if no match was found, the switch sends the packet to the
239
 
controller
240
 
.IP
241
 
OpenFlow 1.1 and later offer more flexibility.  This command
242
 
configures the flow table miss handling configuration for table
243
 
\fItable_id\fR in \fIswitch\fR.  \fItable_id\fR may be an OpenFlow
244
 
table number between 0 and 254, inclusive, or the keyword \fBALL\fR to
245
 
modify all tables.  \fIflow_miss_handling\fR may be any one of the
246
 
following:
247
 
.RS
248
 
.IP \fBdrop\fR
249
 
Drop the packet.
250
 
.IP \fBcontinue\fR
251
 
Continue to the next table in the pipeline.  (This is how an OpenFlow
252
 
1.0 switch always handles packets that do not match any flow, in
253
 
tables other than the last one.)
254
 
.IP \fBcontroller\fR
255
 
Send to controller.  (This is how an OpenFlow 1.0 switch always
256
 
handles packets that do not match any flow in the last table.)
257
 
.RE
258
 
.
259
259
.SS "OpenFlow 1.3+ Switch Meter Table Commands"
260
260
.
261
261
These commands manage the meter table in an OpenFlow switch.  In each
296
296
.
297
297
These commands manage the flow table in an OpenFlow switch.  In each
298
298
case, \fIflow\fR specifies a flow entry in the format described in
299
 
\fBFlow Syntax\fR, below, and \fIfile\fR is a text file that contains
300
 
zero or more flows in the same syntax, one per line.
 
299
\fBFlow Syntax\fR, below, \fIfile\fR is a text file that contains zero
 
300
or more flows in the same syntax, one per line, and the optional
 
301
\fB\-\-bundle\fR option operates the command as a single atomic
 
302
transation, see option \fB\-\-bundle\fR, below.
301
303
.
302
 
.IP "\fBadd\-flow \fIswitch flow\fR"
303
 
.IQ "\fBadd\-flow \fIswitch \fB\- < \fIfile\fR"
304
 
.IQ "\fBadd\-flows \fIswitch file\fR"
 
304
.IP "[\fB\-\-bundle\fR] \fBadd\-flow \fIswitch flow\fR"
 
305
.IQ "[\fB\-\-bundle\fR] \fBadd\-flow \fIswitch \fB\- < \fIfile\fR"
 
306
.IQ "[\fB\-\-bundle\fR] \fBadd\-flows \fIswitch file\fR"
305
307
Add each flow entry to \fIswitch\fR's tables.
306
308
.
307
 
.IP "[\fB\-\-strict\fR] \fBmod\-flows \fIswitch flow\fR"
308
 
.IQ "[\fB\-\-strict\fR] \fBmod\-flows \fIswitch \fB\- < \fIfile\fR"
 
309
Each flow specification (e.g., each line in \fIfile\fR) may start with
 
310
\fBadd\fR, \fBmodify\fR, \fBdelete\fR, \fBmodify_strict\fR, or
 
311
\fBdelete_strict\fR keyword to specify whether a flow is to be added,
 
312
modified, or deleted, and whether the modify or delete is strict or
 
313
not.  For backwards compatibility a flow specification without one of
 
314
these keywords is treated as a flow add.  All flow mods are executed
 
315
in the order specified.
 
316
.
 
317
.IP "[\fB\-\-bundle\fR] [\fB\-\-strict\fR] \fBmod\-flows \fIswitch flow\fR"
 
318
.IQ "[\fB\-\-bundle\fR] [\fB\-\-strict\fR] \fBmod\-flows \fIswitch \fB\- < \fIfile\fR"
309
319
Modify the actions in entries from \fIswitch\fR's tables that match
310
320
the specified flows.  With \fB\-\-strict\fR, wildcards are not treated
311
321
as active for matching purposes.
312
322
.
313
 
.IP "\fBdel\-flows \fIswitch\fR"
314
 
.IQ "[\fB\-\-strict\fR] \fBdel\-flows \fIswitch \fR[\fIflow\fR]"
315
 
.IQ "[\fB\-\-strict\fR] \fBdel\-flows \fIswitch \fB\- < \fIfile\fR"
 
323
.IP "[\fB\-\-bundle\fR] \fBdel\-flows \fIswitch\fR"
 
324
.IQ "[\fB\-\-bundle\fR] [\fB\-\-strict\fR] \fBdel\-flows \fIswitch \fR[\fIflow\fR]"
 
325
.IQ "[\fB\-\-bundle\fR] [\fB\-\-strict\fR] \fBdel\-flows \fIswitch \fB\- < \fIfile\fR"
316
326
Deletes entries from \fIswitch\fR's flow table.  With only a
317
327
\fIswitch\fR argument, deletes all flows.  Otherwise, deletes flow
318
328
entries that match the specified flows.  With \fB\-\-strict\fR,
319
329
wildcards are not treated as active for matching purposes.
320
330
.
321
 
.IP "[\fB\-\-readd\fR] \fBreplace\-flows \fIswitch file\fR"
 
331
.IP "[\fB\-\-bundle\fR] [\fB\-\-readd\fR] \fBreplace\-flows \fIswitch file\fR"
322
332
Reads flow entries from \fIfile\fR (or \fBstdin\fR if \fIfile\fR is
323
333
\fB\-\fR) and queries the flow table from \fIswitch\fR.  Then it fixes
324
334
up any differences, adding flows from \fIflow\fR that are missing on
353
363
.
354
364
.IP "\fBpacket\-out \fIswitch in_port actions packet\fR..."
355
365
Connects to \fIswitch\fR and instructs it to execute the OpenFlow
356
 
\fIactions\fR on each \fIpacket\fR.  For the purpose of executing the
 
366
\fIactions\fR on each \fIpacket\fR.  Each \fBpacket\fR is specified as a
 
367
series of hex digits.  For the purpose of executing the
357
368
actions, the packets are considered to have arrived on \fIin_port\fR,
358
369
which may be an OpenFlow port number or name (e.g. \fBeth0\fR), the
359
370
keyword \fBLOCAL\fR (the preferred way to refer to the OpenFlow
384
395
\fIswitch\fR argument, deletes all groups.  Otherwise, deletes the group
385
396
for each group entry.
386
397
.
 
398
.IP "\fBinsert\-buckets \fIswitch group\fR"
 
399
.IQ "\fBinsert\-buckets \fIswitch \fB\- < \fIfile\fR"
 
400
Add buckets to an existing group present in the \fIswitch\fR's group table.
 
401
If no \fIcommand_bucket_id\fR is present in the group specification then all
 
402
buckets of the group are removed.
 
403
.
 
404
.IP "\fBremove\-buckets \fIswitch group\fR"
 
405
.IQ "\fBremove\-buckets \fIswitch \fB\- < \fIfile\fR"
 
406
Remove buckets to an existing group present in the \fIswitch\fR's group table.
 
407
If no \fIcommand_bucket_id\fR is present in the group specification then all
 
408
buckets of the group are removed.
 
409
.
387
410
.SS "OpenFlow Switch Monitoring Commands"
388
411
.
389
412
.IP "\fBsnoop \fIswitch\fR"
536
559
example, if the L2 protocol type \fBdl_type\fR is wildcarded, then L3
537
560
fields \fBnw_src\fR, \fBnw_dst\fR, and \fBnw_proto\fR must also be
538
561
wildcarded.  Similarly, if \fBdl_type\fR or \fBnw_proto\fR (the L3
539
 
protocol type) is wildcarded, so must be \fBtp_dst\fR and
540
 
\fBtp_src\fR, which are L4 fields.  \fBovs\-ofctl\fR will warn about
 
562
protocol type) is wildcarded, so must be the L4 fields \fBtcp_dst\fR and
 
563
\fBtcp_src\fR.  \fBovs\-ofctl\fR will warn about
541
564
flows not in normal form.
542
565
.PP
543
566
The following field assignments describe how a flow matches a packet.
687
710
above).
688
711
.IP
689
712
.
690
 
.IP \fBtp_src=\fIport\fR
691
 
.IQ \fBtp_dst=\fIport\fR
692
 
When \fBdl_type\fR and \fBnw_proto\fR specify TCP or UDP or SCTP, \fBtp_src\fR
693
 
and \fBtp_dst\fR match the UDP or TCP or SCTP source or destination port
694
 
\fIport\fR, respectively, which is specified as a decimal number
695
 
between 0 and 65535, inclusive (e.g. 80 to match packets originating
696
 
from a HTTP server).
 
713
.IP \fBtcp_src=\fIport\fR
 
714
.IQ \fBtcp_dst=\fIport\fR
 
715
.IQ \fBudp_src=\fIport\fR
 
716
.IQ \fBudp_dst=\fIport\fR
 
717
.IQ \fBsctp_src=\fIport\fR
 
718
.IQ \fBsctp_dst=\fIport\fR
 
719
Matches a TCP, UDP, or SCTP source or destination port \fIport\fR,
 
720
which is specified as a decimal number between 0 and 65535, inclusive.
697
721
.IP
698
 
When \fBdl_type\fR and \fBnw_proto\fR take other values, the values of
699
 
these settings are ignored (see \fBFlow Syntax\fR above).
 
722
When \fBdl_type\fR and \fBnw_proto\fR are wildcarded or set to values
 
723
that do not indicate an appropriate protocol, the values of these
 
724
settings are ignored (see \fBFlow Syntax\fR above).
700
725
.
701
 
.IP \fBtp_src=\fIport\fB/\fImask\fR
702
 
.IQ \fBtp_dst=\fIport\fB/\fImask\fR
703
 
Bitwise match on TCP (or UDP or SCTP) source or destination port,
704
 
respectively.  The \fIport\fR and \fImask\fR are 16-bit numbers
 
726
.IP \fBtcp_src=\fIport\fB/\fImask\fR
 
727
.IQ \fBtcp_dst=\fIport\fB/\fImask\fR
 
728
.IQ \fBudp_src=\fIport\fB/\fImask\fR
 
729
.IQ \fBudp_dst=\fIport\fB/\fImask\fR
 
730
.IQ \fBsctp_src=\fIport\fB/\fImask\fR
 
731
.IQ \fBsctp_dst=\fIport\fB/\fImask\fR
 
732
Bitwise match on TCP (or UDP or SCTP) source or destination port.
 
733
The \fIport\fR and \fImask\fR are 16-bit numbers
705
734
written in decimal or in hexadecimal prefixed by \fB0x\fR.  Each 1-bit
706
735
in \fImask\fR requires that the corresponding bit in \fIport\fR must
707
736
match.  Each 0-bit in \fImask\fR causes the corresponding bit to be
739
768
which become the following when written in the syntax required by
740
769
\fBovs\-ofctl\fR:
741
770
.br
742
 
.B "tcp,tp_src=0x03e8/0xfff8"
743
 
.br
744
 
.B "tcp,tp_src=0x03f0/0xfff0"
745
 
.br
746
 
.B "tcp,tp_src=0x0400/0xfe00"
747
 
.br
748
 
.B "tcp,tp_src=0x0600/0xff00"
749
 
.br
750
 
.B "tcp,tp_src=0x0700/0xff80"
751
 
.br
752
 
.B "tcp,tp_src=0x0780/0xffc0"
753
 
.br
754
 
.B "tcp,tp_src=0x07c0/0xfff0"
 
771
.B "tcp,tcp_src=0x03e8/0xfff8"
 
772
.br
 
773
.B "tcp,tcp_src=0x03f0/0xfff0"
 
774
.br
 
775
.B "tcp,tcp_src=0x0400/0xfe00"
 
776
.br
 
777
.B "tcp,tcp_src=0x0600/0xff00"
 
778
.br
 
779
.B "tcp,tcp_src=0x0700/0xff80"
 
780
.br
 
781
.B "tcp,tcp_src=0x0780/0xffc0"
 
782
.br
 
783
.B "tcp,tcp_src=0x07c0/0xfff0"
755
784
.IP
756
785
Only Open vSwitch 1.6 and later supports bitwise matching on transport
757
786
ports.
758
787
.IP
759
 
Like the exact-match forms of \fBtp_src\fR and \fBtp_dst\fR described
 
788
Like the exact-match forms described
760
789
above, the bitwise match forms apply only when \fBdl_type\fR and
761
790
\fBnw_proto\fR specify TCP or UDP or SCTP.
762
791
.
 
792
.IP \fBtp_src=\fIport\fR
 
793
.IQ \fBtp_dst=\fIport\fR
 
794
These are deprecated generic forms of L4 port matches.  In new code,
 
795
please use the TCP-, UDP-, or SCTP-specific forms described above.
 
796
.
763
797
.IP \fBtcp_flags=\fIflags\fB/\fImask\fR
764
798
.IQ \fBtcp_flags=\fR[\fB+\fIflag\fR...][\fB-\fIflag\fR...]
765
799
Bitwise match on TCP flags.  The \fIflags\fR and \fImask\fR are 16-bit
1073
1107
(e.g. \fB192.168.1.0/255.255.255.0\fR) or as a CIDR block
1074
1108
(e.g. \fB192.168.1.0/24\fR).
1075
1109
.
 
1110
.IP \fBtun_gbp_id=\fIvalue\fR[\fB/\fImask\fR]
 
1111
.IQ \fBtun_gbp_flags=\fIvalue\fR[\fB/\fImask\fR]
 
1112
Matches the group policy identifier and flags in the VXLAN header. Only
 
1113
packets that arrive over a VXLAN tunnel with the "gbp" extension
 
1114
enabled can have this field set. The fields may also be referred to by
 
1115
NXM_NX_TUN_GBP_ID[] (16 bits) and NXM_NX_TUN_GBP_FLAGS[] (8 bits) in
 
1116
the context of field manipulation actions. If these fields are set and
 
1117
the packet matched by the flow is encapsulated in a VXLAN-GBP tunnel,
 
1118
then the policy identifier and flags are transmitted to the destination
 
1119
VXLAN tunnel endpoint.
 
1120
.IP
 
1121
The \fBtun_gbp_flags\fR field has the following format:
 
1122
.IP
 
1123
.in +2
 
1124
\f(CR+-+-+-+-+-+-+-+-+\fR
 
1125
.br
 
1126
\f(CR|-|D|-|-|A|-|-|-|\fR
 
1127
.br
 
1128
\f(CR+-+-+-+-+-+-+-+-+\fR
 
1129
 
 
1130
.B D :=
 
1131
Don't Learn bit. When set, this bit indicates that the egress
 
1132
tunnel endpoint MUST NOT learn the source address of the encapsulated
 
1133
frame.
 
1134
 
 
1135
.B A :=
 
1136
Indicates that the group policy has already been applied to
 
1137
this packet. Policies MUST NOT be applied by devices when the A bit is
 
1138
set.
 
1139
.in -2
 
1140
.IP
 
1141
For more information, please see the corresponding IETF draft:
 
1142
https://tools.ietf.org/html/draft-smith-vxlan-group-policy
 
1143
.
1076
1144
.IP "\fBreg\fIidx\fB=\fIvalue\fR[\fB/\fImask\fR]"
1077
1145
Matches \fIvalue\fR either exactly or with optional \fImask\fR in
1078
1146
register number \fIidx\fR.  The valid range of \fIidx\fR depends on
1083
1151
exactly, and a 0-bit wildcards that bit.
1084
1152
.IP
1085
1153
When a packet enters an OpenFlow switch, all of the registers are set
1086
 
to 0.  Only explicit Nicira extension actions change register values.
 
1154
to 0.  Only explicit actions change register values.
 
1155
.
 
1156
.IP "\fBxreg\fIidx\fB=\fIvalue\fR[\fB/\fImask\fR]"
 
1157
Matches \fIvalue\fR either exactly or with optional \fImask\fR in
 
1158
64-bit ``extended register'' number \fIidx\fR.  Each of the 64-bit
 
1159
extended registers overlays two of the 32-bit registers: \fBxreg0\fR
 
1160
overlays \fBreg0\fR and \fBreg1\fR, with \fBreg0\fR supplying the
 
1161
most-significant bits of \fBxreg0\fR and \fBreg1\fR the
 
1162
least-significant.  \fBxreg1\fR similarly overlays \fBreg2\fR and
 
1163
\fBreg3\fR, and so on.
 
1164
.IP
 
1165
These fields were added in Open vSwitch 2.3 to conform with the
 
1166
OpenFlow 1.5 specification.  OpenFlow 1.5 calls these fields
 
1167
just the ``packet registers,'' but Open vSwitch already had 32-bit
 
1168
registers by that name, which is why Open vSwitch refers to the
 
1169
standard registers as ``extended registers''.
1087
1170
.
1088
1171
.IP \fBpkt_mark=\fIvalue\fR[\fB/\fImask\fR]
1089
1172
Matches packet metadata mark \fIvalue\fR either exactly or with optional
1092
1175
On Linux this corresponds to the skb mark but the exact implementation is
1093
1176
platform-dependent.
1094
1177
.
 
1178
.IP \fBactset_output=\fIport\fR
 
1179
Matches the output port currently in the OpenFlow action set, where
 
1180
\fIport\fR may be an OpenFlow port number or keyword
 
1181
(e.g. \fBLOCAL\fR).  If there is no output port in the OpenFlow action
 
1182
set, or if the output port will be ignored (e.g. because there is an
 
1183
output group in the OpenFlow action set), then the value will be
 
1184
\fBUNSET\fR.
 
1185
.IP
 
1186
This field was introduced in Open vSwitch 2.4 to conform with the
 
1187
OpenFlow 1.5 specification.
 
1188
.
 
1189
.IP \fBconj_id=\fIvalue\fR
 
1190
Matches the given 32-bit \fIvalue\fR against the conjunction ID.  This
 
1191
is used only with the \fBconjunction\fR action (see below).
 
1192
.IP
 
1193
This field was introduced in Open vSwitch 2.4.
 
1194
.
1095
1195
.PP
1096
1196
Defining IPv6 flows (those with \fBdl_type\fR equal to 0x86dd) requires
1097
1197
support for NXM.  The following shorthand notations are available for
1144
1244
of \fBoutput\fR uses an OpenFlow extension that is not supported by
1145
1245
standard OpenFlow switches.
1146
1246
.
 
1247
.IP \fBgroup:\fIgroup_id\fR
 
1248
Outputs the packet to the OpenFlow group \fIgroup_id\fR. Group tables
 
1249
are only supported in OpenFlow 1.1+. See Group Syntax for more details.
 
1250
.
1147
1251
.IP \fBnormal\fR
1148
1252
Subjects the packet to the device's normal L2/L3 processing.  (This
1149
1253
action is not implemented by all OpenFlow switches.)
1388
1492
through 31, inclusive;
1389
1493
\fBmove:NXM_NX_REG0[0..15]\->NXM_OF_VLAN_TCI[]\fR copies the least
1390
1494
significant 16 bits of register 0 into the VLAN TCI field.
 
1495
.IP
 
1496
In OpenFlow 1.0 through 1.4, \fBmove\fR ordinarily uses an Open
 
1497
vSwitch extension to OpenFlow.  In OpenFlow 1.5, \fBmove\fR uses the
 
1498
OpenFlow 1.5 standard \fBcopy_field\fR action.  The ONF has
 
1499
also made \fBcopy_field\fR available as an extension to OpenFlow 1.3.
 
1500
Open vSwitch 2.4 and later understands this extension and uses it if a
 
1501
controller uses it, but for backward compatibility with older versions
 
1502
of Open vSwitch, \fBovs\-ofctl\fR does not use it.
1391
1503
.
1392
 
.IP "\fBload:\fIvalue\fB\->\fIdst\fB[\fIstart\fB..\fIend\fB]"
1393
 
Writes \fIvalue\fR to bits \fIstart\fR through \fIend\fR, inclusive,
1394
 
in field \fIdst\fR.
 
1504
.IP "\fBset_field:\fIvalue\fR[/\fImask\fR]\fB\->\fIdst"
 
1505
.IQ "\fBload:\fIvalue\fB\->\fIdst\fB[\fIstart\fB..\fIend\fB]"
 
1506
Loads a literal value into a field or part of a field.  With
 
1507
\fBset_field\fR, \fBvalue\fR and the optional \fBmask\fR are given in
 
1508
the customary syntax for field \fIdst\fR, which is expressed as a
 
1509
field name.  For example, \fBset_field:00:11:22:33:44:55->eth_src\fR
 
1510
sets the Ethernet source address to 00:11:22:33:44:55.  With
 
1511
\fBload\fR, \fIvalue\fR must be an integer value (in decimal or
 
1512
prefixed by \fB0x\fR for hexadecimal) and \fIdst\fR is the NXM or OXM
 
1513
name for the field.  For example,
 
1514
\fBload:0x001122334455->OXM_OF_ETH_DST[]\fR has the same effect as the
 
1515
prior \fBset_field\fR example.
1395
1516
.IP
1396
 
Example: \fBload:55\->NXM_NX_REG2[0..5]\fR loads value 55 (bit pattern
1397
 
\fB110111\fR) into bits 0 through 5, inclusive, in register 2.
 
1517
The two forms exist for historical reasons.  Open vSwitch 1.1
 
1518
introduced \fBNXAST_REG_LOAD\fR as a Nicira extension to OpenFlow 1.0
 
1519
and used \fBload\fR to express it.  Later, OpenFlow 1.2 introduced a
 
1520
standard \fBOFPAT_SET_FIELD\fR action that was restricted to loading
 
1521
entire fields, so Open vSwitch added the form \fBset_field\fR with
 
1522
this restriction.  OpenFlow 1.5 extended \fBOFPAT_SET_FIELD\fR to the
 
1523
point that it became a superset of \fBNXAST_REG_LOAD\fR.  Open vSwitch
 
1524
translates either syntax as necessary for the OpenFlow version in use:
 
1525
in OpenFlow 1.0 and 1.1, \fBNXAST_REG_LOAD\fR; in OpenFlow 1.2, 1.3,
 
1526
and 1.4, \fBNXAST_REG_LOAD\fR for \fBload\fR or for loading a
 
1527
subfield, \fBOFPAT_SET_FIELD\fR otherwise; and OpenFlow 1.5 and later,
 
1528
\fBOFPAT_SET_FIELD\fR.
1398
1529
.
1399
1530
.IP "\fBpush:\fIsrc\fB[\fIstart\fB..\fIend\fB]"
1400
1531
Pushes \fIstart\fR to \fIend\fR bits inclusive, in fields
1413
1544
Set register 2 bits 0 through 5, inclusive, based on bits 0 through 5 from the
1414
1545
value just popped.
1415
1546
.
1416
 
.IP "\fBset_field:\fIvalue\fB\->\fIdst"
1417
 
Writes the literal \fIvalue\fR into the field \fIdst\fR, which should
1418
 
be specified as a name used for matching.  (This is similar to
1419
 
\fBload\fR but more closely matches the set-field action defined in
1420
 
OpenFlow 1.2 and above.)
1421
 
.
1422
 
.IP
1423
 
Example: \fBset_field:00:11:22:33:44:55->eth_src\fR.
1424
1547
.
1425
1548
.IP "\fBmultipath(\fIfields\fB, \fIbasis\fB, \fIalgorithm\fB, \fIn_links\fB, \fIarg\fB, \fIdst\fB[\fIstart\fB..\fIend\fB])\fR"
1426
1549
Hashes \fIfields\fR using \fIbasis\fR as a universal hash parameter,
1476
1599
.IP \fBidle_timeout=\fIseconds\fR
1477
1600
.IQ \fBhard_timeout=\fIseconds\fR
1478
1601
.IQ \fBpriority=\fIvalue\fR
1479
 
These key-value pairs have the same meaning as in the usual
1480
 
\fBovs\-ofctl\fR flow syntax.
 
1602
.IQ \fBcookie=\fIvalue\fR
 
1603
.IQ \fBsend_flow_rem\fR
 
1604
These arguments have the same meaning as in the usual \fBovs\-ofctl\fR
 
1605
flow syntax.
1481
1606
.
1482
1607
.IP \fBfin_idle_timeout=\fIseconds\fR
1483
1608
.IQ \fBfin_hard_timeout=\fIseconds\fR
1489
1614
number between 0 and 254.  The default, if \fBtable\fR is unspecified,
1490
1615
is table 1.
1491
1616
.
 
1617
.IP \fBdelete_learned\fR
 
1618
This flag enables deletion of the learned flows when the flow with the
 
1619
\fBlearn\fR action is removed.  Specifically, when the last
 
1620
\fBlearn\fR action with this flag and particular \fBtable\fR and
 
1621
\fBcookie\fR values is removed, the switch deletes all of the flows in
 
1622
the specified table with the specified cookie.
 
1623
.
 
1624
.IP
 
1625
This flag was added in Open vSwitch 2.4.
 
1626
.
1492
1627
.IP \fIfield\fB=\fIvalue\fR
1493
1628
.IQ \fIfield\fB[\fIstart\fB..\fIend\fB]=\fIsrc\fB[\fIstart\fB..\fIend\fB]\fR
1494
1629
.IQ \fIfield\fB[\fIstart\fB..\fIend\fB]\fR
1535
1670
.RE
1536
1671
.
1537
1672
.RS
1538
 
.IP \fBapply_actions(\fR[\fIaction\fR][\fB,\fIaction\fR...]\fB)
1539
 
Applies the specific action(s) immediately. The syntax of actions are same
1540
 
to \fBactions=\fR field.
1541
1673
.
1542
1674
.IP \fBclear_actions\fR
1543
1675
Clears all the actions in the action set immediately.
1576
1708
.IP 5.
1577
1709
\fBload\fR
1578
1710
.IQ
 
1711
\fBmove\fR
 
1712
.IQ
1579
1713
\fBmod_dl_dst\fR
1580
1714
.IQ
1581
1715
\fBmod_dl_src\fR
1605
1739
\fBset_tunnel64\fR
1606
1740
.IQ
1607
1741
The action set can contain any number of these actions, with
1608
 
cumulative effect.  That is, when multiple actions modify the same
1609
 
part of a field, the later modification takes effect, and when they
1610
 
modify different parts of a field (or different fields), then both
 
1742
cumulative effect. They will be applied in the order as added.
 
1743
That is, when multiple actions modify the same part of a field,
 
1744
the later modification takes effect, and when they modify
 
1745
different parts of a field (or different fields), then both
1611
1746
modifications are applied.
1612
1747
.
1613
1748
.IP 6.
1618
1753
.IQ
1619
1754
\fBoutput\fR
1620
1755
.IQ
1621
 
If both actions are present, then \fBgroup\fR is executed and
1622
 
\fBoutput\fR is ignored, regardless of the order in which they were
1623
 
added to the action set.  (If neither action is present, the action
1624
 
set has no real effect, because the modified packet is not sent
1625
 
anywhere and thus the modifications are not visible.)
 
1756
\fBresubmit\fR
 
1757
.IQ
 
1758
If more than one of these actions is present, then the one listed
 
1759
earliest above is executed and the others are ignored, regardless of
 
1760
the order in which they were added to the action set.  (If none of these
 
1761
actions is present, the action set has no real effect, because the
 
1762
modified packet is not sent anywhere and thus the modifications are
 
1763
not visible.)
1626
1764
.RE
1627
1765
.IP
1628
1766
Only the actions listed above may be written to the action set.
1696
1834
other tables, or different levels of the \fBresubmit\fR call stack,
1697
1835
are ignored.  Actions in the action set is still executed (specify
1698
1836
\fBclear_actions\fR before \fBexit\fR to discard them).
 
1837
.
 
1838
.IP "\fBconjunction(\fIid\fB, \fIk\fB/\fIn\fR\fB)\fR"
 
1839
An individual OpenFlow flow can match only a single value for each
 
1840
field.  However, situations often arise where one wants to match one
 
1841
of a set of values within a field or fields.  For matching a single
 
1842
field against a set, it is straightforward and efficient to add
 
1843
multiple flows to the flow table, one for each value in the set.  For
 
1844
example, one might use the following flows to send packets with IP
 
1845
source address \fIa\fR, \fIb\fR, \fIc\fR, or \fId\fR to the OpenFlow
 
1846
controller:
 
1847
.RS +1in
 
1848
.br
 
1849
\fBip,ip_src=\fIa\fB actions=controller\fR
 
1850
.br
 
1851
\fBip,ip_src=\fIb\fB actions=controller\fR
 
1852
.br
 
1853
\fBip,ip_src=\fIc\fB actions=controller\fR
 
1854
.br
 
1855
\fBip,ip_src=\fId\fB actions=controller\fR
 
1856
.br
 
1857
.RE
 
1858
.IP
 
1859
Similarly, these flows send packets with IP destination address
 
1860
\fIe\fR, \fIf\fR, \fIg\fR, or \fIh\fR to the OpenFlow controller:
 
1861
.RS +1in
 
1862
.br
 
1863
\fBip,ip_dst=\fIe\fB actions=controller\fR
 
1864
.br
 
1865
\fBip,ip_dst=\fIf\fB actions=controller\fR
 
1866
.br
 
1867
\fBip,ip_dst=\fIg\fB actions=controller\fR
 
1868
.br
 
1869
\fBip,ip_dst=\fIh\fB actions=controller\fR
 
1870
.br
 
1871
.RE
 
1872
.IP
 
1873
Installing all of the above flows in a single flow table yields a
 
1874
disjunctive effect: a packet is sent to the controller if \fBip_src\fR
 
1875
\[mo] {\fIa\fR,\fIb\fR,\fIc\fR,\fId\fR} or \fBip_dst\fR \[mo]
 
1876
{\fIe\fR,\fIf\fR,\fIg\fR,\fIh\fR} (or both).  (Pedantically, if both
 
1877
of the above sets of flows are present in the flow table, they should
 
1878
have different priorities, because OpenFlow says that the results are
 
1879
undefined when two flows with same priority can both match a single
 
1880
packet.)
 
1881
.IP
 
1882
Suppose, on the other hand, one wishes to match conjunctively, that
 
1883
is, to send a packet to the controller only if both \fBip_src\fR \[mo]
 
1884
{\fIa\fR,\fIb\fR,\fIc\fR,\fId\fR} and \fBip_dst\fR \[mo]
 
1885
{\fIe\fR,\fIf\fR,\fIg\fR,\fIh\fR}.  This requires 4 \[mu] 4 = 16
 
1886
flows, one for each possible pairing of \fBip_src\fR and \fBip_dst\fR.
 
1887
That is acceptable for our small example, but it does not gracefully
 
1888
extend to larger sets or greater numbers of dimensions.
 
1889
.IP
 
1890
The \fBconjunction\fR action is a solution for conjunctive matches
 
1891
that is built into Open vSwitch.  A \fBconjunction\fR action ties
 
1892
groups of individual OpenFlow flows into higher-level ``conjunctive
 
1893
flows''.  Each group corresponds to one dimension, and each flow
 
1894
within the group matches one possible value for the dimension.  A
 
1895
packet that matches one flow from each group matches the conjunctive
 
1896
flow.
 
1897
.IP
 
1898
To implement a conjunctive flow with \fBconjunction\fR, assign the
 
1899
conjunctive flow a 32-bit \fIid\fR, which must be unique within an
 
1900
OpenFlow table.  Assign each of the \fIn\fR \[>=] 2 dimensions a
 
1901
unique number from 1 to \fIn\fR; the ordering is unimportant.  Add one
 
1902
flow to the OpenFlow flow table for each possible value of each
 
1903
dimension with \fBconjunction(\fIid, \fIk\fB/\fIn\fB)\fR as the flow's
 
1904
actions, where \fIk\fR is the number assigned to the flow's dimension.
 
1905
Together, these flows specify the conjunctive flow's match condition.
 
1906
When the conjunctive match condition is met, Open vSwitch looks up one
 
1907
more flow that specifies the conjunctive flow's actions and receives
 
1908
its statistics.  This flow is found by setting \fBconj_id\fR to the
 
1909
specified \fIid\fR and then again searching the flow table.
 
1910
.IP
 
1911
The following flows provide an example.  Whenever the IP source is one
 
1912
of the values in the flows that match on the IP source (dimension 1 of
 
1913
2), \fIand\fR the IP destination is one of the values in the flows
 
1914
that match on IP destination (dimension 2 of 2), Open vSwitch searches
 
1915
for a flow that matches \fBconj_id\fR against the conjunction ID
 
1916
(1234), finding the first flow listed below.
 
1917
.RS +1in
 
1918
.br
 
1919
.B "conj_id=1234 actions=controller"
 
1920
.br
 
1921
.B "ip,ip_src=10.0.0.1 actions=conjunction(1234, 1/2)"
 
1922
.br
 
1923
.B "ip,ip_src=10.0.0.4 actions=conjunction(1234, 1/2)"
 
1924
.br
 
1925
.B "ip,ip_src=10.0.0.6 actions=conjunction(1234, 1/2)"
 
1926
.br
 
1927
.B "ip,ip_src=10.0.0.7 actions=conjunction(1234, 1/2)"
 
1928
.br
 
1929
.B "ip,ip_dst=10.0.0.2 actions=conjunction(1234, 2/2)"
 
1930
.br
 
1931
.B "ip,ip_dst=10.0.0.5 actions=conjunction(1234, 2/2)"
 
1932
.br
 
1933
.B "ip,ip_dst=10.0.0.7 actions=conjunction(1234, 2/2)"
 
1934
.br
 
1935
.B "ip,ip_dst=10.0.0.8 actions=conjunction(1234, 2/2)"
 
1936
.RE
 
1937
.IP
 
1938
Many subtleties exist:
 
1939
.RS
 
1940
.IP \(bu
 
1941
In the example above, every flow in a single dimension has the same
 
1942
form, that is, dimension 1 matches on \fBip_src\fR, dimension 2 on
 
1943
\fBip_dst\fR, but this is not a requirement.  Different flows within a
 
1944
dimension may match on different bits within a field (e.g. IP network
 
1945
prefixes of different lengths, or TCP/UDP port ranges as bitwise
 
1946
matches), or even on entirely different fields (e.g. to match packets
 
1947
for TCP source port 80 or TCP destination port 80).
 
1948
.IP \(bu
 
1949
The flows within a dimension can vary their matches across more than
 
1950
one field, e.g. to match only specific pairs of IP source and
 
1951
destination addresses or L4 port numbers.
 
1952
.IP \(bu
 
1953
A flow may have multiple \fBconjunction\fR actions, with different
 
1954
\fIid\fR values.  This is useful for multiple conjunctive flows with
 
1955
overlapping sets.  If one conjunctive flow matches packets with both
 
1956
\fBip_src\fR \[mo] {\fIa\fR,\fIb\fR} and \fBip_dst\fR \[mo]
 
1957
{\fId\fR,\fIe\fR} and a second conjunctive flow matches \fBip_src\fR
 
1958
\[mo] {\fIb\fR,\fIc\fR} and \fBip_dst\fR \[mo] {\fIf\fR,\fIg\fR}, for
 
1959
example, then the flow that matches \fBip_src=\fIb\fR would have two
 
1960
\fBconjunction\fR actions, one for each conjunctive flow.  The order
 
1961
of \fBconjunction\fR actions within a list of actions is not
 
1962
significant.
 
1963
.IP \(bu
 
1964
A flow with \fBconjunction\fR actions may also include \fBnote\fR
 
1965
actions for annotations, but not any other kind of actions.  (They
 
1966
would not be useful because they would never be executed.)
 
1967
.IP \(bu
 
1968
All of the flows that constitute a conjunctive flow with a given
 
1969
\fIid\fR must have the same priority.  (Flows with the same \fIid\fR
 
1970
but different priorities are currently treated as different
 
1971
conjunctive flows, that is, currently \fIid\fR values need only be
 
1972
unique within an OpenFlow table at a given priority.  This behavior
 
1973
isn't guaranteed to stay the same in later releases, so please use
 
1974
\fIid\fR values unique within an OpenFlow table.)
 
1975
.IP \(bu
 
1976
Conjunctive flows must not overlap with each other, at a given
 
1977
priority, that is, any given packet must be able to match at most one
 
1978
conjunctive flow at a given priority.  Overlapping conjunctive flows
 
1979
yield unpredictable results.
 
1980
.IP \(bu
 
1981
Following a conjunctive flow match, the search for the flow with
 
1982
\fBconj_id=\fIid\fR is done in the same general-purpose way as other flow
 
1983
table searches, so one can use flows with \fBconj_id=\fIid\fR to act
 
1984
differently depending on circumstances.  (One exception is that the
 
1985
search for the \fBconj_id=\fIid\fR flow itself ignores conjunctive flows,
 
1986
to avoid recursion.) If the search with \fBconj_id=\fIid\fR fails, Open
 
1987
vSwitch acts as if the conjunctive flow had not matched at all, and
 
1988
continues searching the flow table for other matching flows.
 
1989
.IP \(bu
 
1990
OpenFlow prerequisite checking occurs for the flow with
 
1991
\fBconj_id=\fIid\fR in the same way as any other flow, e.g. in an
 
1992
OpenFlow 1.1+ context, putting a \fBmod_nw_src\fR action into the
 
1993
example above would require adding an \fBip\fR match, like this:
 
1994
.RS +1in
 
1995
.br
 
1996
.B "conj_id=1234,ip actions=mod_nw_src:1.2.3.4,controller"
 
1997
.br
 
1998
.RE
 
1999
.IP \(bu
 
2000
OpenFlow prerequisite checking also occurs for the individual flows
 
2001
that comprise a conjunctive match in the same way as any other flow.
 
2002
.IP \(bu
 
2003
The flows that constitute a conjunctive flow do not have useful
 
2004
statistics.  They are never updated with byte or packet counts, and so
 
2005
on.  (For such a flow, therefore, the idle and hard timeouts work much
 
2006
the same way.)
 
2007
.IP \(bu
 
2008
Conjunctive flows can be a useful building block for negation, that
 
2009
is, inequality matches like \fBtcp_src\fR \[!=] 80.  To implement an
 
2010
inequality match, convert it to a pair of range matches, e.g. 0 \[<=]
 
2011
\fBtcp_src\ < 80 and 80 < \fBtcp_src\fR \[<=] 65535, then convert each
 
2012
of the range matches into a collection of bitwise matches as explained
 
2013
above in the description of \fBtcp_src\fR.
 
2014
.IP \(bu
 
2015
Sometimes there is a choice of which flows include a particular match.
 
2016
For example, suppose that we added an extra constraint to our example,
 
2017
to match on \fBip_src\fR \[mo] {\fIa\fR,\fIb\fR,\fIc\fR,\fId\fR} and
 
2018
\fBip_dst\fR \[mo] {\fIe\fR,\fIf\fR,\fIg\fR,\fIh\fR} and \fBtcp_dst\fR
 
2019
= \fIi\fR.  One way to implement this is to add the new constraint to
 
2020
the \fBconj_id\fR flow, like this:
 
2021
.RS +1in
 
2022
.br
 
2023
\fBconj_id=1234,tcp,tcp_dst=\fIi\fB actions=mod_nw_src:1.2.3.4,controller\fR
 
2024
.br
 
2025
.RE
 
2026
.IP
 
2027
\fIbut this is not recommended\fR because of the cost of the extra
 
2028
flow table lookup.  Instead, add the constraint to the individual
 
2029
flows, either in one of the dimensions or (slightly better) all of
 
2030
them.
 
2031
.IP \(bu
 
2032
A conjunctive match must have \fIn\fR \[>=] 2 dimensions (otherwise a
 
2033
conjunctive match is not necessary).  Open vSwitch enforces this.
 
2034
.IP \(bu
 
2035
Each dimension within a conjunctive match should ordinarily have more
 
2036
than one flow.  Open vSwitch does not enforce this.
 
2037
.RE
 
2038
.IP
 
2039
The \fBconjunction\fR action and \fBconj_id\fR field were introduced
 
2040
in Open vSwitch 2.4.
1699
2041
.RE
1700
2042
.
1701
2043
.PP
1776
2118
regardless of activity.  A value of 0 (the default) gives the flow no
1777
2119
hard expiration deadline.
1778
2120
.
 
2121
.IP "\fBimportance=\fIvalue\fR"
 
2122
Sets the importance of a flow.  The flow entry eviction mechanism can
 
2123
use importance as a factor in deciding which flow to evict.  A value
 
2124
of 0 (the default) makes the flow non-evictable on the basis of
 
2125
importance.  Specify a value between 0 and 65535.
 
2126
.IP
 
2127
Only OpenFlow 1.4 and later support \fBimportance\fR.
 
2128
.
1779
2129
.IP "\fBsend_flow_rem\fR"
1780
2130
Marks the flow with a flag that causes the switch to generate a ``flow
1781
2131
removed'' message and send it to interested controllers when the flow
1851
2201
 
1852
2202
 
1853
2203
.IP \fBtype=\fItype\fR
1854
 
The type of the group.  This \fBadd-group\fR, \fBadd-groups\fR and
1855
 
\fBdel-groups\fR command require this field.  The following keywords
1856
 
designated the allowed types:
 
2204
The type of the group.  The \fBadd-group\fR, \fBadd-groups\fR and
 
2205
\fBmod-groups\fR commands require this field.  It is prohibited for
 
2206
other commands. The following keywords designated the allowed types:
1857
2207
.RS
1858
2208
.IP \fBall\fR
1859
2209
Execute all buckets in the group.
1870
2220
a live port or group.
1871
2221
.RE
1872
2222
 
 
2223
.IP \fBcommand_bucket_id=\fIid\fR
 
2224
The bucket to operate on.  The \fBinsert-buckets\fR and \fBremove-buckets\fR
 
2225
commands require this field.  It is prohibited for other commands.
 
2226
\fIid\fR may be an integer or one of the following keywords:
 
2227
.RS
 
2228
.IP \fBall\fR
 
2229
Operate on all buckets in the group.
 
2230
Only valid when used with the \fBremove-buckets\fR command in which
 
2231
case the effect is to remove all buckets from the group.
 
2232
.IP \fBfirst\fR
 
2233
Operate on the first bucket present in the group.
 
2234
In the case of the \fBinsert-buckets\fR command the effect is to
 
2235
insert new bucets just before the first bucket already present in the group;
 
2236
or to replace the buckets of the group if there are no buckets already present
 
2237
in the group.
 
2238
In the case of the \fBremove-buckets\fR command the effect is to
 
2239
remove the first bucket of the group; or do nothing if there are no
 
2240
buckets present in the group.
 
2241
.IP \fBlast\fR
 
2242
Operate on the last bucket present in the group.
 
2243
In the case of the \fBinsert-buckets\fR command the effect is to
 
2244
insert new bucets just after the last bucket already present in the group;
 
2245
or to replace the buckets of the group if there are no buckets already present
 
2246
in the group.
 
2247
In the case of the \fBremove-buckets\fR command the effect is to
 
2248
remove the last bucket of the group; or do nothing if there are no
 
2249
buckets present in the group.
 
2250
.RE
 
2251
.IP
 
2252
If \fIid\fR is an integer then it should correspond to the \fBbucket_id\fR
 
2253
of a bucket present in the group.
 
2254
In case of the \fBinsert-buckets\fR command the effect is to
 
2255
insert buckets just before the bucket in the group whose \fBbucket_id\fR is
 
2256
\fIid\fR.
 
2257
In case of the \fBiremove-buckets\fR command the effect is to
 
2258
remove the in the group whose \fBbucket_id\fR is \fIid\fR.
 
2259
It is an error if there is no bucket persent group in whose \fBbucket_id\fR is
 
2260
\fIid\fR.
 
2261
 
 
2262
.IP \fBselection_method\fR=\fImethod\fR
 
2263
The selection method used to select a bucket for a select group.
 
2264
This is a string of 1 to 15 bytes in length known to lower layers.
 
2265
This field is optional for \fBadd\-group\fR, \fBadd\-groups\fR and
 
2266
\fBmod\-group\fR commands on groups of type \fBselect\fR. Prohibited
 
2267
otherwise. The default value is the empty string.
 
2268
.IP
 
2269
This option will use a Netronome OpenFlow extension which is only supported
 
2270
when using Open vSwitch 2.4 and later with OpenFlow 1.5 and later.
 
2271
 
 
2272
.IP \fBselection_method_param\fR=\fIparam\fR
 
2273
64-bit integer parameter to the selection method selected by the
 
2274
\fBselection_method\fR field.  The parameter's use is defined by the
 
2275
lower-layer that implements the \fBselection_method\fR.  It is optional if
 
2276
the \fBselection_method\fR field is specified as a non-empty string.
 
2277
Prohibited otherwise. The default value is zero.
 
2278
.IP
 
2279
This option will use a Netronome OpenFlow extension which is only supported
 
2280
when using Open vSwitch 2.4 and later with OpenFlow 1.5 and later.
 
2281
 
 
2282
.IP \fBfields\fR=\fIparam\fR
 
2283
The field parameters to selection method selected by the
 
2284
\fBselection_method\fR field.  The syntax is described in \fBFlow Syntax\fR
 
2285
with the additional restrictions that if a value is provided it is
 
2286
treated as a wildcard mask and wildcard masks following a slash are
 
2287
prohibited. The pre-requisites of fields must be provided by any flows that
 
2288
output to the group. The use of the fields is defined by the lower-layer
 
2289
that implements the \fBselection_method\fR.  They are optional if the
 
2290
\fBselection_method\fR field is specified as a non-empty string.
 
2291
Prohibited otherwise. The default is no fields.
 
2292
.IP
 
2293
This option will use a Netronome OpenFlow extension which is only supported
 
2294
when using Open vSwitch 2.4 and later with OpenFlow 1.5 and later.
 
2295
 
1873
2296
.IP \fBbucket\fR=\fIbucket_parameters\fR
1874
2297
The \fBadd-group\fR, \fBadd-groups\fR and \fBmod-group\fR commands
1875
2298
require at least one bucket field. Bucket fields must appear after
1883
2306
\fIbucket_parameters\fR consists of a list of \fIfield\fB=\fIvalue\fR
1884
2307
assignments, separated by commas or white space followed by a
1885
2308
comma-separated list of actions.
1886
 
The syntax of actions are same
1887
 
to \fBactions=\fR field described in \fBFlow Syntax\fR above.
1888
2309
The fields for \fIbucket_parameters\fR are:
1889
2310
.
1890
2311
.RS
 
2312
.IP \fBbucket_id=\fIid\fR
 
2313
The 32-bit integer group id of the bucket.  Values greater than
 
2314
0xffffff00 are reserved.
 
2315
.
 
2316
This field was added in Open vSwitch 2.4 to conform with the OpenFlow
 
2317
1.5 specification. It is not supported when earlier versions
 
2318
of OpenFlow are used.  Open vSwitch will automatically allocate bucket
 
2319
ids when they are not specified.
 
2320
.IP \fBactions=\fR[\fIaction\fR][\fB,\fIaction\fR...]\fR
 
2321
The syntax of actions are identical to the \fBactions=\fR field described in
 
2322
\fBFlow Syntax\fR above. Specyfing \fBactions=\fR is optional, any unknown
 
2323
bucket parameter will be interpreted as an action.
1891
2324
.IP \fBweight=\fIvalue\fR
1892
2325
The relative weight of the bucket as an integer. This may be used by the switch
1893
2326
during bucket select for groups whose \fBtype\fR is \fBselect\fR.
1952
2385
.IP \fBrate=\fIvalue\fR
1953
2386
The relative rate limit for this band, in kilobits per second or packets per
1954
2387
second, depending on the meter flags defined above.
1955
 
.IP \fBburst_size=\fIport\fR
1956
 
The maximum burst allowed for the band.  If unspecified, the switch is free to
1957
 
select some reasonable value depending on it's configuration.
 
2388
.IP \fBburst_size=\fIsize\fR
 
2389
The maximum burst allowed for the band.  If \fBpktps\fR is specified,
 
2390
then \fIsize\fR is a packet count, otherwise it is in kilobits.  If
 
2391
unspecified, the switch is free to select some reasonable value
 
2392
depending on its configuration.
1958
2393
.RE
1959
2394
.
1960
2395
.SH OPTIONS
1962
2397
\fB\-\-strict\fR
1963
2398
Uses strict matching when running flow modification commands.
1964
2399
.
 
2400
.IP "\fB\-\-bundle\fR"
 
2401
Execute flow mods as an OpenFlow 1.4 atomic bundle transaction.
 
2402
.RS
 
2403
.IP \(bu
 
2404
Within a bundle, all flow mods are processed in the order they appear
 
2405
and as a single atomic transaction, meaning that if one of them fails,
 
2406
the whole transaction fails and none of the changes are made to the
 
2407
\fIswitch\fR's flow table, and that each given datapath packet
 
2408
traversing the OpenFlow tables sees the flow tables either as before
 
2409
the transaction, or after all the flow mods in the bundle have been
 
2410
successfully applied.
 
2411
.IP \(bu
 
2412
The beginning and the end of the flow table modification commands in a
 
2413
bundle are delimited with OpenFlow 1.4 bundle control messages, which
 
2414
makes it possible to stream the included commands without explicit
 
2415
OpenFlow barriers, which are otherwise used after each flow table
 
2416
modification command.  This may make large modifications execute
 
2417
faster as a bundle.
 
2418
.IP \(bu
 
2419
Bundles require OpenFlow 1.4 or higher.  An explicit \fB-O
 
2420
OpenFlow14\fR option is not needed, but you may need to enable
 
2421
OpenFlow 1.4 support for OVS by setting the OVSDB \fIprotocols\fR
 
2422
column in the \fIbridge\fR table.
 
2423
.RE
 
2424
.
1965
2425
.so lib/ofp-version.man
1966
2426
.
1967
2427
.IP "\fB\-F \fIformat\fR[\fB,\fIformat\fR...]"