Support for multiple route paths
[netvirt.git] / vpnservice / fibmanager / fibmanager-api / src / main / java / org / opendaylight / netvirt / fibmanager / api / IFibManager.java
index 5fc44cdfaa8e5c4492b3040fb8d4bb0197466195..2de386c710088d3fcdabaec194e20670a04164d6 100644 (file)
@@ -9,56 +9,81 @@
 package org.opendaylight.netvirt.fibmanager.api;
 
 import com.google.common.util.concurrent.FutureCallback;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+
 import java.math.BigInteger;
 import java.util.List;
 
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.RouterInterface;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.vrfentries.VrfEntry;
 
 public interface IFibManager {
     void populateFibOnNewDpn(BigInteger dpnId, long vpnId, String rd,
-                             final FutureCallback<List<Void>> callback);
+                             FutureCallback<List<Void>> callback);
+
     void cleanUpExternalRoutesOnDpn(BigInteger dpnId, long vpnId, String rd,
                                     String localNextHopIp, String remoteNextHopIp);
+
     void populateExternalRoutesOnDpn(BigInteger localDpnId, long vpnId, String rd,
                                      String localNextHopIp, String remoteNextHopIp);
-    void cleanUpInternalRoutesOnDpn(final BigInteger dpnId, final long vpnId, final String rd,
-                                    final String localNextHopIp, final String remoteNextHopIp);
+
+    void cleanUpInternalRoutesOnDpn(BigInteger dpnId, long vpnId, String rd,
+                                    String localNextHopIp, String remoteNextHopIp);
+
     void populateInternalRoutesOnDpn(BigInteger localDpnId, long vpnId, String rd,
                                      String localNextHopIp, String remoteNextHopIp);
+
     void cleanUpDpnForVpn(BigInteger dpnId, long vpnId, String rd,
-                          final FutureCallback<List<Void>> callback);
+                          FutureCallback<List<Void>> callback);
+
     List<String> printFibEntries();
 
     // TODO Feels like this method is not used anywhere
-    void addStaticRoute(String prefix, String nextHop, String rd, int label);
+    void addStaticRoute(String vpnName, String prefix, String nextHop, String rd, int label);
+
     void deleteStaticRoute(String prefix, String nextHop, String rd);
+
     void setConfTransType(String service, String transportType);
+
     String getConfTransType();
+
     boolean isVPNConfigured();
+
     void writeConfTransTypeConfigDS();
+
     String getReqTransType();
+
     String getTransportTypeStr(String tunType);
 
-    void manageRemoteRouteOnDPN(final boolean action,
+    void manageRemoteRouteOnDPN(boolean action,
                                 BigInteger localDpnId,
                                 long vpnId,
-                                String  rd,
+                                String rd,
                                 String destPrefix,
-                                String destTepIp);
+                                String destTepIp,
+                                long label);
+
+    void addOrUpdateFibEntry(DataBroker broker, String rd, String macAddress, String prefix, List<String> nextHopList,
+                             VrfEntry.EncapType encapType, long label, long l3vni, String gwMacAddress,
+                             RouteOrigin origin, WriteTransaction writeConfigTxn);
 
-    void addOrUpdateFibEntry(DataBroker broker, String rd, String prefix, List<String> nextHopList,
-                             int label, RouteOrigin origin, WriteTransaction writeConfigTxn);
     void addFibEntryForRouterInterface(DataBroker broker, String rd, String prefix,
-                                        RouterInterface routerInterface, long label, WriteTransaction writeConfigTxn);
-    void removeOrUpdateFibEntry(DataBroker broker, String rd, String prefix, String nextHopToRemove, WriteTransaction writeConfigTxn);
+                                       RouterInterface routerInterface, long label, WriteTransaction writeConfigTxn);
+
+    void removeOrUpdateFibEntry(DataBroker broker, String rd, String prefix, String nextHopToRemove,
+                                WriteTransaction writeConfigTxn);
+
     void removeFibEntry(DataBroker broker, String rd, String prefix, WriteTransaction writeConfigTxn);
-    void updateFibEntry(DataBroker broker, String rd, String prefix , List<String> nextHopList, WriteTransaction writeConfigTxn);
+
+    void updateFibEntry(DataBroker broker, String rd, String prefix, List<String> nextHopList,
+                        String gwMacAddress, long label, WriteTransaction writeConfigTxn);
+
     void addVrfTable(DataBroker broker, String rd, WriteTransaction writeConfigTxn);
+
     void removeVrfTable(DataBroker broker, String rd, WriteTransaction writeConfigTxn);
-    void removeInterVPNLinkRouteFlows(final String interVpnLinkName,
-                                      final boolean isVpnFirstEndPoint,
-                                      final VrfEntry vrfEntry);
+
+    void removeInterVPNLinkRouteFlows(String interVpnLinkName,
+                                      boolean isVpnFirstEndPoint,
+                                      VrfEntry vrfEntry);
 }