gov.nist.antd.mpls.mgmt.mpls_interface
Class MPLSInterfaceInfo

java.lang.Object
  |
  +--SSF.OS.ProtocolSession
        |
        +--gov.nist.antd.mpls.mgmt.mpls_interface.MPLSInterfaceInfo
All Implemented Interfaces:
com.renesys.raceway.DML.Configurable

public class MPLSInterfaceInfo
extends ProtocolSession

Class to manage NIC(_NIC)/ONIC/Tunnel Informations.
MPLSInterfaceInfo class provedes MPLS capabilities to the original SSF NIC model.
It can handle several packet format such as IP Packet, Labeled Packet and Optical Frame.
It also provides Queueing and Scheduling functions, resource management functions, packet forwarding functions, and traffic monitoring functions.
Reference : gov.nist.antd.mpls.mgmt.mpls_interface.MPLSInterfaceMgmt.java

  
             The MPLSInterfaceInfo can handle several Queue for servral LSPs..
             The MPLSInterfaceInfo can supports not only a single Scheduler 
             like a Priority, a WFQ and a RoundRobin but alos a hybrid 
             Scheduler like a Priority-WFQ scheduler..
             (see MPLSMgmt.java - "mplsinit" DML script..)

           +---------------------------+
           | MPLSInterfaceInfo         |
           |  - Interface Information  |
           |    (ID, Type, IPaddr..)   |
           |  - Resource Information   |
           |    (Total/Available B/W)  |
           |  - Resource Mgmt functions|
           |    (Reserve/Release func) |
           |  - Scheduler              |
           |    (Priority, WFQ, Round  |
           |     Robin, Hybird(Pri-WFQ)|
           |  - Queue(DropTail, RED)   |
           |  - MPLSOpticalInterface   |
           |                           |          +-------------------------------+
           |   - QueueTable ----------------------| MPLSSchedulingQueueEntry      |+
    packet |                           | enqueue  |  - MPLSQueue(Queue functions) ||+
  -------------> push() ------------------------->|  - LSP Informations           |||
           |                           | dequeue  |  - Queue Informations         |||
           |     Scheduler <----------------------|  - Queue Monitoring functions |||
           |          |                |          +-------------------------------+||
           +----------|----------------+             +-----------------------------+|
                      |                                 +---------------------------+
                      |            +----------+
                      +----------->| NIC/ONIC |-----------> to the next hop
                       packet      +----------+
                       forwarding
 

 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:
EunHyuk Lim (ehlim@antd.nist.gov, othree28@hotmail.com)
, borchert , Chul

Field Summary
 double availableBandwidth
          Field availableBandwidth - available bandwidth of the Interface(totalBandwidth - reservedBandwidth, bps)
 double availableTunnelExcessBandwidth
          Field availableTunnelExcessBandwidth - Excess bandwidth for the bandwidth borrowing function
 double controlBandwidth
          Field controlBandwidth - bandwidth for a Control channel to exchange control messages(Signaling message, Routing etc..)
 MPLSTrafficPolicy controlTrafficPolicy
          Field controlTrafficPolicy - Control Traffic Policy Module for a control channel of the Interface
 boolean debug
          Field debug - Debug flag
 double delay
          Field Delay - Propagation Delay of a link that is attached the Interface
 int encodingType
          Field encodingType - Shim Type
 int groupIPAddr
          Field GroupIPAddr - Group IP Address
 java.lang.String ifaceInfo
          Field IfaceInfo - String variable to record informations about the Interface
 java.io.File interfaceDir
          Field InterfaceDir
 int interfaceID
          Field InterfaceID - Identification of the Interface
 MPLSInterfaceMgmt interfaceMgmt
          Field interfaceMgmt - Interface Management module
 java.lang.String interfaceName
          Field InterfaceName - Name of the Interface( auto selected by the MPLSInterfaceInfo )
 java.io.FileWriter interfaceStatus
          Field InterfaceStatus - Interface Log File
 int interfaceType
          Field InterfaceType - Type of the Interface(NIC, ONIC or Tunnel)
 int ipAddr
          Field ipAddr - Integer type of the IP Address
 java.lang.String ipAddrString
          Field ipAddrString - String type of the IP Address (x.x.x.x/m - IP address/bit mask)
 boolean isActiveTunnel
          Field isActiveTunnel
 boolean isIfaceLogOn
          Field isIfaceLogOn
 boolean isInterfaceStatusOn
          Field isInterfaceStatusOn
 boolean isLSRInterface
          Field isLSRInterface - XXX
 int labelValue
          Field LabelValue - for getLabel() function
 int maskBits
          Field maskBits - Mask Bits of the IP Address
 MPLSMgmt mplsMgmt
          Field mplsMgmt - MPLSMgmt module
static int MULTICAST_TYPE
          Field MultiCastType - XXX
 java.util.Vector multiCastInformationTable
          Field MultiCastInformationTable - XXX
 MPLSInterfaceInfo multiCastInterface
          Field MultiCastInterface - Multicasting Interface Information
 int multiCastInterfaceType
          Field MultiCastInterfaceType - Multicasting Interface Type
 _NIC nic
          Field nic - SSF.Net.NIC instance, Phsycal interface instance
static int NIC_TYPE
          Field NICType - Definition of the NIC type
static int ONIC_TYPE
          Field ONICType - Definition of the ONIC type
 MPLSOpticalInterface opticaliface
          Field opticaliface - Management Module for the Optical Interface type
 MPLSInterfaceInfo peerLSRInterface
          Field PeerLSRInterface - MPLSInterfaceInfo of the Peer Node
 java.lang.String peerNodeID
          Field PeerNodeID - Node ID of the Peer Node
 java.util.Vector primaryQueueTable
          Field PrimaryQueueTable - A Queue table for the Primary Scheduler
 java.util.Hashtable queueTable
          Field QueueTable - LSP Queue table
 MPLSPacketScheduler scheduler
          Field Scheduler - MPLSPacketScheduler instance for a LSP Scheduling function
 MPLSSchedulingQueueEntry secondaryQueueInfo
          Field SecondaryQueueInfo
 java.util.Vector secondaryQueueTable
          Field SecondaryQueueTable - A Queue Table for the Secondary Scheduler
 int sourceIPAddr
          Field SourceIPAddr - Source IP Address
 double sumOfWeight
          Field SumOfWeight - Sum of weight values of all of WFQ
 double totalBandwidth
          Field totalBandwidth - total bandwidth of the Interface(bps)
 TunnelInfo tunnel
          Field tunnel - Information class for the Tunnel Interface type
static int TUNNEL_TYPE
          Field TunnelType - Definition of the Tunnel Interface type
 MPLSInterfaceInfo tunnelnic
          Field tunnelnic
static int UNDEFINED
          Field NICType - Definition of the NIC type
 MPLSTrafficPolicy userTrafficPolicy
          Field userTrafficPolicy - User Traffic Policy Module for a Tunnel Interface type
 
Fields inherited from class SSF.OS.ProtocolSession
name, use
 
Constructor Summary
MPLSInterfaceInfo(MPLSInterfaceMgmt ifacemgmt)
          Creates an instance of the mpls interface info.
 
Method Summary
 void addMultiCastInformation(MPLSInterfaceInfo info)
          Method addMultiCastInformation Add Multicast Information to the multicasting table
 MPLSSchedulingQueueEntry createControlMessageQueueEntry()
          Method createControlMessageQueueEntry
If the isControlChannelON flage is true, the MPLSInterfaceInfo creates a Queue for control traffics.
See, MPLSMgmt.java - "mplsinit" DML script
 void createDefaultCahnnel()
          Creates a default control channel for control traffics.
 MPLSSchedulingQueueEntry createMPLSQueueEntry(MPLSSignalingInfo sinfo)
          Method createMPLSQueueEntry
The createMPLSQueueEntry() is called by the setupQueue() function to create a LSP Queue
 void createMPLSScheduler()
          Creates a Scheduler that is defined at the "mplsinit" DML script.
 void createQueueTables()
          Creates QueueTables to support LSP Scheduling function.
 double getAvailableExcessBandwidth(double weight)
          Method getAvailableExcessBandwidth Get the available excess bandwidth with weight value
 Lambda getInLambda(int fiberid, int lambdaid)
          Method getInLambda Retrieves the Incoming Lambda
 int getIpAddr()
          Returns the IP address.
 java.lang.String getipAddrString()
          Returns the IP address as string.
 int getLabel(double bandwidth)
          Method getLabel
The getLabel() is called by the createFEC_ILM_Tunnel() in the gov.nist.antd.mpls_mgmt.mpls_signaling_interface.MPLSSignalingInterfaceMgmt to get Label value for label mapping procedure.
 int getMaskBits()
          Returns the mask bits.
 Lambda getOutLambda(int fiberid, int lambdaid)
          Method getOutLambda Retrieves the Outgoing Lambda
 java.util.Vector getTunnelPathInfo()
          Method getTunnelPathInfo Get the Tunnel Table inforamtion
 void init(_NIC nicinfo)
          Initiation function for configuration to manage a NIC/ONIC interface.
 void init(MPLSInterfaceInfo iface, int newSourceIpAddr, int newGroupIpAddr, double resource)
          Prototype function for Multicast.
 void init(TunnelInfo tinfo)
          Initiation function for configuration to manage a NIC interface.
static java.lang.String interfaceTypeStr(int type)
          Retruns the textual description of the interface type.
 boolean isAvailableResource(double bandwidth, boolean isOut)
          Method isAvailableResource The isAvailableResource() is called by the resourceCheck() in the gov.nist.antd.mpls_mgmt.mpls_signaling_interface.MPLSSignalingInterfaceMgmt to verify whether the requested bandwidth is available.
 boolean isPeerLSR(_NIC nicinfo)
          the isPeerLSR() examines whether the peerNode is the LSRType or not.
 void LSPReleaseLog(MPLSSignalingInfo sinfo)
          Method LSPReleaseLog Write the Release LSP Log
 void LSPSetUpLog(MPLSSignalingInfo sinfo, MPLSSchedulingQueueEntry msqe)
          Method LSPSetUpLog Setup LSP Log information
 void monitoring()
          Monitoring.
 boolean packetForwarding(ProtocolMessage message, ProtocolSession fromSession)
          Forwards the message
 boolean push(ProtocolMessage message, ProtocolSession fromSession)
          Method push Put the message to the proper Queue Entry
 void QueueConfigLogFile(MPLSSchedulingQueueEntry msqe)
          QueueConfigLogFile Queue Configuration Log information
 void releaseBandwidth(MPLSSignalingInfo sinfo, double bandwidth, int labelvalue, boolean isout)
          Method releaseBandwidth The releaseBandwidth() is called by the LabelRelease() in the gov.nist.antd.mpls_mgmt.mpls_signaling_interface.MPLSSignalingInterfaceMgmt to release the bandwidth of the LSP.
 void releaseQueue(MPLSSignalingInfo sinfo)
          The releaseQueue() is called by the releaseBandwidth() function in the MPLSInterfaceInfo to release resource of the LSP.
 void removeMultiCastInformation(int groupid, int sourceid)
          Method removeMultiCastInformation Remove the Multicasting Interface Information from the table
 boolean reserveBandwidth(MPLSSignalingInfo sinfo, double bandwidth, int labelvalue)
          Method reserveBandwidth The reserveBandwidth() is called by the LabelMapping() in the gov.nist.antd.mpls_mgmt.mpls_signaling_interface.MPLSSignalingInterfaceMgmt to allocate the requested bandwidth to the LSP.
 void schedulingRateMonitor()
          SchedulingRateMonitor Monitors a scheduling Rate information
 void setAvailableTunnelExcessBandwidth(double bw)
          Method setAvailableTunnelExcessBandwidth Increase the total Tunnel bandwidth to excess bandwidth
 MPLSSchedulingQueueEntry setLSPQueue(MPLSSignalingInfo sinfo)
          Method setLSPQueue
The setLSPQueue() creates a LSP Queue when a LSP is established.
This function is called by the reserveBandwidth() function in the MPLSInterfaceInfo.java
 void setTrafficPolicy(int LabelValue, MPLSTrafficPolicy tp)
          Method setTrafficPolicy
The setTrafficPolicy() is called by the LabelMapping() function in the gov.nist.antd.mpls_mgmt.mpls_signaling_interface.java to monitor packet drop at the TrafficPolicy module.
 void setupLodDir()
          Method setupLodDir
 void setupLogFile(java.lang.String info)
          Writes the log for the setup
 void setupPeerLSRInterface(MPLSInterfaceInfo peeriface)
          Method setupPeerLSRInterface Setup Peer LSR Interface
 MPLSSchedulingQueueEntry setupQueue(MPLSSignalingInfo sinfo, java.lang.String SchedulingType, boolean isPrimary)
          Method setupQueue
The setupQueue() is called by the setLSPQueue() function to create a LSP Queue
 void setWFQParms(int labelvalue, double excessBW)
          The setWFQParms() is called by the AvailableExcessBandwidthReport() function in the class CRLDPControlBlock
 void setWFQParms(java.util.Vector vinfo)
          Method setWFQParms
WFQ configuration function
It called by the setupQueue() and the releaseQueue() functions in the MPLSInterfaceInfo to recalculate the Weight Factor in each Queue.
 
Methods inherited from class SSF.OS.ProtocolSession
close, closed, config, debugIdentifier, inGraph, init, 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

UNDEFINED

public static final int UNDEFINED
Field NICType - Definition of the NIC type

Since:
1.1
See Also:
Constant Field Values

NIC_TYPE

public static final int NIC_TYPE
Field NICType - Definition of the NIC type

See Also:
Constant Field Values

TUNNEL_TYPE

public static final int TUNNEL_TYPE
Field TunnelType - Definition of the Tunnel Interface type

See Also:
Constant Field Values

ONIC_TYPE

public static final int ONIC_TYPE
Field ONICType - Definition of the ONIC type

See Also:
Constant Field Values

MULTICAST_TYPE

public static final int MULTICAST_TYPE
Field MultiCastType - XXX

See Also:
Constant Field Values

mplsMgmt

public MPLSMgmt mplsMgmt
Field mplsMgmt - MPLSMgmt module


interfaceMgmt

public MPLSInterfaceMgmt interfaceMgmt
Field interfaceMgmt - Interface Management module


debug

public boolean debug
Field debug - Debug flag


labelValue

public int labelValue
Field LabelValue - for getLabel() function


ipAddrString

public java.lang.String ipAddrString
Field ipAddrString - String type of the IP Address (x.x.x.x/m - IP address/bit mask)


ipAddr

public int ipAddr
Field ipAddr - Integer type of the IP Address


maskBits

public int maskBits
Field maskBits - Mask Bits of the IP Address


interfaceType

public int interfaceType
Field InterfaceType - Type of the Interface(NIC, ONIC or Tunnel)


interfaceID

public int interfaceID
Field InterfaceID - Identification of the Interface


nic

public _NIC nic
Field nic - SSF.Net.NIC instance, Phsycal interface instance


isActiveTunnel

public boolean isActiveTunnel
Field isActiveTunnel


tunnel

public TunnelInfo tunnel
Field tunnel - Information class for the Tunnel Interface type


tunnelnic

public MPLSInterfaceInfo tunnelnic
Field tunnelnic


availableTunnelExcessBandwidth

public double availableTunnelExcessBandwidth
Field availableTunnelExcessBandwidth - Excess bandwidth for the bandwidth borrowing function


opticaliface

public MPLSOpticalInterface opticaliface
Field opticaliface - Management Module for the Optical Interface type


delay

public double delay
Field Delay - Propagation Delay of a link that is attached the Interface


isLSRInterface

public boolean isLSRInterface
Field isLSRInterface - XXX


multiCastInformationTable

public java.util.Vector multiCastInformationTable
Field MultiCastInformationTable - XXX


sourceIPAddr

public int sourceIPAddr
Field SourceIPAddr - Source IP Address


groupIPAddr

public int groupIPAddr
Field GroupIPAddr - Group IP Address


multiCastInterfaceType

public int multiCastInterfaceType
Field MultiCastInterfaceType - Multicasting Interface Type


multiCastInterface

public MPLSInterfaceInfo multiCastInterface
Field MultiCastInterface - Multicasting Interface Information


totalBandwidth

public double totalBandwidth
Field totalBandwidth - total bandwidth of the Interface(bps)


availableBandwidth

public double availableBandwidth
Field availableBandwidth - available bandwidth of the Interface(totalBandwidth - reservedBandwidth, bps)


controlBandwidth

public double controlBandwidth
Field controlBandwidth - bandwidth for a Control channel to exchange control messages(Signaling message, Routing etc..)


encodingType

public int encodingType
Field encodingType - Shim Type


peerNodeID

public java.lang.String peerNodeID
Field PeerNodeID - Node ID of the Peer Node


peerLSRInterface

public MPLSInterfaceInfo peerLSRInterface
Field PeerLSRInterface - MPLSInterfaceInfo of the Peer Node


userTrafficPolicy

public MPLSTrafficPolicy userTrafficPolicy
Field userTrafficPolicy - User Traffic Policy Module for a Tunnel Interface type


controlTrafficPolicy

public MPLSTrafficPolicy controlTrafficPolicy
Field controlTrafficPolicy - Control Traffic Policy Module for a control channel of the Interface


interfaceName

public java.lang.String interfaceName
Field InterfaceName - Name of the Interface( auto selected by the MPLSInterfaceInfo )


interfaceDir

public java.io.File interfaceDir
Field InterfaceDir


isIfaceLogOn

public boolean isIfaceLogOn
Field isIfaceLogOn


isInterfaceStatusOn

public boolean isInterfaceStatusOn
Field isInterfaceStatusOn


interfaceStatus

public java.io.FileWriter interfaceStatus
Field InterfaceStatus - Interface Log File


ifaceInfo

public java.lang.String ifaceInfo
Field IfaceInfo - String variable to record informations about the Interface


sumOfWeight

public double sumOfWeight
Field SumOfWeight - Sum of weight values of all of WFQ


scheduler

public MPLSPacketScheduler scheduler
Field Scheduler - MPLSPacketScheduler instance for a LSP Scheduling function


queueTable

public java.util.Hashtable queueTable
Field QueueTable - LSP Queue table


primaryQueueTable

public java.util.Vector primaryQueueTable
Field PrimaryQueueTable - A Queue table for the Primary Scheduler


secondaryQueueTable

public java.util.Vector secondaryQueueTable
Field SecondaryQueueTable - A Queue Table for the Secondary Scheduler


secondaryQueueInfo

public MPLSSchedulingQueueEntry secondaryQueueInfo
Field SecondaryQueueInfo

Constructor Detail

MPLSInterfaceInfo

public MPLSInterfaceInfo(MPLSInterfaceMgmt ifacemgmt)
Creates an instance of the mpls interface info.

Parameters:
ifacemgmt - The MPLSInterfaceMgmt module.
Method Detail

interfaceTypeStr

public static java.lang.String interfaceTypeStr(int type)
Retruns the textual description of the interface type.

Returns:
the textual description of the interface type. Valid types are UNDEFINED, NIC_TYPE, ONIC_TYPE, TUNNEL_TYPE, MULTICAST_TYPE.
UNDEFINED is the default value.
Since:
1.1

init

public void init(_NIC nicinfo)
Initiation function for configuration to manage a NIC/ONIC interface.

Parameters:
nicinfo - SSF.Net.NIC instance

isPeerLSR

public boolean isPeerLSR(_NIC nicinfo)
the isPeerLSR() examines whether the peerNode is the LSRType or not.

Parameters:
nicinfo - SSF.Net.NIC instance of the Interface
Returns:
boolean true if the peerNode is the LSRType, otherwise fasle.

init

public void init(TunnelInfo tinfo)
Initiation function for configuration to manage a NIC interface.

Parameters:
tinfo - TunnelInfo instance

init

public void init(MPLSInterfaceInfo iface,
                 int newSourceIpAddr,
                 int newGroupIpAddr,
                 double resource)
Prototype function for Multicast.

Parameters:
iface -
resource -

createDefaultCahnnel

public void createDefaultCahnnel()
Creates a default control channel for control traffics.


createMPLSScheduler

public void createMPLSScheduler()
Creates a Scheduler that is defined at the "mplsinit" DML script.

See Also:
MPLSMgmt

createQueueTables

public void createQueueTables()
Creates QueueTables to support LSP Scheduling function.


setLSPQueue

public MPLSSchedulingQueueEntry setLSPQueue(MPLSSignalingInfo sinfo)
Method setLSPQueue
The setLSPQueue() creates a LSP Queue when a LSP is established.
This function is called by the reserveBandwidth() function in the MPLSInterfaceInfo.java

Parameters:
sinfo - MPLSSignalingInfo, Signaling Information class
Returns:
MPLSSchedulingQueueEntry LSP Queue Instance

setupQueue

public MPLSSchedulingQueueEntry setupQueue(MPLSSignalingInfo sinfo,
                                           java.lang.String SchedulingType,
                                           boolean isPrimary)
Method setupQueue
The setupQueue() is called by the setLSPQueue() function to create a LSP Queue

Parameters:
sinfo - Signaling Information
SchedulingType - Scheduling Type(Priority, WFQ or RoundRobin...)
isPrimary - location of a LSP Queue(true : primaryQueueTable, false : secondaryQueueTable)
Returns:
MPLSSchedulingQueueEntry LSP Queue instance

createMPLSQueueEntry

public MPLSSchedulingQueueEntry createMPLSQueueEntry(MPLSSignalingInfo sinfo)
Method createMPLSQueueEntry
The createMPLSQueueEntry() is called by the setupQueue() function to create a LSP Queue

Parameters:
sinfo - Signaling Information that contains a LSPID, a LabelValue, Traffic Parameters and a Scheduling type
Returns:
MPLSSchedulingQueueEntry LSP Queue Instance

setTrafficPolicy

public void setTrafficPolicy(int LabelValue,
                             MPLSTrafficPolicy tp)
Method setTrafficPolicy
The setTrafficPolicy() is called by the LabelMapping() function in the gov.nist.antd.mpls_mgmt.mpls_signaling_interface.java to monitor packet drop at the TrafficPolicy module.

Parameters:
LabelValue - Outgoing Label value
tp - MPLSTrafficPolicy instance that is attached to the LSP

createControlMessageQueueEntry

public MPLSSchedulingQueueEntry createControlMessageQueueEntry()
Method createControlMessageQueueEntry
If the isControlChannelON flage is true, the MPLSInterfaceInfo creates a Queue for control traffics.
See, MPLSMgmt.java - "mplsinit" DML script

Returns:
MPLSSchedulingQueueEntry - Queue instance for a Control channel

setWFQParms

public void setWFQParms(java.util.Vector vinfo)
Method setWFQParms
WFQ configuration function
It called by the setupQueue() and the releaseQueue() functions in the MPLSInterfaceInfo to recalculate the Weight Factor in each Queue.

Parameters:
vinfo - - Queue table that has WFQ queues..

setWFQParms

public void setWFQParms(int labelvalue,
                        double excessBW)
The setWFQParms() is called by the AvailableExcessBandwidthReport() function in the class CRLDPControlBlock

Parameters:
labelvalue - Outgoing Label value to find a LSP
excessBW - Excess Bandwidth that is allowed to increase bandwidth at the LSP

releaseQueue

public void releaseQueue(MPLSSignalingInfo sinfo)
The releaseQueue() is called by the releaseBandwidth() function in the MPLSInterfaceInfo to release resource of the LSP.

Parameters:
sinfo - signaling information of the LSP.

getLabel

public int getLabel(double bandwidth)
Method getLabel
The getLabel() is called by the createFEC_ILM_Tunnel() in the gov.nist.antd.mpls_mgmt.mpls_signaling_interface.MPLSSignalingInterfaceMgmt to get Label value for label mapping procedure.

Parameters:
bandwidth - Bandwidth of the LSP
Returns:
int Label value to send to the downward LSR

isAvailableResource

public boolean isAvailableResource(double bandwidth,
                                   boolean isOut)
Method isAvailableResource The isAvailableResource() is called by the resourceCheck() in the gov.nist.antd.mpls_mgmt.mpls_signaling_interface.MPLSSignalingInterfaceMgmt to verify whether the requested bandwidth is available.

Parameters:
bandwidth - Requested Bandwidth of the LSP
isOut - LSP Direction(true : upward, false : downward)
Returns:
boolean true : the requested bandwidth is available
false : the requested bandwidth isn't available

reserveBandwidth

public boolean reserveBandwidth(MPLSSignalingInfo sinfo,
                                double bandwidth,
                                int labelvalue)
Method reserveBandwidth The reserveBandwidth() is called by the LabelMapping() in the gov.nist.antd.mpls_mgmt.mpls_signaling_interface.MPLSSignalingInterfaceMgmt to allocate the requested bandwidth to the LSP.

Parameters:
sinfo - signaling information for Label Mapping
bandwidth - Requested bandwidth of the LSP
labelvalue - Outgoing Label value of the LSP
Returns:
boolean true : Resource allocation is success
false : Resource allocation is failure

releaseBandwidth

public void releaseBandwidth(MPLSSignalingInfo sinfo,
                             double bandwidth,
                             int labelvalue,
                             boolean isout)
Method releaseBandwidth The releaseBandwidth() is called by the LabelRelease() in the gov.nist.antd.mpls_mgmt.mpls_signaling_interface.MPLSSignalingInterfaceMgmt to release the bandwidth of the LSP.

Parameters:
sinfo - signaling information
bandwidth - Bandwidth of the LSP
labelvalue - Outgoing Label vlaue of the LSP
isout - Direction of the LSP

getAvailableExcessBandwidth

public double getAvailableExcessBandwidth(double weight)
Method getAvailableExcessBandwidth Get the available excess bandwidth with weight value

Parameters:
weight - - Weight Value
Returns:
double - Available Excess bandwidth

setAvailableTunnelExcessBandwidth

public void setAvailableTunnelExcessBandwidth(double bw)
Method setAvailableTunnelExcessBandwidth Increase the total Tunnel bandwidth to excess bandwidth

Parameters:
bw - - XXX

push

public boolean push(ProtocolMessage message,
                    ProtocolSession fromSession)
Method push Put the message to the proper Queue Entry

Specified by:
push in class ProtocolSession
Parameters:
message -
fromSession -
Returns:
boolean - True if the message is successfully enqueued

packetForwarding

public boolean packetForwarding(ProtocolMessage message,
                                ProtocolSession fromSession)
Forwards the message

Parameters:
message - The message that has to be forwarded
fromSession - the session the message comes from.
Returns:
boolean - XXX

getTunnelPathInfo

public java.util.Vector getTunnelPathInfo()
Method getTunnelPathInfo Get the Tunnel Table inforamtion

Returns:
Vector - Tunnel Table

setupPeerLSRInterface

public void setupPeerLSRInterface(MPLSInterfaceInfo peeriface)
Method setupPeerLSRInterface Setup Peer LSR Interface

Parameters:
peeriface - - XXX

getOutLambda

public Lambda getOutLambda(int fiberid,
                           int lambdaid)
Method getOutLambda Retrieves the Outgoing Lambda

Parameters:
fiberid - - Outgoing Fiber ID
lambdaid - - Ouggoing Lambda ID
Returns:
Lambda

getInLambda

public Lambda getInLambda(int fiberid,
                          int lambdaid)
Method getInLambda Retrieves the Incoming Lambda

Parameters:
fiberid - - Incoming Fiber ID
lambdaid - - Incoming Lambda ID
Returns:
Lambda

addMultiCastInformation

public void addMultiCastInformation(MPLSInterfaceInfo info)
Method addMultiCastInformation Add Multicast Information to the multicasting table

Parameters:
info - - Multicasting Interface information

removeMultiCastInformation

public void removeMultiCastInformation(int groupid,
                                       int sourceid)
Method removeMultiCastInformation Remove the Multicasting Interface Information from the table

Parameters:
groupid - - Group ID
sourceid - - Source ID

setupLodDir

public void setupLodDir()
Method setupLodDir


setupLogFile

public void setupLogFile(java.lang.String info)
Writes the log for the setup

Parameters:
info - - Log Information

LSPSetUpLog

public void LSPSetUpLog(MPLSSignalingInfo sinfo,
                        MPLSSchedulingQueueEntry msqe)
Method LSPSetUpLog Setup LSP Log information

Parameters:
sinfo - - LSP Signaling Information
msqe - - SchedulingQueue Entry

LSPReleaseLog

public void LSPReleaseLog(MPLSSignalingInfo sinfo)
Method LSPReleaseLog Write the Release LSP Log

Parameters:
sinfo - - XXX

QueueConfigLogFile

public void QueueConfigLogFile(MPLSSchedulingQueueEntry msqe)
QueueConfigLogFile Queue Configuration Log information

Parameters:
msqe - The MPLSSchedulingQueueEntry.

schedulingRateMonitor

public void schedulingRateMonitor()
SchedulingRateMonitor Monitors a scheduling Rate information


monitoring

public void monitoring()
Monitoring.


getipAddrString

public java.lang.String getipAddrString()
Returns the IP address as string.

Returns:
Returns the IP adress as string.

getIpAddr

public int getIpAddr()
Returns the IP address.

Returns:
the IP address

getMaskBits

public int getMaskBits()
Returns the mask bits.

Returns:
The mask bits.