Class SpringOpenTTP

  • All Implemented Interfaces:
    org.onosproject.net.behaviour.Pipeliner, org.onosproject.net.driver.Behaviour, org.onosproject.net.driver.HandlerBehaviour
    Direct Known Subclasses:
    SpringOpenTTPDell

    public class SpringOpenTTP
    extends org.onosproject.net.driver.AbstractHandlerBehaviour
    implements org.onosproject.net.behaviour.Pipeliner
    Driver for SPRING-OPEN pipeline.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected class  SpringOpenTTP.SpringOpenGroup
      SpringOpenGroup can either serve as storage for a GroupKey which can be used to fetch the group from the Group Service, or it can be serve as storage for Traffic Treatments which can be used as flow actions.
    • Constructor Summary

      Constructors 
      Constructor Description
      SpringOpenTTP()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void fail​(org.onosproject.net.flowobjective.Objective obj, org.onosproject.net.flowobjective.ObjectiveError error)  
      void filter​(org.onosproject.net.flowobjective.FilteringObjective filteringObjective)  
      void forward​(org.onosproject.net.flowobjective.ForwardingObjective fwd)  
      java.util.List<java.lang.String> getNextMappings​(org.onosproject.net.behaviour.NextGroup nextGroup)  
      void init​(org.onosproject.net.DeviceId deviceId, org.onosproject.net.behaviour.PipelinerContext context)  
      void next​(org.onosproject.net.flowobjective.NextObjective nextObjective)  
      protected void populateTableMissEntry​(int tableToAdd, boolean toControllerNow, boolean toControllerWrite, boolean toTable, int tableToSend)  
      protected java.util.List<org.onosproject.net.flow.FlowRule> processEthDstFilter​(org.onosproject.net.flow.criteria.EthCriterion ethCriterion, org.onosproject.net.flow.criteria.VlanIdCriterion vlanIdCriterion, org.onosproject.net.flowobjective.FilteringObjective filt, org.onlab.packet.VlanId assignedVlan, org.onosproject.core.ApplicationId applicationId)  
      protected java.util.List<org.onosproject.net.flow.FlowRule> processEthDstOnlyFilter​(org.onosproject.net.flow.criteria.EthCriterion ethCriterion, org.onosproject.core.ApplicationId applicationId, int priority)  
      protected java.util.Collection<org.onosproject.net.flow.FlowRule> processEthDstSpecificObjective​(org.onosproject.net.flowobjective.ForwardingObjective fwd)  
      protected java.util.Collection<org.onosproject.net.flow.FlowRule> processEthTypeSpecificObjective​(org.onosproject.net.flowobjective.ForwardingObjective fwd)  
      protected java.util.Collection<org.onosproject.net.flow.FlowRule> processSpecific​(org.onosproject.net.flowobjective.ForwardingObjective fwd)  
      protected java.util.List<org.onosproject.net.flow.FlowRule> processVlanIdFilter​(org.onosproject.net.flow.criteria.VlanIdCriterion vlanIdCriterion, org.onosproject.net.flowobjective.FilteringObjective filt, org.onlab.packet.VlanId assignedVlan, org.onlab.packet.VlanId explicitlyAssignedVlan, org.onlab.packet.VlanId pushedVlan, boolean pushVlan, boolean popVlan, org.onosproject.core.ApplicationId applicationId)  
      protected void setTableMissEntries()  
      • Methods inherited from class org.onosproject.net.driver.AbstractHandlerBehaviour

        handler, setHandler
      • Methods inherited from class org.onosproject.net.driver.AbstractBehaviour

        data, setData
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.onosproject.net.driver.Behaviour

        data, setData
      • Methods inherited from interface org.onosproject.net.driver.HandlerBehaviour

        handler, setHandler
      • Methods inherited from interface org.onosproject.net.behaviour.Pipeliner

        cleanUp, isReady
    • Field Detail

      • vlanTableId

        protected int vlanTableId
        Set the default values. These variables will get overwritten based on the switch vendor type
      • tmacTableId

        protected int tmacTableId
      • ipv4UnicastTableId

        protected int ipv4UnicastTableId
      • mplsTableId

        protected int mplsTableId
      • dstMacTableId

        protected int dstMacTableId
      • aclTableId

        protected int aclTableId
      • srcMacTableId

        protected int srcMacTableId
      • groupService

        protected org.onosproject.net.group.GroupService groupService
      • flowObjectiveStore

        protected org.onosproject.net.flowobjective.FlowObjectiveStore flowObjectiveStore
      • deviceId

        protected org.onosproject.net.DeviceId deviceId
      • appKryo

        protected org.onlab.util.KryoNamespace appKryo
    • Constructor Detail

      • SpringOpenTTP

        public SpringOpenTTP()
    • Method Detail

      • init

        public void init​(org.onosproject.net.DeviceId deviceId,
                         org.onosproject.net.behaviour.PipelinerContext context)
        Specified by:
        init in interface org.onosproject.net.behaviour.Pipeliner
      • filter

        public void filter​(org.onosproject.net.flowobjective.FilteringObjective filteringObjective)
        Specified by:
        filter in interface org.onosproject.net.behaviour.Pipeliner
      • forward

        public void forward​(org.onosproject.net.flowobjective.ForwardingObjective fwd)
        Specified by:
        forward in interface org.onosproject.net.behaviour.Pipeliner
      • next

        public void next​(org.onosproject.net.flowobjective.NextObjective nextObjective)
        Specified by:
        next in interface org.onosproject.net.behaviour.Pipeliner
      • processSpecific

        protected java.util.Collection<org.onosproject.net.flow.FlowRule> processSpecific​(org.onosproject.net.flowobjective.ForwardingObjective fwd)
      • processEthTypeSpecificObjective

        protected java.util.Collection<org.onosproject.net.flow.FlowRule> processEthTypeSpecificObjective​(org.onosproject.net.flowobjective.ForwardingObjective fwd)
      • processEthDstSpecificObjective

        protected java.util.Collection<org.onosproject.net.flow.FlowRule> processEthDstSpecificObjective​(org.onosproject.net.flowobjective.ForwardingObjective fwd)
      • processEthDstFilter

        protected java.util.List<org.onosproject.net.flow.FlowRule> processEthDstFilter​(org.onosproject.net.flow.criteria.EthCriterion ethCriterion,
                                                                                        org.onosproject.net.flow.criteria.VlanIdCriterion vlanIdCriterion,
                                                                                        org.onosproject.net.flowobjective.FilteringObjective filt,
                                                                                        org.onlab.packet.VlanId assignedVlan,
                                                                                        org.onosproject.core.ApplicationId applicationId)
      • processEthDstOnlyFilter

        protected java.util.List<org.onosproject.net.flow.FlowRule> processEthDstOnlyFilter​(org.onosproject.net.flow.criteria.EthCriterion ethCriterion,
                                                                                            org.onosproject.core.ApplicationId applicationId,
                                                                                            int priority)
      • processVlanIdFilter

        protected java.util.List<org.onosproject.net.flow.FlowRule> processVlanIdFilter​(org.onosproject.net.flow.criteria.VlanIdCriterion vlanIdCriterion,
                                                                                        org.onosproject.net.flowobjective.FilteringObjective filt,
                                                                                        org.onlab.packet.VlanId assignedVlan,
                                                                                        org.onlab.packet.VlanId explicitlyAssignedVlan,
                                                                                        org.onlab.packet.VlanId pushedVlan,
                                                                                        boolean pushVlan,
                                                                                        boolean popVlan,
                                                                                        org.onosproject.core.ApplicationId applicationId)
      • setTableMissEntries

        protected void setTableMissEntries()
      • populateTableMissEntry

        protected void populateTableMissEntry​(int tableToAdd,
                                              boolean toControllerNow,
                                              boolean toControllerWrite,
                                              boolean toTable,
                                              int tableToSend)
      • fail

        protected void fail​(org.onosproject.net.flowobjective.Objective obj,
                            org.onosproject.net.flowobjective.ObjectiveError error)
      • getNextMappings

        public java.util.List<java.lang.String> getNextMappings​(org.onosproject.net.behaviour.NextGroup nextGroup)
        Specified by:
        getNextMappings in interface org.onosproject.net.behaviour.Pipeliner