drcl.inet.protocol.cbt
Class CBT
java.lang.Object
drcl.DrclObj
drcl.comp.Component
drcl.net.Module
drcl.inet.Protocol
drcl.inet.protocol.Routing
drcl.inet.protocol.cbt.CBT
- All Implemented Interfaces:
- ActiveComponent, CBTConstants, java.lang.Cloneable, InetConstants, McastRouting, ObjectCloneable, ObjectDuplicable, java.io.Serializable
- public class CBT
- extends Routing
- implements McastRouting, CBTConstants, ActiveComponent
Implements the Core Based Tree (CBT) Multicast Routing protocol.
This version does not work on virtual or tunnel interfaces.
Doesn't implement
- support of (*, Core) and (S, G)
- unidirectional pruned state (instead, a quit simply deletes the child
interface from the entry)
- broadcast LAN, HELLO protocol, determining DR
- Bootstrap
- check on incoming interface for data forwarding
- exact tunneling for a non-member source to send pkts (instead, just forward
it hop-by-hop toward the core, the pkts may be picked up by an on-tree
router along the way)
- Version:
- 1.0, 11/2002
- Author:
- Hung-ying Tyan
- See Also:
- Serialized Form
| Fields inherited from class drcl.comp.Component |
FLAG_COMPONENT_NOTIFICATION, FLAG_DEBUG_ENABLED, FLAG_DIRECT_OUTPUT_ENABLED, FLAG_ENABLED, FLAG_ERROR_ENABLED, FLAG_EVENT_ENABLED, FLAG_GARBAGE_DISPLAY_ENABLED, FLAG_GARBAGE_ENABLED, FLAG_PORT_NOTIFICATION, FLAG_STARTED, FLAG_STOPPED, FLAG_TRACE_ENABLED, FLAG_UNDEFINED_START, id, infoPort, locks, name, parent, PortGroup_DEFAULT_GROUP, PortGroup_EVENT, PortGroup_SERVICE, Root, Trace_DATA, Trace_SEND |
| Fields inherited from interface drcl.inet.protocol.cbt.CBTConstants |
CONFIRMED, DOWNSTREAM_EXPIRE, ECHO, ECHO_REPLY, ECHO_REQUEST, ECHO_RTX, FLUSH_TREE, INIT, JOIN_ACK, JOIN_REQUEST, JOIN_RTX, JOIN_TIMEOUT, QUIT_NOTIFICATION, QUIT_RTX, QUITTING, STATES, TIMER_TYPES, TRANSIENT, TYPES, UPSTREAM_EXPIRE |
| Fields inherited from interface drcl.inet.InetConstants |
BYTE_MODE, DEFAULT_BANDWIDTH, DEFAULT_BUFFER_SIZE, DEFAULT_MTU, EVENT_ID_CHANGED_PORT_ID, EVENT_IDENTITY_ADDED, EVENT_IDENTITY_REMOVED, EVENT_IF_NEIGHBOR_DOWN, EVENT_IF_NEIGHBOR_UP, EVENT_IF_PORT_ID, EVENT_LINK_BROKEN, EVENT_LINK_BROKEN_PORT_ID, EVENT_MCAST_HOST_PORT_ID, EVENT_PKT_ARRIVAL, EVENT_PKT_ARRIVAL_PORT_ID, EVENT_RT_ENTRY_ADDED, EVENT_RT_ENTRY_MODIFIED, EVENT_RT_ENTRY_REMOVED, EVENT_RT_MCAST_CHANGED_PORT_ID, EVENT_RT_UCAST_CHANGED_PORT_ID, EVENT_VIF_NEIGHBOR_DOWN, EVENT_VIF_NEIGHBOR_UP, EVENT_VIF_PORT_ID, HOST_ENTRY_EXT, ID_CSL, ID_TRACE_RT, MCAST_QUERY_PORT_ID, PACKET_MODE, PID_AODV, PID_DV, PID_DVMRP, PID_HELLO, PID_IGMP, PID_OSPF, PID_RSVP, PID_TCP, PID_TRACE_RT, PID_UDP, SERVICE_CONFIGSW_PORT_ID, SERVICE_ID_PORT_ID, SERVICE_IF_PORT_ID, SERVICE_MCAST_PORT_ID, SERVICE_RT_PORT_ID, UCAST_QUERY_PORT_ID |
|
Constructor Summary |
CBT()
|
CBT(java.lang.String id_)
|
|
Method Summary |
static void |
addCore(long group_,
long core_)
|
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. |
java.lang.String |
getName()
Returns the (informational) name of the component. |
java.lang.String |
info()
Returns information regarding this component.
|
boolean |
isEchoEnabled()
|
void |
reset()
Resets the component for being used anew.
|
int[] |
routeQueryHandler(RTKey key_,
Port inPort_)
Handel multicast query from CSL. |
void |
setEchoEnabled(boolean e)
|
| 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.inet.Protocol |
broadcast, broadcast, broadcast, broadcast, broadcast, broadcast, broadcast, createConfigSwitchPort, createIDChangedEventPort, createIDServicePort, createIFEventPort, createIFQueryPort, createLinkBrokenEventPort, createMcastHostEventPort, createMcastQueryPort, createMulticastRTChangedEventPort, createPktArrivalEventPort, createRTServicePort, createUcastQueryPort, createUnicastRTChangedEventPort, createVIFEventPort, forward, forward, forward, forward, forward, forward, LinkBrokenEventHandler |
| Methods inherited from class drcl.comp.Component |
addComponent, addComponent, addEventPort, addEventPort, addForkPort, addPort, addPort, addPort, addPort, addPort, addPort, addPort, addPort, addServerPort, addServerPort, cancelFork, connect, containsComponent, containsComponent, containsPort, debug, disconnectAll, disconnectAllPeers, disconnectAllPorts, drop, drop, error, error, expose, exposeEventPorts, exposePort, exposePort, exposePort, exposePort, exposePort, findAvailable, findAvailable, findAvailable, fork, forkAt, getAllComponents, getAllPorts, getAllPorts, getAllWiresInside, getAllWiresInsideOut, getAllWiresOut, getComponent, getComponentFlag, getComponentFlag, getContract, getContractHT, getContractHT, getDebugFlagsInBinary, getID, getParent, getPort, getPort, getRoot, getTime, iduplicate, isAncestorOf, isContainer, isDebugEnabled, isDebugEnabledAt, isDirectlyRelatedTo, isDirectOutputEnabled, isEnabled, isErrorNoticeEnabled, isEventExportEnabled, isGarbageDisplayEnabled, isGarbageEnabled, isPortRemovable, isStarted, isStopped, isTraceEnabled, lock, notify, notifyAll, operate, reboot, removeAll, removeAllComponents, removeAllPorts, removeAllPorts, removeComponent, removeComponent, removePort, removePort, removePort, resume, run, sduplicate, send, sendAt, setComponentFlag, setComponentFlag, setDebugEnabled, setDebugEnabled, setDebugEnabledAt, setDebugEnabledAt, setDebugEnabledAt, setDirectOutputEnabled, setDirectOutputEnabled, setEnabled, setErrorNoticeEnabled, setErrorNoticeEnabled, setEventExportEnabled, setEventExportEnabled, setExecutionBoundary, setGarbageDisplayEnabled, setGarbageDisplayEnabled, setGarbageEnabled, setGarbageEnabled, setID, setID, setName, setPort, setPort, setTraceEnabled, setTraceEnabled, sleepFor, sleepUntil, stop, toString, unexpose, unlock, useLocalForkManager, useLocalForkManager, wait |
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
DEBUG_IO
public static final int DEBUG_IO
- See Also:
- Constant Field Values
DEBUG_TIMEOUT
public static final int DEBUG_TIMEOUT
- See Also:
- Constant Field Values
DEBUG_ROUTE
public static final int DEBUG_ROUTE
- See Also:
- Constant Field Values
DEBUG_STATE
public static final int DEBUG_STATE
- See Also:
- Constant Field Values
CBT
public CBT()
CBT
public CBT(java.lang.String id_)
getName
public java.lang.String getName()
- Description copied from class:
Component
- Returns the (informational) name of the component.
- Overrides:
getName in class Component
getDebugLevelNames
public java.lang.String[] getDebugLevelNames()
- Description copied from class:
Component
- Returns the names of defined debug levels; subclasses should override
this method if debug levels are defined.
- Overrides:
getDebugLevelNames in class Component
duplicate
public void duplicate(java.lang.Object source_)
- Description copied from class:
Component
- Duplicates the content of source_, including ID, name, child components
and connections among them, to this component.
Subclasses need to override this method to copy its own variables.
- Specified by:
duplicate in interface ObjectDuplicable- Overrides:
duplicate in class Protocol
info
public java.lang.String info()
- Description copied from class:
Component
- Returns information regarding this component.
Subclasses should override this method to provide useful information at
run time.
- Overrides:
info in class Component
reset
public void reset()
- Description copied from class:
Component
- Resets the component for being used anew.
All the internal variables must be set to the initial state.
All the ports and child components are reset as well.
- Overrides:
reset in class Component
setEchoEnabled
public void setEchoEnabled(boolean e)
isEchoEnabled
public boolean isEchoEnabled()
addCore
public static void addCore(long group_,
long core_)
routeQueryHandler
public int[] routeQueryHandler(RTKey key_,
Port inPort_)
- Handel multicast query from CSL.
- See Also:
RTLookup,
Protocol.createUcastQueryPort(),
Protocol.createMcastQueryPort()
Copyright © 1998-2003 Distributed Real-time Computing Lab (DRCL). All Rights Reserved. ~ To J-Sim Home ~