ExponentialRateMeter.ned

NED File src/inet/queueing/meter/ExponentialRateMeter.ned

Name Type Description
ExponentialRateMeter simple module

Attaches a ~RateTag to each packet specifying the data rate and packet rate of the received stream of packets. The algorithm takes older packets into account with an exponentially decreasing weight.

Source code

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


package inet.queueing.meter;

import inet.queueing.base.PacketMeterBase;
import inet.queueing.contract.IPacketMeter;

//
// Attaches a ~RateTag to each packet specifying the data rate and
// packet rate of the received stream of packets. The algorithm takes older
// packets into account with an exponentially decreasing weight.
//
// @see ~StatisticalRateLimiter
//
simple ExponentialRateMeter extends PacketMeterBase like IPacketMeter
{
    parameters:
        double alpha; // Parameter in the range of (0, 1) for the exponential weight decrease
        @class(ExponentialRateMeter);
        @signal[packetRate](type=double);
        @statistic[packetRate](title="packet rate"; record=vector; unit=pps; interpolationmode=linear);
        @signal[dataRate](type=double);
        @statistic[dataRate](title="data rate"; record=vector; unit=bps; interpolationmode=linear);
}