Package: inet.linklayer.ethernet.common
RelayInterfaceLearner
simple moduleThis module extracts the source MAC address of the packet passing through and stores the mapping from this MAC address to the incoming network interface in the MAC address table (forwarding information database).
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Extends
Name | Type | Description |
---|---|---|
PacketFlowBase | simple module |
This is a base module for various packet flow modules. A packet flow module passes or streams all pushed or pulled packets after processing them from its input to its output. |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
displayStringTextFormat | string | "processed %p pk (%l)" |
determines the text that is written on top of the submodule |
macTableModule | string |
relative module path of MAC table |
|
interfaceTableModule | string |
relative module path of interface table |
Properties
Name | Value | Description |
---|---|---|
display | i=block/blackboard | |
class | RelayInterfaceLearner |
Gates
Name | Direction | Size | Description |
---|---|---|---|
in | input | ||
out | output |
Signals
Name | Type | Unit |
---|---|---|
packetPushedIn | inet::Packet | |
packetPulledIn | inet::Packet | |
packetPushedOut | inet::Packet | |
packetPulledOut | inet::Packet |
Statistics
Name | Title | Source | Record | Unit | Interpolation Mode |
---|---|---|---|---|---|
flowIncomingDataRate | flow specific incoming data rate | throughput(demuxFlow(merge(packetPushedIn, packetPulledIn))) | vector | bps | linear |
outgoingDataRate | outgoing data rate | throughput(merge(packetPushedOut, packetPulledOut)) | vector | bps | linear |
incomingDataRate | incoming data rate | throughput(merge(packetPushedIn, packetPulledIn)) | vector | bps | linear |
outgoingPacketLengths | outgoing packet lengths | packetLength(merge(packetPushedOut, packetPulledOut)) | sum, histogram, vector | b | none |
flowIncomingPacketLengths | flow specific incoming packet lengths | packetLength(demuxFlow(merge(packetPushedIn, packetPulledIn))) | sum, histogram, vector | b | none |
flowOutgoingDataRate | flow specific outgoing data rate | throughput(demuxFlow(merge(packetPushedOut, packetPulledOut))) | vector | bps | linear |
incomingPacketLengths | incoming packet lengths | packetLength(merge(packetPushedIn, packetPulledIn)) | sum, histogram, vector | b | none |
flowOutgoingPacketLengths | flow specific outgoing packet lengths | packetLength(demuxFlow(merge(packetPushedOut, packetPulledOut))) | sum, histogram, vector | b | none |
incomingPackets | incoming packets | merge(packetPushedIn, packetPulledIn) | count | pk | |
outgoingPackets | outgoing packets | merge(packetPushedOut, packetPulledOut) | count | pk |
Direct method calls (observed)
call to | function | info |
---|---|---|
MessageDispatcher | inet::MessageDispatcher::handleRegisterAnyProtocol | handleRegisterAnyProtocol |
MessageDispatcher | inet::MessageDispatcher::handleRegisterProtocol | handleRegisterProtocol |
MessageDispatcher | inet::MessageDispatcher::pushPacket | pushPacket |
MacForwardingTable | inet::MacForwardingTable::learnUnicastAddressForwardingInterface | learnUnicastAddressForwardingInterface |
StreamDecoder | inet::StreamDecoder::pushPacket | pushPacket |
Called methods (observed)
function | info | call from |
---|---|---|
inet::RelayInterfaceLearner::pushPacket | pushPacket | MessageDispatcher, VlanIndFilter |
Pushed in messages (observed)
Push out messages (observed)
Shared Tagging operations (observed)
tagType | tagAction |
---|---|
InterfaceInd | getTag |
MacAddressInd | getTag |
VlanInd | findTag |
Region Tagging operations (observed)
tagType | tagAction |
---|---|
FlowTag | mapAllTags |
Source code
// // This module extracts the source MAC address of the packet passing through and // stores the mapping from this MAC address to the incoming network interface in // the MAC address table (forwarding information database). // simple RelayInterfaceLearner extends PacketFlowBase like IPacketFlow { parameters: string macTableModule; // relative module path of MAC table string interfaceTableModule; // relative module path of interface table @class(RelayInterfaceLearner); @display("i=block/blackboard"); }File: src/inet/linklayer/ethernet/common/RelayInterfaceLearner.ned