|
||||||||||
| 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.MPLSMgmt
The MPLS Management module.
*
The MPLSMgmt module contains serveral MPLS function modules.
- MPLSForwardingTable : gov.nist.antd.mpls_mgmt.forwarding_table.MPLSForwardingTable.java
- MPLSForwarding : gov.nist.antd.mpls_mgmt.mpls_forwarding.MPLSForwarding.java
- MPLSSignalingInterfaceMgmt : gov.nist.antd.mpls_mgmt.mpls_signaling_interface.MPLSSignalingInterfaceMgmt.java
- MPLSInterfaceMgmt : gov.nist.antd.mpls_mgmt.mpls_interface.MPLSInterfaceMgmt
MPLSMgmt module
+-------------------+
| Signaling Prtocol |
+--------+----------+
|
+--------------------------------------------+----------------+--------------------+
| MPLSMgmt | | TEAgent |
| +---------------------+ +-------------+--------------+ | - Fault |
| | MPLSForwardingTable | | MPLSSignalingInterfaceMgmt | | management |
| | - In/Out Interface |-----| - Resource Allocation | | +----------------+ |
| | - In/Out Label | | - Creates forwarding Info | | | OAMModule | |
| +----------+----------+ +--------------+-------------+ | | - Performance | |
| | | | | monitoring | |
| +----------+-----------+ +--------------+-------------+ | | - Coninuity | |
| | MPLSForwarding | | MPLSInterfaceMgmt | | | check | |
| | - Label Swapping | | - Resource Information | | | - Loopback | |
| | - Packet Forwarding | | management | | | test | |
| +----------------------+ +----------------------------+ | +----------------+ |
+-------------------------------------------------------------+--------------------+
Scheduler Informations -------------------------------------------------------------------------
The MPLSMgmt module provides 3 kind of scheduler.
- RoundRobin Scheduler : gov.nist.antd.mpls_mgmt.mpls_interface.RoundRobinScheduler
- Priority Scheduler : gov.nist.antd.mpls_mgmt.mpls_interface.PriorityScheduler
- WFQ Scheduler : gov.nist.antd.mpls_mgmt.mpls_interface.WFQRobinScheduler
You can use a single scheduler or a hybrid scheduler.
If you want to use a single scheduler, you should write "PrimaryScheduler" configuration only
You cann't change the Scheduler name in the DML configuration
- Example of a Single Scheduler configuration
ProtocolSession [name MPLSModule use gov.nist.antd.mpls_mgmt.MPLSMgmt
logfile on
mplsinit [
PacketScheduler [
PrimaryScheduler [
name RoundRobin use gov.nist.antd.mpls_mgmt.mpls_interface.RoundRobinScheduler
#name Priority use gov.nist.antd.mpls_mgmt.mpls_interface.PriorityScheduler
#name WFQ use gov.nist.antd.mpls_mgmt.mpls_interface.WFQScheduler
]
]
]
If you want to use a hybrid scheduler, you should write both "PrimaryScheduler" and "SecondaryScheduler" configuration
- Example of a hybrid scheduler configuration
ProtocolSession [name MPLSModule use gov.nist.antd.mpls_mgmt.MPLSMgmt
logfile on
mplsinit [
PacketScheduler [
PrimaryScheduler [
name RoundRobin use gov.nist.antd.mpls_mgmt.mpls_interface.RoundRobinScheduler
#name Priority use gov.nist.antd.mpls_mgmt.mpls_interface.PriorityScheduler
#name WFQ use gov.nist.antd.mpls_mgmt.mpls_interface.WFQScheduler
]
SecondaryScheduler[
name WFQ use gov.nist.antd.mpls_mgmt.mpls_interface.WFQScheduler
#name RoundRobin use gov.nist.antd.mpls_mgmt.mpls_interface.RoundRobinScheduler
#name Priority use gov.nist.antd.mpls_mgmt.mpls_interface.PriorityScheduler
Priority 4 # SecondaryScheduler priority in the PrimaryScheduler
]
]
]
]
- In case of the WFQ, It can't use the PrimaryScheduler of the hybrid scheduler
It can use a single scheduler only...
Queueing Information -------------------------------------------------------------------------
The MPLSMgmt module provedes 2 kind of Queue.
- DropTail Queue : gov.nist.antd.mpls_mgmt.mpls_interface.MPLSDropTailQueue
- RED Queue : gov.nist.antd.mpls_mgmt.mpls_interface.MPLSREDQueue
- Example of a DropTail Queue configuration
ProtocolSession [name MPLSModule use gov.nist.antd.mpls_mgmt.MPLSMgmt
logfile on
mplsinit [
PacketScheduler [ ...... ]
Queue [
name DropTail use gov.nist.antd.mpls_mgmt.mpls_interface.MPLSDropTailQueue
BufferSize 10000
]
]
]
- Example of a RED Queue configuration
ProtocolSession [name MPLSModule use gov.nist.antd.mpls_mgmt.MPLSMgmt
logfile on
mplsinit [
PacketScheduler [ ...... ]
Queue [
name DropTail use gov.nist.antd.mpls_mgmt.mpls_interface.MPLSDropTailQueue
BufferSize 10000
# Minimum Threshold of the buffer(%)
THmin 0.5 # if buffersize is 10000, THmin is 5000
# Maximum Threshold of the buffer(%)
THmax 0.9 # if buffersize is 10000, THmax is 9000
# Maximum drop probability
Pmax 1.0
# Average Packet Size
mean_pkt_size 1000
# Queue Weight
QueueWeight 0.002
]
]
]
- Example of the auto configuration of the buffersize
BufferSize = AveragePacketSize * ( ln(TargetPacketLossRatio)/ln(TargetUtilization) - 1)
ProtocolSession [name MPLSModule use gov.nist.antd.mpls_mgmt.MPLSMgmt
logfile on
mplsinit [
PacketScheduler [ ...... ]
Queue [
name DropTail use gov.nist.antd.mpls_mgmt.mpls_interface.MPLSDropTailQueue
TargetUtilization 0.8 # utilization
TargetPacketLossRatio 0.001 # packet loss ratio
AveragePacketSize 1000 # average packet size
]
]
]
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 | |
int |
AveragePacketSize
AveragePacketSize - Bytes |
int |
BufferSize
BufferSize - Buffer size of a Queue, Default Buffer size is 10000 bytes |
boolean |
debug
debug - debug mode on or off |
DiffServTrafficConditioner |
diffserv
diffserv - DiffServ Module instance |
MPLSForwarding |
forwarding
forwarding - MPLS Packet forwarding module |
MPLSForwardingTable |
forwardingtable
forwardingtable - Forwarding Table management class |
java.lang.String |
ID
ID - Node(LSR) ID |
int |
IngressLSRID
IngressLSRID - IngressLSRID for a LSPID |
double |
inPmax
inPmax - XXX |
MPLSInterfaceMgmt |
interfacemgmt
interfacemgmt - Interface Information management class |
double |
inTHmax
inTHmax - XXX |
double |
inTHmin
inTHmin - XXX |
IP |
ipsess
ipsess - IP protocol session of this LSR |
boolean |
isControlChannelON
isControlChannelON - creates control channel or not |
boolean |
isOptimalBandwidthFunc
isOptimalBandwidthFunc - Optimized bandwidth borrowing mode on or off |
int |
localLSPIDCounter
localLSPIDCounter - localLSPID for a LSPID |
ProtocolGraph |
localNode
localNode - ProtocolGraph of the Node |
boolean |
logfile
logfile - creates logfile or not |
static int |
LSRType
LSRType - Definition for a LSR |
int |
mean_pkt_size
mean_pkt_size - XXX |
MPLSMonitor |
monitor
monitor - Simulation result monitoring module |
int |
NodeType
NodeType - Node type of this node(LSR or OXC) |
double |
outPmax
outPmax - XXX |
double |
outTHmax
outTHmax - XXX |
double |
outTHmin
Out profile variable /** outTHmin - XXX |
OXCSwitch |
oxcswitch
oxcswitch - OXCSwitch instance |
static int |
OXCType
OXCType - Definition for a OXC |
double |
Pmax
Pmax - XXX |
boolean |
primaryScheduler
primaryScheduler - Primary Scheduler |
java.lang.String |
primarySchedulerClass
primarySchedulerClass - Primary Scheduler, Default Primary Scheduler is the RoundRobin Scheduler |
java.lang.String |
primarySchedulerName
primarySchedulerName - Primary Scheduler, Default Primary Scheduler is the RoundRobin Scheduler |
java.lang.String |
QueueClass
QueueClass - Default Class of Queue is MPLSDropTailQueue |
java.lang.String |
QueueName
QueueName - Default Queue is DropTail queue |
double |
QueueWeight
QueueWeight - XXX |
double |
RunTime
RunTime - simulation duration |
java.lang.String[] |
SchedulerNameList
SchedulerNameList - Priority, WFQ, RoundRobin |
boolean |
secondaryScheduler
secondaryScheduler - Secondary Scheduler |
java.lang.String |
secondarySchedulerClass
secondarySchedulerClass - Secondary Scheduler, Default Secondary Scheduler is none.. |
java.lang.String |
secondarySchedulerName
secondarySchedulerName - Secondary Scheduler, Default Secondary Scheduler is none.. |
int |
secondarySchedulerPriority
secondarySchedulerPriority - Priority of the Secondary Scheduler |
MPLSSignalingInterfaceMgmt |
siginterfacemgmt
siginterfacemgmt - Interface for MPLS signaling protocol |
double |
TargetPacketLossRatio
TargetPacketLossRatio - ( 0.0 < TargetPacketLossRatio < 1.0) |
double |
TargetUtilization
TargetUtilization - Target Utilization of a Queue( 0.0 < TargetUtilization < 1.0) |
TEAgent |
teagent
teagent - Traffic Agent moduel |
ProtocolSession |
tePath
tePath - Traffic Engineering module |
double |
THmax
THmax - XXX |
double |
THmin
THmin - XXX |
| Fields inherited from class SSF.OS.ProtocolSession |
name, use |
| Constructor Summary | |
MPLSMgmt()
Constructor MPLSMgmt |
|
| Method Summary | |
void |
config(com.renesys.raceway.DML.Configuration cfg)
Method config XXX |
int |
getIngressLSRID()
Method getIngressLSRID |
int |
getLocalLSPID()
Method getLocalLSPID |
MPLSForwarding |
getMPLSForwarding()
Method getMPLSForwarding |
MPLSForwardingTable |
getMPLSForwardingTable()
Method getMPLSForwardingTable |
MPLSInterfaceMgmt |
getMPLSInterfaceMgmt()
Method getMPLSInterfaceMgmt |
MPLSSignalingInterfaceMgmt |
getMPLSSignalingInterfaceMgmt()
Method getMPLSSignalingInterfaceMgmt |
int |
getNodeType()
Method getNodeType |
OXCSwitch |
getOXCSwitch()
Method getOXCSwitch |
TEAgent |
getTEAgent()
Method getTEAgent |
double |
getTime()
Method getTime |
void |
init()
Method init |
void |
initMPLSMgmtSubModule()
Method initMPLSMgmtSubModule |
ShimMessage |
LabelStacking(int interfaceid,
int labelvalue,
ProtocolMessage message)
Method LabelStacking Label Stacking Information |
boolean |
mplsPacketForwarding(ProtocolMessage message,
ProtocolSession fromSession)
Method mplsPacketForwarding XXX |
OpticalFrameHeader |
opticalFraming(int interfaceid,
int labelvalue,
ProtocolMessage message)
Method opticalFraming XXX |
OpticalFrameHeader |
opticalFraming(int interfaceid,
int labelvalue,
ProtocolMessage message,
double timestamp)
Method opticalFraming XXX |
boolean |
push(ProtocolMessage message,
ProtocolSession fromSession)
Method push XXX |
void |
setDiffServ(DiffServTrafficConditioner dstc)
Method setDiffServ XXX |
void |
setupMPLSMgmt()
Method setupMPLSMgmt |
| 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 |
public java.lang.String ID
public ProtocolGraph localNode
public int IngressLSRID
public int localLSPIDCounter
public int NodeType
public static final int LSRType
public static final int OXCType
public IP ipsess
public OXCSwitch oxcswitch
public DiffServTrafficConditioner diffserv
public MPLSInterfaceMgmt interfacemgmt
public MPLSForwardingTable forwardingtable
public MPLSForwarding forwarding
public MPLSSignalingInterfaceMgmt siginterfacemgmt
public MPLSMonitor monitor
public ProtocolSession tePath
public TEAgent teagent
public double RunTime
public boolean logfile
public boolean debug
public boolean isControlChannelON
public boolean isOptimalBandwidthFunc
public java.lang.String[] SchedulerNameList
public boolean primaryScheduler
public java.lang.String primarySchedulerName
public java.lang.String primarySchedulerClass
public boolean secondaryScheduler
public java.lang.String secondarySchedulerName
public java.lang.String secondarySchedulerClass
public int secondarySchedulerPriority
public java.lang.String QueueName
public java.lang.String QueueClass
public int BufferSize
public double TargetUtilization
public double TargetPacketLossRatio
public int AveragePacketSize
public double THmin
public double THmax
public double Pmax
public int mean_pkt_size
public double QueueWeight
public double inTHmin
public double inTHmax
public double inPmax
public double outTHmin
public double outTHmax
public double outPmax
| Constructor Detail |
public MPLSMgmt()
| Method Detail |
public void config(com.renesys.raceway.DML.Configuration cfg)
throws com.renesys.raceway.DML.configException
config in interface com.renesys.raceway.DML.Configurableconfig in class ProtocolSessioncfg - - Configuration for the MPLSMgmt
com.renesys.raceway.DML.configException
public void init()
throws ProtocolException
init in class ProtocolSessionProtocolExceptionpublic void setupMPLSMgmt()
public void initMPLSMgmtSubModule()
public int getIngressLSRID()
public int getLocalLSPID()
public ShimMessage LabelStacking(int interfaceid,
int labelvalue,
ProtocolMessage message)
interfaceid - - OutGoing Interface IDlabelvalue - - Label for Label stackingmessage - - ProtocolMessage, Payload
public OpticalFrameHeader opticalFraming(int interfaceid,
int labelvalue,
ProtocolMessage message,
double timestamp)
interfaceid - - XXXlabelvalue - - XXXmessage - - XXXtimestamp - - XXX
public OpticalFrameHeader opticalFraming(int interfaceid,
int labelvalue,
ProtocolMessage message)
interfaceid - - XXXlabelvalue - - XXXmessage - - XXX
public boolean push(ProtocolMessage message,
ProtocolSession fromSession)
throws ProtocolException
push in class ProtocolSessionmessage - - XXXfromSession - - XXX
ProtocolException
public boolean mplsPacketForwarding(ProtocolMessage message,
ProtocolSession fromSession)
message - - XXXfromSession - - XXX
public double getTime()
public void setDiffServ(DiffServTrafficConditioner dstc)
dstc - - XXXpublic MPLSInterfaceMgmt getMPLSInterfaceMgmt()
public MPLSForwardingTable getMPLSForwardingTable()
public MPLSForwarding getMPLSForwarding()
public MPLSSignalingInterfaceMgmt getMPLSSignalingInterfaceMgmt()
public OXCSwitch getOXCSwitch()
public int getNodeType()
public TEAgent getTEAgent()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||