Thomas Vachuska
Committed by Gerrit Code Review

Added @Beta annotation to the flow objective API.

Change-Id: I4dd91921db1ff533b0ea1e3244dcdbf08b64a499
......@@ -15,6 +15,7 @@
*/
package org.onosproject.net.flowobjective;
import com.google.common.annotations.Beta;
import com.google.common.collect.ImmutableList;
import org.onosproject.core.ApplicationId;
import org.onosproject.net.flow.criteria.Criteria;
......@@ -31,6 +32,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
/**
* Default implementation of a filtering objective.
*/
@Beta
public final class DefaultFilteringObjective implements FilteringObjective {
......
......@@ -15,6 +15,7 @@
*/
package org.onosproject.net.flowobjective;
import com.google.common.annotations.Beta;
import org.onosproject.core.ApplicationId;
import org.onosproject.net.flow.TrafficSelector;
import org.onosproject.net.flow.TrafficTreatment;
......@@ -28,6 +29,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
/**
* Default implementation of a forwarding objective.
*/
@Beta
public final class DefaultForwardingObjective implements ForwardingObjective {
private final TrafficSelector selector;
......
......@@ -15,6 +15,7 @@
*/
package org.onosproject.net.flowobjective;
import com.google.common.annotations.Beta;
import com.google.common.collect.ImmutableList;
import org.onosproject.core.ApplicationId;
import org.onosproject.net.flow.TrafficTreatment;
......@@ -29,6 +30,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
/**
* Default implementation of a next objective.
*/
@Beta
public final class DefaultNextObjective implements NextObjective {
private final List<TrafficTreatment> treatments;
......
......@@ -15,6 +15,7 @@
*/
package org.onosproject.net.flowobjective;
import com.google.common.annotations.Beta;
import org.onosproject.core.ApplicationId;
import org.onosproject.net.flow.criteria.Criterion;
......@@ -26,6 +27,7 @@ import java.util.Collection;
* be used by a device driver to construct the actual flow rules to
* be installed on the device.
*/
@Beta
public interface FilteringObjective extends Objective {
enum Type {
......
......@@ -15,12 +15,14 @@
*/
package org.onosproject.net.flowobjective;
import com.google.common.annotations.Beta;
import org.onosproject.net.DeviceId;
/**
* Service for programming data plane flow rules in manner independent of
* specific device table pipeline configuration.
*/
@Beta
public interface FlowObjectiveService {
/**
......
......@@ -15,12 +15,14 @@
*/
package org.onosproject.net.flowobjective;
import com.google.common.annotations.Beta;
import org.onosproject.net.behaviour.NextGroup;
import org.onosproject.store.Store;
/**
* The flow objective store.
*/
@Beta
public interface FlowObjectiveStore
extends Store<ObjectiveEvent, FlowObjectiveStoreDelegate> {
......
......@@ -15,10 +15,12 @@
*/
package org.onosproject.net.flowobjective;
import com.google.common.annotations.Beta;
import org.onosproject.store.StoreDelegate;
/**
* Flow Objective store delegate abstraction.
*/
@Beta
public interface FlowObjectiveStoreDelegate extends StoreDelegate<ObjectiveEvent> {
}
......
......@@ -15,6 +15,7 @@
*/
package org.onosproject.net.flowobjective;
import com.google.common.annotations.Beta;
import org.onosproject.net.flow.TrafficSelector;
import org.onosproject.net.flow.TrafficTreatment;
......@@ -23,6 +24,7 @@ import org.onosproject.net.flow.TrafficTreatment;
* be forwarded through the device. A forwarding objective may
* in multiple rules at the device.
*/
@Beta
public interface ForwardingObjective extends Objective {
/**
......
......@@ -15,6 +15,7 @@
*/
package org.onosproject.net.flowobjective;
import com.google.common.annotations.Beta;
import org.onosproject.core.ApplicationId;
import org.onosproject.net.flow.TrafficTreatment;
......@@ -25,6 +26,7 @@ import java.util.Collection;
* into the appropriate group or actions needed to implement
* the function.
*/
@Beta
public interface NextObjective extends Objective {
/**
......
......@@ -15,6 +15,7 @@
*/
package org.onosproject.net.flowobjective;
import com.google.common.annotations.Beta;
import org.onosproject.core.ApplicationId;
import java.util.Optional;
......@@ -22,6 +23,7 @@ import java.util.Optional;
/**
* Base representation of an flow description.
*/
@Beta
public interface Objective {
static final boolean DEFAULT_PERMANENT = true;
......
......@@ -15,12 +15,15 @@
*/
package org.onosproject.net.flowobjective;
import com.google.common.annotations.Beta;
/**
* The context of a objective that will become the subject of
* the notification.
*
* Implementations of this class must be serializable.
*/
@Beta
public interface ObjectiveContext {
default void onSuccess(Objective objective) {}
......
......@@ -15,9 +15,12 @@
*/
package org.onosproject.net.flowobjective;
import com.google.common.annotations.Beta;
/**
* Represents the set of errors possible when processing an objective.
*/
@Beta
public enum ObjectiveError {
/**
......
......@@ -15,11 +15,13 @@
*/
package org.onosproject.net.flowobjective;
import com.google.common.annotations.Beta;
import org.onosproject.event.AbstractEvent;
/**
* Describes a objective event.
*/
@Beta
public class ObjectiveEvent extends AbstractEvent<ObjectiveEvent.Type, Integer> {
/**
......
......@@ -16,6 +16,7 @@
/**
* Abstractions for objective-based flow programming of data plane without
* requiring device pipeline structure awareness.
* requiring device pipeline structure awareness.&nbsp; This subsystem is
* experimental and its interfaces will change in the upcoming release.
*/
package org.onosproject.net.flowobjective;
\ No newline at end of file
......