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