gov.nist.antd.mpls.signaling
Class CRLDPControlBlock

java.lang.Object
  |
  +--gov.nist.antd.mpls.signaling.CRLDPControlBlock

public class CRLDPControlBlock
extends java.lang.Object

This class provides Label Request, Mapping and Release functions.
It also provides Notification message functions to report any kind of error events.

  The sCRLDP class is MPLS Signaling Protocol.
  

                                                +------------------------+                   
   (1) When the sCR-LDP is started, it creates  | PeerLSRInfo            |+                  
       a peerLSRInfoTable to maintain peer      |  - PeerLSR information ||+                 
       LSR information to support MPLS signaling|   - Interface Info     |||                 
       messages exchanging                      |   - IP address Info    |||                 
   (2) If there is no peerLSR infomation        |                        |||                                                          
       that is requested to establish a LSP,    +-----------.------------+||                                                              
       Label request will be rejected.            +---------.-------------+|                                    
                                                  +------.--------------+           
                                                            .
                             +=========================+    .
                             | sCR-LDP                 |    .              
    to/from a peerCR-LDP     |  - peerLSRInfoTable...........                      to/from a peerCR-LDP
                             |  - ControlBlockTable.......    
                             |  - Signaling functions  | .                                 
                             +=========================+ .                                     
                                                         .      
                                                +--------.---------------+                   
   (3) When the sCR-LDP receives a Label        | CRLDPControlBlock      |+                  
       request message form the peer CR-LDP,    |  - LSP information     ||+                 
       thesCR-LDP creates a CRLDPControlBlock   |  - Label Request funcs |||                 
       to establish a requested LST             |  - Label Mapping funcs |||                 
   (4) The CRLDPControlBlock has all of         |  - Notification funcs  |||                                                          
       Label Request, Mapping and Release       +------------------------+||                                                              
       functions. So It performs a LSP            +-----------------------+|                                    
       establish, management and release.            +---------------------+                                                         
                                                                     
                                                                     
                                                                     
 

 This class was developed at the National Institute of Standards and
 Technology by employees of the Federal Government and the Towson
 University by student 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:
EunHyuk Lim (ehlim@antd.nist.gov, othree28@hotmail.com)
, borchert , rouil , Chul Kim

Nested Class Summary
 class CRLDPControlBlock.MultiCastInfo
          Class MultiCastInfo Multicast Information class
 
Field Summary
 OUNIConnection connection
          Field connection - OUNI connection object
static int CoreLSR
          Field CoreLSR - XXX
 short CRLDPStatus
          Field CRLDPStatus - CR-LDP status
 boolean debug
          Field debug - Debug flag
static int EgressLSR
          Field EgressLSR - XXX
 ProtocolGraph graph
          Field graph
static int IngressLSR
          Field IngressLSR - XXX
 int inInterfaceID
          Field inInterfaceID - Incoming Interface ID
 int inLabel
          Field inLabel - Incoming Label
 boolean isEnable
          Field isEnable - Enable flag
 boolean isTEAgent
          Field isTEAgent - Traffic Engineering Agent flag
 int LSRType
          Field LSRType - LSR Type : Ingress, Egress, or Core
 int MessageID
          Field MessageID - Message ID
 int nextMessageID
          Field nextMessageID - Next Message ID
 double nextPropagationDelay
          Field nextPropagationDelay - Propagation delay to next node
 S_CRLDP nextsCRLDPInfo
          Field nextsCRLDPInfo - Next node's CR-LDP object
 java.util.Vector nextsCRLDPInfoList
          Field nextsCRLDPInfoList - Next nodes CR-LDP objects
 int outInterfaceID
          Field outInterfaceID - Outgoing Interface ID
 int outLabel
          Field outLabel - Outgoing Label
 int prevMessageID
          Field prevMessageID - Previous Message ID
 double prevPropagationDelay
          Field prevPropagationDelay - Propagation delay to previous node
 S_CRLDP prevsCRLDPInfo
          Field prevsCRLDPInfo - Previous node's CR-LDP object
 double ProcessingDelay
          Field ProcessingDelay - Processing Delay
 S_CRLDP sCRLDPInfo
          Field sCRLDPInfo - CR-LDP object
 MPLSSignalingInfo sigInfo
          Field sigInfo - Signaling information
 TEAgent teagent
          Field teagent - Traffic Engineering Agent
 
Constructor Summary
CRLDPControlBlock(int messageid, S_CRLDP scrldp)
          Constructor CRLDPControlBlock
 
