public class Ofdpa2GroupHandler extends Object
Modifier and Type | Class and Description |
---|---|
protected class |
Ofdpa2GroupHandler.GroupChainElem
Represents a group element that is part of a chain of groups.
|
protected class |
Ofdpa2GroupHandler.GroupInfo
Utility class for moving group information around.
|
protected class |
Ofdpa2GroupHandler.OfdpaNextGroup
Represents an entire group-chain that implements a Next-Objective from
the application.
|
Modifier and Type | Field and Description |
---|---|
protected org.onosproject.net.DeviceId |
deviceId |
protected org.onosproject.net.group.GroupService |
groupService |
protected static int |
L2_FLOOD_TYPE |
protected static int |
L2_INTERFACE_TYPE |
protected static int |
L3_ECMP_TYPE |
protected static int |
L3_INTERFACE_TYPE |
protected static int |
L3_MULTICAST_TYPE |
protected static int |
L3_UNICAST_TYPE |
protected static int |
MPLS_INTERFACE_TYPE |
protected static int |
MPLS_L3VPN_SUBTYPE |
protected ConcurrentHashMap<Integer,org.onosproject.net.flowobjective.NextObjective> |
pendingBuckets |
protected static long |
PORT_HIGHER_BITS_MASK |
protected static int |
PORT_LOWER_BITS_MASK |
protected org.onosproject.store.service.StorageService |
storageService |
protected static int |
SUBTYPE_MASK |
protected static int |
TYPE_MASK |
protected static int |
TYPE_VLAN_MASK |
Constructor and Description |
---|
Ofdpa2GroupHandler() |
Modifier and Type | Method and Description |
---|---|
protected void |
addBucketToGroup(org.onosproject.net.flowobjective.NextObjective nextObjective,
org.onosproject.net.behaviour.NextGroup next)
Adds a bucket to the top level group of a group-chain, and creates the chain.
|
protected void |
addGroup(org.onosproject.net.flowobjective.NextObjective nextObjective) |
protected Ofdpa2GroupHandler.GroupInfo |
createL2L3Chain(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 int |
getNextAvailableIndex() |
protected void |
init(org.onosproject.net.DeviceId deviceId,
org.onosproject.net.behaviour.PipelinerContext context) |
protected int |
l2InterfaceGroupKey(org.onosproject.net.DeviceId deviceId,
org.onlab.packet.VlanId vlanId,
long portNumber)
Returns a hash as the L2 Interface Group Key.
|
protected void |
removeBucketFromGroup(org.onosproject.net.flowobjective.NextObjective nextObjective,
org.onosproject.net.behaviour.NextGroup next)
Removes the bucket in the top level group of a possible group-chain.
|
protected void |
removeGroup(org.onosproject.net.flowobjective.NextObjective nextObjective,
org.onosproject.net.behaviour.NextGroup next)
Removes all groups in multiple possible group-chains that represent the next
objective.
|
protected void |
updatePendingGroups(org.onosproject.net.group.GroupKey gkey,
Ofdpa2GroupHandler.GroupChainElem gce) |
protected static final int L2_INTERFACE_TYPE
protected static final int L3_INTERFACE_TYPE
protected static final int L3_UNICAST_TYPE
protected static final int L3_MULTICAST_TYPE
protected static final int MPLS_INTERFACE_TYPE
protected static final int MPLS_L3VPN_SUBTYPE
protected static final int L3_ECMP_TYPE
protected static final int L2_FLOOD_TYPE
protected static final int TYPE_MASK
protected static final int SUBTYPE_MASK
protected static final int TYPE_VLAN_MASK
protected static final int PORT_LOWER_BITS_MASK
protected static final long PORT_HIGHER_BITS_MASK
protected org.onosproject.net.group.GroupService groupService
protected org.onosproject.store.service.StorageService storageService
protected org.onosproject.net.DeviceId deviceId
protected ConcurrentHashMap<Integer,org.onosproject.net.flowobjective.NextObjective> pendingBuckets
protected void init(org.onosproject.net.DeviceId deviceId, org.onosproject.net.behaviour.PipelinerContext context)
protected void addGroup(org.onosproject.net.flowobjective.NextObjective nextObjective)
protected Ofdpa2GroupHandler.GroupInfo createL2L3Chain(org.onosproject.net.flow.TrafficTreatment treatment, int nextId, org.onosproject.core.ApplicationId appId, boolean mpls, org.onosproject.net.flow.TrafficSelector meta)
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 nextObjectiveprotected void addBucketToGroup(org.onosproject.net.flowobjective.NextObjective nextObjective, org.onosproject.net.behaviour.NextGroup next)
nextObjective
- the next group to add a bucket tonext
- the representation of the existing group-chain for this next objectiveprotected void removeBucketFromGroup(org.onosproject.net.flowobjective.NextObjective nextObjective, org.onosproject.net.behaviour.NextGroup next)
nextObjective
- the next group to remove a bucket fromnext
- the representation of the existing group-chain for this next objectiveprotected void removeGroup(org.onosproject.net.flowobjective.NextObjective nextObjective, org.onosproject.net.behaviour.NextGroup next)
nextObjective
- the next objective to removenext
- the NextGroup that represents the existing group-chain for
this next objectiveprotected void updatePendingGroups(org.onosproject.net.group.GroupKey gkey, Ofdpa2GroupHandler.GroupChainElem gce)
protected int getNextAvailableIndex()
protected int l2InterfaceGroupKey(org.onosproject.net.DeviceId deviceId, org.onlab.packet.VlanId vlanId, long portNumber)
deviceId
- Device IDvlanId
- VLAN IDportNumber
- Port numberCopyright © 2016. All rights reserved.