@@ -47,16 +47,16 @@ insert_mod_if_required () {
# If the bridge module is loaded, then that might be blocking
# openvswitch. Try to unload it, if there are no bridges.
- test -e /sys/module/bridge || return 1
+ test -e /sys/module/bridge || "X$USE_ODP" == "Xyes" && return 0 || return 1
bridges=`echo /sys/class/net/*/bridge | sed 's,/sys/class/net/,,g;s,/bridge,,g'`
if test "$bridges" != "*"; then
log_warning_msg "not removing bridge module because bridges exist ($bridges)"
return 1
fi
- action "removing bridge module" rmmod bridge || return 1
+ action "removing bridge module" rmmod bridge || "X$USE_ODP" == "Xyes" && return 0 || return 1
# Try loading openvswitch again.
- action "Inserting openvswitch module" modprobe openvswitch
+ action "Inserting openvswitch module" modprobe openvswitch || "X$USE_ODP" == "Xyes" && return 0
}
ovs_vsctl () {
@@ -225,7 +225,9 @@ add_managers () {
start_forwarding () {
check_force_cores
- insert_mod_if_required || return 1
+ if test X"$USE_ODP" != Xno; then
+ insert_mod_if_required || return 1
+ fi
if daemon_is_running ovs-vswitchd; then
log_success_msg "ovs-vswitchd is already running"
Signed-off-by: Ciprian Barbu <ciprian.barbu@linaro.org> --- ODP netdev does not rely on kernel datapath switching, this makes it possible to start in ODP mode without the kernel module. utilities/ovs-ctl.in | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)