Method Summary
 void AvailableExcessBandwidthReport(ProtocolMessage message, S_CRLDP crldp)
          Method AvailableExcessBandwidthReport Report the available excess bandwidth
 void BadLooseNodeError(ProtocolMessage message, S_CRLDP crldp)
          Method BadLooseNodeError Send Notification Message caused by the bad loose node error
 void BadStrictNodeError(ProtocolMessage message, S_CRLDP crldp)
          Method BadStrictNodeError Send Notification Message caused by the bad Strict Node Error
 void CheckBackupPathResource(ProtocolMessage message, S_CRLDP crldp)
          Method CheckBackupPathResource Check the resource of backup path called by TEAgent or Fault manager module
 void CheckBackupPathResource(ResourceCheckMessage message)
          Check the resource of backup path
 void CRLDPMessageProc(short messageType, double DelayTime, S_CRLDP peercrldp)
          Method CRLDPMessageProc CR-LSP Message handler
 void CRLDPMessageProc(short messageType, double DelayTime, S_CRLDP peercrldp, ProtocolMessage message)
          Method CRLDPMessageProc CR-LDP Message Handler
 void CRLDPMessageProc(short messageType, MPLSSignalingInfo sinfo, double DelayTime, S_CRLDP peercrldp, ProtocolMessage message)
          Method CRLDPMessageProc CR-LDP Message handler
 CRLDPControlBlock.MultiCastInfo getMultiCastInfo(S_CRLDP crldpinfo)
          Method getMultiCastInfo Get Multicasting information object using CR-LDP object
 PeerLSRInfo getNextHopLSR(int nextHopIpaddr, boolean isLooseRouting)
          Method getNextHopLSR Get Next Hop LSR Information
 boolean isMappingDone()
          Method isMappingDone Check the mapping status
 boolean labelMappingProc(ProtocolMessage message, S_CRLDP crldp)
          Method labelMappingProc Label Mapping Function
 void labelRelease(ProtocolMessage message, S_CRLDP crldp)
          Method labelRelease Label Release procedure
 void labelReleaseMultiCast(ProtocolMessage message, S_CRLDP crldp)
          Method labelReleaseMultiCast Label Release procedure for multicasting LSP
 void labelReleaseStart()
          Method labelReleaseStart
 void labelRequestProc(ProtocolMessage message, S_CRLDP crldp)
          Method labelRequestProc Label Request Function
 void LinkErrorReport()
          Method LinkErrorReport Link Error Report Functions Called by TEAgent to notify the Link Error with no argument
 void LinkErrorReport(ProtocolMessage message, S_CRLDP crldp)
          Method LinkErrorReport Receive the Link Error Report Notify it to the TEAgent or Fault Manager..
 void LinkRecoverReport()
          Method LinkRecoverReport Link Recover Report functions Called by TE Agent
 void LinkRecoverReport(ProtocolMessage message, S_CRLDP crldp)
          Method LinkRecoverReport Invoked when link recover report message is received
 void nInternalError(ProtocolMessage message, S_CRLDP crldp)
          Method nInternalError Internal Error Notification
 void Notification(ProtocolMessage message, S_CRLDP crldp)
          Method Notification Send Notification message
 void recvMessage(ProtocolMessage message, S_CRLDP crldp)
          Method recvMessage Deliver the received CRLDP Message to proper CCB S_CRLDP --> CCB
 void ReportBackupPathResource(ProtocolMessage message, S_CRLDP crldp)
          Method ReportBackupPathResource Report the backup path resource
 void ReportBackupPathResource(ResourceCheckMessage message)
           
 void ResourceUnavailable(ProtocolMessage message, S_CRLDP crldp)
          Method ResourceUnavailable Send Notification Message caused by the Resource unavailable
 void sendNotificationMessage(ProtocolMessage message, S_CRLDP crldp)
          Method sendNotificationMessage Send Notification message
 void sendOAM(ProtocolMessage message, boolean toIngressDirection)
          Method sendOAM Send OAM message
 void sendOAM(ProtocolMessage message, S_CRLDP crldp)
          Method sendOAM When called received OAM message
 void TurnBackupPathOn(int activeingresslsrid, int activelocallspid)
          Method TurnBackupPathOn Send Notification about Turn on backup-path message
 void TurnBackupPathOn(ProtocolMessage message, S_CRLDP crldp)
          Method TurnBackupPathOn Called when the Turn on backup-path message is received
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MessageID

public int MessageID
Field MessageID - Message ID


sigInfo

public MPLSSignalingInfo sigInfo
Field sigInfo - Signaling information


IngressLSR

public static final int IngressLSR
Field IngressLSR - XXX

See Also:
Constant Field Values

CoreLSR

public static final int CoreLSR
Field CoreLSR - XXX

