summaryrefslogtreecommitdiff
path: root/net/openvswitch/files/openvswitch.init
diff options
context:
space:
mode:
Diffstat (limited to 'net/openvswitch/files/openvswitch.init')
-rwxr-xr-xnet/openvswitch/files/openvswitch.init18
1 files changed, 18 insertions, 0 deletions
diff --git a/net/openvswitch/files/openvswitch.init b/net/openvswitch/files/openvswitch.init
index 229e6869b..53259d513 100755
--- a/net/openvswitch/files/openvswitch.init
+++ b/net/openvswitch/files/openvswitch.init
@@ -187,6 +187,17 @@ ovs_bridge_validate_datapath_id() {
fi
}
+ovs_bridge_validate_datapath_desc() {
+ local dpdesc="$1"
+
+ if [ "$(echo $dpdesc | wc -c)" -le 255 ]; then
+ return 0
+ else
+ logger -t openvswitch "invalid datapath_desc: $dpdesc"
+ return 1
+ fi
+}
+
ovs_bridge_init() {
local cfg="$1"
@@ -208,6 +219,13 @@ ovs_bridge_init() {
}
}
+ config_get datapath_desc "$cfg" datapath_desc
+ [ -n "$datapath_desc" ] && {
+ ovs_bridge_validate_datapath_desc "$datapath_desc" && {
+ ovs-vsctl --if-exists set bridge "$name" other-config:dp-desc="$datapath_desc"
+ }
+ }
+
config_list_foreach "$cfg" "ports" ovs_bridge_port_add
config_foreach ovs_bridge_port_add_complex ovs_port "$name"
config_get_bool drop "$cfg" "drop_unknown_ports" 0