netdev-dpdk: fix mbuf leaks
[cascardo/ovs.git] / rhel / README.RHEL
1 Red Hat network scripts integration
2 -----------------------------------
3
4 The RPM packages for Open vSwitch provide some integration with Red
5 Hat's network scripts.  Using this integration is optional.
6
7 To use the integration for a Open vSwitch bridge or interface named
8 <name>, create or edit /etc/sysconfig/network-scripts/ifcfg-<name>.
9 This is a shell script that consists of a series of VARIABLE=VALUE
10 assignments.  The following OVS-specific variable names are supported:
11
12     - DEVICETYPE: Always set to "ovs".
13
14     - TYPE: If this is "OVSBridge", then this file represents an OVS
15       bridge named <name>.  Otherwise, it represents a port on an OVS
16       bridge and TYPE must have one of the following values:
17
18         * "OVSPort", if <name> is a physical port (e.g. eth0) or
19           virtual port (e.g. vif1.0).
20
21         * "OVSIntPort", if <name> is an internal port (e.g. a tagged
22           VLAN).
23
24         * "OVSBond", if <name> is an OVS bond.
25
26         * "OVSTunnel", if <name> is an OVS tunnel.
27
28         * "OVSPatchPort", if <name> is a patch port
29
30       Additionally the following DPDK port types may be available,
31       depends on OVS build- and runtime configuration:
32
33         * "OVSDPDKPort", if <name> is a physical DPDK NIC port (name
34           must start with "dpdk" and end with portid, eg "dpdk0")
35
36         * "OVSDPDKRPort", if <name> is a DPDK ring port (name must
37           start with dpdkr and end with portid, eg "dpdkr0")
38
39         * "OVSDPDKVhostPort" if <name> is a DPDK vhost-cuse port
40
41         * "OVSDPDKVhostUserPort" if <name> is a DPDK vhost-user port
42
43     - OVS_BRIDGE: If TYPE is anything other than "OVSBridge", set to
44       the name of the OVS bridge to which the port should be attached.
45
46     - OVS_OPTIONS: Optionally, extra options to set in the "Port"
47       table when adding the port to the bridge, as a sequence of
48       column[:key]=value options.  For example, "tag=100" to make the
49       port an access port for VLAN 100.  See the documentation of
50       "add-port" in ovs-vsctl(8) for syntax and the section on the
51       Port table in ovs-vswitchd.conf.db(5) for available options.
52
53     - OVS_EXTRA: Optionally, additional ovs-vsctl commands, separated
54       by "--" (double dash).
55
56     - BOND_IFACES: For "OVSBond" interfaces, a list of physical
57       interfaces to bond together.
58
59     - OVS_TUNNEL_TYPE: For "OVSTunnel" interfaces, the type of the tunnel.
60       For example, "gre", "vxlan", etc.
61
62     - OVS_TUNNEL_OPTIONS: For "OVSTunnel" interfaces, this field should be
63       used to specify the tunnel options like remote_ip, key, etc.
64
65     - OVS_PATCH_PEER: For "OVSPatchPort" devices, this field specifies
66       the patch's peer on the other bridge.
67
68 Note
69 ----
70
71 * "ifdown" on a bridge will not bring individual ports on the bridge
72 down.  "ifup" on a bridge will not add ports to the bridge.  This
73 behavior should be compatible with standard bridges (with
74 TYPE=Bridge).
75
76 * If 'ifup' on an interface is called multiple times, one can see
77 "RTNETLINK answers: File exists" printed on the console. This comes from
78 ifup-eth trying to add zeroconf route multiple times and is harmless.
79
80 Examples
81 --------
82
83 Standalone bridge:
84
85 ==> ifcfg-ovsbridge0 <==
86 DEVICE=ovsbridge0
87 ONBOOT=yes
88 DEVICETYPE=ovs
89 TYPE=OVSBridge
90 BOOTPROTO=static
91 IPADDR=A.B.C.D
92 NETMASK=X.Y.Z.0
93 HOTPLUG=no
94
95 Enable DHCP on the bridge:
96 * Needs OVSBOOTPROTO instead of BOOTPROTO.
97 * All the interfaces that can reach the DHCP server
98 as a space separated list in OVSDHCPINTERFACES.
99
100 DEVICE=ovsbridge0
101 ONBOOT=yes
102 DEVICETYPE=ovs
103 TYPE=OVSBridge
104 OVSBOOTPROTO="dhcp"
105 OVSDHCPINTERFACES="eth0"
106 HOTPLUG=no
107
108
109 Adding Internal Port to ovsbridge0:
110
111 ==> ifcfg-intbr0 <==
112 DEVICE=intbr0
113 ONBOOT=yes
114 DEVICETYPE=ovs
115 TYPE=OVSIntPort
116 OVS_BRIDGE=ovsbridge0
117 HOTPLUG=no
118
119
120 Internal Port with fixed IP address:
121
122 DEVICE=intbr0
123 ONBOOT=yes
124 DEVICETYPE=ovs
125 TYPE=OVSIntPort
126 OVS_BRIDGE=ovsbridge0
127 BOOTPROTO=static
128 IPADDR=A.B.C.D
129 NETMASK=X.Y.Z.0
130 HOTPLUG=no
131
132 Internal Port with DHCP:
133 * Needs OVSBOOTPROTO or BOOTPROTO.
134 * All the interfaces that can reach the DHCP server
135 as a space separated list in OVSDHCPINTERFACES.
136
137 DEVICE=intbr0
138 ONBOOT=yes
139 DEVICETYPE=ovs
140 TYPE=OVSIntPort
141 OVS_BRIDGE=ovsbridge0
142 OVSBOOTPROTO="dhcp"
143 OVSDHCPINTERFACES="eth0"
144 HOTPLUG=no
145
146 Adding physical eth0 to ovsbridge0 described above:
147
148 ==> ifcfg-eth0 <==
149 DEVICE=eth0
150 ONBOOT=yes
151 DEVICETYPE=ovs
152 TYPE=OVSPort
153 OVS_BRIDGE=ovsbridge0
154 BOOTPROTO=none
155 HOTPLUG=no
156
157
158 Tagged VLAN interface on top of ovsbridge0:
159
160 ==> ifcfg-vlan100 <==
161 DEVICE=vlan100
162 ONBOOT=yes
163 DEVICETYPE=ovs
164 TYPE=OVSIntPort
165 BOOTPROTO=static
166 IPADDR=A.B.C.D
167 NETMASK=X.Y.Z.0
168 OVS_BRIDGE=ovsbridge0
169 OVS_OPTIONS="tag=100"
170 OVS_EXTRA="set Interface $DEVICE external-ids:iface-id=$(hostname -s)-$DEVICE-vif"
171 HOTPLUG=no
172
173
174 Bonding:
175
176 ==> ifcfg-bond0 <==
177 DEVICE=bond0
178 ONBOOT=yes
179 DEVICETYPE=ovs
180 TYPE=OVSBond
181 OVS_BRIDGE=ovsbridge0
182 BOOTPROTO=none
183 BOND_IFACES="gige-1b-0 gige-1b-1 gige-21-0 gige-21-1"
184 OVS_OPTIONS="bond_mode=balance-tcp lacp=active"
185 HOTPLUG=no
186
187 ==> ifcfg-gige-* <==
188 DEVICE=gige-*
189 ONBOOT=yes
190 HOTPLUG=no
191
192 An Open vSwitch Tunnel:
193
194 ==> ifcfg-gre0 <==
195 DEVICE=ovs-gre0
196 ONBOOT=yes
197 DEVICETYPE=ovs
198 TYPE=OVSTunnel
199 OVS_BRIDGE=ovsbridge0
200 OVS_TUNNEL_TYPE=gre
201 OVS_TUNNEL_OPTIONS="options:remote_ip=A.B.C.D"
202
203
204 Patch Ports:
205
206 ==> ifcfg-patch-ovs-0 <==
207 DEVICE=patch-ovs-0
208 ONBOOT=yes
209 DEVICETYPE=ovs
210 TYPE=OVSPatchPort
211 OVS_BRIDGE=ovsbridge0
212 OVS_PATCH_PEER=patch-ovs-1
213
214 ==> ifcfg-patch-ovs-1 <==
215 DEVICE=patch-ovs-1
216 ONBOOT=yes
217 DEVICETYPE=ovs
218 TYPE=OVSPatchPort
219 OVS_BRIDGE=ovsbridge1
220 OVS_PATCH_PEER=patch-ovs-0
221
222 User bridge:
223
224 ==> ifcfg-obr0 <==
225
226 DEVICE=obr0
227 ONBOOT=yes
228 DEVICETYPE=ovs
229 TYPE=OVSUserBridge
230 BOOTPROTO=static
231 IPADDR=A.B.C.D
232 NETMASK=X.Y.Z.0
233 HOTPLUG=no
234
235 DPDK NIC port:
236
237 ==> ifcfg-dpdk0 <==
238
239 DPDK vhost-user port:
240 DEVICE=dpdk0
241 ONBOOT=yes
242 DEVICETYPE=ovs
243 TYPE=OVSDPDKPort
244 OVS_BRIDGE=obr0
245
246 ==> ifcfg-vhu0 <==
247 DEVICE=vhu0
248 ONBOOT=yes
249 DEVICETYPE=ovs
250 TYPE=OVSDPDKVhostUserPort
251 OVS_BRIDGE=obr0
252
253 Reporting Bugs
254 --------------
255
256 Please report problems to bugs@openvswitch.org.