diff options
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/net/flowobjective/FilteringObjective.java')
-rw-r--r-- | framework/src/onos/core/api/src/main/java/org/onosproject/net/flowobjective/FilteringObjective.java | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/flowobjective/FilteringObjective.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/flowobjective/FilteringObjective.java deleted file mode 100644 index 8ed793d0..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/flowobjective/FilteringObjective.java +++ /dev/null @@ -1,182 +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.core.ApplicationId; -import org.onosproject.net.flow.TrafficTreatment; -import org.onosproject.net.flow.criteria.Criterion; - -import java.util.Collection; - -/** - * Represents a filtering flow objective. Each filtering flow objective - * is made up of a key (typically a PortCriterion) mapped to a set of criteria. - * Using this information, a pipeline aware driver will decide how this objective - * should be mapped to the device specific pipeline-tables in order to satisfy the - * filtering condition. For example, consider the following PERMIT filtering - * objective: - * <p> - * portX -> {MAC1, VLAN1} - * <p> - * The driver could decide to pass packets to the MAC table or VLAN or PORT - * tables to ensure that only those packets arriving with the correct dst MAC - * and VLAN ids from Port X are allowed into the pipeline. - * <p> - * Filtering objectives of type PERMIT allow packets that match the key:criteria - * to enter the pipeline. As a result, the implication is that packets that don't - * match are automatically denied (dropped). - * <p> - * Filtering objectives of type DENY, are used to deny packets that would - * otherwise be permitted and forwarded through the pipeline (ie. those packets - * that make it through the PERMIT filters). - */ -@Beta -public interface FilteringObjective extends Objective { - - enum Type { - /** - * Permits packets that match the filtering condition to be processed - * by the rest of the pipeline. Automatically denies packets that don't - * match the criteria. - */ - PERMIT, - - /** - * Denies packets that make it through the permit filters. - */ - DENY - } - - /** - * Obtain the key for this filter. The filter may or may not require a key. - * - * @return a criterion, which could be null if no key was provided. - */ - Criterion key(); - - /** - * Obtain this filtering type. - * - * @return the type - */ - Type type(); - - /** - * The set of conditions the filter must provision at the device. - * - * @return a collection of criteria - */ - Collection<Criterion> conditions(); - - /** - * Auxiliary optional information provided to the device-driver.Typically - * conveys information about changes (treatments) to packets that are - * permitted into the pipeline by the PERMIT filtering condition. - * - * @return a treatment on the packets that make it through the PERMIT filters. - * Value may be null if no meta information is provided. - */ - TrafficTreatment meta(); - - /** - * Builder of Filtering objective entities. - */ - interface Builder extends Objective.Builder { - - /** - * Specify the key for the filter. - * - * @param key a criterion - * @return a filter objective builder - */ - Builder withKey(Criterion key); - - /** - * Add a filtering condition. - * - * @param criterion new criterion - * @return a filtering builder - */ - Builder addCondition(Criterion criterion); - - /** - * Permit this filtering condition set. - * - * @return a filtering builder - */ - Builder permit(); - - /** - * Deny this filtering condition set. - * - * @return a filtering builder - */ - Builder deny(); - - /** - * Set meta information about this filtering condition set. - * - * @param treatment traffic treatment to use - * @return a filtering builder - */ - Builder withMeta(TrafficTreatment treatment); - - /** - * Assigns an application id. - * - * @param appId an application id - * @return a filtering builder - */ - @Override - Builder fromApp(ApplicationId appId); - - /** - * Builds the filtering objective that will be added. - * - * @return a filtering objective - */ - FilteringObjective add(); - - /** - * Builds the filtering objective that will be removed. - * - * @return a filtering objective. - */ - FilteringObjective remove(); - - /** - * Builds the filtering objective that will be added. - * The context will be used to notify the calling application. - * - * @param context an objective context - * @return a filtering objective - */ - FilteringObjective add(ObjectiveContext context); - - /** - * Builds the filtering objective that will be removed. - * The context will be used to notify the calling application. - * - * @param context an objective context - * @return a filtering objective - */ - FilteringObjective remove(ObjectiveContext context); - - - } - -} |