PacketPolicing

Package: inet.queueing.policing

PacketPolicing

compound module

This module combines a packet meter and a packet filter into a packet policing module. The meter measures the packet flow that is passing through and attaches some meta information to the packets. The filter drops the packets that don't match the implemented filter criteria.

meter : like IPacketMeter

DualRateThreeColorMeter: This packet meter module measures the packet flow that is passing through using two token buckets.

IPacketMeter: This module interface is implemented by packet meter modules.

Source:
meter: <default("DualRateThreeColorMeter")> like IPacketMeter {
    parameters:
        @display("p=125,120");
} filter : like IPacketFilter

LabelFilter: This packet filter module drops packets that don't match the given packet label filter criteria.

IPacketFilter: This module interface is implemented by packet filter modules.

Source:
filter: <default("LabelFilter")> like IPacketFilter {
    parameters:
        @display("p=325,120");
}

Usage diagram

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Inheritance diagram

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

Gates

Name Direction Size Description
in input
out output

Source code

//
// This module combines a packet meter and a packet filter into a packet policing
// module. The meter measures the packet flow that is passing through and attaches
// some meta information to the packets. The filter drops the packets that don't
// match the implemented filter criteria.
//
module PacketPolicing like IPacketPolicing
{
    gates:
        input in @labels(push);
        output out @labels(push);
    submodules:
        meter: <default("DualRateThreeColorMeter")> like IPacketMeter {
            parameters:
                @display("p=125,120");
        }
        filter: <default("LabelFilter")> like IPacketFilter {
            parameters:
                @display("p=325,120");
        }
    connections:
        in --> { @display("m=w"); } --> meter.in;
        meter.out --> filter.in;
        filter.out --> { @display("m=e"); } --> out;
}

File: src/inet/queueing/policing/PacketPolicing.ned