See Also:
Constant Field Values

EgressLSR

public static final int EgressLSR
Field EgressLSR - XXX

See Also:
Constant Field Values

LSRType

public int LSRType
Field LSRType - LSR Type : Ingress, Egress, or Core


sCRLDPInfo

public S_CRLDP sCRLDPInfo
Field sCRLDPInfo - CR-LDP object


prevsCRLDPInfo

public S_CRLDP prevsCRLDPInfo
Field prevsCRLDPInfo - Previous node's CR-LDP object


prevMessageID

public int prevMessageID
Field prevMessageID - Previous Message ID


nextsCRLDPInfo

public S_CRLDP nextsCRLDPInfo
Field nextsCRLDPInfo - Next node's CR-LDP object


nextMessageID

public int nextMessageID
Field nextMessageID - Next Message ID


nextsCRLDPInfoList

public java.util.Vector nextsCRLDPInfoList
Field nextsCRLDPInfoList - Next nodes CR-LDP objects


isTEAgent

public boolean isTEAgent
Field isTEAgent - Traffic Engineering Agent flag


teagent

public TEAgent teagent
Field teagent - Traffic Engineering Agent


inInterfaceID

public int inInterfaceID
Field inInterfaceID - Incoming Interface ID


inLabel

public int inLabel
Field inLabel - Incoming Label


outInterfaceID

public int outInterfaceID
Field outInterfaceID - Outgoing Interface ID


outLabel

public int outLabel
Field outLabel - Outgoing Label


ProcessingDelay

public double ProcessingDelay
Field ProcessingDelay - Processing Delay


nextPropagationDelay

public double nextPropagationDelay
Field nextPropagationDelay - Propagation delay to next node


prevPropagationDelay

public double prevPropagationDelay
Field prevPropagationDelay - Propagation delay to previous node


connection

public OUNIConnection connection
Field connection - OUNI connection object


debug

public boolean debug
Field debug - Debug flag


isEnable

public boolean isEnable
Field isEnable - Enable flag


CRLDPStatus

public short CRLDPStatus
Field CRLDPStatus - CR-LDP status


graph

public ProtocolGraph graph
Field graph

Constructor Detail

CRLDPControlBlock

public CRLDPControlBlock(int messageid,
                         S_CRLDP scrldp)
Constructor CRLDPControlBlock

Parameters:
messageid - - Message ID
scrldp - - CR-LDP object
Method Detail

getMultiCastInfo

public CRLDPControlBlock.MultiCastInfo getMultiCastInfo(S_CRLDP crldpinfo)
Method getMultiCastInfo Get Multicasting information object using CR-LDP object

Parameters:
crldpinfo -
Returns:
MultiCastInfo

isMappingDone

public boolean isMappingDone()
Method isMappingDone Check the mapping status

Returns:
boolean - XXX

recvMessage

public void recvMessage(ProtocolMessage message,
                        S_CRLDP crldp)
Method recvMessage Deliver the received CRLDP Message to proper CCB S_CRLDP --> CCB

Parameters:
message - - MPLS Signaling Message
crldp - - the sender(local or peernode)

labelRequestProc

public void labelRequestProc(ProtocolMessage message,
                             S_CRLDP crldp)
Method labelRequestProc Label Request Function

Parameters:
message -
crldp - - CR-LDP module

getNextHopLSR

public PeerLSRInfo getNextHopLSR(int nextHopIpaddr,
                                 boolean isLooseRouting)
Method getNextHopLSR Get Next Hop LSR Information

Parameters:
nextHopIpaddr - - Next Hop IP address
isLooseRouting - - True if loose routing is activated
Returns:
PeerLSRInfo - Peer LSR information

labelMappingProc

public boolean labelMappingProc(ProtocolMessage message,
                                S_CRLDP crldp)
Method labelMappingProc Label Mapping Function

Parameters:
message -
crldp -
Returns:
boolean

labelReleaseStart

public void labelReleaseStart()
Method labelReleaseStart


labelRelease

public void labelRelease(ProtocolMessage message,
                         S_CRLDP crldp)
Method labelRelease Label Release procedure

Parameters:
message -
crldp -

labelReleaseMultiCast

public void labelReleaseMultiCast(ProtocolMessage message,
                                  S_CRLDP crldp)
Method labelReleaseMultiCast Label Release procedure for multicasting LSP

Parameters:
message -
crldp -

AvailableExcessBandwidthReport

public void AvailableExcessBandwidthReport(ProtocolMessage message,
                                           S_CRLDP crldp)
Method AvailableExcessBandwidthReport Report the available excess bandwidth

Parameters:
message -
crldp -

