Class Ofdpa3Pipeline
- java.lang.Object
-
- org.onosproject.net.driver.AbstractBehaviour
-
- org.onosproject.net.driver.AbstractHandlerBehaviour
-
- org.onosproject.driver.pipeline.ofdpa.Ofdpa2Pipeline
-
- org.onosproject.driver.pipeline.ofdpa.Ofdpa3Pipeline
-
- All Implemented Interfaces:
org.onosproject.net.behaviour.Pipeliner,org.onosproject.net.driver.Behaviour,org.onosproject.net.driver.HandlerBehaviour
- Direct Known Subclasses:
Ofdpa3QmxPipeline,XpliantPipeline
public class Ofdpa3Pipeline extends Ofdpa2Pipeline
Pipeliner for Broadcom OF-DPA 3.0 TTP.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.onosproject.driver.pipeline.ofdpa.Ofdpa2Pipeline
Ofdpa2Pipeline.RetryFlows
-
-
Field Summary
-
Fields inherited from class org.onosproject.driver.pipeline.ofdpa.Ofdpa2Pipeline
appKryo, coreService, deviceId, deviceService, driverId, flowObjectiveStore, flowRuleService, groupHandler, groupService, serviceDirectory
-
-
Constructor Summary
Constructors Constructor Description Ofdpa3Pipeline()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidinitDriverId()protected voidinitGroupHander(org.onosproject.net.behaviour.PipelinerContext context)protected java.util.Collection<org.onosproject.net.flow.FlowRule>processEthTypeSpecific(org.onosproject.net.flowobjective.ForwardingObjective fwd)Handles forwarding rules to the IP and MPLS tables.protected voidprocessFilter(org.onosproject.net.flowobjective.FilteringObjective filteringObjective, boolean install, org.onosproject.core.ApplicationId applicationId)As per OFDPA 2.0 TTP, filtering of VLAN ids and MAC addresses (for routing) configured on switch ports happen in different tables.protected java.util.Collection<org.onosproject.net.flow.FlowRule>processVersatile(org.onosproject.net.flowobjective.ForwardingObjective fwd)In the OF-DPA 2.0 pipeline, versatile forwarding objectives go to the ACL table.protected booleanrequireVlanExtensions()Determines whether this pipeline requires OFDPA match and set VLAN extensions.booleanshouldRemoveDoubleTagged(org.onosproject.net.flow.instructions.Instruction meta)protected booleanshouldRetry()Determines whether this driver should continue to retry flows that point to empty groups.protected booleansupportsUnicastBlackHole()Determines whether this driver supports installing a clearDeferred action on table 30.-
Methods inherited from class org.onosproject.driver.pipeline.ofdpa.Ofdpa2Pipeline
filter, forward, getNextMappings, init, initializePipeline, matchInPortTmacTable, next, processEgress, processEthDstFilter, processEthDstOnlyFilter, processEthDstSpecific, processEthTypeSpecificInternal, processVlanIdFilter, requireEthType, requireMplsBosMatch, requireMplsPop, requireMplsTtlModification, requirePuntTable, requireUnicastBeforeMulticast, supportIpv6L4Dst, versatileTreatmentBuilder
-
Methods inherited from class org.onosproject.net.driver.AbstractHandlerBehaviour
handler, setHandler
-
-
-
-
Method Detail
-
initDriverId
protected void initDriverId()
- Overrides:
initDriverIdin classOfdpa2Pipeline
-
initGroupHander
protected void initGroupHander(org.onosproject.net.behaviour.PipelinerContext context)
- Overrides:
initGroupHanderin classOfdpa2Pipeline
-
requireVlanExtensions
protected boolean requireVlanExtensions()
Description copied from class:Ofdpa2PipelineDetermines whether this pipeline requires OFDPA match and set VLAN extensions.- Overrides:
requireVlanExtensionsin classOfdpa2Pipeline- Returns:
- true to use the extensions
-
shouldRetry
protected boolean shouldRetry()
Description copied from class:Ofdpa2PipelineDetermines whether this driver should continue to retry flows that point to empty groups. See CORD-554.- Overrides:
shouldRetryin classOfdpa2Pipeline- Returns:
- true if the driver should retry flows
-
supportsUnicastBlackHole
protected boolean supportsUnicastBlackHole()
Description copied from class:Ofdpa2PipelineDetermines whether this driver supports installing a clearDeferred action on table 30.- Overrides:
supportsUnicastBlackHolein classOfdpa2Pipeline- Returns:
- true if required
-
processFilter
protected void processFilter(org.onosproject.net.flowobjective.FilteringObjective filteringObjective, boolean install, org.onosproject.core.ApplicationId applicationId)Description copied from class:Ofdpa2PipelineAs per OFDPA 2.0 TTP, filtering of VLAN ids and MAC addresses (for routing) configured on switch ports happen in different tables.- Overrides:
processFilterin classOfdpa2Pipeline- Parameters:
filteringObjective- the filtering objectiveinstall- indicates whether to add or remove the objectiveapplicationId- the application that sent this objective
-
shouldRemoveDoubleTagged
public boolean shouldRemoveDoubleTagged(org.onosproject.net.flow.instructions.Instruction meta)
- Parameters:
meta- The metadata instruction of this treatment- Returns:
- True if we should remove both VLAN and Mac Termination flow entries. This is only used for double tagged hosts.
-
processEthTypeSpecific
protected java.util.Collection<org.onosproject.net.flow.FlowRule> processEthTypeSpecific(org.onosproject.net.flowobjective.ForwardingObjective fwd)
Description copied from class:Ofdpa2PipelineHandles forwarding rules to the IP and MPLS tables.- Overrides:
processEthTypeSpecificin classOfdpa2Pipeline- Parameters:
fwd- the forwarding objective- Returns:
- A collection of flow rules, or an empty set
-
processVersatile
protected java.util.Collection<org.onosproject.net.flow.FlowRule> processVersatile(org.onosproject.net.flowobjective.ForwardingObjective fwd)
Description copied from class:Ofdpa2PipelineIn the OF-DPA 2.0 pipeline, versatile forwarding objectives go to the ACL table.- Overrides:
processVersatilein classOfdpa2Pipeline- Parameters:
fwd- the forwarding objective of type 'versatile'- Returns:
- a collection of flow rules to be sent to the switch. An empty collection may be returned if there is a problem in processing the flow rule
-
-