|
DRCL J-Sim API | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectdrcl.DrclObj
drcl.comp.Component
drcl.net.Module
drcl.inet.Protocol
drcl.inet.protocol.Routing
drcl.inet.protocol.dv.DV
Implements a routing information protocol (RIP, RFC1058, RFC2453). Split-horizon with poison reverse, triggered updates and "holddown" state for deleted routes are implemented.
The protocol takes advantages of the NEIGHBOR_UP event from the core service layer to activate the protocol at the beginning.
When a new neighbor is discovered, the protocol sends a request message at the
interface, starts a triggered update at the other interfaces; and sets up the
regular update timer if necessary.
The component can run either on physical interfaces or tunnel (virtual)
interfaces (setMode(String).
By default, it runs on physical interfaces.
The tunnel interfaces are configured in the core service layer.
One may configure this component to operate on a specific set of interfaces
(setIfset(drcl.data.BitSet)).
| Nested Class Summary |
| Nested classes inherited from class drcl.comp.Component |
Component.Locks |
| Field Summary | |
static int |
DEBUG_IO
|
static int |
DEBUG_ROUTE
|
static int |
DEBUG_SEND_UPDATE
|
static int |
DEBUG_TIMEOUT
|
static double |
DELETE_TIMEOUT_PERIOD
Hold-down timeout period for entries to be removed. |
static int |
INFINITY
Infinity metric. |
static double |
MAX_TIME_OUT_VARIANCE
Timeout variance for updating the distance vector information. |
static double |
NEIGHBOR_TIMEOUT_PERIOD
Routing table entry timeout period. |
static double |
REGULAR_UPDATE_TIMEOUT_PERIOD
Regular update timeout period. |
static double |
TRIGGERED_UPDATE_TIMEOUT_PERIOD
Triggered update timeout period. |
| Fields inherited from class drcl.net.Module |
downPort, PortGroup_DOWN, PortGroup_UP, upPort |
| Constructor Summary | |
DV()
|
|
DV(java.lang.String id_)
|
|
| Method Summary | |
void |
duplicate(java.lang.Object source_)
Duplicates the content of source_, including ID, name, child components and connections among them, to this component. |
java.lang.String[] |
getDebugLevelNames()
Returns the names of defined debug levels; subclasses should override this method if debug levels are defined. |
static int |
getDVPacketSize(DVPacket dvpkt_)
|
BitSet |
getIfset()
Returns the set of the interfaces that this protocol is operated on. |
java.lang.String |
getMode()
|
java.lang.String |
getName()
Returns the (informational) name of the component. |
java.lang.String |
info()
Provide routing table information. |
void |
reset()
Resets the component for being used anew. |
int[] |
routeQueryHandler(InetPacket pkt_,
int incomingIf_,
Port inPort_)
|
int[] |
routeQueryHandler(RTKey key_,
Port inPort_)
|
void |
setIfset(BitSet ifset_)
Sets the set of the interfaces that this protocol is operated on. |
void |
setMode(java.lang.String mode_)
Sets the operation mode. |
| Methods inherited from class drcl.inet.protocol.Routing |
addRTEntry, addRTEntry, graftRTEntry, graftRTEntry, graftRTEntry, pruneRTEntry, pruneRTEntry, pruneRTEntry, removeAllRTEntries, removeRTEntry, removeRTEntry, retrieveAllRTEntries, retrieveBestRTEntryDest, retrieveRTEntry, retrieveRTEntryDest, retrieveRTEntrySrc |
| Methods inherited from class drcl.net.Module |
cancelTimeout, setTimeout, setTimeoutAt |
| Methods inherited from class drcl.DrclObj |
clone |
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
public static final double REGULAR_UPDATE_TIMEOUT_PERIOD
public static final double MAX_TIME_OUT_VARIANCE
public static final double NEIGHBOR_TIMEOUT_PERIOD
public static final double DELETE_TIMEOUT_PERIOD
public static final double TRIGGERED_UPDATE_TIMEOUT_PERIOD
public static final int INFINITY
public static final int DEBUG_IO
public static final int DEBUG_TIMEOUT
public static final int DEBUG_ROUTE
public static final int DEBUG_SEND_UPDATE
| Constructor Detail |
public DV()
public DV(java.lang.String id_)
| Method Detail |
public java.lang.String getName()
Component
getName in class Componentpublic java.lang.String[] getDebugLevelNames()
Component
getDebugLevelNames in class Componentpublic void duplicate(java.lang.Object source_)
Component
duplicate in interface ObjectDuplicableduplicate in class Protocolpublic java.lang.String info()
info in class Componentpublic void reset()
Component
reset in class Componentpublic void setIfset(BitSet ifset_)
public BitSet getIfset()
public void setMode(java.lang.String mode_)
public java.lang.String getMode()
setMode(String).public static int getDVPacketSize(DVPacket dvpkt_)
public int[] routeQueryHandler(RTKey key_,
Port inPort_)
RTLookup,
Protocol.createUcastQueryPort(),
Protocol.createMcastQueryPort()
public int[] routeQueryHandler(InetPacket pkt_,
int incomingIf_,
Port inPort_)
RTLookup,
Protocol.createUcastQueryPort(),
Protocol.createMcastQueryPort()
|
DRCL J-Sim API | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||