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