mirror of
https://github.com/openvswitch/ovs
synced 2025-08-22 18:07:40 +00:00
rhel: Add Red Hat network scripts integration.
[Spec file changes and some documentation updates by Ben Pfaff.]
This commit is contained in:
parent
df2a06abbe
commit
0fb426263e
1
AUTHORS
1
AUTHORS
@ -1,6 +1,7 @@
|
|||||||
The following people, in alphabetical order, have either authored or
|
The following people, in alphabetical order, have either authored or
|
||||||
signed off on commits in the Open vSwitch version control repository.
|
signed off on commits in the Open vSwitch version control repository.
|
||||||
|
|
||||||
|
Alexey I. Froloff raorn@altlinux.org
|
||||||
Andrew Evans aevans@nicira.com
|
Andrew Evans aevans@nicira.com
|
||||||
Andrew Lambeth wal@nicira.com
|
Andrew Lambeth wal@nicira.com
|
||||||
Andy Southgate andy.southgate@citrix.com
|
Andy Southgate andy.southgate@citrix.com
|
||||||
|
@ -64,6 +64,14 @@ RHEL. On RHEL 5, the default RPM source directory is
|
|||||||
in this example: "kmod-openvswitch", "kmod-openvswitch-debug", and
|
in this example: "kmod-openvswitch", "kmod-openvswitch-debug", and
|
||||||
"kmod-openvswitch-kdump".
|
"kmod-openvswitch-kdump".
|
||||||
|
|
||||||
|
Red Hat Network Scripts Integration
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
Simple integration with Red Hat network scripts has been implemented.
|
||||||
|
Please read rhel/README.RHEL in the source tree or
|
||||||
|
/usr/share/doc/openvswitch/README.RHEL in the installed openvswitch
|
||||||
|
package for details.
|
||||||
|
|
||||||
Reporting Bugs
|
Reporting Bugs
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
|
1
NEWS
1
NEWS
@ -8,6 +8,7 @@ post-v1.3.0
|
|||||||
- Added ability to modify TTL in IPv4.
|
- Added ability to modify TTL in IPv4.
|
||||||
- ovs-appctl:
|
- ovs-appctl:
|
||||||
- New "fdb/flush" command to flush bridge's MAC learning table.
|
- New "fdb/flush" command to flush bridge's MAC learning table.
|
||||||
|
- RHEL packaging now supports integration with Red Hat network scripts.
|
||||||
|
|
||||||
v1.3.0 - xx xxx xxxx
|
v1.3.0 - xx xxx xxxx
|
||||||
------------------------
|
------------------------
|
||||||
|
115
rhel/README.RHEL
Normal file
115
rhel/README.RHEL
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
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.
|
||||||
|
|
||||||
|
- 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" interfaces, a list of physical
|
||||||
|
interfaces to bond together.
|
||||||
|
|
||||||
|
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).
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
Adding physical eth0 to ovsbridge0 described above:
|
||||||
|
|
||||||
|
==> ifcfg-eth0 <==
|
||||||
|
DEVICE=eth0
|
||||||
|
ONBOOT=yes
|
||||||
|
DEVICETYPE=ovs
|
||||||
|
TYPE=OVSPort
|
||||||
|
OVS_BRIDGE=internet
|
||||||
|
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
|
||||||
|
|
||||||
|
Reporting Bugs
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Please report problems to bugs@openvswitch.org.
|
@ -6,9 +6,12 @@
|
|||||||
# without warranty of any kind.
|
# without warranty of any kind.
|
||||||
|
|
||||||
EXTRA_DIST += \
|
EXTRA_DIST += \
|
||||||
|
rhel/README.RHEL \
|
||||||
rhel/automake.mk \
|
rhel/automake.mk \
|
||||||
rhel/etc_init.d_openvswitch \
|
rhel/etc_init.d_openvswitch \
|
||||||
rhel/etc_logrotate.d_openvswitch \
|
rhel/etc_logrotate.d_openvswitch \
|
||||||
|
rhel/etc_sysconfig_network-scripts_ifdown-ovs \
|
||||||
|
rhel/etc_sysconfig_network-scripts_ifup-ovs \
|
||||||
rhel/kmodtool-openvswitch-el5.sh \
|
rhel/kmodtool-openvswitch-el5.sh \
|
||||||
rhel/openvswitch-kmod-rhel5.spec \
|
rhel/openvswitch-kmod-rhel5.spec \
|
||||||
rhel/openvswitch-kmod-rhel5.spec.in \
|
rhel/openvswitch-kmod-rhel5.spec.in \
|
||||||
|
53
rhel/etc_sysconfig_network-scripts_ifdown-ovs
Executable file
53
rhel/etc_sysconfig_network-scripts_ifdown-ovs
Executable file
@ -0,0 +1,53 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright (c) 2011 Alexey I. Froloff.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at:
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
. /etc/init.d/functions
|
||||||
|
|
||||||
|
cd /etc/sysconfig/network-scripts
|
||||||
|
. ./network-functions
|
||||||
|
|
||||||
|
[ -f ../network ] && . ../network
|
||||||
|
|
||||||
|
CONFIG=${1}
|
||||||
|
|
||||||
|
source_config
|
||||||
|
|
||||||
|
. /etc/sysconfig/network
|
||||||
|
|
||||||
|
OTHERSCRIPT="/etc/sysconfig/network-scripts/ifdown-${REAL_DEVICETYPE}"
|
||||||
|
|
||||||
|
if [ ! -x ${OTHERSCRIPT} ]; then
|
||||||
|
OTHERSCRIPT="/etc/sysconfig/network-scripts/ifdown-eth"
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$TYPE" in
|
||||||
|
OVSBridge)
|
||||||
|
${OTHERSCRIPT} ${CONFIG} $2
|
||||||
|
retval=$?
|
||||||
|
ovs-vsctl -- --if-exists del-br "$DEVICE"
|
||||||
|
;;
|
||||||
|
OVSPort|OVSIntPort|OVSBond)
|
||||||
|
${OTHERSCRIPT} ${CONFIG} $2
|
||||||
|
retval=$?
|
||||||
|
ovs-vsctl -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo $"Invalid OVS interface type $TYPE"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit $retval
|
63
rhel/etc_sysconfig_network-scripts_ifup-ovs
Executable file
63
rhel/etc_sysconfig_network-scripts_ifup-ovs
Executable file
@ -0,0 +1,63 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright (c) 2011 Alexey I. Froloff.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at:
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
. /etc/init.d/functions
|
||||||
|
|
||||||
|
cd /etc/sysconfig/network-scripts
|
||||||
|
. ./network-functions
|
||||||
|
|
||||||
|
[ -f ../network ] && . ../network
|
||||||
|
|
||||||
|
CONFIG=${1}
|
||||||
|
|
||||||
|
need_config ${CONFIG}
|
||||||
|
|
||||||
|
source_config
|
||||||
|
|
||||||
|
OTHERSCRIPT="/etc/sysconfig/network-scripts/ifup-${REAL_DEVICETYPE}"
|
||||||
|
|
||||||
|
if [ ! -x ${OTHERSCRIPT} ]; then
|
||||||
|
OTHERSCRIPT="/etc/sysconfig/network-scripts/ifup-eth"
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$TYPE" in
|
||||||
|
OVSBridge)
|
||||||
|
ovs-vsctl -- --may-exist add-br "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
|
||||||
|
${OTHERSCRIPT} ${CONFIG} ${2}
|
||||||
|
;;
|
||||||
|
OVSPort)
|
||||||
|
/sbin/ifup "$OVS_BRIDGE"
|
||||||
|
${OTHERSCRIPT} ${CONFIG} ${2}
|
||||||
|
ovs-vsctl -- --may-exist add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
|
||||||
|
;;
|
||||||
|
OVSIntPort)
|
||||||
|
/sbin/ifup "$OVS_BRIDGE"
|
||||||
|
ovs-vsctl -- --may-exist add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS -- set Interface "$DEVICE" type=internal ${OVS_EXTRA+-- $OVS_EXTRA}
|
||||||
|
${OTHERSCRIPT} ${CONFIG} ${2}
|
||||||
|
;;
|
||||||
|
OVSBond)
|
||||||
|
/sbin/ifup "$OVS_BRIDGE"
|
||||||
|
for _iface in $BOND_IFACES; do
|
||||||
|
/sbin/ifup ${_iface}
|
||||||
|
done
|
||||||
|
ovs-vsctl -- --fake-iface add-bond "$OVS_BRIDGE" "$DEVICE" ${BOND_IFACES} $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
|
||||||
|
${OTHERSCRIPT} ${CONFIG} ${2}
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo $"Invalid OVS interface type $TYPE"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
@ -35,17 +35,19 @@ make %{_smp_mflags}
|
|||||||
%install
|
%install
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
make install DESTDIR=$RPM_BUILD_ROOT
|
make install DESTDIR=$RPM_BUILD_ROOT
|
||||||
install -d -m 755 $RPM_BUILD_ROOT/etc
|
for base in \
|
||||||
install -d -m 755 $RPM_BUILD_ROOT/etc/init.d
|
etc_init.d_openvswitch \
|
||||||
install -m 755 rhel/etc_init.d_openvswitch \
|
etc_logrotate.d_openvswitch \
|
||||||
$RPM_BUILD_ROOT/etc/init.d/openvswitch
|
etc_sysconfig_network-scripts_ifup-ovs \
|
||||||
install -d -m 755 $RPM_BUILD_ROOT/etc/sysconfig
|
etc_sysconfig_network-scripts_ifdown-ovs \
|
||||||
install -d -m 755 $RPM_BUILD_ROOT/etc/logrotate.d
|
usr_share_openvswitch_scripts_sysconfig.template; do
|
||||||
install -m 755 rhel/etc_logrotate.d_openvswitch \
|
dst=$RPM_BUILD_ROOT/$(echo $base | sed 's,_,/,g')
|
||||||
$RPM_BUILD_ROOT/etc/logrotate.d/openvswitch
|
install -d -m755 "$(dirname $dst)"
|
||||||
install -d -m 755 $RPM_BUILD_ROOT/usr/share/openvswitch/scripts
|
install rhel/$base "$dst"
|
||||||
install -m 755 rhel/usr_share_openvswitch_scripts_sysconfig.template \
|
done
|
||||||
$RPM_BUILD_ROOT/usr/share/openvswitch/scripts/sysconfig.template
|
docdir=$RPM_BUILD_ROOT/usr/share/doc/openvswitch-%{version}
|
||||||
|
install -d -m755 "$docdir"
|
||||||
|
install rhel/README.RHEL "$docdir"
|
||||||
install python/compat/uuid.py $RPM_BUILD_ROOT/usr/share/openvswitch/python
|
install python/compat/uuid.py $RPM_BUILD_ROOT/usr/share/openvswitch/python
|
||||||
install python/compat/argparse.py $RPM_BUILD_ROOT/usr/share/openvswitch/python
|
install python/compat/argparse.py $RPM_BUILD_ROOT/usr/share/openvswitch/python
|
||||||
|
|
||||||
@ -100,6 +102,8 @@ exit 0
|
|||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
/etc/init.d/openvswitch
|
/etc/init.d/openvswitch
|
||||||
/etc/logrotate.d/openvswitch
|
/etc/logrotate.d/openvswitch
|
||||||
|
/etc/sysconfig/network-scripts/ifup-ovs
|
||||||
|
/etc/sysconfig/network-scripts/ifdown-ovs
|
||||||
/etc/openvswitch/bugtool-plugins/*
|
/etc/openvswitch/bugtool-plugins/*
|
||||||
/usr/bin/ovs-appctl
|
/usr/bin/ovs-appctl
|
||||||
/usr/bin/ovs-benchmark
|
/usr/bin/ovs-benchmark
|
||||||
@ -142,4 +146,5 @@ exit 0
|
|||||||
/usr/share/openvswitch/scripts/ovs-save
|
/usr/share/openvswitch/scripts/ovs-save
|
||||||
/usr/share/openvswitch/scripts/sysconfig.template
|
/usr/share/openvswitch/scripts/sysconfig.template
|
||||||
/usr/share/openvswitch/vswitch.ovsschema
|
/usr/share/openvswitch/vswitch.ovsschema
|
||||||
|
/usr/share/doc/openvswitch-%{version}/README.RHEL
|
||||||
/var/lib/openvswitch
|
/var/lib/openvswitch
|
||||||
|
Loading…
x
Reference in New Issue
Block a user