TokenBucketMeter

Package: inet.networklayer.diffserv

TokenBucketMeter

simple module

Simple token bucket meter.

IP packets are classified according to two parameters, Committed Information Rate (cir), Committed Burst Size (cbs), to be either green, or red.

Green traffic is guaranteed to be under (in bits)

    cir * (t1 - t0) + 8 * cbs
in every [t0,t1] interval.

When operating in color-aware mode, the meter does not classify a packet to be green, if it was marked with a higher color by a previous meter.

Used in compound modules

Name Type Description
DiffservQueue compound module

This is an example queue, that can be used in interfaces of DS core and edge nodes to support the AFxy (RFC 2597) and EF (RFC 3246) PHBs.

Parameters

Name Type Default value Description
interfaceTableModule string

The path to the InterfaceTable module

cir string

committed information rate, either absolute bitrate (e.g. "100kbps"), or relative to the link's datarate (e.g. "20%")

cbs int

committed burst size

colorAwareMode bool false

enables color-aware mode

Properties

Name Value Description
display i=block/timer

Gates

Name Direction Size Description
in input
greenOut output
redOut output

Direct method calls (observed)

call tofunctioninfo
InterfaceTableinet::InterfaceTable::findInterfaceByNodeInputGateIdfindInterfaceByNodeInputGateId

Pushed in messages (observed)

gatemsgkindctrlsrcModuletags
inPacket0BehaviorAggregateClassifierDispatchProtocolInd, InterfaceInd, InterfaceReq, MacAddressInd, NetworkProtocolInd, PacketProtocolTag
inPacket0DscpMarkerDispatchProtocolInd, InterfaceInd, InterfaceReq, MacAddressInd, NetworkProtocolInd, PacketProtocolTag
inPacket0MultiFieldClassifierDispatchProtocolReq, InterfaceInd, MacAddressInd, PacketProtocolTag

Push out messages (observed)

gatemsgkindctrldestModuletags
greenOutPacket0DscpMarkerDispatchProtocolReq, InterfaceInd, MacAddressInd, PacketProtocolTag
greenOutPacket0PacketMultiplexerInterfaceInd, MacAddressInd, PacketProtocolTag, DispatchProtocolInd?, DispatchProtocolReq?, InterfaceReq?, NetworkProtocolInd?
greenOutPacket0DropTailQueueDispatchProtocolInd, InterfaceInd, InterfaceReq, MacAddressInd, NetworkProtocolInd, PacketProtocolTag

Source code

//
// Simple token bucket meter.
//
// IP packets are classified according to two parameters,
// Committed Information Rate (cir), Committed Burst Size (cbs),
// to be either green, or red.
//
// Green traffic is guaranteed to be under (in bits)
// <pre>
//     cir * (t1 - t0) + 8 * cbs
// </pre>
// in every [t0,t1] interval.
//
// When operating in color-aware mode, the meter does not classify
// a packet to be green, if it was marked with a higher color
// by a previous meter.
//
simple TokenBucketMeter
{
    parameters:
        @display("i=block/timer");
        string interfaceTableModule;   // The path to the InterfaceTable module
        string cir;       // committed information rate, either absolute bitrate (e.g. "100kbps"), or relative to the link's datarate (e.g. "20%")
        int cbs @unit(B); // committed burst size
        bool colorAwareMode = default(false); // enables color-aware mode
    gates:
        input in;
        output greenOut;
        output redOut;
}

File: src/inet/networklayer/diffserv/TokenBucketMeter.ned