Notification

public void Notification(ProtocolMessage message,
                         S_CRLDP crldp)
Method Notification Send Notification message

Parameters:
message -
crldp -

nInternalError

public void nInternalError(ProtocolMessage message,
                           S_CRLDP crldp)
Method nInternalError Internal Error Notification

Parameters:
message -
crldp -

BadStrictNodeError

public void BadStrictNodeError(ProtocolMessage message,
                               S_CRLDP crldp)
Method BadStrictNodeError Send Notification Message caused by the bad Strict Node Error

Parameters:
message -
crldp -

BadLooseNodeError

public void BadLooseNodeError(ProtocolMessage message,
                              S_CRLDP crldp)
Method BadLooseNodeError Send Notification Message caused by the bad loose node error

Parameters:
message - - XXX
crldp - - XXX

ResourceUnavailable

public void ResourceUnavailable(ProtocolMessage message,
                                S_CRLDP crldp)
Method ResourceUnavailable Send Notification Message caused by the Resource unavailable

Parameters:
message -
crldp -

LinkErrorReport

public void LinkErrorReport()
Method LinkErrorReport Link Error Report Functions Called by TEAgent to notify the Link Error with no argument


LinkErrorReport

public void LinkErrorReport(ProtocolMessage message,
                            S_CRLDP crldp)
Method LinkErrorReport Receive the Link Error Report Notify it to the TEAgent or Fault Manager..

Parameters:
message -
crldp -

LinkRecoverReport

public void LinkRecoverReport()
Method LinkRecoverReport Link Recover Report functions Called by TE Agent


LinkRecoverReport

public void LinkRecoverReport(ProtocolMessage message,
                              S_CRLDP crldp)
Method LinkRecoverReport Invoked when link recover report message is received

Parameters:
message -
crldp -

TurnBackupPathOn

public void TurnBackupPathOn(int activeingresslsrid,
                             int activelocallspid)
Method TurnBackupPathOn Send Notification about Turn on backup-path message

Parameters:
activeingresslsrid - - Active Ingress LSR ID
activelocallspid - - Active Local LSP ID

TurnBackupPathOn

public void TurnBackupPathOn(ProtocolMessage message,
                             S_CRLDP crldp)
Method TurnBackupPathOn Called when the Turn on backup-path message is received

Parameters:
message - - XXX
crldp - - XXX

sendOAM

public void sendOAM(ProtocolMessage message,
                    boolean toIngressDirection)
Method sendOAM Send OAM message

Parameters:
message - - OAM message
toIngressDirection - - Sending Direction

sendOAM

public void sendOAM(ProtocolMessage message,
                    S_CRLDP crldp)
Method sendOAM When called received OAM message

Parameters:
message -
crldp -

CheckBackupPathResource

public void CheckBackupPathResource(ResourceCheckMessage message)
Check the resource of backup path

Parameters:
message - - Resource Check Message

CheckBackupPathResource

public void CheckBackupPathResource(ProtocolMessage message,
                                    S_CRLDP crldp)
Method CheckBackupPathResource Check the resource of backup path called by TEAgent or Fault manager module

Parameters:
message -
crldp -

ReportBackupPathResource

public void ReportBackupPathResource(ResourceCheckMessage message)

ReportBackupPathResource

public void ReportBackupPathResource(ProtocolMessage message,
                                     S_CRLDP crldp)
Method ReportBackupPathResource Report the backup path resource

Parameters:
message -
crldp -

sendNotificationMessage

public void sendNotificationMessage(ProtocolMessage message,
                                    S_CRLDP crldp)
Method sendNotificationMessage Send Notification message

Parameters:
message -
crldp -

CRLDPMessageProc

public void CRLDPMessageProc(short messageType,
                             double DelayTime,
                             S_CRLDP peercrldp)
Method CRLDPMessageProc CR-LSP Message handler

Parameters:
messageType -
DelayTime - - Delay Time
peercrldp - - The node's CR-LDP module that will receive the message

CRLDPMessageProc

public void CRLDPMessageProc(short messageType,
                             double DelayTime,
                             S_CRLDP peercrldp,
                             ProtocolMessage message)
Method CRLDPMessageProc CR-LDP Message Handler

Parameters:
messageType -
DelayTime -
peercrldp -
message -

CRLDPMessageProc

public void CRLDPMessageProc(short messageType,
                             MPLSSignalingInfo sinfo,
                             double DelayTime,
                             S_CRLDP peercrldp,
                             ProtocolMessage message)
Method CRLDPMessageProc CR-LDP Message handler

Parameters:
messageType -
sinfo -
DelayTime -
peercrldp -
message - s