Markov-Chain-Based Scheduler ============================ The :ned:`MarkovScheduler` module uses a Markov process to schedule packets. The current state of the Markov process selects the input gate; a configurable transition matrix determines the probabilities of state change; the configured wait intervals determine the time between state changes. If the provider at the selected input cannot prodivide a packet for duration of the state's wait interval, the process switches to the next state without pulling a packet. In this example network, packets are generated by two passive packet sources (:ned:`PassivePacketSource`). The packet sources are connected to a scheduler (:ned:`MarkovScheduler`). Packets are popped from the scheduler by an active packet sink (:ned:`ActivePacketSink`). The scheduler in turn pops packets from one of the packet sources, based on the current state of the Markov process. .. figure:: media/MarkovScheduler.png :width: 80% :align: center .. literalinclude:: ../QueueingTutorial.ned :start-at: network MarkovSchedulerTutorialStep :end-before: //---- :language: ned .. literalinclude:: ../omnetpp.ini :start-at: Config MarkovScheduler :end-at: waitIntervals :language: ini