disable dpId generation on restart 86/48086/2
authorKonsta Pozdeev <konsta.pozdeev@hpe.com>
Mon, 7 Nov 2016 16:18:53 +0000 (18:18 +0200)
committerKonsta Pozdeev <konsta.pozdeev@hpe.com>
Tue, 8 Nov 2016 08:18:02 +0000 (10:18 +0200)
Change-Id: I2a9d0f136cd75cce52b49d44c10100698046aa52
Signed-off-by: Konsta Pozdeev <konsta.pozdeev@hpe.com>
netvirt/pom.xml
netvirt/src/main/java/org/opendaylight/unimgr/mef/netvirt/NodeConnectorListener.java
netvirt/src/main/resources/org/opendaylight/blueprint/netvirt-driver.xml

index a06d5af4a0edf315fddabb82719667d53624c0ef..d6e524559effa3946d91a57229109992ad335c95 100644 (file)
       <artifactId>elanmanager-api</artifactId>
       <version>${vpnservices.version}</version>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.netvirt</groupId>
+      <artifactId>elanmanager-impl</artifactId>
+      <version>${vpnservices.version}</version>
+    </dependency> 
      <dependency>
       <groupId>org.opendaylight.genius</groupId>
       <artifactId>arputil-api</artifactId>
index d58f323260fae0a65fa1a4a47d39288d287e0619..db8c3dbb17a4df0300701cc1dec41167057ac3eb 100644 (file)
@@ -25,8 +25,6 @@ import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.inte
 import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.interfaces.rev150526.mef.interfaces.unis.uni.physical.layers.LinksBuilder;
 import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.interfaces.rev150526.mef.interfaces.unis.uni.physical.layers.links.Link;
 import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.interfaces.rev150526.mef.interfaces.unis.uni.physical.layers.links.LinkBuilder;
-import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.topology.rev150526.mef.topology.devices.Device;
-import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.topology.rev150526.mef.topology.devices.DeviceBuilder;
 import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.topology.rev150526.mef.topology.devices.device.interfaces.InterfaceBuilder;
 import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.types.rev150526.Identifier45;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector;
@@ -34,6 +32,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeCon
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.config.rev150710.ElanConfig;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.config.rev150710.ElanConfigBuilder;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
@@ -45,12 +45,13 @@ import com.google.common.util.concurrent.CheckedFuture;
 public class NodeConnectorListener extends UnimgrDataTreeChangeListener<FlowCapableNodeConnector> {
 
     private static final Logger log = LoggerFactory.getLogger(NodeConnectorListener.class);
+    private static boolean generateMac = false;
     private static boolean handleRemovedNodeConnectors = false;
     private ListenerRegistration<NodeConnectorListener> evcListenerRegistration;
 
-    public NodeConnectorListener(final DataBroker dataBroker) {
+    public NodeConnectorListener(final DataBroker dataBroker, boolean generateMac) {
         super(dataBroker);
-
+        NodeConnectorListener.generateMac = generateMac;
         registerListener();
     }
 
@@ -60,6 +61,8 @@ public class NodeConnectorListener extends UnimgrDataTreeChangeListener<FlowCapa
                     LogicalDatastoreType.OPERATIONAL, getInstanceIdentifier());
             evcListenerRegistration = dataBroker.registerDataTreeChangeListener(dataTreeIid, this);
             log.info("NodeConnectorListener created and registered");
+
+            configIntegrationBridge();
         } catch (final Exception e) {
             log.error("Node connector listener registration failed !", e);
             throw new IllegalStateException("Node connector listener registration failed.", e);
@@ -216,4 +219,16 @@ public class NodeConnectorListener extends UnimgrDataTreeChangeListener<FlowCapa
             FlowCapableNodeConnector original, FlowCapableNodeConnector update) {
 
     }
+
+    private void configIntegrationBridge() {
+        if (generateMac == true) {// default for netvirt
+            return;
+        }
+
+        ElanConfigBuilder elanConfigBuilder = new ElanConfigBuilder();
+        elanConfigBuilder.setIntBridgeGenMac(false);
+        InstanceIdentifier<ElanConfig> id = InstanceIdentifier.builder(ElanConfig.class).build();
+
+        MdsalUtils.syncUpdate(dataBroker, LogicalDatastoreType.CONFIGURATION, id, elanConfigBuilder.build());
+    }
 }
