aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java')
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java228
1 files changed, 0 insertions, 228 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java
deleted file mode 100644
index 35d45fbd..00000000
--- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright 2014 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 org.onosproject.core.ApplicationId;
-import org.onosproject.core.GroupId;
-import org.onosproject.net.DeviceId;
-
-/**
- * Represents a generalized match & action pair to be applied to an
- * infrastructure device.
- */
-public interface FlowRule {
-
- int MAX_TIMEOUT = 60;
- int MIN_PRIORITY = 0;
-
- /**
- * Returns the ID of this flow.
- *
- * @return the flow ID
- */
- FlowId id();
-
- /**
- * Returns the application id of this flow.
- *
- * @return an applicationId
- */
- short appId();
-
- /**
- * Returns the group id of this flow.
- *
- * @return an groupId
- */
- GroupId groupId();
-
- /**
- * Returns the flow rule priority given in natural order; higher numbers
- * mean higher priorities.
- *
- * @return flow rule priority
- */
- int priority();
-
- /**
- * Returns the identity of the device where this rule applies.
- *
- * @return device identifier
- */
- DeviceId deviceId();
-
- /**
- * Returns the traffic selector that identifies what traffic this rule
- * should apply to.
- *
- * @return traffic selector
- */
- TrafficSelector selector();
-
- /**
- * Returns the traffic treatment that applies to selected traffic.
- *
- * @return traffic treatment
- */
- TrafficTreatment treatment();
-
- /**
- * Returns the timeout for this flow requested by an application.
- *
- * @return integer value of the timeout
- */
- int timeout();
-
- /**
- * Returns whether the flow is permanent i.e. does not time out.
- *
- * @return true if the flow is permanent, otherwise false
- */
- boolean isPermanent();
-
- /**
- * Returns the table id for this rule.
- *
- * @return an integer.
- */
- int tableId();
-
- /**
- * {@inheritDoc}
- *
- * Equality for flow rules only considers 'match equality'. This means that
- * two flow rules with the same match conditions will be equal, regardless
- * of the treatment or other characteristics of the flow.
- *
- * @param obj the reference object with which to compare.
- * @return {@code true} if this object is the same as the obj
- * argument; {@code false} otherwise.
- */
- boolean equals(Object obj);
-
- /**
- * Returns whether this flow rule is an exact match to the flow rule given
- * in the argument.
- * <p>
- * Exact match means that deviceId, priority, selector,
- * tableId, flowId and treatment are equal. Note that this differs from
- * the notion of object equality for flow rules, which does not consider the
- * flowId or treatment when testing equality.
- * </p>
- *
- * @param rule other rule to match against
- * @return true if the rules are an exact match, otherwise false
- */
- boolean exactMatch(FlowRule rule);
-
- /**
- * A flowrule builder.
- */
- interface Builder {
-
- /**
- * Assigns a cookie value to this flowrule. Mutually exclusive with the
- * fromApp method. This method is intended to take a cookie value from
- * the dataplane and not from the application.
- *
- * @param cookie a long value
- * @return this
- */
- Builder withCookie(long cookie);
-
- /**
- * Assigns the application that built this flow rule to this object.
- * The short value of the appId will be used as a basis for the
- * cookie value computation. It is expected that application use this
- * call to set their application id.
- *
- * @param appId an application id
- * @return this
- */
- Builder fromApp(ApplicationId appId);
-
- /**
- * Sets the priority for this flow rule.
- *
- * @param priority an integer
- * @return this
- */
- Builder withPriority(int priority);
-
- /**
- * Sets the deviceId for this flow rule.
- *
- * @param deviceId a device id
- * @return this
- */
- Builder forDevice(DeviceId deviceId);
-
- /**
- * Sets the table id for this flow rule. Default value is 0.
- *
- * @param tableId an integer
- * @return this
- */
- Builder forTable(int tableId);
-
- /**
- * Sets the selector (or match field) for this flow rule.
- *
- * @param selector a traffic selector
- * @return this
- */
- Builder withSelector(TrafficSelector selector);
-
- /**
- * Sets the traffic treatment for this flow rule.
- *
- * @param treatment a traffic treatment
- * @return this
- */
- Builder withTreatment(TrafficTreatment treatment);
-
- /**
- * Makes this rule permanent on the dataplane.
- *
- * @return this
- */
- Builder makePermanent();
-
- /**
- * Makes this rule temporary and timeout after the specified amount
- * of time.
- *
- * @param timeout an integer
- * @return this
- */
- Builder makeTemporary(int timeout);
-
- /**
- * Builds a flow rule object.
- *
- * @return a flow rule.
- */
- FlowRule build();
-
- }
-
- /**
- * Returns the third party original flow rule.
- *
- * @return FlowRuleExtPayLoad
- */
- FlowRuleExtPayLoad payLoad();
-}