MarkovScheduler.ned

NED File src/inet/queueing/scheduler/MarkovScheduler.ned

Name Type Description
MarkovScheduler simple module

This module implements a packet scheduler using a Markov process that has as many states as input gates the scheduler has. The input gate for the next packet is determined by the current state of the Markov process.

Source code

//
// Copyright (C) 2020 OpenSim Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later
//


package inet.queueing.scheduler;

import inet.queueing.base.PacketSchedulerBase;
import inet.queueing.contract.IPacketScheduler;

//
// This module implements a packet scheduler using a Markov process that has
// as many states as input gates the scheduler has. The input gate for the next
// packet is determined by the current state of the Markov process.
//
simple MarkovScheduler extends PacketSchedulerBase like IPacketScheduler
{
    parameters:
        displayStringTextFormat = default("classified %p pk (%l)\ncurrent state: %s");
        string clockModule = default(""); // relative path of a module that implements IClock; optional
        int initialState = default(0); // the start state of the Markov process
        string transitionProbabilities; // the transition matrix (N x N) of the Markov process, specified as a list of probabilities
        string waitIntervals; // the amount of time the Markov process stays in a given state, a list of intervals (N) indexed by the state
        @class(MarkovScheduler);
}