blob: 6b944721f66d03aed38c2e6cdfbf5de1b08f2042 [file] [log] [blame]
package net.onrc.onos.api.flowmanager;
import java.util.List;
import net.onrc.onos.core.matchaction.MatchActionOperations;
import net.onrc.onos.core.matchaction.action.Action;
import net.onrc.onos.core.matchaction.match.PacketMatch;
import net.onrc.onos.core.matchaction.match.PacketMatchBuilder;
import net.onrc.onos.core.util.PortNumber;
/**
* Flow object representing an optical path.
* <p>
* TODO: Think this: How do we deal the optical path flow going through the
* regenerators? Can we express it with multiple OpticalPathFlow objects?
* <p>
* NOTE: This class is not fully supported for the August release.
*/
public class OpticalPathFlow extends PathFlow {
private final int lambda;
/**
* Constructor.
*
* @param id the ID for this new Flow object
* @param ingressPort the Ingress port number at the ingress edge node
* @param path the Path between ingress and egress edge node
* @param egressActions the list of Action objects at the egress edge node
* @param lambda the lambda to be used throughout the path
*/
public OpticalPathFlow(FlowId id,
PortNumber ingressPort, Path path, List<Action> egressActions, int lambda) {
super(id, ingressPort, path, egressActions);
this.lambda = lambda;
}
/**
* Gets lambda which is used throughout the path.
*
* @return lambda which is used throughout the path
*/
public int getLambda() {
return lambda;
}
/**
* Gets traffic filter for this flow.
* <p>
* This method only returns wildcard match, because the ingress transponder
* port does not have filtering functionality.
*/
@Override
public PacketMatch getMatch() {
return (new PacketMatchBuilder()).build();
}
@Override
public List<MatchActionOperations> compile(FlowBatchOperation.Operator op) {
// TODO Auto-generated method stub
return null;
}
}