Class OvsOfdpaGroupHandler


  • public class OvsOfdpaGroupHandler
    extends Ofdpa2GroupHandler
    Group handler for Open vSwitch OFDPA pipeline.
    • Constructor Detail

      • OvsOfdpaGroupHandler

        public OvsOfdpaGroupHandler()
    • Method Detail

      • supportCopyTtl

        protected boolean supportCopyTtl()
        Description copied from class: Ofdpa2GroupHandler
        Determines whether this pipeline support copy ttl instructions or not.
        Overrides:
        supportCopyTtl in class Ofdpa2GroupHandler
        Returns:
        true if copy ttl instructions are supported
      • supportSetMplsBos

        protected boolean supportSetMplsBos()
        Description copied from class: Ofdpa2GroupHandler
        Determines whether this pipeline support set mpls bos instruction or not.
        Overrides:
        supportSetMplsBos in class Ofdpa2GroupHandler
        Returns:
        true if set mpls bos instruction is supported
      • requireVlanPopBeforeMplsPush

        protected boolean requireVlanPopBeforeMplsPush()
        Description copied from class: Ofdpa2GroupHandler
        Determines 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:
        requireVlanPopBeforeMplsPush in class Ofdpa2GroupHandler
        Returns:
        true if this pipeline requires popping VLAN before pushing MPLS
      • requireAllowVlanTransition

        protected boolean requireAllowVlanTransition()
        Description copied from class: Ofdpa2GroupHandler
        Determines whether this pipeline requires AllowVlanTransition in L2 unfiltered group.
        Overrides:
        requireAllowVlanTransition in class Ofdpa2GroupHandler
        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: Ofdpa2GroupHandler
        Creates 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:
        createL2L3Chain in class Ofdpa2GroupHandler
        Parameters:
        treatment - that needs to be broken up to create the group chain
        nextId - of the next objective that needs this group chain
        appId - of the application that sent this next objective
        mpls - determines if L3Unicast or MPLSInterface group is created
        meta - 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:
        processEcmpHashedNextObjective in class Ofdpa2GroupHandler
        Parameters:
        nextObjective - the hashed next objective to support.