ospf_1_area_lifecycle.test 9.9 KB

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