blob: 1e7bd08f1f22d349543cb4de866c8bd9bb59fdec [file] [log] [blame]
package net.onrc.onos.apps.sdnip;
import net.floodlightcontroller.core.module.IFloodlightService;
import com.googlecode.concurrenttrees.radix.RadixTree;
/**
* The API exported by the main SDN-IP class. This is the interface between the
* REST handlers and the SDN-IP module.
*/
public interface ISdnIpService extends IFloodlightService {
/**
* Gets a reference to SDN-IP's radix tree which stores the route table
* learnt through BGP.
*
* XXX This is a poor API because it exposes internal state of SDN-IP.
*
* @return the radix tree
*/
public RadixTree<RibEntry> getPtree();
/**
* Gets the IP address of REST server on the BGPd side. This is used to
* communicate with BGPd.
*
* @return the IP address as a String
*/
public String getBgpdRestIp();
/**
* Gets the router ID, which is sent to BGPd to identify the route table
* we're interested in.
*
* @return the router ID as a String
*/
public String getRouterId();
/**
* Clears SDN-IP's route table.
*/
public void clearPtree();
/**
* Pass a RIB update to the {@link ISdnIpService}.
*
* @param update a {@link RibUpdate} object containing details of the
* update
*/
public void newRibUpdate(RibUpdate update);
/**
* Start SDN-IP Routing.
*/
public void beginRouting();
/**
* Start SDN-IP Routing.
* Before intent framework is ready, we need two methods to start the
* application.
*/
public void beginRoutingWithNewIntent();
}