Table Of Contents
Table Of Contents

Step 17c. Summary LSA

Goals

[explanation]

Configuration

This step uses the following network:

../../../_images/step17c.png
network OSPF_Summary_LSA
{
    @display("bgb=1642.8824,629.9775");

    types:
        channel PppLink100M extends DatarateChannel
        {
            delay = 5us;
            datarate = 100Mbps;
        }

        channel PppLink10M extends DatarateChannel
        {
            delay = 5us;
            datarate = 10Mbps;
        }

    submodules:
        configurator: Ipv4NetworkConfigurator {
            @display("p=210.055,102.585");
        }
        visualizer: IntegratedCanvasVisualizer {
            @display("p=473.845,102.585");
        }
        scenarioManager: ScenarioManager {
            @display("p=744.96246,102.585");
        }
        R1: Router {
            @display("p=564.0975,282.04874");
        }
        R2: Router {
            @display("p=174.99374,282.04874");
        }
        R3: Router {
            @display("p=1472.0062,282.04874");
        }
        R4: Router {
            @display("p=1084.9613,282.04874");
        }
        R1A: Router {
            @display("p=564.0975,516.7463");
        }
        R2A: Router {
            @display("p=174.99374,516.7463");
        }
        R3A: Router {
            @display("p=1472.0062,516.7463");
        }
        R4A: Router {
            @display("p=1084.9613,516.7463");
        }
    connections:
        R1.ethg++ <--> Eth100M <--> R2.ethg++;
        R1.ethg++ <--> Eth100M <--> R4.ethg++;
        R4.ethg++ <--> Eth100M <--> R3.ethg++;
        R2A.ethg++ <--> Eth100M <--> R2.ethg++;
        R1A.ethg++ <--> Eth100M <--> R1.ethg++;
        R4A.ethg++ <--> Eth100M <--> R4.ethg++;
        R3A.ethg++ <--> Eth100M <--> R3.ethg++;
}

The configuration in omnetpp.ini is the following:

[Config Step17c]
description = "Summary LSA"
network = OSPF_Summary_LSA

# ABR expects summary LSAs from area 0 only.
# This means there should be at least one adjacency in FULL state built over area 0 interface.
# In case if ABR has such adjacency, it will ignore summary LSAs received over non-backbone areas.
# at time t=60 the link between R1 and R2 breaks. R2 will not have any full-adjacent neighbor.
# Thus it will consider all the summary routes and add them into its routing table.

*.configurator.config = xml("<config> \
                                <interface hosts='**' address='10.x.x.x' netmask='255.x.x.x'/> \
                                <route hosts='host*' destination='*' netmask='0.0.0.0' interface='eth0' /> \
                             </config>")

*.R*.ospf.ospfConfig = xmldoc("ASConfig_Summary.xml")

*.*.hasStatus = true
*.scenarioManager.script = xml("<scenario> \
                                        <disconnect t='60' src-module='R1' dest-module='R2' /> \
                                </scenario>")

The OSPF configuration:

<?xml version="1.0"?>
<OSPFASConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="OSPF.xsd">

  <!-- Areas -->
  <Area id="0.0.0.0">
    <AddressRange address="R2>R1" mask="R2>R1" />
    <AddressRange address="R1>R2" mask="R1>R2" />
    <AddressRange address="R4>R3" mask="R4>R3" />
    <AddressRange address="R3>R4" mask="R3>R4" />
  </Area>
  
  <Area id="0.0.0.1">
    <AddressRange address="R2>R2A" mask="R2>R2A" />
    <AddressRange address="R2A>R2" mask="R2A>R2" />
  </Area>
  
  <Area id="0.0.0.2">
    <AddressRange address="R1>R1A" mask="R1>R1A" />
    <AddressRange address="R1A>R1" mask="R1A>R1" />
  </Area>
  
  <Area id="0.0.0.3">
    <AddressRange address="R1>R4" mask="R1>R4" />
    <AddressRange address="R4>R1" mask="R4>R1" />
  </Area>
  
  <Area id="0.0.0.4">
    <AddressRange address="R4>R4A" mask="R4>R4A" />
    <AddressRange address="R4A>R4" mask="R4A>R4" />
  </Area>
  
  <Area id="0.0.0.5">
    <AddressRange address="R3>R3A" mask="R3>R3A" />
    <AddressRange address="R3A>R3" mask="R3A>R3" />
  </Area>

  <!-- Routers -->
  <Router name="R1" RFC1583Compatible="true">
    <BroadcastInterface ifName="eth0" areaID="0.0.0.0" />
    <BroadcastInterface ifName="eth1" areaID="0.0.0.3" />
    <BroadcastInterface ifName="eth2" areaID="0.0.0.2" />
  </Router>

  <Router name="R2" RFC1583Compatible="true">
    <BroadcastInterface ifName="eth0" areaID="0.0.0.0" />
    <BroadcastInterface ifName="eth1" areaID="0.0.0.1" />
  </Router>

  <Router name="R3" RFC1583Compatible="true">
    <BroadcastInterface ifName="eth1" areaID="0.0.0.5" />
    <BroadcastInterface ifName="eth0" areaID="0.0.0.0" />
  </Router>

  <Router name="R4" RFC1583Compatible="true">
    <BroadcastInterface ifName="eth0" areaID="0.0.0.3" />
    <BroadcastInterface ifName="eth1" areaID="0.0.0.0" />
    <BroadcastInterface ifName="eth2" areaID="0.0.0.4" />
  </Router>
  
  <Router name="R2A" RFC1583Compatible="true">
    <BroadcastInterface ifName="eth0" areaID="0.0.0.1" />
  </Router>
  
  <Router name="R1A" RFC1583Compatible="true">
    <BroadcastInterface ifName="eth0" areaID="0.0.0.2" />
  </Router>
  
  <Router name="R4A" RFC1583Compatible="true">
    <BroadcastInterface ifName="eth0" areaID="0.0.0.4" />
  </Router>
  
  <Router name="R3A" RFC1583Compatible="true">
    <BroadcastInterface ifName="eth0" areaID="0.0.0.5" />
  </Router>

</OSPFASConfig>

Results

[explanation]

Sources: omnetpp.ini, OSPF_Summary_LSA.ned, ASConfig_Summary.xml

Discussion

Use this page in the GitHub issue tracker for commenting on this tutorial.