BUG 7488 Add option to disable auto bridge creation 75/51175/3
authorVishal Thapar <vishal.thapar@ericsson.com>
Mon, 30 Jan 2017 07:08:12 +0000 (12:38 +0530)
committerSam Hague <shague@redhat.com>
Tue, 31 Jan 2017 13:54:38 +0000 (13:54 +0000)
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 <vishal.thapar@ericsson.com>
vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanOvsdbNodeListener.java
vpnservice/elanmanager/elanmanager-impl/src/main/resources/initial/netvirt-elanmanager-config.xml
vpnservice/elanmanager/elanmanager-impl/src/main/yang/elanmanager-config.yang

index 6c758f2138e2b4166f0faac44ac99b5ec9480945..045b4779ab4c92dc65c0c49aab49f4ddc3e5033c 100644 (file)
@@ -33,7 +33,8 @@ public class ElanOvsdbNodeListener extends AbstractDataChangeListener<Node> 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<Node> 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<Node> impl
     }
 
     private void doNodeUpdate(Node node) {
-        bridgeMgr.processNodePrep(node, generateIntBridgeMac);
+        if (autoCreateBridge) {
+            bridgeMgr.processNodePrep(node, generateIntBridgeMac);
+        }
     }
 }
index 582187872e137cec82661cc0c578b73006b756b8..157c34d688a088513c6fd223eb70b5b16bdfb533 100644 (file)
@@ -1,4 +1,9 @@
 <elanmanager-config xmlns="urn:opendaylight:netvirt:elan:config">
+  <auto-create-bridge>true</auto-create-bridge>
   <int-bridge-gen-mac>true</int-bridge-gen-mac>
   <temp-smac-learn-timeout>10</temp-smac-learn-timeout>
+  <!--
+  <controller-max-backoff>5000</controller-max-backoff>
+  <controller-inactivity-probe>5000</controller-inactivity-probe>
+  -->
 </elanmanager-config>
index d496797af4dd47bc46217bfcceb98af5a47718a0..9b7f3c64829c1c9084d92ecc854483d030fc3c20 100644 (file)
@@ -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
+}