IGateScheduleConfigurator

Package: inet.linklayer.configurator.gatescheduling.contract

IGateScheduleConfigurator

module interface

This module interface is implemented by gate scheduling configurator modules. A gate scheduling configurator is responsible for configuring all PeriodicGate modules of all traffic categories in all network interfaces in the network.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Implemented by

Name Type Description
AlwaysOpenGateScheduleConfigurator simple module

This module provides a trivial gate scheduling algorithm that makes all gates in the network to be open all the time.

EagerGateScheduleConfigurator simple module

This module provides a gate scheduling algorithm that eagerly reserves time slots for the configured streams in the order of their priority (0 being the lowest). The allocation makes sure that only one gate (traffic category) is open in all network interfaces at any given moment of time. This strategy may result in wasting to much time of the gate cycle and thus end up failing.

TSNschedGateScheduleConfigurator simple module

This module provides a gate scheduling configurator that uses the TSNsched tool that is available at https://github.com/ACassimiro/TSNsched Tested revision: 3f3bf663d196ec6c03e81a1e1392d4aefd158e3e

Z3GateScheduleConfigurator simple module

This module provides a gate scheduling algorithm that uses the open source z3 SAT solver from Microsoft. In order to be able to use this module, the corresponding 'Z3 Gate Scheduling Configurator' feature must be enabled and the libz3-dev package must be installed.

Used in

Name Type Description
TsnNetworkBase network

This module serves as a network base module for Time-Sensitive Networking (TSN).

Extends

Name Type Description
INetworkConfigurator module interface

This module interface is implemented by all network wide configurator modules.

Properties

Name Value Description
display i=block/cogwheel

Source code

//
// This module interface is implemented by gate scheduling configurator modules.
// A gate scheduling configurator is responsible for configuring all ~PeriodicGate
// modules of all traffic categories in all network interfaces in the network.
//
moduleinterface IGateScheduleConfigurator extends INetworkConfigurator
{
    parameters:
        @display("i=block/cogwheel");
}

File: src/inet/linklayer/configurator/gatescheduling/contract/IGateScheduleConfigurator.ned