Bug 3615: Fib should be in operational datastore 38/21938/11
authorAnuradha Raju <anuradha.raju@ericsson.com>
Fri, 5 Jun 2015 10:17:25 +0000 (15:47 +0530)
committerAnuradha Raju <anuradha.raju@ericsson.com>
Tue, 9 Jun 2015 11:52:52 +0000 (11:52 +0000)
1.Changes made for listen to ,read from and write to operational ds.
2.made config-false and attributes mandatory.

Change-Id: I154fb76523a40adbdecca5a51d34c887b3bd9ed9
Signed-off-by: Anuradha Raju <anuradha.raju@ericsson.com>
(cherry picked from commit fe698d22879f0282bdd1fa68ccc9200bcc3fff53)

bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/bgpmanager/FibDSWriter.java
bgpmanager/bgpmanager-impl/src/test/java/org/opendaylight/vpnservice/bgpmanager/test/MockFibManager.java
fibmanager/fibmanager-api/src/main/yang/odl-fib.yang
fibmanager/fibmanager-impl/src/main/java/org/opendaylight/vpnservice/fibmanager/FibManager.java
vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnManager.java

index 0a0415fde9a555e8486684d4c5e412ba702f2821..d9ecf4c84eb1e12f40f4bf3ca30bae84ee897f44 100644 (file)
@@ -56,7 +56,7 @@ public class FibDSWriter {
         VrfTables vrfTableNew = new VrfTablesBuilder().setRouteDistinguisher(rd).
             setVrfEntry(vrfEntryList).build();
 
-        write(LogicalDatastoreType.CONFIGURATION, vrfTableId, vrfTableNew);
+        write(LogicalDatastoreType.OPERATIONAL, vrfTableId, vrfTableNew);
 
     }
 
@@ -67,18 +67,18 @@ public class FibDSWriter {
         InstanceIdentifierBuilder<VrfEntry> idBuilder =
             InstanceIdentifier.builder(FibEntries.class).child(VrfTables.class, new VrfTablesKey(rd)).child(VrfEntry.class, new VrfEntryKey(prefix));
         InstanceIdentifier<VrfEntry> vrfEntryId = idBuilder.build();
-        delete(LogicalDatastoreType.CONFIGURATION, vrfEntryId);
+        delete(LogicalDatastoreType.OPERATIONAL, vrfEntryId);
 
     }
 
     public synchronized void removeVrfFromDS(String rd) {
-        logger.debug("Removing vrf table for rd {}", rd);
+        logger.debug("Removing vrf table for  rd {}", rd);
 
         InstanceIdentifierBuilder<VrfTables> idBuilder =
                 InstanceIdentifier.builder(FibEntries.class).child(VrfTables.class, new VrfTablesKey(rd));
         InstanceIdentifier<VrfTables> vrfTableId = idBuilder.build();
 
-        delete(LogicalDatastoreType.CONFIGURATION, vrfTableId);
+        delete(LogicalDatastoreType.OPERATIONAL, vrfTableId);
 
     }
 
index e395d969531d8c22847280d374bdab6c7a446a38..a9b9fdb0dd79bea2beb5f24281c8927610378600 100644 (file)
@@ -25,7 +25,7 @@ public class MockFibManager extends AbstractMockFibManager<VrfEntry> {
     }
 
     private void registerListener(final DataBroker db) {
-        final DataTreeIdentifier<VrfEntry> treeId = new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, getWildCardPath());
+        final DataTreeIdentifier<VrfEntry> treeId = new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL, getWildCardPath());
         try {
             listenerRegistration = db.registerDataTreeChangeListener(treeId, MockFibManager.this);
         } catch (final Exception e) {
@@ -55,7 +55,7 @@ public class MockFibManager extends AbstractMockFibManager<VrfEntry> {
                     }
                     break;
                 default:
-                    throw new IllegalArgumentException("Unhandled modification type " + mod.getModificationType());
+                    throw new IllegalArgumentException("Unhandled modification  type " + mod.getModificationType());
                 }
             }
      }
index bb5b7202212e73ea71c8ae4ed111a5c5e10ad2e0..bea6c951615dc786d4fe01ebd202407b43d63dad 100644 (file)
@@ -1,36 +1,46 @@
 module odl-fib {
-       namespace "urn:opendaylight:vpnservice:fibmanager";
-       prefix odl-fib;
-       
-       revision "2015-03-30" {
-               description "FIB Manager module";
-       }
-       
-       grouping ipv4Entries{
-               list ipv4Entry{
-                       key  "destPrefix";
-                       leaf destPrefix {type string;}
-                       leaf nextHopAddress {type string;}
-               }
-       }
+    namespace "urn:opendaylight:vpnservice:fibmanager";
+    prefix odl-fib;
 
-       grouping vrfEntries{
-               list vrfEntry{
-                       key  "destPrefix";
-                       leaf destPrefix {type string;}
-                       leaf label {type uint32;}
-                       leaf nextHopAddress {type string;}
-               }
-       }
+    revision "2015-03-30" {
+        description "FIB Manager module";
+    }
 
-       container fibEntries {
-               list vrfTables{
-                       key "routeDistinguisher";
-                       leaf routeDistinguisher {type string;}
-                       uses vrfEntries;
-               }
-               container ipv4Table{
-                       uses  ipv4Entries;                      
-               }
-       }
+    grouping ipv4Entries{
+        list ipv4Entry{
+            key  "destPrefix";
+            leaf destPrefix {type string;}
+            leaf nextHopAddress {type string;}
+        }
+    }
+
+    grouping vrfEntries{
+        list vrfEntry{
+            key  "destPrefix";
+            leaf destPrefix {
+                type string;
+                mandatory true;
+            }
+            leaf label {
+                type uint32;
+                mandatory true;
+            }
+            leaf nextHopAddress {
+                type string;
+            }
+        }
+    }
+
+    container fibEntries {
+        config false;
+        list vrfTables{
+            key "routeDistinguisher";
+            leaf routeDistinguisher {type string;}
+            uses vrfEntries;
+        }
+
+        container ipv4Table{
+            uses  ipv4Entries;
+        }
+    }
 }
