|
DRCL JavaSim API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object
|
+--drcl.DrclObj
|
+--drcl.comp.Component
|
+--drcl.net.Module
|
+--drcl.inet.Protocol
|
+--drcl.inet.protocol.Routing
|
+--drcl.inet.protocol.dvmrp.DVMRP
This component implements the distance vector multicast routing protocol (DVMRP).
The implementation almost complies with the DVMRPv3 Internet Draft except that:
core service layer in the INET framework.
multicast host events from a predefined
event port. The events summarize the IGMP activities that are only interested in
by a multicast routing protocol such as DVMRP.
This component treats the tunnel (virtual) interfaces equally with the normal ones.
The tunnel interfaces are configured in the core service layer. One may configure
this component to operate on a specific set of interfaces (setIfset(...)).
| Inner classes inherited from class drcl.comp.Component |
Component.LockPack |
| Field Summary | |
static int |
DEBUG_DEPENDENT
|
static int |
DEBUG_GRAFT
|
static int |
DEBUG_IO
|
static int |
DEBUG_MCAST_QUERY
|
static int |
DEBUG_PRUNE
|
static int |
DEBUG_ROUTE
|
static int |
DEBUG_SEND_UPDATE
|
static int |
DEBUG_SYNC_FC
|
static int |
DEBUG_TIMEOUT
|
static int |
INFINITY
Metric of infinity. |
| Fields inherited from class drcl.inet.protocol.Routing |
queryPort, rtconfigPort |
| Fields inherited from class drcl.net.Module |
address, downPort, PortGroup_DOWN, PortGroup_UP, timerPort, upPort |
| Constructor Summary | |
DVMRP()
|
|
DVMRP(java.lang.String id_)
|
|
| Method Summary | |
protected void |
dataArriveAtDownPort(java.lang.Object msg_,
Port downPort_)
The handler invoked when a packet arrives at a "down" port. |
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. |
BitSet |
getIfset()
Returns the set of the interfaces that this protocol is operated on. |
int[] |
getMetrics()
Returns the metrics on the interfaces that this protocol is operated on. |
java.lang.String |
getName()
Returns the (informational) name of the component. |
DVMRPTimingPack |
getTimingPack()
|
java.lang.String |
info()
Returns information regarding this component. |
protected void |
mcastHostJoinEventHandler(long src_,
long srcmask_,
long group_,
int ifindex_,
Port inPort_)
Called back when a multicast host join event is received. |
protected void |
mcastHostLeaveEventHandler(long src_,
long srcmask_,
long group_,
int ifindex_,
Port inPort_)
Called back when a multicast host leave event is received. |
protected int[] |
mcastQueryHandler(RTKey request_,
Port inPort_)
Called back when a unicast query event is received. |
protected void |
neighborDownEventHandler(int ifindex_,
NetAddress neighbor_,
Port inPort_)
Called back when a neighbor down event is received. |
protected void |
neighborUpEventHandler(int ifindex_,
NetAddress neighbor_,
Port inPort_)
Called back when a neighbor up event is received. |
protected void |
process(java.lang.Object data_,
Port inPort_)
This method classifies inPort_ and delegates process of data
to the appropriate handler. |
void |
reset()
Resets the component for being used anew. |
void |
setIfset(BitSet ifset_)
Sets the set of the interfaces that this protocol is operated on. |
void |
setMetrics(int[] metrics_)
Sets the metrics on the interfaces that this protocol is operated on. |
void |
setPruneLifetime(int pruneLifetime_)
|
void |
setTimingPack(DVMRPTimingPack timing_)
|
protected void |
timeout(java.lang.Object data_)
The handler invoked when a timeout event occurs. |
java.lang.String |
timingInfo()
|
protected void |
vNeighborDownEventHandler(int ifindex_,
NetAddress neighbor_,
Port inPort_)
Called back when a (virtual) neighbor down event is received. |
protected void |
vNeighborUpEventHandler(int ifindex_,
NetAddress neighbor_,
Port inPort_)
Called back when a (virtual) neighbor up event is received. |
| Methods inherited from class drcl.inet.protocol.Routing |
addRTEntry, addRTEntry, addRTEntry, addRTEntry, addRTEntry, addRTEntry, addRTEntry, graftRTEntry, graftRTEntry, graftRTEntry, pruneRTEntry, pruneRTEntry, pruneRTEntry, removeAllRTEntries, removeRTEntry, removeRTEntry, replaceRTEntry, replaceRTEntry, retrieveAllRTEntries, retrieveRTEntry, retrieveRTEntryDest, retrieveRTEntrySrc |
| Methods inherited from class drcl.net.Module |
cancelTimeout, dataArriveAtUpPort, deliver, getAddress, removeDefaultDownPort, removeDefaultUpPort, removeTimerPort, setAddress, setTimeout, setTimeoutAt |
| Methods inherited from class drcl.DrclObj |
clone |
| Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
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
public static final int DEBUG_MCAST_QUERY
public static final int DEBUG_PRUNE
public static final int DEBUG_GRAFT
public static final int DEBUG_DEPENDENT
public static final int DEBUG_SYNC_FC
| Constructor Detail |
public DVMRP()
public DVMRP(java.lang.String id_)
| Method Detail |
public java.lang.String getName()
ComponentgetName in class Componentpublic java.lang.String[] getDebugLevelNames()
ComponentgetDebugLevelNames in class Componentpublic void duplicate(java.lang.Object source_)
Componentduplicate in class Protocolpublic java.lang.String info()
Componentinfo in class Componentpublic void reset()
Componentreset in class Component
protected void neighborUpEventHandler(int ifindex_,
NetAddress neighbor_,
Port inPort_)
ProtocolneighborUpEventHandler in class Protocoldrcl.inet.Protocolifindex_ - index of the interface.Protocol.createIFEventPort()
protected void vNeighborUpEventHandler(int ifindex_,
NetAddress neighbor_,
Port inPort_)
ProtocolvNeighborUpEventHandler in class Protocoldrcl.inet.Protocolifindex_ - index of the virtual interface.Protocol.createVIFEventPort()
protected void neighborDownEventHandler(int ifindex_,
NetAddress neighbor_,
Port inPort_)
ProtocolneighborDownEventHandler in class Protocoldrcl.inet.Protocolifindex_ - index of the interface.Protocol.createIFEventPort()
protected void vNeighborDownEventHandler(int ifindex_,
NetAddress neighbor_,
Port inPort_)
ProtocolvNeighborDownEventHandler in class Protocoldrcl.inet.Protocolifindex_ - index of the interface.Protocol.createVIFEventPort()
protected void process(java.lang.Object data_,
Port inPort_)
ModuleinPort_ and delegates process of data
to the appropriate handler. If a subclass decides to override this method,
then it should call super.process(data_, inPort_) to make those
handlers effective.process in class Moduledrcl.net.ModuleModule.dataArriveAtUpPort(Object, drcl.comp.Port),
Module.dataArriveAtDownPort(Object, drcl.comp.Port),
Module.processOther(Object, drcl.comp.Port)protected void timeout(java.lang.Object data_)
Moduletimeout in class Moduledrcl.net.ModuleModule.setTimeout(Object, double),
Module.setTimeoutAt(Object, double)
protected void dataArriveAtDownPort(java.lang.Object msg_,
Port downPort_)
ModuledataArriveAtDownPort in class Module
protected int[] mcastQueryHandler(RTKey request_,
Port inPort_)
ProtocolmcastQueryHandler in class Protocoldrcl.inet.ProtocolRTLookup,
Protocol.createMcastQueryPort()public void setIfset(BitSet ifset_)
public BitSet getIfset()
public void setMetrics(int[] metrics_)
setIfset(drcl.data.BitSet)public int[] getMetrics()
setIfset(drcl.data.BitSet)public void setTimingPack(DVMRPTimingPack timing_)
public DVMRPTimingPack getTimingPack()
public java.lang.String timingInfo()
public void setPruneLifetime(int pruneLifetime_)
protected void mcastHostJoinEventHandler(long src_,
long srcmask_,
long group_,
int ifindex_,
Port inPort_)
ProtocolmcastHostJoinEventHandler in class Protocoldrcl.inet.Protocolgroup_ - the multicast group the host network joins.ifindex_ - index of the interface where the host network is connected.
Could be -1 if it is a local join (multihomed router).Protocol.createMcastHostEventPort()
protected void mcastHostLeaveEventHandler(long src_,
long srcmask_,
long group_,
int ifindex_,
Port inPort_)
ProtocolmcastHostLeaveEventHandler in class Protocoldrcl.inet.Protocolgroup_ - the multicast group the host network leaves.ifindex_ - index of the interface where the host network is connected.
Could be -1 if it is a local leave (multihomed router).Protocol.createMcastHostEventPort()
|
DRCL JavaSim API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||