From: Vishal Thapar Date: Mon, 30 Jan 2017 07:08:12 +0000 (+0530) Subject: BUG 7488 Add option to disable auto bridge creation X-Git-Tag: release/carbon~451 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=1dd6d15f82b1f8f4b9897cca5c8ca71f6a49f898;p=netvirt.git BUG 7488 Add option to disable auto bridge creation This adds a new param to elan-config, auto-create-bridge that defaults to true. When false, netvirt will neither try to create br-int if it doesn't exist, nor add any configuration if it exists. This is to be used in scenarios where br-int is already created and configured. Change-Id: I39c2770a0c0351d9e1b1fecd2642f473650e6c52 Signed-off-by: Vishal Thapar --- diff --git a/vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanOvsdbNodeListener.java b/vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanOvsdbNodeListener.java index 6c758f2138..045b4779ab 100644 --- a/vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanOvsdbNodeListener.java +++ b/vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanOvsdbNodeListener.java @@ -33,7 +33,8 @@ public class ElanOvsdbNodeListener extends AbstractDataChangeListener impl private final DataBroker dataBroker; private final ElanBridgeManager bridgeMgr; private final IElanService elanProvider; - private boolean generateIntBridgeMac; + private final boolean generateIntBridgeMac; + private final boolean autoCreateBridge; /** * Constructor. @@ -47,6 +48,7 @@ public class ElanOvsdbNodeListener extends AbstractDataChangeListener impl final IElanService elanProvider) { super(Node.class); this.dataBroker = dataBroker; + autoCreateBridge = elanConfig.isAutoCreateBridge(); this.generateIntBridgeMac = elanConfig.isIntBridgeGenMac(); this.bridgeMgr = bridgeMgr; this.elanProvider = elanProvider; @@ -98,6 +100,8 @@ public class ElanOvsdbNodeListener extends AbstractDataChangeListener impl } private void doNodeUpdate(Node node) { - bridgeMgr.processNodePrep(node, generateIntBridgeMac); + if (autoCreateBridge) { + bridgeMgr.processNodePrep(node, generateIntBridgeMac); + } } } diff --git a/vpnservice/elanmanager/elanmanager-impl/src/main/resources/initial/netvirt-elanmanager-config.xml b/vpnservice/elanmanager/elanmanager-impl/src/main/resources/initial/netvirt-elanmanager-config.xml index 582187872e..157c34d688 100644 --- a/vpnservice/elanmanager/elanmanager-impl/src/main/resources/initial/netvirt-elanmanager-config.xml +++ b/vpnservice/elanmanager/elanmanager-impl/src/main/resources/initial/netvirt-elanmanager-config.xml @@ -1,4 +1,9 @@ + true true 10 + diff --git a/vpnservice/elanmanager/elanmanager-impl/src/main/yang/elanmanager-config.yang b/vpnservice/elanmanager/elanmanager-impl/src/main/yang/elanmanager-config.yang index d496797af4..9b7f3c6482 100644 --- a/vpnservice/elanmanager/elanmanager-impl/src/main/yang/elanmanager-config.yang +++ b/vpnservice/elanmanager/elanmanager-impl/src/main/yang/elanmanager-config.yang @@ -13,6 +13,11 @@ module elan-config { container elan-config { config true; + leaf auto-create-bridge { + description "If true, auto-create default bridge"; + type boolean; + default true; + } leaf int-bridge-gen-mac { description "If true, generate a mac, else use the bridge generated mac"; type boolean; @@ -38,4 +43,4 @@ module elan-config { default 10; } } -} \ No newline at end of file +}