gov.nist.antd.merlin.util
Class AutoConfigCtrl

java.lang.Object
  |
  +--SSF.OS.ProtocolSession
        |
        +--gov.nist.antd.merlin.util.AbstractAddDropConfigurator
              |
              +--gov.nist.antd.merlin.util.AutoConfigCtrl
All Implemented Interfaces:
com.renesys.raceway.DML.Configurable, DMLDump
Direct Known Subclasses:
DynRecovery, OptNeighbour

public abstract class AutoConfigCtrl
extends AbstractAddDropConfigurator

This abstract class helps in creating a control protocol on top of OXCSwitch. It implements some mechanism to read addDropLamdbas and automatic generation.

 This class was developed at the National Institute of Standards and
 Technology by employees of the Federal Government in the course of
 their official duties. Pursuant to title 17 Section 105 of the United
 States Code this software is not subject to copyright protection and
 is in the public domain.
 NIST assumes no responsibility whatsoever for its use by other parties,
 and makes no guarantees, expressed or implied, about its quality,
 reliability, or any other characteristic.
 
We would appreciate acknowledgement if the software is used.
NIST ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION AND DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.

Author:
borchert
, rouil

Field Summary
static java.lang.String SESSION_NAME
          The name (oxcswitch) of this protocolsession in the network.
 
Fields inherited from class gov.nist.antd.merlin.util.AbstractAddDropConfigurator
addLambdaIDs, addLambdas, dropLambdaIDs, dropLambdas
 
Fields inherited from class SSF.OS.ProtocolSession
name, use
 
Constructor Summary
AutoConfigCtrl()
          Default constructor
 
Method Summary
 void config(com.renesys.raceway.DML.Configuration cfg)
          Configuration
private  void connectBidirectionalCtrlLambdas(OXCSwitch oxcSwitch, Fiber fiber)
          Connect all control lambdas in a fiber
private  void connectCtrLambda(OXCSwitch oxcSwitch, Fiber fiber, boolean input)
          Connect all controllambdas in a fiber
 void init()
          Initialization routine, called by the ProtocolGraph after instantiation.
abstract  boolean push(ProtocolMessage message, ProtocolSession fromSession)
          Regular push that cannot be used with framing adaptation.
 
Methods inherited from class gov.nist.antd.merlin.util.AbstractAddDropConfigurator
configAddDrop, getAddLambdaIDs, getAddLambdas, getDropLambdaIDs, getDropLambdas, setAddLambdas, setDropLambdas, toDML
 
Methods inherited from class SSF.OS.ProtocolSession
close, closed, debugIdentifier, inGraph, open, opened, pushAfterDelay, pushAfterDelayFailed, setGraph, version
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SESSION_NAME

public static final java.lang.String SESSION_NAME
The name (oxcswitch) of this protocolsession in the network.

See Also:
Constant Field Values
Constructor Detail

AutoConfigCtrl

public AutoConfigCtrl()
Default constructor

Method Detail

config

public void config(com.renesys.raceway.DML.Configuration cfg)
            throws com.renesys.raceway.DML.configException
Configuration

Specified by:
config in interface com.renesys.raceway.DML.Configurable
Overrides:
config in class AbstractAddDropConfigurator
Parameters:
cfg - The DML configuration
Throws:
com.renesys.raceway.DML.configException - if a configuration error occured

init

public void init()
          throws ProtocolException
Initialization routine, called by the ProtocolGraph after instantiation. The order of initialization of a set of protocols is unspecified, so other methods (like open()) may be called before init(). Resources (like connection tables) that may be needed by open() should therefore be created in the ProtocolSession constructor.

Overrides:
init in class AbstractAddDropConfigurator
Throws:
ProtocolException - if an error occured

connectCtrLambda

private void connectCtrLambda(OXCSwitch oxcSwitch,
                              Fiber fiber,
                              boolean input)
Connect all controllambdas in a fiber

Parameters:
oxcSwitch - The OXCSwitch that must connect the lambdas.
fiber - The fiber we want to connect the control lambdas
input - indicate if the fiber is an input fiber

connectBidirectionalCtrlLambdas

private void connectBidirectionalCtrlLambdas(OXCSwitch oxcSwitch,
                                             Fiber fiber)
Connect all control lambdas in a fiber

Parameters:
oxcSwitch - The OXCSwitch that must connect the lambdas.
fiber - The fiber we want to connect the control lambdas

push

public abstract boolean push(ProtocolMessage message,
                             ProtocolSession fromSession)
                      throws ProtocolException
Regular push that cannot be used with framing adaptation.

Specified by:
push in class AbstractAddDropConfigurator
Parameters:
message - The message received.
fromSession - The protocol session which sent the message.
Returns:
True if the message is pushed. False if it is dropped.
Throws:
ProtocolException - If a protocol session exception occurs.