alshabib
Committed by Thomas Vachuska

initial stab at javadoc for objectives

Change-Id: Ib36b50b6e9dd8c4a11aa9f06318ad567b28ae0f2
...@@ -22,10 +22,24 @@ import org.onosproject.net.flow.criteria.Criterion; ...@@ -22,10 +22,24 @@ import org.onosproject.net.flow.criteria.Criterion;
22 import java.util.Collection; 22 import java.util.Collection;
23 23
24 /** 24 /**
25 - * Represents a filtering flow objective. Each filter is mapping 25 + * Represents a filtering flow objective. Each filtering flow objective
26 - * from a criterion to a collection of criteria. The mapping will 26 + * is made up of a key (criterion) to a set of criteria. Using this information
27 - * be used by a device driver to construct the actual flow rules to 27 + * a pipeline aware driver will decide how this objective should be mapped
28 - * be installed on the device. 28 + * to the specific device pipeline. For example, consider the following
29 + * filtering objective:
30 + *
31 + * portX -> {MAC1, IP1, MAC2}
32 + *
33 + * The driver could decide to pass L3 packet to the L3 table and L2 packets to
34 + * the L2 table for packets arriving on portX.
35 + *
36 + * Filtering objectives do not only represent what should be permitted into the
37 + * pipeline but can also be used to deny or drop unwanted packets by specifying
38 + * the appropriate type of filtering objective. It is also important to note
39 + * that submitting a filtering objective does not necessarily result in rules
40 + * programmed at the switch, the driver is free to decide when these rules are
41 + * programmed. For example, a filtering rule may only be programmed once a
42 + * corresponding forwarding objective has been received.
29 */ 43 */
30 @Beta 44 @Beta
31 public interface FilteringObjective extends Objective { 45 public interface FilteringObjective extends Objective {
......
...@@ -22,7 +22,20 @@ import org.onosproject.net.flow.TrafficTreatment; ...@@ -22,7 +22,20 @@ import org.onosproject.net.flow.TrafficTreatment;
22 /** 22 /**
23 * Represents a description of which types of traffic need to 23 * Represents a description of which types of traffic need to
24 * be forwarded through the device. A forwarding objective may 24 * be forwarded through the device. A forwarding objective may
25 - * in multiple rules at the device. 25 + * result in multiple rules at the device. There are two main types
26 + * of forwarding objectives:
27 + *
28 + * - Versatile
29 + * - Specific
30 + *
31 + * A versatile forwarding objective represents a composite rule that matches
32 + * two or more header fields. The use of versatile usually indicates that this
33 + * rule should be inserted in its entirety into the ACL table. Although,
34 + * drivers for some devices are free to implement this differently.
35 + *
36 + * A specific forwarding objective represents a specific rule matching one or
37 + * more header fields. The installation of this rule may result in several rules
38 + * at the device. For example, one per table type.
26 */ 39 */
27 @Beta 40 @Beta
28 public interface ForwardingObjective extends Objective { 41 public interface ForwardingObjective extends Objective {
......
...@@ -24,7 +24,21 @@ import java.util.Collection; ...@@ -24,7 +24,21 @@ import java.util.Collection;
24 /** 24 /**
25 * Represents a nexthop which will be translated by a driver 25 * Represents a nexthop which will be translated by a driver
26 * into the appropriate group or actions needed to implement 26 * into the appropriate group or actions needed to implement
27 - * the function. 27 + * the egress function.
28 + *
29 + * A next objective is made up of a collection of traffic treatements
30 + * associated with a type. These types are:
31 + *
32 + * - Hashed
33 + * - Broadcast
34 + * - Failover
35 + * - Simple
36 + *
37 + * These types will indicate to the driver what the intended behaviour is.
38 + * For example, a broadcast next objective with a collection of output
39 + * treatments will indicate to a driver that all output actions are expected
40 + * to be executed simultaneously. The driver is then free to implement this
41 + * as a group or a simple action list.
28 */ 42 */
29 @Beta 43 @Beta
30 public interface NextObjective extends Objective { 44 public interface NextObjective extends Objective {
......