ospf_backbone_and_3_areas_with_virtual_link.test 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  1. %description:
  2. Testing OSPF routing
  3. Backbone and 3 areas, Area1 connected to Backbone through Area3 used a VirtualLink
  4. UDP communications through entire network
  5. %#--------------------------------------------------------------------------------------------------------------
  6. %file: test.ned
  7. import inet.linklayer.ethernet.EtherHub;
  8. import inet.networklayer.configurator.ipv4.IPv4NetworkConfigurator;
  9. import inet.node.inet.StandardHost;
  10. import inet.node.ospfv2.OSPFRouter;
  11. import inet.common.misc.ThruputMeteringChannel;
  12. network Test1
  13. {
  14. parameters:
  15. int numIRouters = default(0);
  16. @display("p=10,10;b=712,152");
  17. types:
  18. channel C extends ThruputMeteringChannel
  19. {
  20. delay = 0.1us;
  21. datarate = 100Mbps;
  22. thruputDisplayFormat = "#N";
  23. }
  24. submodules:
  25. H1: StandardHost {
  26. parameters:
  27. @display("p=56,92;i=device/laptop");
  28. gates:
  29. ethg[1];
  30. }
  31. N1: EtherHub {
  32. parameters:
  33. @display("p=184,182");
  34. gates:
  35. ethg[2];
  36. }
  37. RA1: OSPFRouter {
  38. gates:
  39. ethg[2];
  40. }
  41. RA1I[numIRouters]: OSPFRouter {
  42. gates:
  43. ethg[2];
  44. }
  45. R1: OSPFRouter {
  46. parameters:
  47. @display("p=296,92");
  48. gates:
  49. ethg[2];
  50. }
  51. RA3I[numIRouters]: OSPFRouter {
  52. gates:
  53. ethg[2];
  54. }
  55. R3: OSPFRouter {
  56. parameters:
  57. @display("p=296,92");
  58. gates:
  59. ethg[2];
  60. }
  61. RI[numIRouters]: OSPFRouter {
  62. gates:
  63. ethg[2];
  64. }
  65. R2: OSPFRouter {
  66. parameters:
  67. @display("p=416,92");
  68. gates:
  69. ethg[2];
  70. }
  71. RA2I[numIRouters]: OSPFRouter {
  72. gates:
  73. ethg[2];
  74. }
  75. RA2: OSPFRouter {
  76. gates:
  77. ethg[2];
  78. }
  79. N2: EtherHub {
  80. parameters:
  81. @display("p=532,182");
  82. gates:
  83. ethg[2];
  84. }
  85. H2: StandardHost {
  86. parameters:
  87. @display("p=660,92;i=device/laptop");
  88. gates:
  89. ethg[1];
  90. }
  91. configurator: IPv4NetworkConfigurator {
  92. parameters:
  93. config = xml("<config>"+
  94. "<interface among='H1 RA1 RA1I[*] R1' address='192.168.1.x' netmask='255.255.255.x' />"+
  95. "<interface among='R1 RA3I[*] R3' address='192.168.3.x' netmask='255.255.255.x' />"+
  96. "<interface among='R3 RI[*] R2' address='192.168.60.x' netmask='255.255.255.x' />"+
  97. "<interface among='H2 RA2 RA2I[*] R2' address='192.168.2.x' netmask='255.255.255.x' />"+
  98. "<route hosts='H1 H2' destination='*' netmask='0.0.0.0' interface='eth0' />"+
  99. "</config>");
  100. addStaticRoutes = false;
  101. addDefaultRoutes = false;
  102. @display("p=75,43");
  103. }
  104. connections:
  105. H1.ethg[0] <--> C <--> N1.ethg[0];
  106. N1.ethg[1] <--> C <--> RA1.ethg[0];
  107. RA1.ethg[1] <--> C <--> R1.ethg[0] if numIRouters == 0;
  108. RA1.ethg[1] <--> C <--> RA1I[0].ethg[0] if numIRouters > 0;
  109. for i = 1..numIRouters-1 {
  110. RA1I[i-1].ethg[1] <--> C <--> RA1I[i].ethg[0];
  111. }
  112. RA1I[numIRouters-1].ethg[1] <--> C <--> R1.ethg[0] if numIRouters > 0;
  113. R1.ethg[1] <--> C <--> R3.ethg[0] if numIRouters == 0;
  114. R1.ethg[1] <--> C <--> RA3I[0].ethg[0] if numIRouters > 0;
  115. for i = 1..numIRouters-1 {
  116. RA3I[i-1].ethg[1] <--> C <--> RA3I[i].ethg[0];
  117. }
  118. RA3I[numIRouters-1].ethg[1] <--> C <--> R3.ethg[0] if numIRouters > 0;
  119. R3.ethg[1] <--> C <--> R2.ethg[0] if numIRouters == 0;
  120. R3.ethg[1] <--> C <--> RI[0].ethg[0] if numIRouters > 0;
  121. for i = 1..numIRouters-1 {
  122. RI[i-1].ethg[1] <--> C <--> RI[i].ethg[0];
  123. }
  124. RI[numIRouters-1].ethg[1] <--> C <--> R2.ethg[0] if numIRouters > 0;
  125. R2.ethg[1] <--> C <--> RA2.ethg[0] if numIRouters == 0;
  126. R2.ethg[1] <--> C <--> RA2I[0].ethg[0] if numIRouters > 0;
  127. for i = 1..numIRouters-1 {
  128. RA2I[i-1].ethg[1] <--> C <--> RA2I[i].ethg[0];
  129. }
  130. RA2I[numIRouters-1].ethg[1] <--> C <--> RA2.ethg[0] if numIRouters > 0;
  131. RA2.ethg[1] <--> C <--> N2.ethg[0];
  132. N2.ethg[1] <--> C <--> H2.ethg[0];
  133. }
  134. %#--------------------------------------------------------------------------------------------------------------
  135. %inifile: omnetpp.ini
  136. [General]
  137. description = "Simple test"
  138. network = Test1
  139. ned-path = .;../../../../src;../../lib
  140. tkenv-plugin-path = ../../../etc/plugins
  141. sim-time-limit = 200s
  142. #omnetpp 5.0 - 5.1 compatibility:
  143. eventlog-file = "${resultdir}/${configname}-${runnumber}.elog"
  144. output-scalar-file = "${resultdir}/${configname}-${runnumber}.sca"
  145. output-vector-file = "${resultdir}/${configname}-${runnumber}.vec"
  146. snapshot-file = "${resultdir}/${configname}-${runnumber}.sna"
  147. **.ospf.ospfConfig = xmldoc("ASConfig.xml")
  148. **.numUdpApps = 2
  149. **.udpApp[0].typename = "UDPBasicApp"
  150. **.udpApp[0].destPort = 1234
  151. **.udpApp[0].messageLength = 32 bytes
  152. **.udpApp[0].sendInterval = 1s
  153. **.udpApp[0].startTime = 59s
  154. **.udpApp[0].stopTime = this.startTime + 100s
  155. **.H2.udpApp[0].destAddresses = "H1"
  156. **.H1.udpApp[0].destAddresses = "H2"
  157. **.udpApp[1].typename = "UDPEchoApp"
  158. **.udpApp[1].localPort = 1234
  159. **.arp.cacheTimeout = 1s
  160. **.numIRouters = ${0,1,2,3,4,5,6}
  161. %#--------------------------------------------------------------------------------------------------------------
  162. %file: ASConfig.xml
  163. <?xml version="1.0"?>
  164. <OSPFASConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="OSPF.xsd">
  165. <!-- Areas -->
  166. <Area id="0.0.0.0">
  167. <AddressRange address="192.168.60.0" mask="255.255.255.0" status="Advertise" />
  168. </Area>
  169. <Area id="0.0.0.1">
  170. <AddressRange address="192.168.1.0" mask="255.255.255.0" status="Advertise" />
  171. </Area>
  172. <Area id="0.0.0.2">
  173. <AddressRange address="192.168.2.0" mask="255.255.255.0" status="Advertise" />
  174. </Area>
  175. <Area id="0.0.0.3">
  176. <AddressRange address="192.168.3.0" mask="255.255.255.0" status="Advertise" />
  177. </Area>
  178. <!-- Routers -->
  179. <Router name="RA1" RFC1583Compatible="true">
  180. <BroadcastInterface ifName="eth0" areaID="0.0.0.1" interfaceOutputCost="2" />
  181. <BroadcastInterface ifName="eth1" areaID="0.0.0.1" interfaceOutputCost="2" />
  182. </Router>
  183. <Router name="RA1I[*]" RFC1583Compatible="true">
  184. <BroadcastInterface ifName="eth0" areaID="0.0.0.1" interfaceOutputCost="2" />
  185. <BroadcastInterface ifName="eth1" areaID="0.0.0.1" interfaceOutputCost="2" />
  186. </Router>
  187. <Router name="R1" RFC1583Compatible="true">
  188. <BroadcastInterface ifName="eth0" areaID="0.0.0.1" interfaceOutputCost="1" routerPriority="1" />
  189. <BroadcastInterface ifName="eth1" areaID="0.0.0.3" interfaceOutputCost="2" />
  190. <VirtualLink endPointRouterID="R3%routerId" transitAreaID="0.0.0.3" />
  191. </Router>
  192. <Router name="RI[*]" RFC1583Compatible="true">
  193. <BroadcastInterface ifName="eth0" areaID="0.0.0.0" interfaceOutputCost="2" />
  194. <BroadcastInterface ifName="eth1" areaID="0.0.0.0" interfaceOutputCost="2" />
  195. </Router>
  196. <Router name="R2" RFC1583Compatible="true">
  197. <BroadcastInterface ifName="eth0" areaID="0.0.0.0" interfaceOutputCost="2" />
  198. <BroadcastInterface ifName="eth1" areaID="0.0.0.2" interfaceOutputCost="1" routerPriority="2" />
  199. </Router>
  200. <Router name="RA2I[*]" RFC1583Compatible="true">
  201. <BroadcastInterface ifName="eth0" areaID="0.0.0.2" interfaceOutputCost="2" />
  202. <BroadcastInterface ifName="eth1" areaID="0.0.0.2" interfaceOutputCost="2" />
  203. </Router>
  204. <Router name="RA2" RFC1583Compatible="true">
  205. <BroadcastInterface ifName="eth0" areaID="0.0.0.2" interfaceOutputCost="2" />
  206. <BroadcastInterface ifName="eth1" areaID="0.0.0.2" interfaceOutputCost="2" />
  207. </Router>
  208. <Router name="R3" RFC1583Compatible="true">
  209. <BroadcastInterface ifName="eth0" areaID="0.0.0.3" interfaceOutputCost="2" />
  210. <BroadcastInterface ifName="eth1" areaID="0.0.0.0" interfaceOutputCost="1" routerPriority="2" />
  211. <VirtualLink endPointRouterID="R1%routerId" transitAreaID="0.0.0.3" />
  212. </Router>
  213. <Router name="RA3I[*]" RFC1583Compatible="true">
  214. <BroadcastInterface ifName="eth0" areaID="0.0.0.3" interfaceOutputCost="2" />
  215. <BroadcastInterface ifName="eth1" areaID="0.0.0.3" interfaceOutputCost="2" />
  216. </Router>
  217. </OSPFASConfig>
  218. %#--------------------------------------------------------------------------------------------------------------
  219. %contains: results/General-0.sca
  220. scalar Test1.H1.udpApp[0] sentPk:count 100
  221. %contains: results/General-0.sca
  222. scalar Test1.H1.udpApp[0] rcvdPk:count 100
  223. %contains: results/General-0.sca
  224. scalar Test1.H1.udpApp[1] echoedPk:count 100
  225. %contains: results/General-0.sca
  226. scalar Test1.H2.udpApp[0] sentPk:count 100
  227. %contains: results/General-0.sca
  228. scalar Test1.H2.udpApp[0] rcvdPk:count 100
  229. %contains: results/General-0.sca
  230. scalar Test1.H2.udpApp[1] echoedPk:count 100
  231. %contains: results/General-1.sca
  232. scalar Test1.H1.udpApp[0] sentPk:count 100
  233. %contains: results/General-1.sca
  234. scalar Test1.H1.udpApp[0] rcvdPk:count 100
  235. %contains: results/General-1.sca
  236. scalar Test1.H1.udpApp[1] echoedPk:count 100
  237. %contains: results/General-1.sca
  238. scalar Test1.H2.udpApp[0] sentPk:count 100
  239. %contains: results/General-1.sca
  240. scalar Test1.H2.udpApp[0] rcvdPk:count 100
  241. %contains: results/General-1.sca
  242. scalar Test1.H2.udpApp[1] echoedPk:count 100
  243. %contains: results/General-2.sca
  244. scalar Test1.H1.udpApp[0] sentPk:count 100
  245. %contains: results/General-2.sca
  246. scalar Test1.H1.udpApp[0] rcvdPk:count 100
  247. %contains: results/General-2.sca
  248. scalar Test1.H1.udpApp[1] echoedPk:count 100
  249. %contains: results/General-2.sca
  250. scalar Test1.H2.udpApp[0] sentPk:count 100
  251. %contains: results/General-2.sca
  252. scalar Test1.H2.udpApp[0] rcvdPk:count 100
  253. %contains: results/General-2.sca
  254. scalar Test1.H2.udpApp[1] echoedPk:count 100
  255. %contains: results/General-3.sca
  256. scalar Test1.H1.udpApp[0] sentPk:count 100
  257. %contains: results/General-3.sca
  258. scalar Test1.H1.udpApp[0] rcvdPk:count 100
  259. %contains: results/General-3.sca
  260. scalar Test1.H1.udpApp[1] echoedPk:count 100
  261. %contains: results/General-3.sca
  262. scalar Test1.H2.udpApp[0] sentPk:count 100
  263. %contains: results/General-3.sca
  264. scalar Test1.H2.udpApp[0] rcvdPk:count 100
  265. %contains: results/General-3.sca
  266. scalar Test1.H2.udpApp[1] echoedPk:count 100
  267. %contains: results/General-4.sca
  268. scalar Test1.H1.udpApp[0] sentPk:count 100
  269. %contains: results/General-4.sca
  270. scalar Test1.H1.udpApp[0] rcvdPk:count 100
  271. %contains: results/General-4.sca
  272. scalar Test1.H1.udpApp[1] echoedPk:count 100
  273. %contains: results/General-4.sca
  274. scalar Test1.H2.udpApp[0] sentPk:count 100
  275. %contains: results/General-4.sca
  276. scalar Test1.H2.udpApp[0] rcvdPk:count 100
  277. %contains: results/General-4.sca
  278. scalar Test1.H2.udpApp[1] echoedPk:count 100
  279. %contains: results/General-5.sca
  280. scalar Test1.H1.udpApp[0] sentPk:count 100
  281. %contains: results/General-5.sca
  282. scalar Test1.H1.udpApp[0] rcvdPk:count 100
  283. %contains: results/General-5.sca
  284. scalar Test1.H1.udpApp[1] echoedPk:count 100
  285. %contains: results/General-5.sca
  286. scalar Test1.H2.udpApp[0] sentPk:count 100
  287. %contains: results/General-5.sca
  288. scalar Test1.H2.udpApp[0] rcvdPk:count 100
  289. %contains: results/General-5.sca
  290. scalar Test1.H2.udpApp[1] echoedPk:count 100
  291. %contains: results/General-6.sca
  292. scalar Test1.H1.udpApp[0] sentPk:count 100
  293. %contains: results/General-6.sca
  294. scalar Test1.H1.udpApp[0] rcvdPk:count 100
  295. %contains: results/General-6.sca
  296. scalar Test1.H1.udpApp[1] echoedPk:count 100
  297. %contains: results/General-6.sca
  298. scalar Test1.H2.udpApp[0] sentPk:count 100
  299. %contains: results/General-6.sca
  300. scalar Test1.H2.udpApp[0] rcvdPk:count 100
  301. %contains: results/General-6.sca
  302. scalar Test1.H2.udpApp[1] echoedPk:count 100
  303. %#--------------------------------------------------------------------------------------------------------------
  304. %not-contains: stdout
  305. undisposed object:
  306. %not-contains: stdout
  307. -- check module destructor
  308. %#--------------------------------------------------------------------------------------------------------------