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(); }