IGMP_nonquerier_groupstates.test 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. %description: Tests group specific state transitions of Non-Querier IGMP routers
  2. RFC 2236 7.:
  3. ________________
  4. | |
  5. | |
  6. timer expired| |timer expired
  7. (notify routing -)| No Members |(notify routing -)
  8. --------->| Present |<---------
  9. | | | |
  10. | | | |
  11. | | | |
  12. | |________________| |
  13. | | |
  14. | |report received |
  15. | |(notify routing +,|
  16. | | start timer) |
  17. ________|________ | ________|________
  18. | |<--------- | |
  19. | | report received | |
  20. | | (start timer) | |
  21. | Members Present |<-------------------| Checking |
  22. | | g-s query rec'd | Membership |
  23. | | (start timer*) | |
  24. ---->| |------------------->| |
  25. | |_________________| |_________________|
  26. | report received |
  27. | (start timer) |
  28. -----------------
  29. This scenario checks the following trajectories:
  30. NO MEMBERS PRESENT --> report received --> MEMBERS PRESENT --> report received -> MEMBERS PRESENT -->
  31. --> g-s query received -> CHECKING MEMBERSHIP --> report received -> MEMBERS PRESENT -->
  32. --> g-s query received -> CHECKING MEMBERSHIP --> g-s query received --> CHECKING MEMBERSHIP -->
  33. --> timer expired --> NO MEMBERS PRESENT
  34. NO MEMBERS PRESENT --> report received --> MEMBERS PRESENT --> report received --> MEMBERS PRESENT -->
  35. --> timer expired --> NO MEMBERS PRESENT
  36. %inifile: omnetpp.ini
  37. [General]
  38. ned-path = .;../../../../src;../../lib
  39. sim-time-limit=500s
  40. cmdenv-express-mode = true
  41. #omnetpp 5.0 - 5.1 compatibility:
  42. eventlog-file = "${resultdir}/${configname}-${runnumber}.elog"
  43. output-scalar-file = "${resultdir}/${configname}-${runnumber}.sca"
  44. output-vector-file = "${resultdir}/${configname}-${runnumber}.vec"
  45. snapshot-file = "${resultdir}/${configname}-${runnumber}.sna"
  46. network=IGMPTestNetwork
  47. **.igmpType = "TestIGMP"
  48. **.scenarioManager.script = xmldoc("scenario.xml")
  49. **.nqrouter.networkLayer.igmp.outputFile = "nqrouter-output.txt"
  50. **.igmp.queryResponseInterval = 6s
  51. **.igmp.startupQueryInterval = 1000s
  52. **.igmp.queryInterval = 1000s
  53. **.igmp.groupMembershipInterval = 200s
  54. %file: scenario.xml
  55. <scenario>
  56. <join t="100" module="host.networkLayer.igmp" ifname="eth0" group="225.0.0.1"/>
  57. <send t="120" module="router.networkLayer.igmp" ifname="eth0" what="query" group="225.0.0.1"/>
  58. <leave t="130" module="host.networkLayer.igmp" ifname="eth0" group="225.0.0.1"/>
  59. <disable t="199" module="router.networkLayer.igmp"/>
  60. <join t="200" module="host.networkLayer.igmp" ifname="eth0" group="225.0.0.2"/>
  61. </scenario>
  62. %contains-regex: nqrouter-output.txt
  63. t=0\..* nqrouter/eth0/<unspec>: QUERIER --> query received <> --> NON_QUERIER
  64. %contains-regex: nqrouter-output.txt
  65. t=100\..* nqrouter/eth0/225.0.0.1: NON_QUERIER NO_MEMBERS_PRESENT NON_MEMBER --> report received <> --> NON_QUERIER MEMBERS_PRESENT NON_MEMBER
  66. t=10.\..* nqrouter/eth0/225.0.0.1: NON_QUERIER MEMBERS_PRESENT NON_MEMBER --> report received <> --> NON_QUERIER MEMBERS_PRESENT NON_MEMBER
  67. t=120\..* nqrouter/eth0/225.0.0.1: NON_QUERIER MEMBERS_PRESENT NON_MEMBER --> query received <> --> NON_QUERIER CHECKING_MEMBERSHIP NON_MEMBER
  68. t=.* nqrouter/eth0/225.0.0.1: NON_QUERIER CHECKING_MEMBERSHIP NON_MEMBER --> report received <> --> NON_QUERIER MEMBERS_PRESENT NON_MEMBER
  69. .*
  70. t=130\..* nqrouter/eth0/225.0.0.1: NON_QUERIER MEMBERS_PRESENT NON_MEMBER --> query received <> --> NON_QUERIER CHECKING_MEMBERSHIP NON_MEMBER
  71. t=131\..* nqrouter/eth0/225.0.0.1: NON_QUERIER CHECKING_MEMBERSHIP NON_MEMBER --> query received <> --> NON_QUERIER CHECKING_MEMBERSHIP NON_MEMBER
  72. t=132\..* nqrouter/eth0/225.0.0.1: CHECKING_MEMBERSHIP --> timer expired <> --> NO_MEMBERS_PRESENT
  73. %contains-regex: nqrouter-output.txt
  74. t=200\..* nqrouter/eth0/225.0.0.2: NON_QUERIER NO_MEMBERS_PRESENT NON_MEMBER --> report received <> --> NON_QUERIER MEMBERS_PRESENT NON_MEMBER
  75. t=20.\..* nqrouter/eth0/225.0.0.2: NON_QUERIER MEMBERS_PRESENT NON_MEMBER --> report received <> --> NON_QUERIER MEMBERS_PRESENT NON_MEMBER
  76. t=40.\..* nqrouter/eth0/225.0.0.2: MEMBERS_PRESENT --> timer expired <> --> NO_MEMBERS_PRESENT
  77. %#--------------------------------------------------------------------------------------------------------------
  78. %not-contains: stdout
  79. undisposed object:
  80. %not-contains: stdout
  81. -- check module destructor
  82. %#--------------------------------------------------------------------------------------------------------------