openvswitch: adds new UCI section ovs_bridge
This new config section in package openvswitch supports creating a named bridge, and setting its' OpenFlow controller end-point. An example config is included in /rom/etc/config/openvswitch Signed-off-by: Simon Kinane <skinane@fb.com>
This commit is contained in:
parent
f4897d2ae8
commit
d7507146e8
4 changed files with 44 additions and 2 deletions
|
@ -17,7 +17,7 @@ include ./openvswitch.mk
|
|||
#
|
||||
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
|
||||
|
|
|
@ -60,3 +60,20 @@ E.g. replace in-tree datapath module with upstream version
|
|||
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 |
|
||||
|
|
|
@ -6,3 +6,8 @@ config ovn_northd north
|
|||
|
||||
config ovn_controller controller
|
||||
option disabled 1
|
||||
|
||||
config ovs_bridge
|
||||
option disabled 1
|
||||
option name 'my-bridge'
|
||||
option controller 'tcp:192.168.0.1'
|
|
@ -36,6 +36,8 @@ ovs_action() {
|
|||
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() {
|
||||
|
@ -51,7 +53,7 @@ ovs_xx() {
|
|||
status|stop) ;;
|
||||
*)
|
||||
config_get_bool disabled "$cfg" disabled 0
|
||||
[ "$disabled" -le 0 ] || return
|
||||
[ "$disabled" == "0" ] || return
|
||||
;;
|
||||
esac
|
||||
|
||||
|
@ -65,3 +67,21 @@ ovs_xx() {
|
|||
;;
|
||||
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"
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue