|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||
This package provides classes which together implement the Open Shortest Path First protocol Version 2.
See:
Description
| Class Summary | |
| AreaData | This Data Stucture contains all information used to run the basic OSPF routing algorithm. |
| BinInt | |
| DD_Packet | This class implements an OSPF Database Description packet. |
| Dijkstra | Dijkstra's shortest path algorithm. |
| HashMapRoutingTable | An implementation of OSPF routing table usingn HashMaps to distinguish between router and network entries. |
| HelloPacket | This class implements an OSPF Hello packet. |
| Interface | An OSPF interface. |
| LinkInfo | A unit of information describing a link and used in the contents of a link state advertisement. |
| LS_AckPacket | This class implements an OSPF Acknowledgment Packet. |
| LS_RequestPacket | This class implements an OSPF link state request packet. |
| LS_UpdatePacket | This class implements the payload of an OSPF Link State Update Packet. |
| LSA | An OSPF Link State Advertisement packet. |
| LSASlot | This class is intended as a container for a single LSA. |
| LSDatabase | An OSPF Link State database. |
| Neighbor | The class Neighbor represents a conversation between its interface owner and the neighboring interface. |
| NetworkEntry | A routing table entry describing the set of shortest paths leading to a network destination. |
| NextHop | A class containing a router's outgoing interface ip address to use when forwarding traffic to a destination and in case of a non point-to-point network the ip address of the next router in the path towards the destination. |
| OSPF | The OSPFv2 interior gateway protocol (IGP). |
| OwnLSASlot | This class extends LSASlot. |
| Packet | This class implements a generic OSPF packet. |
| RecLSASlot | This class extends LSASlot. |
| Router_LSA | This class implements an OSPF Router Link State Advertisement. |
| RouterEntry | A routing table entry describing the set of shortest paths leading to a router destination. |
| ShortestPath | When multiple paths of equal path-type and cost exist to a destination, they are stored in a single routing table entry. |
| Summary_LSA | This class implements an OSPF Summary Link State Advertisement. |
This package provides classes which together implement the Open Shortest Path First protocol Version 2.
The Open Shortest Path First (OSPF) protocol is an IP link-state routing protocol, recommended for distributing routing information among the routers in a single autonomous system (AS), with explicit support for classless inter-domain routing (CIDR) address allocation.
SSF.OS.OSPFv2 is a partial implementation of OSPFv2, based
on the Internet Engineering Task Force's Request for Comments number
2328 (RFC 2328),
"OSPF Version
2". Currently it only runs on point-to-point networks, because there is
no multicast available. Intended to provide all features of the protocol in
the future it follows a bottom-up design. On point-to-point networks it has
been developed beyond the basic features like Hello Protocol, Database Exchange,
Flooding and Shortest Path Calculation. Intra as well as inter
area routing are supported and making the interaction with IP more proper, a
better integration of the protocol into SSFNet was accomplished.
OSPFv2 is NOT compatible to sOSPF. It was completely rebuilt. In comparison to sOSPF it is much more dynamic, supports multiple areas and maintains a separate area data structure for each area the router is connected to. Every area structure supports its own Link State Database, which is able to store Router as well as Summary Type 3 and 4 LSAs. Version 0.2.2 is therefore able to deal with stub areas and AS boundary routers, but it still does not process external route information like sOSPF.
OSPFv2 is a dynamic version of OSPF. But because of the absence of multicast it is
not able to detect neighbors dynamically. It retrieves the addresses directly
from the underlying link layer and then performs the discovery process
simulating multicast by unicast. But this is the only exception to its dynamic
behavior.
Having dicovered a neighbor, periodically sendig of Hello Packets guarantees
neighbor maintenance. Thereafter the Database Exchange process synchronizes
the LS Databases of both routers using Database Description, Link State
Request and Link State Update Packets as determined by the RFC. The Flooding
Procedure ensures continuation of the synchronization process when state
EXCHANGE in neighbor relation is reached. All these processes are triggered by
the neighbor state machine whose functionality is mainly implemented in class
Neighbor. Its logic is triggered by method OSPF.push() every time
a new OSPF packet arrives. Packets containing LSA updates are sent in intervals
coordinated by a PacingTimer in class Interface.
A shortest path tree is built from the Router LSAs of all Databases. Thereafter,
inter-area routes are computed and, on area border routers, Summary LSAs are
created and originated.
Periodically reoriginating of selforiginated LSAs, aging of LSAs and time
blocks for the installation process thereby ensure an OSPF like behavior.
Eventually an OSPF Routing Table is built from the tree and the inter area routes
and used to update the IP Forwarding Table. These Rouing Table calculations are
scheduled by the RTCControlTimer in class OSPF. The
timer is configurable via the attributes spf_delay and spf_hold_time.
Because in version 0.2.2 inter-area routing is employed, the routing table of an OSPFv2 router now provides shortest paths to all reachable
This release has been tested by a partially implemented test suite developed
by the Inter Operability Lab at University of New Hampshire. Not all of the
tests get a PASS because OSPFv2 is still under development and it can't make
use of multicast to send packets to the correct address.
For further information concerning the test suite design see documentation in
ssfnet/src/SSF/OS/OSPFv2/test/doc/index.html
Further Information about OSPFv2 and its configuration: See
distribution file
ssfnet/src/SSF/OS/OSPFv2/doc/index.html.
|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||