diff options
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/net/flow/TrafficTreatment.java')
-rw-r--r-- | framework/src/onos/core/api/src/main/java/org/onosproject/net/flow/TrafficTreatment.java | 473 |
1 files changed, 0 insertions, 473 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/flow/TrafficTreatment.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/flow/TrafficTreatment.java deleted file mode 100644 index 3e57925d..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/flow/TrafficTreatment.java +++ /dev/null @@ -1,473 +0,0 @@ -/* - * Copyright 2014-2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.net.flow; - -import java.util.List; - -import org.onlab.packet.EthType; -import org.onlab.packet.IpAddress; -import org.onlab.packet.MacAddress; -import org.onlab.packet.MplsLabel; -import org.onlab.packet.TpPort; -import org.onlab.packet.VlanId; -import org.onosproject.core.GroupId; -import org.onosproject.net.DeviceId; -import org.onosproject.net.PortNumber; -import org.onosproject.net.flow.instructions.ExtensionTreatment; -import org.onosproject.net.flow.instructions.Instruction; -import org.onosproject.net.flow.instructions.Instructions; -import org.onosproject.net.meter.MeterId; - -/** - * Abstraction of network traffic treatment. - */ -public interface TrafficTreatment { - - /** - * Returns the list of treatment instructions that will be applied - * further down the pipeline. - * @return list of treatment instructions - */ - List<Instruction> deferred(); - - /** - * Returns the list of treatment instructions that will be applied - * immediately. - * @return list of treatment instructions - */ - List<Instruction> immediate(); - - /** - * Returns the list of all instructions in the treatment, both immediate and - * deferred. - * - * @return list of treatment instructions - */ - List<Instruction> allInstructions(); - - /** - * Returns the next table in the pipeline. - * @return a table transition; may be null. - */ - Instructions.TableTypeTransition tableTransition(); - - /** - * Whether the deferred treatment instructions will be cleared - * by the device. - * @return a boolean - */ - boolean clearedDeferred(); - - /** - * Returns the metadata instruction if there is one. - * - * @return a metadata instruction that may be null - */ - Instructions.MetadataInstruction writeMetadata(); - - /** - * Returns the meter instruction if there is one. - * - * @return a meter instruction that may be null - */ - Instructions.MeterInstruction metered(); - - /** - * Builder of traffic treatment entities. - */ - interface Builder { - - /** - * Adds an instruction to the builder. - * - * @param instruction an instruction - * @return a treatment builder - */ - Builder add(Instruction instruction); - - /** - * Adds a drop instruction. - * - * @return a treatment builder - */ - Builder drop(); - - /** - * Adds a punt-to-controller instruction. - * - * @return a treatment builder - */ - Builder punt(); - - /** - * Set the output port. - * - * @param number the out port - * @return a treatment builder - */ - Builder setOutput(PortNumber number); - - /** - * Sets the src l2 address. - * - * @param addr a macaddress - * @return a treatment builder - */ - Builder setEthSrc(MacAddress addr); - - /** - * Sets the dst l2 address. - * - * @param addr a macaddress - * @return a treatment builder - */ - Builder setEthDst(MacAddress addr); - - /** - * Sets the vlan id. - * - * @param id a vlanid - * @return a treatment builder - */ - Builder setVlanId(VlanId id); - - /** - * Sets the vlan priority. - * - * @param pcp a vlan priority - * @return a treatment builder - */ - Builder setVlanPcp(Byte pcp); - - /** - * Sets the src l3 address. - * - * @param addr an ip - * @return a treatment builder - */ - Builder setIpSrc(IpAddress addr); - - /** - * Sets the dst l3 address. - * - * @param addr an ip - * @return a treatment builder - */ - Builder setIpDst(IpAddress addr); - - /** - * Decrement the TTL in IP header by one. - * - * @return a treatment builder - */ - Builder decNwTtl(); - - /** - * Copy the TTL to outer protocol layer. - * - * @return a treatment builder - */ - Builder copyTtlOut(); - - /** - * Copy the TTL to inner protocol layer. - * - * @return a treatment builder - */ - Builder copyTtlIn(); - - /** - * Push MPLS ether type. - * - * @return a treatment builder - */ - Builder pushMpls(); - - /** - * Pops MPLS ether type. - * - * @return a treatment builder - */ - Builder popMpls(); - - /** - * Pops MPLS ether type and set the new ethertype. - * - * @param etherType an ether type - * @return a treatment builder - * @deprecated in Drake Release - */ - @Deprecated - Builder popMpls(int etherType); - - /** - * Pops MPLS ether type and set the new ethertype. - * - * @param etherType an ether type - * @return a treatment builder - */ - Builder popMpls(EthType etherType); - - /** - * Sets the mpls label. - * - * @param mplsLabel MPLS label - * @return a treatment builder - */ - Builder setMpls(MplsLabel mplsLabel); - - /** - * Sets the mpls bottom-of-stack indicator bit. - * - * @param mplsBos boolean to set BOS=1 (true) or BOS=0 (false) - * @return a treatment builder. - */ - Builder setMplsBos(boolean mplsBos); - - /** - * Decrement MPLS TTL. - * - * @return a treatment builder - */ - Builder decMplsTtl(); - - /** - * Sets the optical channel ID or lambda. - * - * @param lambda optical channel ID - * @return a treatment builder - * @deprecated in Drake Release - */ - @Deprecated - Builder setLambda(short lambda); - - /** - * Sets the group ID. - * - * @param groupId group ID - * @return a treatment builder - */ - Builder group(GroupId groupId); - - /** - * Sets the Queue ID. - * - * @param queueId a queue ID - * @return a treatment builder - */ - Builder setQueue(long queueId); - - /** - * Sets the Queue ID for a specific port. - * - * @param queueId a queue ID - * @param port a port number - * @return a treatment builder - */ - Builder setQueue(long queueId, PortNumber port); - - /** - * Sets a meter to be used by this flow. - * - * @param meterId a meter id - * @return a treatment builder - */ - Builder meter(MeterId meterId); - - /** - * Sets the next table id to transition to. - * - * @param tableId the table table - * @return a treatement builder - */ - Builder transition(Integer tableId); - - - /** - * Pops outermost VLAN tag. - * - * @return a treatment builder - */ - Builder popVlan(); - - /** - * Pushes a new VLAN tag. - * - * @return a treatment builder - */ - Builder pushVlan(); - - /** - * Any instructions preceded by this method call will be deferred. - * @return a treatment builder - */ - Builder deferred(); - - /** - * Any instructions preceded by this method call will be immediate. - * @return a treatment builder - */ - Builder immediate(); - - - /** - * Instructs the device to clear the deferred instructions set. - * @return a treatment builder - */ - Builder wipeDeferred(); - - /** - * Writes metadata to associate with a packet. - * <pre> - * {@code - * new_metadata = (old_metadata & ̃mask) | (value & mask) - * } - * </pre> - * - * @param value the metadata to write - * @param mask the masked bits for the value - * @return a treatment builder - */ - Builder writeMetadata(long value, long mask); - - /** - * Sets the tunnel id. - * - * @param tunnelId a tunnel id - * @return a treatment builder - */ - Builder setTunnelId(long tunnelId); - - /** - * Sets the src TCP port. - * - * @param port a port number - * @return a treatment builder - * @deprecated in Drake release - */ - @Deprecated - Builder setTcpSrc(short port); - - /** - * Sets the src TCP port. - * - * @param port a port number - * @return a treatment builder - */ - Builder setTcpSrc(TpPort port); - - /** - * Sets the dst TCP port. - * - * @param port a port number - * @return a treatment builder - * @deprecated in Drake release - */ - @Deprecated - Builder setTcpDst(short port); - - /** - * Sets the dst TCP port. - * - * @param port a port number - * @return a treatment builder - */ - Builder setTcpDst(TpPort port); - - /** - * Sets the src UDP port. - * - * @param port a port number - * @return a treatment builder - * @deprecated in Drake release - */ - @Deprecated - Builder setUdpSrc(short port); - - /** - * Sets the src UDP port. - * - * @param port a port number - * @return a treatment builder - */ - Builder setUdpSrc(TpPort port); - - /** - * Sets the dst UDP port. - * - * @param port a port number - * @return a treatment builder - * @deprecated in Drake release - */ - @Deprecated - Builder setUdpDst(short port); - - /** - * Sets the dst UDP port. - * - * @param port a port number - * @return a treatment builder - */ - Builder setUdpDst(TpPort port); - - /** - * Sets the arp src ip address. - * - * @param addr an ip - * @return a treatment builder - */ - Builder setArpSpa(IpAddress addr); - - /** - * Sets the arp src mac address. - * - * @param addr a macaddress - * @return a treatment builder - */ - Builder setArpSha(MacAddress addr); - - /** - * Sets the arp operation. - * - * @param op the value of arp operation. - * @return a treatment builder. - */ - Builder setArpOp(short op); - - /** - * Uses an extension treatment. - * - * @param extension extension treatment - * @param deviceId device ID - * @return a treatment builder - */ - Builder extension(ExtensionTreatment extension, DeviceId deviceId); - - /** - * Builds an immutable traffic treatment descriptor. - * <p> - * If the treatment is empty when build() is called, it will add a default - * drop rule automatically. For a treatment that is actually empty, use - * {@link org.onosproject.net.flow.DefaultTrafficTreatment#emptyTreatment}. - * </p> - * - * @return traffic treatment - */ - TrafficTreatment build(); - - } - -} |