diff options
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/net/intent/ConnectivityIntent.java')
-rw-r--r-- | framework/src/onos/core/api/src/main/java/org/onosproject/net/intent/ConnectivityIntent.java | 187 |
1 files changed, 0 insertions, 187 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/intent/ConnectivityIntent.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/intent/ConnectivityIntent.java deleted file mode 100644 index 7caee3e8..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/intent/ConnectivityIntent.java +++ /dev/null @@ -1,187 +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.intent; - -import com.google.common.annotations.Beta; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; -import org.onosproject.core.ApplicationId; -import org.onosproject.net.Link; -import org.onosproject.net.NetworkResource; -import org.onosproject.net.flow.DefaultTrafficSelector; -import org.onosproject.net.flow.DefaultTrafficTreatment; -import org.onosproject.net.flow.TrafficSelector; -import org.onosproject.net.flow.TrafficTreatment; - -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -import static com.google.common.base.Preconditions.checkNotNull; - -/** - * Abstraction of connectivity intent for traffic matching some criteria. - */ -@Beta -public abstract class ConnectivityIntent extends Intent { - - // TODO: other forms of intents should be considered for this family: - // point-to-point with constraints (waypoints/obstacles) - // multi-to-single point with constraints (waypoints/obstacles) - // single-to-multi point with constraints (waypoints/obstacles) - // concrete path (with alternate) - // ... - - private final TrafficSelector selector; - private final TrafficTreatment treatment; - private final List<Constraint> constraints; - - /** - * Creates a connectivity intent that matches on the specified selector - * and applies the specified treatment. - * <p> - * Path will be optimized based on the first constraint if one is given. - * </p> - * - * @param appId application identifier - * @param key explicit key to use for intent - * @param resources required network resources (optional) - * @param selector traffic selector - * @param treatment treatment - * @param constraints optional prioritized list of constraints - * @param priority priority to use for flows generated by this intent - * @throws NullPointerException if the selector or treatment is null - */ - protected ConnectivityIntent(ApplicationId appId, - Key key, - Collection<NetworkResource> resources, - TrafficSelector selector, - TrafficTreatment treatment, - List<Constraint> constraints, - int priority) { - super(appId, key, resources, priority); - this.selector = checkNotNull(selector); - this.treatment = checkNotNull(treatment); - this.constraints = checkNotNull(constraints); - } - - /** - * Constructor for serializer. - */ - protected ConnectivityIntent() { - super(); - this.selector = null; - this.treatment = null; - this.constraints = Collections.emptyList(); - } - - /** - * Abstract builder for connectivity intents. - */ - public abstract static class Builder extends Intent.Builder { - protected TrafficSelector selector = DefaultTrafficSelector.emptySelector(); - protected TrafficTreatment treatment = DefaultTrafficTreatment.emptyTreatment(); - protected List<Constraint> constraints = ImmutableList.of(); - - @Override - public Builder appId(ApplicationId appId) { - return (Builder) super.appId(appId); - } - - @Override - public Builder key(Key key) { - return (Builder) super.key(key); - } - - @Override - public Builder priority(int priority) { - return (Builder) super.priority(priority); - } - - - /** - * Sets the traffic selector for the intent that will be built. - * - * @param selector selector to use for built intent - * @return this builder - */ - public Builder selector(TrafficSelector selector) { - this.selector = selector; - return this; - } - - /** - * Sets the traffic treatment for the intent that will be built. - * - * @param treatment treatment to use for built intent - * @return this builder - */ - public Builder treatment(TrafficTreatment treatment) { - this.treatment = treatment; - return this; - } - - /** - * Sets the constraints for the intent that will be built. - * - * @param constraints constraints to use for built intent - * @return this builder - */ - public Builder constraints(List<Constraint> constraints) { - this.constraints = ImmutableList.copyOf(constraints); - return this; - } - } - - - /** - * Returns the match specifying the type of traffic. - * - * @return traffic match - */ - public TrafficSelector selector() { - return selector; - } - - /** - * Returns the action applied to the traffic. - * - * @return applied action - */ - public TrafficTreatment treatment() { - return treatment; - } - - /** - * Returns the set of connectivity constraints. - * - * @return list of intent constraints - */ - public List<Constraint> constraints() { - return constraints; - } - - /** - * Produces a collection of network resources from the given links. - * - * @param links collection of links - * @return collection of link resources - */ - protected static Collection<NetworkResource> resources(Collection<Link> links) { - return ImmutableSet.copyOf(links); - } - -} |