Class 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.
    • Constructor Detail

      • Ofdpa3Pipeline

        public Ofdpa3Pipeline()
    • Method Detail

      • initGroupHander

        protected void initGroupHander​(org.onosproject.net.behaviour.PipelinerContext context)
        Overrides:
        initGroupHander in class Ofdpa2Pipeline
      • requireVlanExtensions

        protected boolean requireVlanExtensions()
        Description copied from class: Ofdpa2Pipeline
        Determines whether this pipeline requires OFDPA match and set VLAN extensions.
        Overrides:
        requireVlanExtensions in class Ofdpa2Pipeline
        Returns:
        true to use the extensions
      • shouldRetry

        protected boolean shouldRetry()
        Description copied from class: Ofdpa2Pipeline
        Determines whether this driver should continue to retry flows that point to empty groups. See CORD-554.
        Overrides:
        shouldRetry in class Ofdpa2Pipeline
        Returns:
        true if the driver should retry flows
      • supportsUnicastBlackHole

        protected boolean supportsUnicastBlackHole()
        Description copied from class: Ofdpa2Pipeline
        Determines whether this driver supports installing a clearDeferred action on table 30.
        Overrides:
        supportsUnicastBlackHole in class Ofdpa2Pipeline
        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: Ofdpa2Pipeline
        As per OFDPA 2.0 TTP, filtering of VLAN ids and MAC addresses (for routing) configured on switch ports happen in different tables.
        Overrides:
        processFilter in class Ofdpa2Pipeline
        Parameters:
        filteringObjective - the filtering objective
        install - indicates whether to add or remove the objective
        applicationId - 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: Ofdpa2Pipeline
        Handles forwarding rules to the IP and MPLS tables.
        Overrides:
        processEthTypeSpecific in class Ofdpa2Pipeline
        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: Ofdpa2Pipeline
        In the OF-DPA 2.0 pipeline, versatile forwarding objectives go to the ACL table.
        Overrides:
        processVersatile in class Ofdpa2Pipeline
        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