SSF.OS.OSPF Validation

Methodology

A common suite of tests is executed in distinct OSPF network configurations and topologies. The test output is 1) automatically analyzed for correctness, and 2) used in regression testing following code modifications.

SSF.OS.OSPF 0.1.14 allows one OSPF area per AS. AS-external route advertisements are flooded from ASBRs. Intra-area routing tables are computed statically from network configuration database using neither LSA flooding nor the Hello protocol. Although we have an alpha version of dynamic SSF.OS.OSPF, it is not yet stable enough for release.

Network configurations

Each test uses one of just two different network configurations. This helps make the tests easier to understand and remember. Half of the tests use a network which has one autonomous system and one OSPF area. The configurations for these tests are equivalent to the code in campus1.dml with a few minor options attributes added. The other half of the tests use a network with multiple autonomous systems, each with one OSPF area. For these tests, the configurations are equivalent to the code in internet1.dml (again with some minor options added).

Test Topology Categories

Single-AS, Single-Area Tests
Multiple-AS, Single-Area Tests

Test Types

Router Classification
Interface Identification
Link State Database Content
Forwarding Table Content

Router Classification

An AS is is divided into OSPF areas. When the OSPF protocol session is initialized, each OSPF router must determine its class according to its location in the network. The router classes are: Internal Router (IR), Area Border Router (ABR), AS Boundary Router (ASBR). Also, the backbone (area 0) must be identified. The correctness of router class determination is tested.
  
Router Classification using Single-AS, Single-Area Topology
  Router Classification using Multiple-AS, Single-Area Topology

Interface Identification

OSPF establishes adjacencies between neighboring routers by exchanging Hello packets. Hello packets, and all other OSPF message types, are sent out on router interfaces. OSPF keeps data structures which corresponding to each such interface, and this test will check the correctness of those interface data structures.
  
Interface Identification using Single-AS, Single-Area Topology
  Interface Identification using Multiple-AS, Single-Area Topology

Link State Database Content

Analyzes the LSAs and link state databases after each update.

Note: In a full OSPF implementation there are five OSPF packet types: Type 1 (Hello), Type 2 (Database description), Type 3 (Link state request), Type 4 (Link state update), and Type 5 (Link state ack). All OSPF packet types (other than the OSPF Hello packets) deal with lists of LSAs.
  
Link State Database Content using Single-AS, Single-Area Topology
  Link State Database Content using Multiple-AS, Single-Area Topology

Forwarding Table Content

Dump all forwarding tables computed by OSPF and validate their correctness.
  
Forwarding Table Content using Single-AS, Single-Area Topology
  Forwarding Table Content using Multiple-AS, Single-Area Topology