package edu.usc.enl.dynamicmeasurement.floodlight;
import edu.usc.enl.dynamicmeasurement.model.WildcardPattern;
import edu.usc.enl.dynamicmeasurement.model.monitorpoint.MonitorPoint;
import java.util.Collection;
/**
* Created with IntelliJ IDEA.
* User: masoud
* Date: 1/15/14
* Time: 1:42 PM <br/>
* This is a TCAM-based algorithm
*/
public interface TCAMAlgorithm {
/**
* return which switch this monitor must be saved. Although the client can find the answer itself but
* for the sake of optimization, the algorithm may know that beforehand and help the client
*
* @param monitor
* @return
*/
public Collection<MonitorPoint> getWhichSwitch(WildcardPattern monitor);
/**
* @return prefixes to be monitored in the measurement phase
*/
public Collection<WildcardPattern> getMonitors();
}