index 6d917ee4500a89fee2392f3a405b57628172d7c4..7ce0b3437c4d87952e44b285f23d8e4f7f1ef8d7 100644 (file)
@@ -1,44 +1,45 @@
 <!-- Copyright (c) 2016 Hewlett Packard Enterprise, Co. and others. All rights 
-  reserved. This program and the accompanying materials are made available 
-  under the terms of the Eclipse Public License v1.0 which accompanies this 
-  distribution, and is available at http://www.eclipse.org/legal/epl-v10.html -->
+       reserved. This program and the accompanying materials are made available 
+       under the terms of the Eclipse Public License v1.0 which accompanies this 
+       distribution, and is available at http://www.eclipse.org/legal/epl-v10.html -->
 <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
-  xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
-  odl:use-default-for-reference-types="true">
+       xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
+       odl:use-default-for-reference-types="true">
 
-  <reference id="dataBroker"
-    interface="org.opendaylight.controller.md.sal.binding.api.DataBroker" />
-  <reference id="notificationPublishService"
-    interface="org.opendaylight.controller.md.sal.binding.api.NotificationPublishService" />
-  <odl:rpc-service id="odlArputilService"
-    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.arputil.rev160406.OdlArputilService" />
-  
-  <bean class="org.opendaylight.unimgr.mef.netvirt.EvcListener">
-    <argument index="0" ref="dataBroker" />
-  </bean>
+       <reference id="dataBroker"
+               interface="org.opendaylight.controller.md.sal.binding.api.DataBroker" />
+       <reference id="notificationPublishService"
+               interface="org.opendaylight.controller.md.sal.binding.api.NotificationPublishService" />
+       <odl:rpc-service id="odlArputilService"
+               interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.arputil.rev160406.OdlArputilService" />
 
-  <bean class="org.opendaylight.unimgr.mef.netvirt.NodeConnectorListener">
-    <argument index="0" ref="dataBroker" />
-  </bean>
-  <bean class="org.opendaylight.unimgr.mef.netvirt.ElanListener">
-    <argument index="0" ref="dataBroker" />
-  </bean>
-  <bean class="org.opendaylight.unimgr.mef.netvirt.ElanInterfaceListener">
-    <argument index="0" ref="dataBroker" />
-  </bean>
+       <bean class="org.opendaylight.unimgr.mef.netvirt.EvcListener">
+               <argument index="0" ref="dataBroker" />
+       </bean>
+
+       <bean class="org.opendaylight.unimgr.mef.netvirt.NodeConnectorListener">
+               <argument index="0" ref="dataBroker" />
+               <argument index="1" value="false" />
+       </bean>
+       <bean class="org.opendaylight.unimgr.mef.netvirt.ElanListener">
+               <argument index="0" ref="dataBroker" />
+       </bean>
+       <bean class="org.opendaylight.unimgr.mef.netvirt.ElanInterfaceListener">
+               <argument index="0" ref="dataBroker" />
+       </bean>
+
+       <!-- <bean class="org.opendaylight.unimgr.mef.netvirt.TenantlessEvcListener"> -->
+       <!-- <argument index="0" ref="dataBroker" /> -->
+       <!-- </bean> -->
+
+       <!-- <bean class="org.opendaylight.unimgr.mef.netvirt.TenantUniListener"> -->
+       <!-- <argument index="0" ref="dataBroker" /> -->
+       <!-- </bean> -->
+
+       <bean class="org.opendaylight.unimgr.mef.netvirt.IpvcListener">
+               <argument ref="dataBroker" />
+               <argument ref="notificationPublishService" />
+               <argument ref="odlArputilService" />
+       </bean>
 
-<!--   <bean class="org.opendaylight.unimgr.mef.netvirt.TenantlessEvcListener"> -->
-<!--     <argument index="0" ref="dataBroker" /> -->
-<!--   </bean> -->
-  
-<!--   <bean class="org.opendaylight.unimgr.mef.netvirt.TenantUniListener"> -->
-<!--     <argument index="0" ref="dataBroker" /> -->
-<!--   </bean>   -->
-  
-  <bean class="org.opendaylight.unimgr.mef.netvirt.IpvcListener">
-    <argument ref="dataBroker" />
-    <argument ref="notificationPublishService" />
-    <argument ref="odlArputilService" />
-  </bean>
-  
 </blueprint>
\ No newline at end of file