Package: inet.networklayer.diffserv
BehaviorAggregateClassifier
simple moduleThis module reads the DSCP (lower six bits of ToS/TrafficClass) from the received datagram, and forwards the datagram to the corresponding output gate.
DSCPs are enumerated in the dscps parameter, first value is for out[0], second for out[1], etc. If the packet has no DSCP, or its value is not enumerated in the dscps parameter, it will be forwarded via the defaultOut gate.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
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. |
Extends
Name | Type | Description |
---|---|---|
PacketClassifierBase | simple module |
This is a base module for various packet classifier modules. Derived modules must implement a single packet classifier function which determines the index of the output gate for the next pushed packet. |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
displayStringTextFormat | string | "classified %p pk (%l)" |
determines the text that is written on top of the submodule |
reverseOrder | bool | false | |
dscps | string | "" |
space separated dscp values of the gates, both names (e.g. AF11, EF) and numbers (0x0A,0b101110) can be used |
Properties
Name | Value | Description |
---|---|---|
display | i=block/classifier | |
class | BehaviorAggregateClassifier |
Gates
Name | Direction | Size | Description |
---|---|---|---|
in | input | ||
out [ ] | output | ||
defaultOut | output |
Signals
Name | Type | Unit |
---|---|---|
pkClass | long |
Statistics
Name | Title | Source | Record | Unit | Interpolation Mode |
---|---|---|---|---|---|
pkClass | packet class | pkClass | vector | none |
Direct method calls (observed)
call to | function | info |
---|---|---|
PacketMultiplexer | inet::queueing::PacketMultiplexer::handleCanPushPacketChanged | handleCanPushPacketChanged |
RedDropper | inet::queueing::RedDropper::pushPacket | pushPacket |
DropTailQueue | inet::queueing::PacketQueue::pushPacket | pushPacket |
Called methods (observed)
function | info | call from |
---|---|---|
inet::BehaviorAggregateClassifier::handleCanPushPacketChanged | handleCanPushPacketChanged | PacketMultiplexer, RedDropper, DropTailQueue, PassivePacketSink |
Incoming messages (observed)
gate | msg | kind | ctrl | srcModule | tags |
---|---|---|---|---|---|
in | Packet | 0 | Ipv4 | DispatchProtocolInd, InterfaceInd, InterfaceReq, NetworkProtocolInd, PacketProtocolTag, MacAddressInd? |
Pushed in messages (observed)
Push out messages (observed)
Packet operations (observed)
chunkType | packetAction |
---|---|
peekData, setBackOffset, setFrontOffset | |
Ipv4Header | popAtFront |
Shared Tagging operations (observed)
tagType | tagAction |
---|---|
PacketProtocolTag | findTag |
Source code
// // This module reads the DSCP (lower six bits of ToS/TrafficClass) from the // received datagram, and forwards the datagram to the corresponding output gate. // // DSCPs are enumerated in the dscps parameter, first value is for out[0], second // for out[1], etc. If the packet has no DSCP, or its value is not enumerated // in the dscps parameter, it will be forwarded via the defaultOut gate. // simple BehaviorAggregateClassifier extends PacketClassifierBase { parameters: string dscps = default(""); // space separated dscp values of the gates, both names (e.g. AF11, EF) and numbers (0x0A,0b101110) can be used @class(BehaviorAggregateClassifier); @signal[pkClass](type=long); @statistic[pkClass](title="packet class"; source=pkClass; record=vector; interpolationmode=none); gates: output defaultOut; }File: src/inet/networklayer/diffserv/BehaviorAggregateClassifier.ned