|
||||||||||
| 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.diffserv.DiffServTrafficConditioner
This class is the container class of Diffserv Traffic Handling.
DiffServTrafficConditioner defines:
(1) DiffServ packet classification with DiffServPacketClassifier for the
definition of the class-types, such as NCT, EF, AF and BF packet flow
- DiffServ Flow, DiffServ class-type flow
(2) DiffServ packet procession action profile
- Meter: SRTCM, TRTCM
- Queue: Droptail, RED (Random Early Detection), RIO (RED with In/Out)
(under construction)
(3) Packet scheduler
- packet scheduler: priority, WFQ, hybrid(WFQ-Priority)
- DataLinkMapping: to MPLS LSP or to normal IP packet forwarding
public DiffServPacketClassifier Classifier;
|
+--> DiffServFlowTable(Vector) - DiffServFlowTable maintains DiffServFlow(class) infomations..
|
+--> DiffServFlow(class) has all of packet classsifier of a DiffServ Flow...
|
+--> DiffServCTFlowTable(Vector) - DiffServCTFlowTable maintains DiffServCTFlow(class)
| informations...
+--> DiffServCTFlow(class) has a packet classifier for a diffserv class type..
and a DiffServPrfFlowProfile(class) information to perform
a metering, marking and queueing...
public DiffServActionFlowProfile ActionProfile;
|
+--> FlowProfileTable(Hashtable, key : classtype(int))
- FlowProfileTable maintains DiffServFlowProfile(class) informations...
|
+--> DiffServFlowProfile(class) has all of action profile of a DiffServ Flow....
|
+--> PrfFlowProfileTable(Vector)
- PrfFlowProfileTable maintains DiffServPrfFlowProfile(class) informations..
|
+--> DiffServPrfFlowProfile(class)
- It contains a DifServMeterMarker(class) and a DiffServQueue(class)
for DiffServ Meter, Marker and Queue operations...
public DiffServScheduler Scheduler;
|
+--> packetSchedulerTable(Vector)
- packetSchedulerTable maintain all of DiffServPacketScheduler(class) informations..
|
+--> DiffServPacketScheduler(class) performs shcuduling functions for diffserv packets...
|
+--> QueueTable(Vector)
- QueueTable has all of Queue informations in the DiffServFlowProfile(class)
=============================================
General Flow of Packet Processing in DiffServ
=============================================
When a packet of a DiffServ flow arrives at the DiffServ-aware router,
it is firstly recieved by the push() of DiffServTrafficConditioner, and
processed by the IP_packet_arrived() method where the packetClassifier() of
DiffServPacketClassifier is called and the information of the DiffServFlowProfile and
the DiffServPrfFlowProfile are obtained.
The DiffServPrfFlowProfile has the MeterAndQueuing() method that calls the Meter function
to measure/policy the packet arrival rate, and enques the packet. The queue (Droptail, RED or RIO)
drop or store the packet according to the queue status. The packets in the queue are dispatched
by the DiffServ packet scheduler according to the MeanRate of Traffic Shaper.
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 | |
DiffServActionFlowProfile |
ActionProfile
Field ActionProfile - XXX |
DiffServPacketClassifier |
Classifier
Field Classifier - XXX |
boolean |
debug
Field debug - XXX |
com.renesys.raceway.DML.Configuration |
diffservCfg
Field diffservCfg - XXX |
int |
DiffServFlowIDCount
Field DiffServFlowIDCount - XXX |
DiffServMonitor |
dsMonitor
Field dsMonitor - XXX |
java.lang.String |
ID
Field ID - XXX |
boolean |
isMPLS
Field isMPLS - XXX |
Host |
localHost
Field localHost - XXX |
boolean |
logfile
Field logfile - XXX |
Net |
net
Field net - XXX |
java.io.File |
NodeLogDir
Field NodeLogDir - XXX |
java.lang.String |
NodeLogDirName
Field NodeLogDirName - XXX |
ProtocolSession |
PlatForm
Field PlatForm - XXX |
double |
RunTime
Field RunTime - XXX |
DiffServScheduler |
Scheduler
Field Scheduler - XXX |
| Fields inherited from class SSF.OS.ProtocolSession |
name, use |
| Constructor Summary | |
DiffServTrafficConditioner()
Initialize DiffServ Flows at DiffServ-aware MPLS ingress LSR. |
|
| Method Summary | |
void |
config_DSFlow(com.renesys.raceway.DML.Configuration cfg)
Method config_DSFlow XXX |
void |
config(com.renesys.raceway.DML.Configuration cfg)
Method config XXX |
void |
configDiffServ()
Method configDiffServ |
double |
getTime()
Method getTime |
void |
init()
Method init |
boolean |
IP_packet_arrived(ProtocolMessage message,
ProtocolSession fromSession)
Method IP_packet_arrived XXX |
boolean |
push(ProtocolMessage message,
ProtocolSession fromSession)
|
void |
setupPlatForm(boolean ismpls,
ProtocolSession ps)
Method setupPlatForm XXX |
| 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 Host localHost
public Net net
public java.lang.String ID
public DiffServPacketClassifier Classifier
public DiffServActionFlowProfile ActionProfile
public DiffServScheduler Scheduler
public DiffServMonitor dsMonitor
public com.renesys.raceway.DML.Configuration diffservCfg
public int DiffServFlowIDCount
public boolean isMPLS
public ProtocolSession PlatForm
public boolean debug
public boolean logfile
public java.io.File NodeLogDir
public java.lang.String NodeLogDirName
public double RunTime
| Constructor Detail |
public DiffServTrafficConditioner()
| 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 - - XXX
com.renesys.raceway.DML.configException
public void init()
throws ProtocolException
init in class ProtocolSessionProtocolExceptionpublic void configDiffServ()
public void setupPlatForm(boolean ismpls,
ProtocolSession ps)
ismpls - - XXXps - - XXX
public void config_DSFlow(com.renesys.raceway.DML.Configuration cfg)
throws com.renesys.raceway.DML.configException
cfg - - XXX
com.renesys.raceway.DML.configException
public boolean push(ProtocolMessage message,
ProtocolSession fromSession)
throws ProtocolException
push in class ProtocolSessionProtocolException
public boolean IP_packet_arrived(ProtocolMessage message,
ProtocolSession fromSession)
throws ProtocolException
message - - XXXfromSession - - XXX
ProtocolExceptionpublic double getTime()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||