2 * Copyright (c) 2015 - 2016 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.netvirt.fibmanager.api;
11 import com.google.common.util.concurrent.FutureCallback;
12 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
13 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
14 import java.math.BigInteger;
15 import java.util.List;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.vrfentries.VrfEntry;
18 public interface IFibManager {
19 void populateFibOnNewDpn(BigInteger dpnId, long vpnId, String rd,
20 final FutureCallback<List<Void>> callback);
21 void cleanUpExternalRoutesOnDpn(BigInteger dpnId, long vpnId, String rd,
22 String localNextHopIp, String remoteNextHopIp);
23 void populateExternalRoutesOnDpn(BigInteger localDpnId, long vpnId, String rd,
24 String localNextHopIp, String remoteNextHopIp);
25 void cleanUpInternalRoutesOnDpn(final BigInteger dpnId, final long vpnId, final String rd,
26 final String localNextHopIp, final String remoteNextHopIp);
27 void populateInternalRoutesOnDpn(BigInteger localDpnId, long vpnId, String rd,
28 String localNextHopIp, String remoteNextHopIp);
29 void cleanUpDpnForVpn(BigInteger dpnId, long vpnId, String rd,
30 final FutureCallback<List<Void>> callback);
31 List<String> printFibEntries();
33 // TODO Feels like this method is not used anywhere
34 void addStaticRoute(String prefix, String nextHop, String rd, int label);
35 void deleteStaticRoute(String prefix, String nextHop, String rd);
36 void setConfTransType(String service, String transportType);
37 String getConfTransType();
38 boolean isVPNConfigured();
39 void writeConfTransTypeConfigDS();
40 String getReqTransType();
41 String getTransportTypeStr(String tunType);
43 void manageRemoteRouteOnDPN(final boolean action,
44 BigInteger localDpnId,
50 void addOrUpdateFibEntry(DataBroker broker, String rd, String prefix, List<String> nextHopList,
51 int label, RouteOrigin origin, WriteTransaction writeConfigTxn);
52 void removeOrUpdateFibEntry(DataBroker broker, String rd, String prefix, String nextHopToRemove, WriteTransaction writeConfigTxn);
53 void removeFibEntry(DataBroker broker, String rd, String prefix, WriteTransaction writeConfigTxn);
54 void updateFibEntry(DataBroker broker, String rd, String prefix , List<String> nextHopList, WriteTransaction writeConfigTxn);
55 void addVrfTable(DataBroker broker, String rd, WriteTransaction writeConfigTxn);
56 void removeVrfTable(DataBroker broker, String rd, WriteTransaction writeConfigTxn);
57 void removeInterVPNLinkRouteFlows(final String interVpnLinkName,
58 final boolean isVpnFirstEndPoint,
59 final VrfEntry vrfEntry);