Package: inet.linklayer.configurator.gatescheduling.common
EagerGateScheduleConfigurator
simple moduleThis 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.
This configurator is primarily useful to produce statistical results that can be used as a baseline in comparison with more advanced configurators.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Extends
Name | Type | Description |
---|---|---|
GateScheduleConfiguratorBase | simple module |
This module serves as a basis for gate scheduling configurator modules. It provides methods for derived modules to easily extract the input parameters from the network topology and also to carry out the actual configuration of the resulting schedule. The schedule is automatically configured in all of the PeriodicGate submodules of all queue submodules in the network interface MAC layer submodules. Besides, the application start offsets are also configured. This allows the derived modules to focus on the implementation of the actual scheduling algorithm. |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
gateCycleDuration | double |
the globally used gate scheduling period in each PeriodicGate modules |
|
configuration | object | [] |
array of objects, see GateScheduleConfiguratorBase module documentation for more details example: [{name: "s1", type: "unicast", application: "app[0]", pcp: 0, gateIndex: 0, source: "wheel*", destination: "hud", packetLength: 100B, packetInterval: 5ms, maxLatency: 100us, maxJitter: 10us, pathFragments: [["a", "b", "c"]]}] |
Properties
Name | Value | Description |
---|---|---|
display | i=block/cogwheel | |
class | EagerGateScheduleConfigurator |
Direct method calls (observed)
call to | function | info |
---|---|---|
LayeredEthernetInterface | inet::NetworkInterface::receiveSignal | POST_MODEL_CHANGE |
InterfaceTable | inet::InterfaceTable::findInterfaceByNodeInputGateId | findInterfaceByNodeInputGateId |
InterfaceTable | inet::InterfaceTable::findInterfaceByNodeOutputGateId | findInterfaceByNodeOutputGateId |
Source code
// // 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. // // This configurator is primarily useful to produce statistical results that can // be used as a baseline in comparison with more advanced configurators. // simple EagerGateScheduleConfigurator extends GateScheduleConfiguratorBase like IGateScheduleConfigurator { parameters: @class(EagerGateScheduleConfigurator); }File: src/inet/linklayer/configurator/gatescheduling/common/EagerGateScheduleConfigurator.ned