drcl.inet.protocol.ospf
Class OSPF
java.lang.Object
drcl.DrclObj
drcl.comp.Component
drcl.net.Module
drcl.inet.Protocol
drcl.inet.protocol.Routing
drcl.inet.protocol.ospf.OSPF
- All Implemented Interfaces:
- java.lang.Cloneable, InetConstants, ObjectCloneable, ObjectDuplicable, java.io.Serializable, UnicastRouting
- Direct Known Subclasses:
- OSPF_QoS
- public class OSPF
- extends Routing
- implements UnicastRouting
The package, drcl.inet.protocol.OSPF, implements the link-state routing
protocol, OSPF v2, Open Shortest Path First routing protocol and follow
the RFC2328.
In this implementation, we refered much from OSPF code in
GNU Zebra project, especially
zebra 0.85.
The general data structure can refer to figure 9 and section 5 RFC2328
(If not specially mentioned, the following sections, figures, and etc.
can be found in RFC 2328)
- Author:
- Wei-peng Chen, Hung-ying Tyan
- See Also:
OSPF_Area,
OSPF_DBdesc,
OSPF_Packet,
OSPF_Interface,
OSPF_LS_Database,
OSPF_LSA,
OSPF_LSA_Header,
OSPF_LSack,
OSPF_LSrequest,
OSPF_LSupdate,
OSPF_Neighbor,
OSPF_TimeOut_EVT,
Serialized Form
|
Field Summary |
static boolean |
debug
|
static int |
DEBUG_ACK
Debug level of handling LSA acknowledgement packets. |
static int |
DEBUG_DETAIL
Debug level of detailed messages for other levels. |
static int |
DEBUG_LSA
Debug level of handling LSA update packets. |
static int |
DEBUG_NEIGHBOR
Debug level of neighbor state changes. |
static int |
DEBUG_REFRESH
Debug level of LSA refresh events. |
static int |
DEBUG_SAMPLE
Debug level to enable sampled debug messages. |
static int |
DEBUG_SEND
Debug level of sending ospf packets. |
static int |
DEBUG_SPF
Debug level of calculating SPF tree and installing route entries. |
static int |
DEBUG_TIMEOUT
Debug level of handling timeout events. |
static boolean |
debug2
|
| 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.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 |
OSPF()
Constructor. |
|
Method Summary |
void |
dataArriveAtDownPort(java.lang.Object data_,
Port downPort_)
Handle data arriving at the 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. |
java.lang.String |
getName()
Returns the (informational) name of the component. |
java.lang.String |
info()
Returns information regarding this component.
|
void |
ospf_set_area_id(int id_)
xxx: Specify the area id for this router (Needed to be modified) |
void |
reset()
Resets the component for being used anew.
|
| 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
public static boolean debug
debug2
public static boolean debug2
DEBUG_SAMPLE
public static final int DEBUG_SAMPLE
- Debug level to enable sampled debug messages.
- See Also:
- Constant Field Values
DEBUG_NEIGHBOR
public static final int DEBUG_NEIGHBOR
- Debug level of neighbor state changes.
- See Also:
- Constant Field Values
DEBUG_SEND
public static final int DEBUG_SEND
- Debug level of sending ospf packets.
- See Also:
- Constant Field Values
DEBUG_SPF
public static final int DEBUG_SPF
- Debug level of calculating SPF tree and installing route entries.
- See Also:
- Constant Field Values
DEBUG_REFRESH
public static final int DEBUG_REFRESH
- Debug level of LSA refresh events.
- See Also:
- Constant Field Values
DEBUG_LSA
public static final int DEBUG_LSA
- Debug level of handling LSA update packets.
- See Also:
- Constant Field Values
DEBUG_ACK
public static final int DEBUG_ACK
- Debug level of handling LSA acknowledgement packets.
- See Also:
- Constant Field Values
DEBUG_TIMEOUT
public static final int DEBUG_TIMEOUT
- Debug level of handling timeout events.
- See Also:
- Constant Field Values
DEBUG_DETAIL
public static final int DEBUG_DETAIL
- Debug level of detailed messages for other levels.
- See Also:
- Constant Field Values
OSPF
public OSPF()
- Constructor.
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
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
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
dataArriveAtDownPort
public void dataArriveAtDownPort(java.lang.Object data_,
Port downPort_)
- Handle data arriving at the down port.
According to the different packet types ( OSPF Hello pkt, Database descricption
pkt,Link State update pkt, LS request pkt, or LS ack pkt), different
corresponding methods can handle the packet.
Note for OSPF_Hello pkt will be received only once. The other hello maintaince
is done by drcl.inet.core.Hello
- Parameters:
downPort_ - down port at which messages arrive.
ospf_set_area_id
public void ospf_set_area_id(int id_)
- xxx: Specify the area id for this router (Needed to be modified)
Copyright © 1998-2003 Distributed Real-time Computing Lab (DRCL). All Rights Reserved. ~ To J-Sim Home ~