|
J-Sim v1.2.1-p7 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.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(...)).
| Nested Class Summary |
| Nested classes inherited from class drcl.comp.Component |
Component.Locks |
| 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 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. |
protected int[] |
routeQueryHandler(RTKey request_,
Port inPort_)
Called back when a unicast/multicast query event is received. |
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, retrieveBestRTEntryDest, 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()
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()
Component
info in class Componentpublic void reset()
Component
reset in class Component
protected void neighborUpEventHandler(int ifindex_,
NetAddress neighbor_,
Port inPort_)
Protocol
neighborUpEventHandler in class Protocolifindex_ - index of the interface.Protocol.createIFEventPort()
protected void vNeighborUpEventHandler(int ifindex_,
NetAddress neighbor_,
Port inPort_)
Protocol
vNeighborUpEventHandler in class Protocolifindex_ - index of the virtual interface.Protocol.createVIFEventPort()
protected void neighborDownEventHandler(int ifindex_,
NetAddress neighbor_,
Port inPort_)
Protocol
neighborDownEventHandler in class Protocolifindex_ - index of the interface.Protocol.createIFEventPort()
protected void vNeighborDownEventHandler(int ifindex_,
NetAddress neighbor_,
Port inPort_)
Protocol
vNeighborDownEventHandler in class 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 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_)
Module
timeout in class ModuleModule.setTimeout(Object, double),
Module.setTimeoutAt(Object, double)
protected void dataArriveAtDownPort(java.lang.Object msg_,
Port downPort_)
Module
dataArriveAtDownPort in class Module
protected int[] routeQueryHandler(RTKey request_,
Port inPort_)
Protocol
routeQueryHandler in class ProtocolRTLookup,
Protocol.createUcastQueryPort(),
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_)
Protocol
mcastHostJoinEventHandler in class 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_)
Protocol
mcastHostLeaveEventHandler in class 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()
|
J-Sim v1.2.1-p7 API | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||