Class OvsOfdpaGroupHandler
- java.lang.Object
-
- org.onosproject.driver.pipeline.ofdpa.Ofdpa2GroupHandler
-
- org.onosproject.driver.pipeline.ofdpa.OvsOfdpaGroupHandler
-
public class OvsOfdpaGroupHandler extends Ofdpa2GroupHandler
Group handler for Open vSwitch OFDPA pipeline.
-
-
Field Summary
-
Fields inherited from class org.onosproject.driver.pipeline.ofdpa.Ofdpa2GroupHandler
deviceId, flowObjectiveStore, groupService, pendingBuckets, storageService
-
-
Constructor Summary
Constructors Constructor Description OvsOfdpaGroupHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected OfdpaGroupHandlerUtility.GroupInfocreateL2L3Chain(org.onosproject.net.flow.TrafficTreatment treatment, int nextId, org.onosproject.core.ApplicationId appId, boolean mpls, org.onosproject.net.flow.TrafficSelector meta)Creates one of two possible group-chains from the treatment passed in.protected voidprocessEcmpHashedNextObjective(org.onosproject.net.flowobjective.NextObjective nextObjective)In OFDPA2 we do not support the MPLS-ECMP, while we do in Open vSwitch implementation.protected booleanrequireAllowVlanTransition()Determines whether this pipeline requires AllowVlanTransition in L2 unfiltered group.protected booleanrequireVlanPopBeforeMplsPush()Determines whether this pipeline requires popping VLAN before pushing MPLS.protected booleansupportCopyTtl()Determines whether this pipeline support copy ttl instructions or not.protected booleansupportSetMplsBos()Determines whether this pipeline support set mpls bos instruction or not.-
Methods inherited from class org.onosproject.driver.pipeline.ofdpa.Ofdpa2GroupHandler
addBucketToGroup, addGroup, addPendingRemoveNextObjective, addPendingUpdateNextObjective, createEcmpHashBucketChains, createL2L3ChainInternal, createMplsSwap, getNextAvailableIndex, init, modifyBucketFromGroup, modifyBucketInL2Group, modifyBucketInL3Group, processPendingAddGroupsOrNextObjs, processPendingRemoveNextObjs, processPendingUpdateNextObjs, processPwNextObjective, removeBucket, removeBucketFromGroup, removeGroup, terminate, updatePendingGroups, updatePendingNextObjective, verifyGroup
-
-
-
-
Method Detail
-
supportCopyTtl
protected boolean supportCopyTtl()
Description copied from class:Ofdpa2GroupHandlerDetermines whether this pipeline support copy ttl instructions or not.- Overrides:
supportCopyTtlin classOfdpa2GroupHandler- Returns:
- true if copy ttl instructions are supported
-
supportSetMplsBos
protected boolean supportSetMplsBos()
Description copied from class:Ofdpa2GroupHandlerDetermines whether this pipeline support set mpls bos instruction or not.- Overrides:
supportSetMplsBosin classOfdpa2GroupHandler- Returns:
- true if set mpls bos instruction is supported
-
requireVlanPopBeforeMplsPush
protected boolean requireVlanPopBeforeMplsPush()
Description copied from class:Ofdpa2GroupHandlerDetermines whether this pipeline requires popping VLAN before pushing MPLS.If required, pop vlan before push mpls and add an arbitrary vlan back afterward. MPLS interface group will substitute the arbitrary VLAN with expected VLAN later on.
- Overrides:
requireVlanPopBeforeMplsPushin classOfdpa2GroupHandler- Returns:
- true if this pipeline requires popping VLAN before pushing MPLS
-
requireAllowVlanTransition
protected boolean requireAllowVlanTransition()
Description copied from class:Ofdpa2GroupHandlerDetermines whether this pipeline requires AllowVlanTransition in L2 unfiltered group.- Overrides:
requireAllowVlanTransitionin classOfdpa2GroupHandler- Returns:
- true if the AllowVlanTransition action is required
-
createL2L3Chain
protected OfdpaGroupHandlerUtility.GroupInfo createL2L3Chain(org.onosproject.net.flow.TrafficTreatment treatment, int nextId, org.onosproject.core.ApplicationId appId, boolean mpls, org.onosproject.net.flow.TrafficSelector meta)
Description copied from class:Ofdpa2GroupHandlerCreates one of two possible group-chains from the treatment passed in. Depending on the MPLS boolean, this method either creates an L3Unicast Group --> L2Interface Group, if mpls is false; or MPLSInterface Group --> L2Interface Group, if mpls is true; The returned 'inner' group description is always the L2 Interface group.- Overrides:
createL2L3Chainin classOfdpa2GroupHandler- Parameters:
treatment- that needs to be broken up to create the group chainnextId- of the next objective that needs this group chainappId- of the application that sent this next objectivempls- determines if L3Unicast or MPLSInterface group is createdmeta- metadata passed in by the application as part of the nextObjective- Returns:
- GroupInfo containing the GroupDescription of the L2Interface group(inner) and the GroupDescription of the (outer) L3Unicast/MPLSInterface group. May return null if there is an error in processing the chain
-
processEcmpHashedNextObjective
protected void processEcmpHashedNextObjective(org.onosproject.net.flowobjective.NextObjective nextObjective)
In OFDPA2 we do not support the MPLS-ECMP, while we do in Open vSwitch implementation.- Overrides:
processEcmpHashedNextObjectivein classOfdpa2GroupHandler- Parameters:
nextObjective- the hashed next objective to support.
-
-