%description: Tests interface state transitions of IGMP routers -------------------------------- _______|________ gen. query timer | --------- | | expired | | Initial |---------------->| | (send general query, | --------- (send gen. q., | | set gen. q. timer) | set initial gen. q. | |<---------------------- timer) | Querier | | | -----| |<--- | | | | | |________________| | query received from a | | other querier router with a lower | | present timer IP address | | expired (set other querier | ________________ | (send general present timer) | | | | query,set gen. | | | | q. timer) | | | | ---->| Non |---- | Querier | | | | | ---->| |---- | |________________| | | query received from a | | router with a lower IP | | address | | (set other querier | | present timer) | --------------------------- This scenario checks the following trajectory: INITIAL --> initialize --> QUERIER --> query received (lower IP) --> NON QUERIER --> --> query received (lower IP) --> NON QUERIER --> other querier present timer expired --> QUERIER --> --> gen.query timer expired --> QUERIER %inifile: omnetpp.ini [General] ned-path = .;../../../../src;../../lib sim-time-limit=500s cmdenv-express-mode = true #omnetpp 5.0 - 5.1 compatibility: eventlog-file = "${resultdir}/${configname}-${runnumber}.elog" output-scalar-file = "${resultdir}/${configname}-${runnumber}.sca" output-vector-file = "${resultdir}/${configname}-${runnumber}.vec" snapshot-file = "${resultdir}/${configname}-${runnumber}.sna" network=IGMPTestNetwork **.igmpType = "TestIGMP" **.scenarioManager.script = xmldoc("scenario.xml") **.nqrouter.*.igmp.outputFile = "nqrouter-output.txt" **.igmp.startupQueryInterval = 100s **.igmp.queryInterval = 100s %file: scenario.xml %contains-regex: nqrouter-output.txt t=0 nqrouter/eth0: INITIAL --> configure interface --> QUERIER %contains-regex: nqrouter-output.txt t=0.* nqrouter/eth0/: QUERIER --> query received <> --> NON_QUERIER t=100\..* nqrouter/eth0/: NON_QUERIER --> query received <> --> NON_QUERIER t=305\..* nqrouter/eth0: NON_QUERIER --> other querier present timer expired --> QUERIER t=405\..* nqrouter/eth0: QUERIER --> gen. query timer expired --> QUERIER %#-------------------------------------------------------------------------------------------------------------- %not-contains: stdout undisposed object: %not-contains: stdout -- check module destructor %#--------------------------------------------------------------------------------------------------------------