diff options
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/net/flowobjective/ForwardingObjective.java')
-rw-r--r-- | framework/src/onos/core/api/src/main/java/org/onosproject/net/flowobjective/ForwardingObjective.java | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/flowobjective/ForwardingObjective.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/flowobjective/ForwardingObjective.java deleted file mode 100644 index 9857a710..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/flowobjective/ForwardingObjective.java +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright 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.flowobjective; - -import com.google.common.annotations.Beta; -import org.onosproject.net.flow.TrafficSelector; -import org.onosproject.net.flow.TrafficTreatment; - -/** - * Represents a description of which types of traffic need to - * be forwarded through the device. A forwarding objective may - * result in multiple rules at the device. There are two main types - * of forwarding objectives: - * - * - Versatile - * - Specific - * - * A versatile forwarding objective represents a composite rule that matches - * two or more header fields. The use of versatile usually indicates that this - * rule should be inserted in its entirety into the ACL table. Although, - * drivers for some devices are free to implement this differently. - * - * A specific forwarding objective represents a specific rule matching one or - * more header fields. The installation of this rule may result in several rules - * at the device. For example, one per table type. - */ -@Beta -public interface ForwardingObjective extends Objective { - - /** - * Represents whether this objective is monolithic or - * may be broken down into parts. - */ - enum Flag { - /** - * A decomposable objective. - */ - SPECIFIC, - - /** - * A monolithic objective. - */ - VERSATILE - } - - /** - * Obtain the selector for this objective. - * - * @return a traffic selector - */ - TrafficSelector selector(); - - /** - * Obtain the traffic treatment for this objective. Mutually exclusive with - * 'treatment'. - * - * @return an integer - */ - Integer nextId(); - - /** - * A traffic treatment for this forwarding objective. Mutually exclusive - * with a nextId. - * - * @return a traffic treatment - */ - TrafficTreatment treatment(); - - /** - * Obtain the type of this objective. - * - * @return a flag type - */ - Flag flag(); - - /** - * A forwarding objective builder. - */ - interface Builder extends Objective.Builder { - - /** - * Assigns a selector to the forwarding objective. - * - * @param selector a traffic selector - * @return a forwarding objective builder - */ - Builder withSelector(TrafficSelector selector); - - /** - * Assigns a next step to the forwarding objective. - * - * @param nextId a next objective id. - * @return a forwarding objective builder - */ - Builder nextStep(int nextId); - - /** - * Assigns the treatment for this forwarding objective. - * - * @param treatment a traffic treatment - * @return a forwarding objective - */ - Builder withTreatment(TrafficTreatment treatment); - - /** - * Assigns the flag to the forwarding objective. - * - * @param flag a flag - * @return a forwarding objective builder - */ - Builder withFlag(Flag flag); - - /** - * Builds the forwarding objective that will be added. - * - * @return a forwarding objective - */ - ForwardingObjective add(); - - /** - * Builds the forwarding objective that will be removed. - * - * @return a forwarding objective. - */ - ForwardingObjective remove(); - - /** - * Builds the forwarding objective that will be added. - * The context will be used to notify the calling application. - * - * @param context an objective context - * @return a forwarding objective - */ - ForwardingObjective add(ObjectiveContext context); - - /** - * Builds the forwarding objective that will be removed. - * The context will be used to notify the calling application. - * - * @param context an objective context - * @return a forwarding objective - */ - ForwardingObjective remove(ObjectiveContext context); - } -} |