blob: 000a6a11291ac1d8f19ed7b9fd8363a7306980a5 [file] [log] [blame]
package net.onrc.onos.core.main.config;
import java.net.InetAddress;
import net.floodlightcontroller.core.module.IFloodlightService;
import net.floodlightcontroller.util.MACAddress;
import net.onrc.onos.apps.sdnip.Interface;
/**
* Provides information about the layer 3 properties of the network.
* This is based on IP addresses configured on ports in the network.
*/
public interface IConfigInfoService extends IFloodlightService {
public boolean isInterfaceAddress(InetAddress address);
public boolean inConnectedNetwork(InetAddress address);
public boolean fromExternalNetwork(long inDpid, short inPort);
/**
* Retrieves the {@link Interface} object for the interface that packets
* to dstIpAddress will be sent out of. Returns null if dstIpAddress is not
* in a directly connected network, or if no interfaces are configured.
*
* @param dstIpAddress Destination IP address that we want to match to
* an outgoing interface
* @return The {@link Interface} object if found, null if not
*/
public Interface getOutgoingInterface(InetAddress dstIpAddress);
/**
* Returns whether this controller has a layer 3 configuration
* (i.e. interfaces and IP addresses)
*
* @return True if IP addresses are configured, false if not
*/
public boolean hasLayer3Configuration();
public MACAddress getRouterMacAddress();
/**
* We currently have basic vlan support for the situation when the contr
* is running within a single vlan. In this case, packets sent from the
* controller (e.g. ARP) need to be tagged with that vlan.
*
* @return The vlan id configured in the config file,
* or 0 if no vlan is configured.
*/
public short getVlan();
}