#
PKG_NAME:=openvswitch
PKG_VERSION:=$(ovs_version)
-PKG_RELEASE:=5
+PKG_RELEASE:=6
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.openvswitch.org/releases/
PKG_HASH:=dd5f727427e36cab22bdeae61529d8c8fccacc53d968cfa7658f7f935ddda531
opkg remove --force-depends kmod-openvswitch-intree
opkg install kmod-openvswitch
ovs-ctl force-reload-kmod
+
+# UCI configuration options
+
+There are 4 config section types in package openvswitch:
+ovs ovn_northd, ovn_controller & ovs_bridge.
+
+Each of these supports a disabled option, which should be
+set to 0 to launch the respective daemons.
+
+The ovs_bridge section also supports the options below,
+for initialising a virtual bridge with an OpenFlow controller.
+
+| Name | Type | Required | Default | Description |
+|------------|---------|----------|--------------------------------|------------------------------------------------------------|
+| disabled | boolean | no | 0 | If set to true, disable initialisation of the named bridge |
+| name | string | no | Inherits UCI config block name | The name of the switch in the OVS daemon |
+| controller | string | no | (none) | The endpoint of an OpenFlow controller for this bridge |
config ovn_controller controller
option disabled 1
+
+config ovs_bridge
+ option disabled 1
+ option name 'my-bridge'
+ option controller 'tcp:192.168.0.1'
\ No newline at end of file
for cfgtype in ovs ovn_northd ovn_controller; do
config_foreach "ovs_xx" "$cfgtype" "$action" "$cfgtype"
done
+
+ config_foreach ovs_bridge_init "ovs_bridge"
}
ovs_xx() {
status|stop) ;;
*)
config_get_bool disabled "$cfg" disabled 0
- [ "$disabled" -le 0 ] || return
+ [ "$disabled" == "0" ] || return
;;
esac
;;
esac
}
+
+ovs_bridge_init() {
+ local cfg="$1"
+
+ local disabled
+ local name
+ local controller
+
+ config_get_bool disabled "$cfg" disabled 0
+ [ "$disabled" == "0" ] || return
+
+ config_get name "$cfg" name $cfg
+ ovs-vsctl --may-exist add-br "$name"
+
+ config_get controller "$cfg" controller
+ [ -n "$controller" ] && \
+ ovs-vsctl set-controller "$name" "$controller"
+}