com.h3c.of.ctl.pipeline

## Interface PipelineReader

-     public interface PipelineReader

  Provides basic pipeline understanding for the controller.

  The implementing class will:

  - build and maintain a pipeline definition of all datapaths
  - return a list of suitable tables for a given Flow Mod

  A Pipeline definition is built by way of collecting `MBodyTableFeatures` when a call getDefintition() is invoked for the first time on a given data path. The definition is then cached in the Pipeline Manager and will be available for any subsequent invocations of getDefintition()

  It creating the pipeline definition from OpenFlow constructs.

  It is also assumed that Flow Advisor will facilitate the deep vendor nuances on the valid set of matches at every table.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Set<TableId>` | `align(OfmFlowMod flowmod, DataPathId dpid)` Returns the set of table IDs of the given datapath's pipeline definition that support the given flow mod.
    `PipelineDefinition` | `getDefinition(DataPathId dpid)` Returns the pipeline definition for the given datapath.

- - ### Method Detail

    - #### align

          Set<TableId> align(OfmFlowMod flowmod,
                           DataPathId dpid)
                             throws OpenflowException

      Returns the set of table IDs of the given datapath's pipeline definition that support the given flow mod.

      PipelineReader makes this decision based on the available pipeline definition. Within a pipeline definition, each of the tables will have their corresponding capabilities in terms of matches, actions and configurations that they support.

      Parameters:
        `flowmod` - the FlowMod message
        `dpid` - the datapath to which the FlowMod message is to be sent
      Returns:
        the list of supported table IDs matching the given flow mod
      Throws:
        `OpenflowException` - if there was problem in parsing the pipeline definition
        `NullPointerException` - if either parameter is null
        `NotFoundException` - if the specified datapath does not exist

    - #### getDefinition

          PipelineDefinition getDefinition(DataPathId dpid)

      Returns the pipeline definition for the given datapath. A Pipeline definition is built by way of collecting `MBodyTableFeatures` when a call getDefintition() is invoked for the first time on a given data path. The definition is then cached in the Pipeline Manager and will be available for any subsequent invocations of getDefintition()
      Parameters:
        `dpid` - the datapath to which the given FlowMod message is to be sent
      Returns:
        the pipeline definition for the given datapath
      Throws:
        `NullPointerException` - if dpid is null
        `NotFoundException` - if the specified datapath does not exist

Copyright © 2014. All Rights Reserved.