Information on OSPF
Open Shortest Path First (OSPF) is an interior gateway protocol (IGP) for routing Internet Protocol (IP) packets solely within a single routing domain, such as an autonomous system. It gatherslinkstate information from available routers and constructs a topology map of the network.
OSPF detects changes in the topology, such as link failures, and converges on a new loop-free route within seconds. It computes the shortest path tree for each route using a method based on Dijkstra's algorithm, a shortest path first algorithm.
In a link-state routing protocol, each router maintains a database describing the topology. This database is referred to as the link-state database. Each participating router has an identical database. Each individual piece of this database is a particular router's local state (e.g., the router's usable interfaces and reachable neighbors). The router distributes its local state throughout the Autonomous System by flooding.
All routers run the exact same algorithm, in parallel. From the link-state database, each router constructs a tree of shortest paths with itself as root. This shortest-path tree gives the route to each destination in the Autonomous System. Externally derived routing information appears on the tree as leaves.
OSPF allows sets of networks to be grouped together. Such a grouping is called an area. The topology of an area is hidden from the rest of the Autonomous System. This information hiding enables a significant reduction in routing traffic.
Further a class of link state advertisements (LSAs), called Opaque LSAs provide a generalized mechanism to allow for the extensibility of OSPF. Traffic engineering (TE) is one such opaque capability.
OSPF can also act as an SBI for SDN controller, and can be quite useful in some scenarios
- Passive learning of topology
- Including learning of topology change
- Link down
- Populating TE data base
- Node, Links , Bandwidth etc
- Learning Segment Routing information
- Router Capability Discovery
- Other opaque information with OSPF as a mechanism to flood it
It should be noted that OSPF on ONOS(SDN controller) doesn’t need to be a full OSPF implementation as needed by a router (as per RFC 2328).
The OSPF SBI in ONOS needs to support at minimum –
- Support for configuration and display
- OSPF router id
- OSPF enabled on interfaces / network with areainformation
- Suitable display information
- Support for following network types
- Formation of OSPF peer
- OSPF FSM
- DB Synchronization
- DR election
- Packet processing
- Interface Handling
- Neighbor Handli
- Self Generation of routerand network LSA
- Learning all LSA and Maintain Link State DB (LSDB)
- Support multiple area
Support for Opaque LSA
- TE population
- Including mechanism to easily extend for GMPLS, WSON, Flowspec etc
Following documents outline the procedure to run OSPF as SBI and connect with the routers that support OSPF.
Link to c program-> https://github.com/nickadlakha/isis_ospf