|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object
|
+--SSF.OS.ProtocolSession
|
+--gov.nist.antd.mpls.mgmt.mpls_interface.MPLSInterfaceInfo
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.
| 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 |
public static final int UNDEFINED
public static final int NIC_TYPE
public static final int TUNNEL_TYPE
public static final int ONIC_TYPE
public static final int MULTICAST_TYPE
public MPLSMgmt mplsMgmt
public MPLSInterfaceMgmt interfaceMgmt
public boolean debug
public int labelValue
public java.lang.String ipAddrString
public int ipAddr
public int maskBits
public int interfaceType
public int interfaceID
public _NIC nic
public boolean isActiveTunnel
public TunnelInfo tunnel
public MPLSInterfaceInfo tunnelnic
public double availableTunnelExcessBandwidth
public MPLSOpticalInterface opticaliface
public double delay
public boolean isLSRInterface
public java.util.Vector multiCastInformationTable
public int sourceIPAddr
public int groupIPAddr
public int multiCastInterfaceType
public MPLSInterfaceInfo multiCastInterface
public double totalBandwidth
public double availableBandwidth
public double controlBandwidth
public int encodingType
public java.lang.String peerNodeID
public MPLSInterfaceInfo peerLSRInterface
public MPLSTrafficPolicy userTrafficPolicy
public MPLSTrafficPolicy controlTrafficPolicy
public java.lang.String interfaceName
public java.io.File interfaceDir
public boolean isIfaceLogOn
public boolean isInterfaceStatusOn
public java.io.FileWriter interfaceStatus
public java.lang.String ifaceInfo
public double sumOfWeight
public MPLSPacketScheduler scheduler
public java.util.Hashtable queueTable
public java.util.Vector primaryQueueTable
public java.util.Vector secondaryQueueTable
public MPLSSchedulingQueueEntry secondaryQueueInfo
| Constructor Detail |
public MPLSInterfaceInfo(MPLSInterfaceMgmt ifacemgmt)
ifacemgmt - The MPLSInterfaceMgmt module.| Method Detail |
public static java.lang.String interfaceTypeStr(int type)
public void init(_NIC nicinfo)
nicinfo - SSF.Net.NIC instancepublic boolean isPeerLSR(_NIC nicinfo)
nicinfo - SSF.Net.NIC instance of the Interface
public void init(TunnelInfo tinfo)
tinfo - TunnelInfo instance
public void init(MPLSInterfaceInfo iface,
int newSourceIpAddr,
int newGroupIpAddr,
double resource)
iface - resource - public void createDefaultCahnnel()
public void createMPLSScheduler()
MPLSMgmtpublic void createQueueTables()
public MPLSSchedulingQueueEntry setLSPQueue(MPLSSignalingInfo sinfo)
sinfo - MPLSSignalingInfo, Signaling Information class
public MPLSSchedulingQueueEntry setupQueue(MPLSSignalingInfo sinfo,
java.lang.String SchedulingType,
boolean isPrimary)
sinfo - Signaling InformationSchedulingType - Scheduling Type(Priority, WFQ or RoundRobin...)isPrimary - location of a LSP Queue(true : primaryQueueTable,
false : secondaryQueueTable)
public MPLSSchedulingQueueEntry createMPLSQueueEntry(MPLSSignalingInfo sinfo)
sinfo - Signaling Information that contains a LSPID, a LabelValue,
Traffic Parameters and a Scheduling type
public void setTrafficPolicy(int LabelValue,
MPLSTrafficPolicy tp)
LabelValue - Outgoing Label valuetp - MPLSTrafficPolicy instance that is attached to the LSPpublic MPLSSchedulingQueueEntry createControlMessageQueueEntry()
public void setWFQParms(java.util.Vector vinfo)
vinfo - - Queue table that has WFQ queues..
public void setWFQParms(int labelvalue,
double excessBW)
labelvalue - Outgoing Label value to find a LSPexcessBW - Excess Bandwidth that is allowed to increase bandwidth at
the LSPpublic void releaseQueue(MPLSSignalingInfo sinfo)
sinfo - signaling information of the LSP.public int getLabel(double bandwidth)
bandwidth - Bandwidth of the LSP
public boolean isAvailableResource(double bandwidth,
boolean isOut)
bandwidth - Requested Bandwidth of the LSPisOut - LSP Direction(true : upward, false : downward)
public boolean reserveBandwidth(MPLSSignalingInfo sinfo,
double bandwidth,
int labelvalue)
sinfo - signaling information for Label Mappingbandwidth - Requested bandwidth of the LSPlabelvalue - Outgoing Label value of the LSP
public void releaseBandwidth(MPLSSignalingInfo sinfo,
double bandwidth,
int labelvalue,
boolean isout)
sinfo - signaling informationbandwidth - Bandwidth of the LSPlabelvalue - Outgoing Label vlaue of the LSPisout - Direction of the LSPpublic double getAvailableExcessBandwidth(double weight)
weight - - Weight Value
public void setAvailableTunnelExcessBandwidth(double bw)
bw - - XXX
public boolean push(ProtocolMessage message,
ProtocolSession fromSession)
push in class ProtocolSessionmessage - fromSession -
public boolean packetForwarding(ProtocolMessage message,
ProtocolSession fromSession)
message - The message that has to be forwardedfromSession - the session the message comes from.
public java.util.Vector getTunnelPathInfo()
public void setupPeerLSRInterface(MPLSInterfaceInfo peeriface)
peeriface - - XXX
public Lambda getOutLambda(int fiberid,
int lambdaid)
fiberid - - Outgoing Fiber IDlambdaid - - Ouggoing Lambda ID
public Lambda getInLambda(int fiberid,
int lambdaid)
fiberid - - Incoming Fiber IDlambdaid - - Incoming Lambda ID
public void addMultiCastInformation(MPLSInterfaceInfo info)
info - - Multicasting Interface information
public void removeMultiCastInformation(int groupid,
int sourceid)
groupid - - Group IDsourceid - - Source IDpublic void setupLodDir()
public void setupLogFile(java.lang.String info)
info - - Log Information
public void LSPSetUpLog(MPLSSignalingInfo sinfo,
MPLSSchedulingQueueEntry msqe)
sinfo - - LSP Signaling Informationmsqe - - SchedulingQueue Entrypublic void LSPReleaseLog(MPLSSignalingInfo sinfo)
sinfo - - XXXpublic void QueueConfigLogFile(MPLSSchedulingQueueEntry msqe)
msqe - The MPLSSchedulingQueueEntry.public void schedulingRateMonitor()
public void monitoring()
public java.lang.String getipAddrString()
public int getIpAddr()
public int getMaskBits()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||