Add support for creating a userspace bridge and the four DPDK port
types via network scripts + basic documentation.

Signed-off-by: Panu Matilainen <[email protected]>
---
 rhel/README.RHEL                              | 43 +++++++++++++++++++++++++++
 rhel/etc_sysconfig_network-scripts_ifdown-ovs |  5 +++-
 rhel/etc_sysconfig_network-scripts_ifup-ovs   | 24 +++++++++++++--
 3 files changed, 69 insertions(+), 3 deletions(-)

diff --git a/rhel/README.RHEL b/rhel/README.RHEL
index 2620674..54c1b44 100644
--- a/rhel/README.RHEL
+++ b/rhel/README.RHEL
@@ -27,6 +27,19 @@ assignments.  The following OVS-specific variable names are 
supported:
 
         * "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, eg "dpdkr0")
+
+        * "OVSDPDKVhostPort" if <name> is a DPDK vhost-cuse port
+
+        * "OVSDPDKVhostUserPort" if <name> is a DPDK vhost-user port
+
     - OVS_BRIDGE: If TYPE is anything other than "OVSBridge", set to
       the name of the OVS bridge to which the port should be attached.
 
@@ -206,6 +219,36 @@ 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
 
 Reporting Bugs
 --------------
diff --git a/rhel/etc_sysconfig_network-scripts_ifdown-ovs 
b/rhel/etc_sysconfig_network-scripts_ifdown-ovs
index 5f78f9c..46b6ca5 100755
--- a/rhel/etc_sysconfig_network-scripts_ifdown-ovs
+++ b/rhel/etc_sysconfig_network-scripts_ifdown-ovs
@@ -46,7 +46,7 @@ else
 fi
 
 case "$TYPE" in
-       OVSBridge)
+       OVSBridge|OVSUserBridge)
                ${OTHERSCRIPT} ${CONFIG} $2
                retval=$?
                ovs-vsctl -t ${TIMEOUT} -- --if-exists del-br "$DEVICE"
@@ -59,6 +59,9 @@ case "$TYPE" in
        OVSPatchPort|OVSTunnel)
                ovs-vsctl -t ${TIMEOUT} -- --if-exists del-port "$OVS_BRIDGE" 
"$DEVICE"
                ;;
+       OVSDPDKPort|OVSDPDKRPort|OVSDPDKVhostPort|OVSDPDKVhostUserPort)
+               ovs-vsctl -t ${TIMEOUT} -- --if-exists del-port "$OVS_BRIDGE" 
"$DEVICE"
+               ;;
        *)
                echo $"Invalid OVS interface type $TYPE"
                exit 1
diff --git a/rhel/etc_sysconfig_network-scripts_ifup-ovs 
b/rhel/etc_sysconfig_network-scripts_ifup-ovs
index 478c5c3..f3fc05e 100755
--- a/rhel/etc_sysconfig_network-scripts_ifup-ovs
+++ b/rhel/etc_sysconfig_network-scripts_ifup-ovs
@@ -72,15 +72,19 @@ else
 fi
 
 case "$TYPE" in
-       OVSBridge)
+       OVSBridge|OVSUserBridge)
                # If bridge already exists and is up, it has been configured 
through
                # other cases like OVSPort, OVSIntPort and OVSBond. If it is 
down or
                # it does not exist, create it. It is possible for a bridge to 
exist
                # because it remained in the OVSDB for some reason, but it 
won't be up.
+               if [ "${TYPE}" = "OVSUserBridge" ]; then
+                       DATAPATH="netdev"
+               fi
                if check_device_down "${DEVICE}"; then
                        ovs-vsctl -t ${TIMEOUT} -- --may-exist add-br "$DEVICE" 
$OVS_OPTIONS \
                        ${OVS_EXTRA+-- $OVS_EXTRA} \
-                       ${STP+-- set bridge "$DEVICE" stp_enable="${STP}"}
+                       ${STP+-- set bridge "$DEVICE" stp_enable="${STP}"} \
+                       ${DATAPATH+-- set bridge "$DEVICE" 
datapath_type="$DATAPATH"}
                else
                        OVSBRIDGECONFIGURED="yes"
                fi
@@ -150,6 +154,22 @@ case "$TYPE" in
                ifup_ovs_bridge
                ovs-vsctl -t ${TIMEOUT} -- --may-exist add-port "$OVS_BRIDGE" 
"$DEVICE" $OVS_OPTIONS -- set Interface "$DEVICE" type=patch 
options:peer="${OVS_PATCH_PEER}" ${OVS_EXTRA+-- $OVS_EXTRA}
                ;;
+       OVSDPDKPort)
+               ifup_ovs_bridge
+               ovs-vsctl -t ${TIMEOUT} -- --may-exist add-port "$OVS_BRIDGE" 
"$DEVICE" $OVS_OPTIONS -- set Interface "$DEVICE" type=dpdk ${OVS_EXTRA+-- 
$OVS_EXTRA}
+               ;;
+       OVSDPDKRPort)
+               ifup_ovs_bridge
+               ovs-vsctl -t ${TIMEOUT} -- --may-exist add-port "$OVS_BRIDGE" 
"$DEVICE" $OVS_OPTIONS -- set Interface "$DEVICE" type=dpdkr ${OVS_EXTRA+-- 
$OVS_EXTRA}
+               ;;
+       OVSDPDVhostPort)
+               ifup_ovs_bridge
+               ovs-vsctl -t ${TIMEOUT} -- --may-exist add-port "$OVS_BRIDGE" 
"$DEVICE" $OVS_OPTIONS -- set Interface "$DEVICE" type=dpdkvhost ${OVS_EXTRA+-- 
$OVS_EXTRA}
+               ;;
+       OVSDPDKVhostUserPort)
+               ifup_ovs_bridge
+               ovs-vsctl -t ${TIMEOUT} -- --may-exist add-port "$OVS_BRIDGE" 
"$DEVICE" $OVS_OPTIONS -- set Interface "$DEVICE" type=dpdkvhostuser 
${OVS_EXTRA+-- $OVS_EXTRA}
+               ;;
        *)
                echo $"Invalid OVS interface type $TYPE"
                exit 1
-- 
2.5.0

_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to