diff options
author | Stephen Finucane <stephen@that.guru> | 2016-10-30 13:29:52 +0000 |
---|---|---|
committer | Russell Bryant <russell@ovn.org> | 2016-11-03 15:49:41 -0400 |
commit | 1c904eed870488188a0c6e97ae4ce6577c8cb551 (patch) | |
tree | b6dcc1bab3484687abf4e8bc3157cbb8d99a83c8 /rhel/README.RHEL.rst | |
parent | c10d32f1c864a7abcf1b08b894e6912572d265c5 (diff) | |
download | openvswitch-1c904eed870488188a0c6e97ae4ce6577c8cb551.tar.gz |
doc: Convert rhel/README.RHEL to rST
This is a top-level document, so plain old rST is preferred.
Signed-off-by: Stephen Finucane <stephen@that.guru>
Signed-off-by: Russell Bryant <russell@ovn.org>
Diffstat (limited to 'rhel/README.RHEL.rst')
-rw-r--r-- | rhel/README.RHEL.rst | 302 |
1 files changed, 302 insertions, 0 deletions
diff --git a/rhel/README.RHEL.rst b/rhel/README.RHEL.rst new file mode 100644 index 000000000..afccf1703 --- /dev/null +++ b/rhel/README.RHEL.rst @@ -0,0 +1,302 @@ +=================================== +Red Hat network scripts integration +=================================== + +The RPM packages for Open vSwitch provide some integration with Red Hat's +network scripts. Using this integration is optional. + +To use the integration for a Open vSwitch bridge or interface named ``<name>``, +create or edit ``/etc/sysconfig/network-scripts/ifcfg-<name>``. This is a +shell script that consists of a series of ``VARIABLE=VALUE`` assignments. The +following OVS-specific variable names are supported: + +DEVICETYPE + Always set to "ovs". + +TYPE + If this is "OVSBridge", then this file represents an OVS bridge named <name>. + Otherwise, it represents a port on an OVS bridge and TYPE must have one of + the following values: + + * ``OVSPort``, if ``<name>`` is a physical port (e.g. eth0) or + virtual port (e.g. vif1.0). + + * ``OVSIntPort``, if ``<name>`` is an internal port (e.g. a tagged + VLAN). + + * ``OVSBond``, if ``<name>`` is an OVS bond. + + * ``OVSTunnel``, if ``<name>`` is an OVS tunnel. + + * ``OVSPatchPort``, if ``<name>`` is a patch port + + Additionally the following DPDK port types may be available, depends on OVS + build- and runtime configuration: + + * ``OVSDPDKPort``, if ``<name>`` is a physical DPDK NIC port (name must start + with ``dpdk`` and end with portid, eg ``dpdk0``) + + * ``OVSDPDKRPort``, if ``<name>`` is a DPDK ring port (name must start with + ``dpdkr`` and end with portid, e.g. ``dpdkr0``) + + * ``OVSDPDKVhostUserPort`` if ``<name>`` is a DPDK vhost-user port + + * ``OVSDPDKBond`` if ``<name>`` is an OVS DPDK bond. + +OVS_BRIDGE + If TYPE is anything other than "OVSBridge", set to the name of the OVS bridge + to which the port should be attached. + +OVS_OPTIONS + Optionally, extra options to set in the "Port" table when adding the port to + the bridge, as a sequence of column[:key]=value options. For example, + "tag=100" to make the port an access port for VLAN 100. See the + documentation of "add-port" in ovs-vsctl(8) for syntax and the section on the + Port table in ovs-vswitchd.conf.db(5) for available options. + +OVS_EXTRA + Optionally, additional ovs-vsctl commands, separated by ``--`` (double dash). + +BOND_IFACES + For "OVSBond" and "OVSDPDKBond" interfaces, a list of physical interfaces to + bond together. + +OVS_TUNNEL_TYPE + For "OVSTunnel" interfaces, the type of the tunnel. For example, "gre", + "vxlan", etc. + +OVS_TUNNEL_OPTIONS + For "OVSTunnel" interfaces, this field should be used to specify the tunnel + options like remote_ip, key, etc. + +OVS_PATCH_PEER + For "OVSPatchPort" devices, this field specifies the patch's peer on the + other bridge. + +Note +---- + +* ``ifdown`` on a bridge will not bring individual ports on the bridge down. + "ifup" on a bridge will not add ports to the bridge. This behavior should be + compatible with standard bridges (with ``TYPE=Bridge``). + +* If ``ifup`` on an interface is called multiple times, one can see ``RTNETLINK + answers: File exists`` printed on the console. This comes from ifup-eth + trying to add zeroconf route multiple times and is harmless. + +Examples +-------- + +Standalone bridge: + +:: + + ==> ifcfg-ovsbridge0 <== + DEVICE=ovsbridge0 + ONBOOT=yes + DEVICETYPE=ovs + TYPE=OVSBridge + BOOTPROTO=static + IPADDR=A.B.C.D + NETMASK=X.Y.Z.0 + HOTPLUG=no + +Enable DHCP on the bridge: + +* Needs ``OVSBOOTPROTO`` instead of ``BOOTPROTO``. +* All the interfaces that can reach the DHCP server as a space separated list + in ``OVSDHCPINTERFACES``. + +:: + + DEVICE=ovsbridge0 + ONBOOT=yes + DEVICETYPE=ovs + TYPE=OVSBridge + OVSBOOTPROTO="dhcp" + OVSDHCPINTERFACES="eth0" + HOTPLUG=no + + +Adding Internal Port to ovsbridge0: + +:: + + ==> ifcfg-intbr0 <== + DEVICE=intbr0 + ONBOOT=yes + DEVICETYPE=ovs + TYPE=OVSIntPort + OVS_BRIDGE=ovsbridge0 + HOTPLUG=no + +Internal Port with fixed IP address: + +:: + + DEVICE=intbr0 + ONBOOT=yes + DEVICETYPE=ovs + TYPE=OVSIntPort + OVS_BRIDGE=ovsbridge0 + BOOTPROTO=static + IPADDR=A.B.C.D + NETMASK=X.Y.Z.0 + HOTPLUG=no + +Internal Port with DHCP: + +* Needs ``OVSBOOTPROTO`` or ``BOOTPROTO``. +* All the interfaces that can reach the DHCP server as a space separated list + in ``OVSDHCPINTERFACES``. + +:: + + DEVICE=intbr0 + ONBOOT=yes + DEVICETYPE=ovs + TYPE=OVSIntPort + OVS_BRIDGE=ovsbridge0 + OVSBOOTPROTO="dhcp" + OVSDHCPINTERFACES="eth0" + HOTPLUG=no + +Adding physical ``eth0`` to ``ovsbridge0`` described above: + +:: + + ==> ifcfg-eth0 <== + DEVICE=eth0 + ONBOOT=yes + DEVICETYPE=ovs + TYPE=OVSPort + OVS_BRIDGE=ovsbridge0 + BOOTPROTO=none + HOTPLUG=no + +Tagged VLAN interface on top of ``ovsbridge0``: + +:: + + ==> ifcfg-vlan100 <== + DEVICE=vlan100 + ONBOOT=yes + DEVICETYPE=ovs + TYPE=OVSIntPort + BOOTPROTO=static + IPADDR=A.B.C.D + NETMASK=X.Y.Z.0 + OVS_BRIDGE=ovsbridge0 + OVS_OPTIONS="tag=100" + OVS_EXTRA="set Interface $DEVICE external-ids:iface-id=$(hostname -s)-$DEVICE-vif" + HOTPLUG=no + +Bonding: + +:: + + ==> ifcfg-bond0 <== + DEVICE=bond0 + ONBOOT=yes + DEVICETYPE=ovs + TYPE=OVSBond + OVS_BRIDGE=ovsbridge0 + BOOTPROTO=none + BOND_IFACES="gige-1b-0 gige-1b-1 gige-21-0 gige-21-1" + OVS_OPTIONS="bond_mode=balance-tcp lacp=active" + HOTPLUG=no + +:: + + ==> ifcfg-gige-* <== + DEVICE=gige-* + ONBOOT=yes + HOTPLUG=no + +An Open vSwitch Tunnel: + +:: + + ==> ifcfg-gre0 <== + DEVICE=ovs-gre0 + ONBOOT=yes + DEVICETYPE=ovs + TYPE=OVSTunnel + OVS_BRIDGE=ovsbridge0 + OVS_TUNNEL_TYPE=gre + OVS_TUNNEL_OPTIONS="options:remote_ip=A.B.C.D" + +Patch Ports: + +:: + + ==> ifcfg-patch-ovs-0 <== + DEVICE=patch-ovs-0 + ONBOOT=yes + DEVICETYPE=ovs + TYPE=OVSPatchPort + OVS_BRIDGE=ovsbridge0 + OVS_PATCH_PEER=patch-ovs-1 + +:: + + ==> ifcfg-patch-ovs-1 <== + DEVICE=patch-ovs-1 + ONBOOT=yes + DEVICETYPE=ovs + TYPE=OVSPatchPort + OVS_BRIDGE=ovsbridge1 + OVS_PATCH_PEER=patch-ovs-0 + +User bridge: + +:: + + ==> ifcfg-obr0 <== + DEVICE=obr0 + ONBOOT=yes + DEVICETYPE=ovs + TYPE=OVSUserBridge + BOOTPROTO=static + IPADDR=A.B.C.D + NETMASK=X.Y.Z.0 + HOTPLUG=no + +DPDK NIC port: + +:: + + ==> ifcfg-dpdk0 <== + DPDK vhost-user port: + DEVICE=dpdk0 + ONBOOT=yes + DEVICETYPE=ovs + TYPE=OVSDPDKPort + OVS_BRIDGE=obr0 + +:: + + ==> ifcfg-vhu0 <== + DEVICE=vhu0 + ONBOOT=yes + DEVICETYPE=ovs + TYPE=OVSDPDKVhostUserPort + OVS_BRIDGE=obr0 + +:: + + ==> ifcfg-bond0 <== + DEVICE=bond0 + ONBOOT=yes + DEVICETYPE=ovs + TYPE=OVSDPDKBond + OVS_BRIDGE=ovsbridge0 + BOOTPROTO=none + BOND_IFACES="dpdk0 dpdk1" + OVS_OPTIONS="bond_mode=active-backup" + HOTPLUG=no + +Reporting Bugs +-------------- + +Please report problems to bugs@openvswitch.org. |