\ No newline at end of file
index 363536b4523429d729d4240ecc801b4987fa0ec2..e38c84deeec6a11e59bab4d32b18506aa5dfc933 100644 (file)
@@ -116,7 +116,7 @@ public class FibManager extends AbstractDataChangeListener<VrfEntry> implements
 
   private void registerListener(final DataBroker db) {
     try {
-      listenerRegistration = db.registerDataChangeListener(LogicalDatastoreType.CONFIGURATION,
+      listenerRegistration = db.registerDataChangeListener(LogicalDatastoreType.OPERATIONAL,
                                                            getWildCardPath(), FibManager.this, DataChangeScope.SUBTREE);
     } catch (final Exception e) {
       LOG.error("FibManager DataChange listener registration fail!", e);
@@ -271,7 +271,7 @@ public class FibManager extends AbstractDataChangeListener<VrfEntry> implements
     try {
       destPrefix = InetAddress.getByName(ipAddress);
     } catch (UnknownHostException e) {
-      LOG.error("UnknowHostException in addRoute. Failed to add Route for ipPrefix {}", vrfEntry.getDestPrefix());
+      LOG.error("UnknowHostException in addRoute. Failed  to add Route for ipPrefix {}", vrfEntry.getDestPrefix());
       return;
     }
 
@@ -365,7 +365,7 @@ public class FibManager extends AbstractDataChangeListener<VrfEntry> implements
   public void populateFibOnNewDpn(BigInteger dpnId, long vpnId, String rd) {
     LOG.trace("New dpn {} for vpn {} : populateFibOnNewDpn", dpnId, rd);
     InstanceIdentifier<VrfTables> id = buildVrfId(rd);
-    Optional<VrfTables> vrfTable = read(LogicalDatastoreType.CONFIGURATION, id);
+    Optional<VrfTables> vrfTable = read(LogicalDatastoreType.OPERATIONAL, id);
     if(vrfTable.isPresent()) {
       for(VrfEntry vrfEntry : vrfTable.get().getVrfEntry()) {
         addRouteInternal(dpnId, vpnId, vrfTable.get().getKey(), vrfEntry);
@@ -376,7 +376,7 @@ public class FibManager extends AbstractDataChangeListener<VrfEntry> implements
   public void cleanUpDpnForVpn(BigInteger dpnId, long vpnId, String rd) {
     LOG.trace("Remove dpn {} for vpn {} : cleanUpDpnForVpn", dpnId, rd);
     InstanceIdentifier<VrfTables> id = buildVrfId(rd);
-    Optional<VrfTables> vrfTable = read(LogicalDatastoreType.CONFIGURATION, id);
+    Optional<VrfTables> vrfTable = read(LogicalDatastoreType.OPERATIONAL, id);
     if(vrfTable.isPresent()) {
       for(VrfEntry vrfEntry : vrfTable.get().getVrfEntry()) {
         deleteRoute(dpnId, vpnId, vrfTable.get().getKey(), vrfEntry);
index 435130c3a8ab6a63a7adf8bcc8e0a76998f5dfce..8e44ce2bbccd4b4298fa61a47d171893df7921e1 100644 (file)
@@ -86,10 +86,10 @@ public class VpnManager extends AbstractDataChangeListener<VpnInstance> implemen
         try {
             listenerRegistration = db.registerDataChangeListener(LogicalDatastoreType.CONFIGURATION,
                     getWildCardPath(), VpnManager.this, DataChangeScope.SUBTREE);
-            fibListenerRegistration = db.registerDataChangeListener(LogicalDatastoreType.CONFIGURATION,
+            fibListenerRegistration = db.registerDataChangeListener(LogicalDatastoreType.OPERATIONAL,
                     getFibEntryListenerPath(), fibListener, DataChangeScope.BASE);
         } catch (final Exception e) {
-            LOG.error("VPN Service DataChange listener registration fail!", e);
+            LOG.error("VPN Service DataChange listener registration fail !", e);
             throw new IllegalStateException("VPN Service registration Listener failed.", e);
         }
     }