From: Anuradha Raju Date: Fri, 5 Jun 2015 10:17:25 +0000 (+0530) Subject: Bug 3615: Fib should be in operational datastore X-Git-Tag: release/beryllium~115 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=vpnservice.git;a=commitdiff_plain;h=7a3101854c85f9fdc1fbb54d794d05355d0e4b94 Bug 3615: Fib should be in operational datastore 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 (cherry picked from commit fe698d22879f0282bdd1fa68ccc9200bcc3fff53) --- diff --git a/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/bgpmanager/FibDSWriter.java b/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/bgpmanager/FibDSWriter.java index 0a0415fd..d9ecf4c8 100644 --- a/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/bgpmanager/FibDSWriter.java +++ b/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/bgpmanager/FibDSWriter.java @@ -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 idBuilder = InstanceIdentifier.builder(FibEntries.class).child(VrfTables.class, new VrfTablesKey(rd)).child(VrfEntry.class, new VrfEntryKey(prefix)); InstanceIdentifier 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 idBuilder = InstanceIdentifier.builder(FibEntries.class).child(VrfTables.class, new VrfTablesKey(rd)); InstanceIdentifier vrfTableId = idBuilder.build(); - delete(LogicalDatastoreType.CONFIGURATION, vrfTableId); + delete(LogicalDatastoreType.OPERATIONAL, vrfTableId); } diff --git a/bgpmanager/bgpmanager-impl/src/test/java/org/opendaylight/vpnservice/bgpmanager/test/MockFibManager.java b/bgpmanager/bgpmanager-impl/src/test/java/org/opendaylight/vpnservice/bgpmanager/test/MockFibManager.java index e395d969..a9b9fdb0 100644 --- a/bgpmanager/bgpmanager-impl/src/test/java/org/opendaylight/vpnservice/bgpmanager/test/MockFibManager.java +++ b/bgpmanager/bgpmanager-impl/src/test/java/org/opendaylight/vpnservice/bgpmanager/test/MockFibManager.java @@ -25,7 +25,7 @@ public class MockFibManager extends AbstractMockFibManager { } private void registerListener(final DataBroker db) { - final DataTreeIdentifier treeId = new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, getWildCardPath()); + final DataTreeIdentifier 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 { } break; default: - throw new IllegalArgumentException("Unhandled modification type " + mod.getModificationType()); + throw new IllegalArgumentException("Unhandled modification type " + mod.getModificationType()); } } } diff --git a/fibmanager/fibmanager-api/src/main/yang/odl-fib.yang b/fibmanager/fibmanager-api/src/main/yang/odl-fib.yang index bb5b7202..bea6c951 100644 --- a/fibmanager/fibmanager-api/src/main/yang/odl-fib.yang +++ b/fibmanager/fibmanager-api/src/main/yang/odl-fib.yang @@ -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 diff --git a/fibmanager/fibmanager-impl/src/main/java/org/opendaylight/vpnservice/fibmanager/FibManager.java b/fibmanager/fibmanager-impl/src/main/java/org/opendaylight/vpnservice/fibmanager/FibManager.java index 363536b4..e38c84de 100644 --- a/fibmanager/fibmanager-impl/src/main/java/org/opendaylight/vpnservice/fibmanager/FibManager.java +++ b/fibmanager/fibmanager-impl/src/main/java/org/opendaylight/vpnservice/fibmanager/FibManager.java @@ -116,7 +116,7 @@ public class FibManager extends AbstractDataChangeListener 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 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 implements public void populateFibOnNewDpn(BigInteger dpnId, long vpnId, String rd) { LOG.trace("New dpn {} for vpn {} : populateFibOnNewDpn", dpnId, rd); InstanceIdentifier id = buildVrfId(rd); - Optional vrfTable = read(LogicalDatastoreType.CONFIGURATION, id); + Optional 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 implements public void cleanUpDpnForVpn(BigInteger dpnId, long vpnId, String rd) { LOG.trace("Remove dpn {} for vpn {} : cleanUpDpnForVpn", dpnId, rd); InstanceIdentifier id = buildVrfId(rd); - Optional vrfTable = read(LogicalDatastoreType.CONFIGURATION, id); + Optional vrfTable = read(LogicalDatastoreType.OPERATIONAL, id); if(vrfTable.isPresent()) { for(VrfEntry vrfEntry : vrfTable.get().getVrfEntry()) { deleteRoute(dpnId, vpnId, vrfTable.get().getKey(), vrfEntry); diff --git a/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnManager.java b/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnManager.java index 435130c3..8e44ce2b 100644 --- a/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnManager.java +++ b/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnManager.java @@ -86,10 +86,10 @@ public class VpnManager extends AbstractDataChangeListener 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); } }