2
0
mirror of https://github.com/openvswitch/ovs synced 2025-10-17 14:28:02 +00:00

ovs-vsctl: Add many more usage examples.

This commit is contained in:
Ben Pfaff
2010-09-20 11:57:13 -07:00
parent aed133bf9b
commit bad973d7ae

View File

@@ -631,7 +631,97 @@ point to a new \fBQoS\fR record, which in turn points with its queue 0
to a new \fBQueue\fR record:
.IP
.B "ovs\-vsctl \-\- set port eth0 qos=@newqos \-\- \-\-id=@newqos create qos type=linux\-htb other\-config:max\-rate=1000000 queues:0=@newqueue \-\- \-\-id=@newqueue create queue other\-config:min\-rate=1000000 other\-config:max\-rate=1000000"
.SH "CONFIGURATION COOKBOOK"
.SS "Port Configuration"
.PP
Add an ``internal port'' \fBvlan10\fR to bridge \fBbr0\fR as a VLAN
access port for VLAN 10, and configure it with an IP address:
.IP
.B "ovs\-vsctl add\-port br0 vlan10 tag=10 \-\- set Interface vlan10 type=internal"
.IP
.B "ifconfig vlan10 192.168.0.123"
.
.SS "Port Mirroring"
.PP
Mirror all packets received or sent on \fBeth0\fR or \fBeth1\fR onto
\fBeth2\fR, assuming that all of those ports exist on bridge \fBbr0\fR
(as a side-effect this causes any packets received on \fBeth2\fR to be
ignored):
.IP
.B "ovs\-vsctl \-\- set Bridge br0 mirrors=@m \(rs"
.IP
.B "\-\- \-\-id=@eth0 get Port eth0 \(rs"
.IP
.B "\-\- \-\-id=@eth1 get Port eth1 \(rs"
.IP
.B "\-\- \-\-id=@eth2 get Port eth2 \(rs"
.IP
.B "\-\- \-\-id=@m create Mirror name=mymirror select-dst-port=@eth0,@eth1 select-src-port=@eth0,@eth1 output-port=@eth2"
.PP
Remove the mirror created above from \fBbr0\fR and destroy the Mirror
record (to avoid having an unreferenced record in the database):
.IP
.B "ovs\-vsctl destroy Mirror mymirror \-\- clear Bridge br0 mirrors"
.SS "Quality of Service (QoS)"
.PP
Create a \fBlinux\-htb\fR QoS record that points to a few queues and
use it on \fBeth0\fR and \fBeth1\fR:
.IP
.B "ovs\-vsctl \-\- set Port eth0 qos=@newqos \(rs"
.IP
.B "\-\- set Port eth1 qos=@newqos \(rs"
.IP
.B "\-\- \-\-id=@newqos create QoS type=linux\-htb other\-config:max\-rate=1000000000 queues=0=@q0,1=@q1 \(rs"
.IP
.B "\-\- \-\-id=@q0 create Queue other\-config:min\-rate=100000000 other\-config:max\-rate=100000000 \(rs"
.IP
.B "\-\- \-\-id=@q1 create Queue other\-config:min\-rate=500000000"
.PP
Deconfigure the QoS record above from \fBeth1\fR only:
.IP
.B "ovs\-vsctl clear Port eth1 qos"
.PP
To deconfigure the QoS record from both \fBeth0\fR and \fBeth1\fR and
then delete the QoS record:
.IP
.B "ovs\-vsctl \-\- destroy QoS eth0 \-\- clear Port eth0 qos \-\- clear Port eth1 qos"
.PP
(This command will leave two unreferenced Queue records in the
database. To delete them, use "\fBovs\-vsctl list Queue\fR" to find
their UUIDs, then "\fBovs\-vsctl destroy Queue \fIuuid1\fR
\fIuuid2\fR" to destroy each of them.)
.SS "NetFlow"
.PP
Configure bridge \fBbr0\fR to send NetFlow records to UDP port 5566 on
host 192.168.0.34, with an active timeout of 30 seconds:
.IP
.B "ovs\-vsctl \-\- set Bridge br0 netflow=@nf \(rs"
.IP
.B "\-\- \-\-id=@nf create NetFlow targets=\(rs\(dq192.168.0.34:5566\(rs\(dq active\-timeout=30"
.PP
Update the NetFlow configuration created by the previous command to
instead use an active timeout of 60 seconds:
.IP
.B "ovs\-vsctl set NetFlow br0 active_timeout=60"
.PP
Deconfigure the NetFlow settings from \fBbr0\fR and delete the NetFlow
record (to avoid having an unreferenced record in the database):
.IP
.B "ovs\-vsctl destroy NetFlow br0 \-\- clear Bridge br0 netflow"
.SS "sFlow"
.PP
Configure bridge \fBbr0\fR to send sFlow records to a collector on
10.0.0.1 at port 6343, using \fBeth1\fR\'s IP address as the source,
with specific sampling parameters:
.IP
.B "ovs\-vsctl \-\- \-\-id=@s create sFlow agent=eth1 target=\(rs\(dq10.0.0.1:6343\(rs\(dq header=128 sampling=64 polling=10 \(rs"
.IP
.B "\-\- set Bridge br0 sflow=@s"
.PP
Deconfigure sFlow from br0 and destroy the sFlow record (to avoid
having an unreferenced record in the database):
.IP
.B "ovs\-vsctl \-\- destroy sFlow br0 \-\- clear Bridge br0 sflow"
.SH "EXIT STATUS"
.IP "0"
Successful program execution.