This is my network, and assuming all cost for ospf in the links are 1, there are two path from 1-4 obviously.
I tried in the real network and the result shows that the network tries to get advantage of these two paths together but in my OMNeT++ simulation always one path which is 1-2-4 is prefered, What things is wrong in my files and how can i change it to make it more closer to real network?
ini file:
**.app[*].**.scalar-recording=true
**.fifo[*].queueLength.result-recording-modes=+vector
**.R*.ppp[*].queue.typename="DropTailQueue"
**.ppp.queue.packetCapacity = 1000
**.H11.numApps=3
**.H11.app[0].typename="UdpBasicApp"
**.H11.app[0].destAddresses="H12"
**.H11.app[0].destPort=5000
**.H11.app[0].messageLength=1500bytes
**.H11.app[0].sendInterval=0.000125s
**.H11.app[1].typename="UdpBasicApp"
**.H11.app[1].destAddresses="H13"
**.H11.app[1].destPort=5000
**.H11.app[1].messageLength=1500bytes
**.H11.app[1].sendInterval=0.000125s
**.H11.app[2].typename="UdpBasicApp"
**.H11.app[2].destAddresses="H14"
**.H11.app[2].destPort=5000
**.H11.app[2].messageLength=1500bytes
**.H11.app[2].sendInterval=0.000125s
**.H12.numApps=2
**.H12.app[0].typename="UdpBasicApp"
**.H12.app[0].destAddresses="H14"
**.H12.app[0].destPort=5001
**.H12.app[0].messageLength=1500bytes
**.H12.app[0].sendInterval=0.000125s
**.H12.app[1].typename="UdpSink"
**.H12.app[1].localPort=5000
**.H13.numApps=2
**.H13.app[0].typename="UdpBasicApp"
**.H13.app[0].destAddresses="H14"
**.H13.app[0].destPort=5002
**.H13.app[0].messageLength=1500bytes
**.H13.app[0].sendInterval=0.000125s
**.H13.app[1].typename="UdpSink"
**.H13.app[1].localPort=5000
**.H14.numApps=3
**.H14.app[0].typename="UdpSink"
**.H14.app[0].localPort=5002
**.H14.app[1].typename="UdpSink"
**.H14.app[1].localPort=5001
**.H14.app[2].typename="UdpSink"
**.H14.app[2].localPort=5000
**.app[*].startTime=30s
**.H*.app[*].stopTime=32.0s
#**.configurator.assignDisjunctSubnetAddresses = false
**.configurator.addSubnetRoutes = false
**.configurator.addDefaultRoutes = false
#**.configurator.optimizeRoutes = false
*.configurator.addStaticRoutes = false
ned file:
package toposimulation;
import inet.common.misc.ThruputMeteringChannel;
import inet.common.scenario.ScenarioManager;
import inet.networklayer.configurator.ipv4.Ipv4NetworkConfigurator;
import inet.node.ethernet.EthernetSwitch;
import inet.node.inet.StandardHost;
import inet.node.ospfv2.OspfRouter;
import inet.visualizer.common.IntegratedVisualizer;
import inet.queueing.filter.RedDropper;
import inet.queueing.queue.CompoundPacketQueueBase;
import inet.queueing.queue.PacketQueue;
import ned.DatarateChannel;
network Network
{
parameters:
@display("p=10,10;b=712,152");
@statistic[endToEndDelay](record=vector);
types:
channel C extends DatarateChannel
{
datarate = 100Mbps;
}
channel ethernetline extends DatarateChannel
{
datarate = 1000Mbps;
}
submodules:
R11: OspfRouter {
parameters:
@display("p=550,150");
hasStatus = true;
gates:
ethg[3];
}
H11: StandardHost {
parameters:
@display("p=500,130;i=device/laptop");
gates:
ethg[1];
}
R12: OspfRouter {
parameters:
@display("p=700,150");
hasStatus = true;
gates:
ethg[4];
}
H12: StandardHost {
parameters:
@display("p=800,150;i=device/laptop");
gates:
ethg[1];
}
R13: OspfRouter {
parameters:
@display("p=500,450");
hasStatus = true;
gates:
ethg[4];
}
H13: StandardHost {
parameters:
@display("p=450,400;i=device/laptop");
gates:
ethg[1];
}
R14: OspfRouter {
parameters:
@display("p=700,450");
hasStatus = true;
gates:
ethg[3];
}
H14: StandardHost {
parameters:
@display("p=800,450;i=device/laptop");
gates:
ethg[1];
}
configurator: Ipv4NetworkConfigurator {
parameters:
config = xml("<config>"+
"<interface among='H14 R14' address='192.168.2.x' netmask='255.255.255.0' />"+
"<interface among='H13 R13' address='192.168.3.x' netmask='255.255.255.0' />"+
"<interface among='H12 R12' address='192.168.4.x' netmask='255.255.255.0' />"+
"<interface among='H11 R11' address='192.168.5.x' netmask='255.255.255.0' />"+
"<interface among='R11 R12' address='192.168.9.x' netmask='255.255.255.0'/>"+
"<interface among='R11 R13' address='192.168.10.x' netmask='255.255.255.0'/>"+
"<interface among='R12 R14' address='192.168.12.x' netmask='255.255.255.0'/>"+
"<interface among='R12 R13' address='192.168.13.x' netmask='255.255.255.0'/>"+
"<interface among='R13 R14' address='192.168.15.x' netmask='255.255.255.0'/>"+
"<route hosts='H*' destination='*' netmask='0.0.0.0' interface='eth0'/>"+
"</config>");
@display("p=100,100;is=s");
}
connections allowunconnected:
R11.ethg[1] <--> C <--> R12.ethg[0];
R11.ethg[2] <--> C <--> R13.ethg[0];
R12.ethg[2] <--> C <--> R13.ethg[1];
R12.ethg[3] <--> C <--> R14.ethg[0];
R13.ethg[2] <--> C <--> R14.ethg[1];
R14.ethg[2] <--> ethernetline <--> H14.ethg[0];
R13.ethg[3] <--> ethernetline <--> H13.ethg[0];
R12.ethg[1] <--> ethernetline <--> H12.ethg[0];
R11.ethg[0] <--> ethernetline <--> H11.ethg[0];
}
xml file
<?xml version="1.0"?>
<OSPFASConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="OSPF.xsd">
<Area id="0.0.0.0">
<AddressRange address="H11" mask="H11" />
<AddressRange address="H12" mask="H12" />
<AddressRange address="H13" mask="H13" />
<AddressRange address="H14" mask="H14" />
<!-- R1 -->
<AddressRange address="R12>R11" mask="R12>R11" status="Advertise" />
<AddressRange address="R13>R11" mask="R13>R11" status="Advertise" />
<!-- R2 -->
<AddressRange address="R11>R12" mask="R11>R12" status="Advertise" />
<AddressRange address="R14>R12" mask="R14>R12" status="Advertise" />
<AddressRange address="R13>R12" mask="R13>R12" status="Advertise" />
<!-- R3 -->
<AddressRange address="R11>R13" mask="R11>R13" status="Advertise" />
<AddressRange address="R12>R13" mask="R12>R13" status="Advertise" />
<AddressRange address="R14>R13" mask="R14>R13" status="Advertise" />
<!-- R4 -->
<AddressRange address="R13>R14" mask="R13>R14" status="Advertise" />
<AddressRange address="R12>R14" mask="R12>R14" status="Advertise" />
</Area>
<!-- Router Configuration -->
<Router name="R11" RFC1583Compatible="true">
<PointToPointInterface ifName="eth2" areaID="0.0.0.0" interfaceOutputCost="1" />
<PointToPointInterface ifName="eth1" areaID="0.0.0.0" interfaceOutputCost="1" />
<BroadcastInterface ifName="eth0" areaID="0.0.0.0" interfaceOutputCost="1" />
</Router>
<Router name="R12" RFC1583Compatible="true">
<PointToPointInterface ifName="eth0" areaID="0.0.0.0" interfaceOutputCost="1" />
<PointToPointInterface ifName="eth3" areaID="0.0.0.0" interfaceOutputCost="1" />
<PointToPointInterface ifName="eth2" areaID="0.0.0.0" interfaceOutputCost="1" />
<BroadcastInterface ifName="eth1" areaID="0.0.0.0" interfaceOutputCost="1" />
</Router>
<Router name="R13" RFC1583Compatible="true">
<PointToPointInterface ifName="eth0" areaID="0.0.0.0" interfaceOutputCost="1" />
<PointToPointInterface ifName="eth1" areaID="0.0.0.0" interfaceOutputCost="1" />
<PointToPointInterface ifName="eth2" areaID="0.0.0.0" interfaceOutputCost="1" />
<BroadcastInterface ifName="eth3" areaID="0.0.0.0" interfaceOutputCost="1" />
</Router>
<Router name="R14" RFC1583Compatible="true">
<PointToPointInterface ifName="eth0" areaID="0.0.0.0" interfaceOutputCost="1" />
<PointToPointInterface ifName="eth1" areaID="0.0.0.0" interfaceOutputCost="1" />
<BroadcastInterface ifName="eth2" areaID="0.0.0.0" interfaceOutputCost="1" />
</Router>
</OSPFASConfig>