gov.nist.antd.mpls.mgmt.forwarding
Class ShimMessage

java.lang.Object
  |
  +--SSF.OS.ProtocolMessage
        |
        +--gov.nist.antd.mpls.mgmt.forwarding.ShimMessage

public class ShimMessage
extends ProtocolMessage

Shim Message Format


 ==========
  RFC 3032 
 ==========

   4. Label Value

     This 20-bit field carries the actual value of the Label.

     When a labeled packet is received, the label value at the top
     of the stack is looked up.  As a result of a successful lookup
     one learns:

     a) the next hop to which the packet is to be forwarded;

     b) the operation to be performed on the label stack before
        forwarding; this operation may be to replace the top label
        stack entry with another, or to pop an entry off the label
        stack, or to replace the top label stack entry and then to
        push one or more additional entries on the label stack.

     In addition to learning the next hop and the label stack
     operation, one may also learn the outgoing data link
     encapsulation, and possibly other information which is needed
     in order to properly forward the packet.

     There are several reserved label values:

       i. A value of 0 represents the "IPv4 Explicit NULL Label".
          This label value is only legal at the bottom of the label
          stack.  It indicates that the label stack must be popped,
          and the forwarding of the packet must then be based on the
          IPv4 header.

      ii. A value of 1 represents the "Router Alert Label".  This
          label value is legal anywhere in the label stack except at
          the bottom.  When a received packet contains this label
          value at the top of the label stack, it is delivered to a
          local software module for processing.  The actual
          forwarding of the packet is determined by the label
          beneath it in the stack.  However, if the packet is
          forwarded further, the Router Alert Label should be pushed
          back onto the label stack before forwarding.  The use of
          this label is analogous to the use of the "Router Alert
          Option" in IP packets [5].  Since this label cannot occur
          at the bottom of the stack, it is not associated with a
          particular network layer protocol.

     iii. A value of 2 represents the "IPv6 Explicit NULL Label".
          This label value is only legal at the bottom of the label
          stack.  It indicates that the label stack must be popped,
          and the forwarding of the packet must then be based on the
          IPv6 header.

      iv. A value of 3 represents the "Implicit NULL Label".  This
          is a label that an LSR may assign and distribute, but
          which never actually appears in the encapsulation.  When
          an LSR would otherwise replace the label at the top of the
          stack with a new label, but the new label is "Implicit
          NULL", the LSR will pop the stack instead of doing the
          replacement.  Although this value may never appear in the
          encapsulation, it needs to be specified in the Label
          Distribution Protocol, so a value is reserved.

       v. Values 4-15 are reserved.
 

 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 EFt
          The Estimated Finish time.
 double EteTimeStamp
          Attribute for End-to-End computation delay
 int EXP
          Field EXP - XXX
 boolean isBestEffort
          Field isBestEffort - Best Effort Flag
 boolean isControl
          Field isControl - Control Flag
 int LabelValue
          STANDARD CLASS VARIABLES
 boolean marking
          Non-STANDARD CLASS VARIABLES
 int outInterface
          Field outInterface - Outgoing Interface
 boolean S
          Field S - XXX
 long SN
          The Sequence Number
 double TimeStamp
          Field TimeStamp - Time Stamp
 int TTL
          Field TTL - XXX
 
Fields inherited from class SSF.OS.ProtocolMessage
 
Constructor Summary
ShimMessage()
          CONSTRUCTORS
 
Method Summary
 int bytecount()
          Returns the total number of bytes in this Shim packet.
 int header_bytecount()
          Method header_bytecount
 java.lang.String toString()
          Method toString
 
Methods inherited from class SSF.OS.ProtocolMessage
carryPayload, copy, dropHeader, dropPayload, frombytes, fromVersion, payload, previous, size, tobytes, version
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

LabelValue

public int LabelValue
STANDARD CLASS VARIABLES


TTL

public int TTL
Field TTL - XXX


S

public boolean S
Field S - XXX


EXP

public int EXP
Field EXP - XXX


marking

public boolean marking
Non-STANDARD CLASS VARIABLES


outInterface

public int outInterface
Field outInterface - Outgoing Interface


isControl

public boolean isControl
Field isControl - Control Flag


isBestEffort

public boolean isBestEffort
Field isBestEffort - Best Effort Flag


SN

public long SN
The Sequence Number


EteTimeStamp

public double EteTimeStamp
Attribute for End-to-End computation delay


TimeStamp

public double TimeStamp
Field TimeStamp - Time Stamp


EFt

public double EFt
The Estimated Finish time.

Constructor Detail

ShimMessage

public ShimMessage()
CONSTRUCTORS

Method Detail

toString

public java.lang.String toString()
Method toString

Overrides:
toString in class java.lang.Object
Returns:
String - XXX

header_bytecount

public int header_bytecount()
Method header_bytecount

Overrides:
header_bytecount in class ProtocolMessage
Returns:
int - XXX

bytecount

public int bytecount()
Returns the total number of bytes in this Shim packet.

Overrides:
bytecount in class ProtocolMessage