gov.nist.antd.mpls.signaling.crldp
Class PeerLSRMgmt

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

public class PeerLSRMgmt
extends java.lang.Object

This class manages the peerLsrList in the sCR-LDP module. It has functions to find PeerLSRs and to create PeerLSRInfo to maintain peer info. +------------------------+ (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.

Version:
1.2

 VERSION CONTROL
-------------------------------------------------------------------------
Name - YYYY/MM/DD - VERSION - ACTION
lim - 1.0 - Source created
borchert - 2002/03/12 - 1.1 - MPLSInterfaceInfo changed
borchert - 2002/03/20 - 1.2 - Resorted Package Structure in final position.
borchert - 2002/03/21 - Cleaned up import statements.
borchert - 2002/03/27 - Updated invalid attribute references.
rouil - 2002/03/28 - Renamed and updated class name for S_CRLDP. rouil - 2002/03/29 - Updated reference to IP and IPHeader. chul - 2002/04/03 - Updated comments chul - 2002/06/18 - 1.3 - Redesigned chul - 2002/08/29 - To interact with RSVP replace sCRLDP with SignalingProtocol module

Author:
EunHyuk Lim (ehlim@antd.nist.gov, othree28@hotmail.com)
, borchert , Chul Kim

Field Summary
static int DOMAIN
          Field DOMAIN
 java.lang.String lsrNhiID
          LSR ID
 int nodeType
          Node Type - OXC, LSR
 java.util.Vector peerLsrList
          Peer LSR information Table
static int PEERTOPEER
          Field PEERTOPEER
 SignalingProtocol sigProtocol
          Local Signaling Protocol module
private  int sigType
          Signaling Protocol Type
 
Constructor Summary
PeerLSRMgmt(SignalingProtocol sigPro)
          Constructor PeerLSRMgmt
 
Method Summary
 void addPeerInfo(int ifaceid, ProtocolGraph peerLSR, int peerIntfID, boolean istunnel, int tunnelLSPID)
          Add Peer Information to table - Called by peer node's PeerLSRMgmt module
private  void configNicIntfPeer(MPLSInterface iface)
          Set Peer LSR information with NIC
private  void configOnicIntfPeer(MPLSInterface iface)
          Set the Peer LSR information (ONIC type)
 void configPeerLSR(MPLSInterface iface, int tunnelLSPID)
          Set peer LSR information using the Interface Information
private  void configTunnelIntfPeer(MPLSInterface iface, int tunnelLSPID)
          Set the Peer LSR information (Tunnel Interface)
 int getInInterfaceID(SignalingProtocol peerSigProtocol)
          Return the Interface ID that is attached to Peer LSR
 java.util.Vector getOUNICleints()
          Get OUNI Clients from the Peer LSR list
 PeerLSRInfo getPeerNodeInfo(int key_value, boolean ip_intfID, boolean localFlag)
          Get the next LSR has the Interface ID or IP address if ip_intfID is true, find the LSR with IP address otherwise with Interface ID If localflag is true, search the key value in local domain.
 PeerLSRInfo getPeerNodeInfo(java.lang.String peerLSRNhiID, int lspID)
          Get PeerLSRInfo using the Peer Node's NHI
 void startConfigPeerLsr()
          Configure the Peer LSR Infomation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

nodeType

public int nodeType
Node Type - OXC, LSR


lsrNhiID

public java.lang.String lsrNhiID
LSR ID


PEERTOPEER

public static final int PEERTOPEER
Field PEERTOPEER

See Also:
Constant Field Values

DOMAIN

public static final int DOMAIN
Field DOMAIN

See Also:
Constant Field Values

sigType

private int sigType
Signaling Protocol Type


peerLsrList

public java.util.Vector peerLsrList
Peer LSR information Table


sigProtocol

public SignalingProtocol sigProtocol
Local Signaling Protocol module

Constructor Detail

PeerLSRMgmt

public PeerLSRMgmt(SignalingProtocol sigPro)
Constructor PeerLSRMgmt

Parameters:
sigPro - Signaling Protocol
Method Detail

startConfigPeerLsr

public void startConfigPeerLsr()
Configure the Peer LSR Infomation


configPeerLSR

public void configPeerLSR(MPLSInterface iface,
                          int tunnelLSPID)
Set peer LSR information using the Interface Information

Parameters:
iface - MPLS Interface
tunnelLSPID - Tunnel LSP ID - It has a meaning only when the tunnel interface is added

configNicIntfPeer

private void configNicIntfPeer(MPLSInterface iface)
Set Peer LSR information with NIC

Parameters:
iface - NIC Interface

configTunnelIntfPeer

private void configTunnelIntfPeer(MPLSInterface iface,
                                  int tunnelLSPID)
Set the Peer LSR information (Tunnel Interface)

Parameters:
iface - Tunnel Interface
tunnelLSPID - Tunnel LSP ID

configOnicIntfPeer

private void configOnicIntfPeer(MPLSInterface iface)
Set the Peer LSR information (ONIC type)

Parameters:
iface - - ONIC Interface

getPeerNodeInfo

public PeerLSRInfo getPeerNodeInfo(int key_value,
                                   boolean ip_intfID,
                                   boolean localFlag)
Get the next LSR has the Interface ID or IP address if ip_intfID is true, find the LSR with IP address otherwise with Interface ID If localflag is true, search the key value in local domain.

Parameters:
key_value - - Interface ID value or IP address
ip_intfID - - True, if key_value is IP otherwise false
localFlag - True, If searching domain is local
Returns:
PeerLSRInfo - Peer LSR Information

getPeerNodeInfo

public PeerLSRInfo getPeerNodeInfo(java.lang.String peerLSRNhiID,
                                   int lspID)
Get PeerLSRInfo using the Peer Node's NHI

Parameters:
peerLSRNhiID - Peer LSR ID
lspID - LSP ID
Returns:
gov.nist.antd.mpls.signaling.crldp.PeerLSRInfo

getInInterfaceID

public int getInInterfaceID(SignalingProtocol peerSigProtocol)
Return the Interface ID that is attached to Peer LSR

Parameters:
peerSigProtocol - Peer Node's Signaling Protocol
Returns:
int interface ID

addPeerInfo

public void addPeerInfo(int ifaceid,
                        ProtocolGraph peerLSR,
                        int peerIntfID,
                        boolean istunnel,
                        int tunnelLSPID)
Add Peer Information to table - Called by peer node's PeerLSRMgmt module

Parameters:
ifaceid - - Interface ID
peerLSR - - Peer LSR(ProtocolGraph)
peerIntfID - - Peer interface id
istunnel - - True if interface is tunnel interface
tunnelLSPID - Tunnel LSP ID

getOUNICleints

public java.util.Vector getOUNICleints()
Get OUNI Clients from the Peer LSR list

Returns:
Vector