SSF.OS.BGP4.Timing
Class IdealMRAITimer

java.lang.Object
  |
  +--com.renesys.raceway.SSF.Entity
        |
        +--SSF.OS.Timer
              |
              +--SSF.OS.BGP4.Timing.Timer
                    |
                    +--SSF.OS.BGP4.Timing.IdealMRAITimer

public class IdealMRAITimer
extends Timer

BGP's Minimum Route Advertisement Interval Timer when applied on a per-peer, per-destination basis. This is considered ideal since no route advertisement information ever waits longer than the Minimum Route Advertisement Interval before being sent. The ideal Minimum Route Advertisement Interval Timer has its own implementation (instead of using the more generic EventTimer class) because is needs to keep a little extra information, namely the destination. When per-peer-only MRAI Timers are being used, the standard EventTimer class suffices. The purpose of the timer is to help ensure that peers do not receive update messages with routes regarding the same destination too frequently.


Field Summary
 IPaddress nlri
          The NLRI from the update message which caused this timer to start.
 PeerEntry peer
          The entry of the peer to whom a message was sent.
 
Fields inherited from class SSF.OS.BGP4.Timing.Timer
CONNRETRY, HOLD, is_expired, KEEPALIVE, MASO, MRAI
 
Constructor Summary
IdealMRAITimer(BGPSession b, long dt, IPaddress ipa, PeerEntry pe)
          Constructs a Minimum Route Advertisement Interval Timer with the given parameters.
 
Method Summary
 void callback()
          When the timer expires, this method removes the IP address from the list of recently sent updates, sends an update with the advertisement (or possibly withdrawal, if the option to apply MRAI to withdrawals is in use) that was waiting to be sent (if there is one), and restarts a new timer (if a waiting advertisement (or withdrawal) was in fact sent).
 
Methods inherited from class SSF.OS.BGP4.Timing.Timer
canc, is_expired, set_at, set_expiry, when_set
 
Methods inherited from class SSF.OS.Timer
cancel, isCancelled, set, set
 
Methods inherited from class com.renesys.raceway.SSF.Entity
alignment, alignTo, coalignedEntities, inChannels, init, joinAll, makeIndependent, now, outChannels, pauseAll, playRole, processes, resetSimulation, resumeAll, startAll, startAll, startClient, startClient, startServer, Vx, Yx
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

nlri

public IPaddress nlri
The NLRI from the update message which caused this timer to start.


peer

public PeerEntry peer
The entry of the peer to whom a message was sent.

Constructor Detail

IdealMRAITimer

public IdealMRAITimer(BGPSession b,
                      long dt,
                      IPaddress ipa,
                      PeerEntry pe)
Constructs a Minimum Route Advertisement Interval Timer with the given parameters.

Parameters:
b - The BGPSession with which this timer is associated.
dt - The length of time (in ticks) that this timer is set for.
ipa - The NLRI from the update message which resulted in the need for this timer to be set.
pe - The peer to whom this timer applies.
Method Detail

callback

public void callback()
When the timer expires, this method removes the IP address from the list of recently sent updates, sends an update with the advertisement (or possibly withdrawal, if the option to apply MRAI to withdrawals is in use) that was waiting to be sent (if there is one), and restarts a new timer (if a waiting advertisement (or withdrawal) was in fact sent).

Specified by:
callback in class Timer