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

java.lang.Object
  |
  +--gov.nist.antd.mpls.mgmt.mpls_interface.MPLSSchedulingQueueEntry

public class MPLSSchedulingQueueEntry
extends java.lang.Object

LSP Queue with monitoring functions.
The MPLSSchedulingQueueEnrty is a LSP Queue module with several traffic monitoring functions

  
             MPLSInterfaceInfo can handle several Queue for servral LSPs..
           +--------------------+
           |  MPLSInterfaceInfo |          +-------------------------------+
           |   - 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 Kim

Field Summary
 double BlockBytes
          Field BlockBytes - Block bytes count
 long BlockCounts
          Field BlockCounts - Block count
 double CDR
          Field CDR - Committed Data Rate
 int DiffServFlowID
          Field DiffServFlowID - DiffServ Flow ID
 int ingressLSRID
          Field ingressLSRID - Ingress LSR ID
 boolean isLog
          Field isLog - Log flag
 int LabelValue
          Field LabelValue - Label Value
 int localLSPID
          Field localLSPID - Local LSP ID
 java.io.File LSPDir
          Field LSPDir - LSP Directory
 java.io.FileWriter LSPMonitor
          Field LSPMonitor - LSP monitor object
 java.lang.String LSPName
          Field LSPName - LSP Name
 MPLSInterfaceInfo minfo
          Field minfo - MPLS Interface Information object
 double PacketBytes
          Field PacketBytes - Packet bytes
 int PacketCount
          Field PacketCount - Packet count
 java.lang.String pathID
          Field pathID - Path ID
 double PDR
          Field PDR - Peak Data Rate
 long prevSN
          Field prevSN - Previous Sequence Number
 double prevTime
          Field prevTime - Previous Time stamp
 int Priority
          Field Priority - Priority value
 MPLSQueue Queue
          Field Queue - MPLS Queue Object
 java.io.FileWriter QueueMonitor
          Field QueueMonitor - Queue monitor object
 java.lang.String SchedulingType
          Field SchedulingType - Scheduling Type
 long SequenceNumber
          Field SequenceNumber - Sequence Number
 MPLSTrafficPolicy trafficPolicy
          Field trafficPolicy - Traffic Policy object
 double Weight
          Field Weight - Weight Value
 
Constructor Summary
MPLSSchedulingQueueEntry()
          Constructor MPLSSchedulingQueueEntry
MPLSSchedulingQueueEntry(MPLSInterfaceInfo info)
          Constructor MPLSSchedulingQueueEntry
 
Method Summary
 boolean enqueue(ProtocolMessage message, ProtocolSession fromSession)
          Method enqueue
 void flushFile()
          Method flushFile Flush log to file
 void Monitoring(double ctime)
          Method Monitoring
 void recordTraffic(ProtocolMessage message)
          Method recordTraffic Record packet count and bytes count
 void setupLogFile()
          Method setupLogFile
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pathID

public java.lang.String pathID
Field pathID - Path ID


ingressLSRID

public int ingressLSRID
Field ingressLSRID - Ingress LSR ID


localLSPID

public int localLSPID
Field localLSPID - Local LSP ID


LabelValue

public int LabelValue
Field LabelValue - Label Value


Priority

public int Priority
Field Priority - Priority value


Weight

public double Weight
Field Weight - Weight Value


PDR

public double PDR
Field PDR - Peak Data Rate


CDR

public double CDR
Field CDR - Committed Data Rate


Queue

public MPLSQueue Queue
Field Queue - MPLS Queue Object


SchedulingType

public java.lang.String SchedulingType
Field SchedulingType - Scheduling Type


DiffServFlowID

public int DiffServFlowID
Field DiffServFlowID - DiffServ Flow ID


minfo

public MPLSInterfaceInfo minfo
Field minfo - MPLS Interface Information object


trafficPolicy

public MPLSTrafficPolicy trafficPolicy
Field trafficPolicy - Traffic Policy object


LSPName

public java.lang.String LSPName
Field LSPName - LSP Name


LSPDir

public java.io.File LSPDir
Field LSPDir - LSP Directory


PacketCount

public int PacketCount
Field PacketCount - Packet count


PacketBytes

public double PacketBytes
Field PacketBytes - Packet bytes


isLog

public boolean isLog
Field isLog - Log flag


LSPMonitor

public java.io.FileWriter LSPMonitor
Field LSPMonitor - LSP monitor object


QueueMonitor

public java.io.FileWriter QueueMonitor
Field QueueMonitor - Queue monitor object


prevTime

public double prevTime
Field prevTime - Previous Time stamp


BlockCounts

public long BlockCounts
Field BlockCounts - Block count


BlockBytes

public double BlockBytes
Field BlockBytes - Block bytes count


SequenceNumber

public long SequenceNumber
Field SequenceNumber - Sequence Number


prevSN

public long prevSN
Field prevSN - Previous Sequence Number

Constructor Detail

MPLSSchedulingQueueEntry

public MPLSSchedulingQueueEntry()
Constructor MPLSSchedulingQueueEntry


MPLSSchedulingQueueEntry

public MPLSSchedulingQueueEntry(MPLSInterfaceInfo info)
Constructor MPLSSchedulingQueueEntry

Parameters:
info - - Interface Information
Method Detail

enqueue

public boolean enqueue(ProtocolMessage message,
                       ProtocolSession fromSession)
Method enqueue

Parameters:
message -
fromSession -
Returns:
boolean

setupLogFile

public void setupLogFile()
Method setupLogFile


recordTraffic

public void recordTraffic(ProtocolMessage message)
Method recordTraffic Record packet count and bytes count

Parameters:
message -

Monitoring

public void Monitoring(double ctime)
Method Monitoring

Parameters:
ctime - - current Time

flushFile

public void flushFile()
Method flushFile Flush log to file