| package net.onrc.onos.api.flowmanager; |
| |
| import java.util.List; |
| |
| import net.onrc.onos.api.flowmanager.FlowBatchOperation.Operator; |
| import net.onrc.onos.core.matchaction.MatchActionId; |
| import net.onrc.onos.core.matchaction.MatchActionOperations; |
| import net.onrc.onos.core.matchaction.MatchActionOperationsId; |
| 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.IdGenerator; |
| 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; |
| |
| /** |
| * Default constructor for Kryo deserialization. |
| */ |
| @Deprecated |
| protected OpticalPathFlow() { |
| lambda = 0; |
| } |
| |
| /** |
| * 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(Operator op, |
| IdGenerator<MatchActionId> maIdGenerator, |
| IdGenerator<MatchActionOperationsId> maoIdGenerator) { |
| // TODO Auto-generated method stub |
| return null; |
| } |
| } |