Committed by
Thomas Vachuska
initial stab at javadoc for objectives
Change-Id: Ib36b50b6e9dd8c4a11aa9f06318ad567b28ae0f2
Showing
3 changed files
with
47 additions
and
6 deletions
... | @@ -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 { | ... | ... |
-
Please register or login to post a comment