MessageDispatcher

Package: inet.common

MessageDispatcher

simple module

This module connects multiple applications, protocols and interfaces with each other and automatically dispatches messages and packets between them. It allows many different configurations from layered architectures where message dispatchers separate different communication layers to centralized architectures where a single message dispatcher is connected to all components.

Configuring the dispatch mechanism:

  • protocols must register by calling registerService and/or registerProtocol
  • interfaces must register by calling registerInterface
  • sockets must register by sending socket messages
  • packets must have tags attached which specifie the destination protocol, interface or socket

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
AccessPoint compound module

A generic access point supporting multiple wireless radios, and multiple ethernet ports. The type of the ethernet MAC, relay unit and wireless card can be specified as parameters.

ApplicationLayerNodeBase compound module (no description)
DirectionReverserLayer compound module

This module provides a layer that combines the decision for local delivery with the service of reversing the direction of an incoming packet to outgoing for packet forwarding.

EthernetHost compound module

An example host with one Ethernet port and a traffic generator that generates request-reply traffic directly over Ethernet. This host model does not contain higher layer protocols (IP, TCP). By default it is configured to use half-duplex MAC (CSMA/CD).

EthernetSwitch compound module

Model of an Ethernet switch.

ExtUpperIpv4NetworkLayer compound module (no description)
ForwardingService compound module (no description)
Ieee8022LlcLayer compound module (no description)
InterfaceService compound module (no description)
Ipv4NetworkLayer compound module

Network layer of an IPv4 node.

Ipv6NetworkLayer compound module

Represents an IPv6 network layer (L3).

LdpMplsRouter compound module

An LDP-capable router.

LinkLayerNodeBase compound module (no description)
NetworkLayerNodeBase compound module (no description)
NextHopNetworkLayer compound module

This module provides a network layer for the next hop forwarding.

RsvpMplsRouter compound module

An RSVP-TE capable router.

SimpleNetworkLayer compound module

This module provides a simple network layer.

TcpServerApp compound module

This module is a generic TCP server application with a TCP server listener that creates TCP server connections.

TransportLayerNodeBase compound module (no description)
WiseRouteNetworkLayer compound module

This module provides a simple network layer.

Extends

Name Type Description
PacketProcessorBase simple module

This is a base module for various packet processing modules which maintains a few statistics.

Parameters

Name Type Default value Description
displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

forwardServiceRegistration bool true
forwardProtocolRegistration bool true

Properties

Name Value Description
display i=-;b=100,5,,,,1;
class MessageDispatcher

Gates

Name Direction Size Description
in [ ] input
out [ ] output

Direct method calls (observed)

call tofunctioninfo
MessageDispatcherinet::MessageDispatcher::arrivedarrived
MessageDispatcherinet::MessageDispatcher::handleRegisterAnyProtocolhandleRegisterAnyProtocol
MessageDispatcherinet::MessageDispatcher::handleRegisterAnyServicehandleRegisterAnyService
MessageDispatcherinet::MessageDispatcher::handleRegisterInterfacehandleRegisterInterface
MessageDispatcherinet::MessageDispatcher::handleRegisterProtocolhandleRegisterProtocol
MessageDispatcherinet::MessageDispatcher::handleRegisterServicehandleRegisterService
MessageDispatcherinet::MessageDispatcher::pushPacketpushPacket
ExampleQosClassifierinet::ExampleQosClassifier::handleRegisterProtocolhandleRegisterProtocol
ExampleQosClassifierinet::ExampleQosClassifier::handleRegisterServicehandleRegisterService
QosClassifierinet::QosClassifier::handleRegisterProtocolhandleRegisterProtocol
QosClassifierinet::QosClassifier::handleRegisterServicehandleRegisterService
LayeredEthernetInterfaceinet::NetworkInterface::pushPacketpushPacket
EthernetEncapsulationinet::EthernetEncapsulation::handleRegisterAnyProtocolhandleRegisterAnyProtocol
EthernetEncapsulationinet::EthernetEncapsulation::handleRegisterProtocolhandleRegisterProtocol
EthernetEncapsulationinet::EthernetEncapsulation::handleRegisterServicehandleRegisterService
PacketDirectionReverserinet::PacketDirectionReverser::pushPacketpushPacket
RelayInterfaceLearnerinet::RelayInterfaceLearner::pushPacketpushPacket
EthernetCutthroughInterfaceinet::NetworkInterface::pushPacketpushPacket
EthernetFcsCheckerinet::EthernetFcsChecker::pushPacketpushPacket
EthernetMacHeaderInserterinet::EthernetMacHeaderInserter::pushPacketpushPacket
Ieee80211LlcLpdinet::ieee80211::Ieee80211LlcLpd::handleRegisterProtocolhandleRegisterProtocol
Ieee80211LlcLpdinet::ieee80211::Ieee80211LlcLpd::handleRegisterServicehandleRegisterService
Ieee8021qTagEpdHeaderCheckerinet::Ieee8021qTagEpdHeaderChecker::pushPacketpushPacket
Ieee8021qTagEpdHeaderInserterinet::Ieee8021qTagEpdHeaderInserter::pushPacketpushPacket
Ieee8021rTagEpdHeaderCheckerinet::Ieee8021rTagEpdHeaderChecker::pushPacketpushPacket
Ieee8021rTagEpdHeaderInserterinet::Ieee8021rTagEpdHeaderInserter::pushPacketpushPacket
Ieee8022Llcinet::Ieee8022Llc::handleRegisterProtocolhandleRegisterProtocol
Ieee8022Llcinet::Ieee8022Llc::handleRegisterServicehandleRegisterService
VirtualInterfaceinet::NetworkInterface::pushPacketpushPacket
VlanIndFilterinet::VlanIndFilter::pushPacketpushPacket
Floodinginet::Flooding::handleRegisterProtocolhandleRegisterProtocol
Floodinginet::Flooding::handleRegisterServicehandleRegisterService
Icmpv6inet::Icmpv6::handleRegisterProtocolhandleRegisterProtocol
Icmpv6inet::Icmpv6::handleRegisterServicehandleRegisterService
Icmpinet::Icmp::handleRegisterProtocolhandleRegisterProtocol
Icmpinet::Icmp::handleRegisterServicehandleRegisterService
Igmpv2inet::Igmpv2::handleRegisterProtocolhandleRegisterProtocol
Igmpv2inet::Igmpv2::handleRegisterServicehandleRegisterService
Ipv4inet::Ipv4::handleRegisterProtocolhandleRegisterProtocol
Ipv4inet::Ipv4::handleRegisterServicehandleRegisterService
Ipv6inet::Ipv6::handleRegisterProtocolhandleRegisterProtocol
Ipv6inet::Ipv6::handleRegisterServicehandleRegisterService
Mplsinet::Mpls::handleRegisterProtocolhandleRegisterProtocol
Mplsinet::Mpls::handleRegisterServicehandleRegisterService
NextHopForwardinginet::NextHopForwarding::handleRegisterProtocolhandleRegisterProtocol
NextHopForwardinginet::NextHopForwarding::handleRegisterServicehandleRegisterService
AdaptiveProbabilisticBroadcastinet::AdaptiveProbabilisticBroadcast::handleRegisterProtocolhandleRegisterProtocol
AdaptiveProbabilisticBroadcastinet::AdaptiveProbabilisticBroadcast::handleRegisterServicehandleRegisterService
ProbabilisticBroadcastinet::ProbabilisticBroadcast::handleRegisterProtocolhandleRegisterProtocol
ProbabilisticBroadcastinet::ProbabilisticBroadcast::handleRegisterServicehandleRegisterService
WiseRouteinet::WiseRoute::handleRegisterProtocolhandleRegisterProtocol
WiseRouteinet::WiseRoute::handleRegisterServicehandleRegisterService
StreamDecoderinet::StreamDecoder::pushPacketpushPacket
PacketClassifierinet::queueing::PacketClassifier::pushPacketpushPacket
PacketMultiplexerinet::queueing::PacketMultiplexer::pushPacketpushPacket

Called methods (observed)

functioninfocall from
inet::MessageDispatcher::arrivedarrivedDhcpClient, DhcpServer, EtherAppClient, EtherAppServer, EthernetSocketIo, IpvxTrafGen, NetPerfMeter, PingApp, SctpClient, SctpServer, TcpBasicClientApp, TcpClientSocketIo, TcpEchoApp, TcpGenericServerApp, TcpServerListener, TcpServerSocketIo, TcpSessionApp, TcpSinkApp, TelnetApp, TunnelApp, UdpBasicApp, UdpBasicBurst, UdpEchoApp, UdpSink, UdpSocketIo, UdpVideoStreamClient, UdpVideoStreamServer, SimpleVoipReceiver, SimpleVoipSender, VoipStreamReceiver, VoipStreamSender, MessageDispatcher, AckingMac, BMac, CsmaCaMac, EthernetCsmaMac, EthernetEncapsulation, EthernetMac, MacRelayUnit, Ieee80211LlcEpd, Ieee80211LlcLpd, Ieee80211Portal, Ieee802154Mac, Ieee802154NarrowbandMac, Gptp, Ieee8021dRelay, Rstp, Stp, Ieee8022Llc, LMac, Loopback, Ppp, ShortcutMac, Tun, VirtualTunnel, XMac, Arp, EchoProtocol, Flooding, Icmpv6, Icmp, Igmpv2, Igmpv3, Ipv4, Ipv6, Ldp, Mpls, NextHopForwarding, AdaptiveProbabilisticBroadcast, ProbabilisticBroadcast, RsvpTe, LinkStateRouting, WiseRoute, Aodv, Bgp, Dsdv, Dymo, EigrpSplitter, Gpsr, Ospfv2, Ospfv3Splitter, PimSplitter, Rip, Rtcp, Rtp, Sctp, Tcp, TcpLwip, Udp
inet::MessageDispatcher::handleRegisterAnyProtocolhandleRegisterAnyProtocolMessageDispatcher, MacRelayUnit, PacketDirectionReverser, RelayInterfaceLearner, Ieee8021dRelay, VlanIndFilter, StreamDecoder
inet::MessageDispatcher::handleRegisterAnyServicehandleRegisterAnyServiceMessageDispatcher, MacRelayUnit, Ieee8021dRelay
inet::MessageDispatcher::handleRegisterInterfacehandleRegisterInterfaceMessageDispatcher, AckingWirelessInterface, BMacInterface, WirelessInterface, CsmaCaInterface, EthernetInterface, LayeredEthernetInterface, EthernetCutthroughInterface, Ieee80211Interface, Ieee802154NarrowbandInterface, LMacInterface, LoopbackInterface, PppInterface, ShortcutInterface, TunInterface, VirtualInterface, XMacInterface
inet::MessageDispatcher::handleRegisterProtocolhandleRegisterProtocolIpvxTrafGen, IpvxTrafSink, MessageDispatcher, EthernetEncapsulation, RelayInterfaceLearner, EthernetFcsChecker, Gptp, Rstp, Stp, Ieee8021qTagEpdHeaderChecker, Ieee8021rTagEpdHeaderChecker, Ieee8022Llc, VlanIndFilter, VlanReqFilter, VlanReqMapper, Arp, EchoProtocol, Flooding, Icmpv6, Icmp, Igmpv2, Igmpv3, Ipv4, Ipv6, Mpls, NextHopForwarding, AdaptiveProbabilisticBroadcast, ProbabilisticBroadcast, RsvpTe, LinkStateRouting, WiseRoute, StreamDecoder, PacketClassifier, PacketMultiplexer, Dsdv, Dymo, EigrpSplitter, Gpsr, Ospfv2, Ospfv3Splitter, Pim, Sctp, Tcp, TcpLwip, Udp
inet::MessageDispatcher::handleRegisterServicehandleRegisterServiceMessageDispatcher, EthernetEncapsulation, EthernetCutthroughBarrier, EthernetMacHeaderInserter, Ieee8021dRelay, Ieee8021qSocketCommandProcessor, Ieee8021qTagEpdHeaderInserter, Ieee8021rTagEpdHeaderInserter, Ieee8022Llc, VlanIndFilter, VlanReqFilter, VlanReqMapper, Flooding, Icmpv6, Icmp, Ipv4, Ipv6, Mpls, NextHopForwarding, AdaptiveProbabilisticBroadcast, ProbabilisticBroadcast, WiseRoute, StreamDecoder, StreamEncoder, StreamMerger, PacketMultiplexer, Sctp, Tcp, TcpLwip, Udp
inet::MessageDispatcher::pushPacketpushPacketMessageDispatcher, EthernetInterface, LayeredEthernetInterface, RelayInterfaceLearner, RelayInterfaceSelector, EthernetCutthroughInterface, EthernetFcsInserter, EthernetMacHeaderChecker, Ieee8021qSocketPacketProcessor, Ieee8021qTagEpdHeaderChecker, Ieee8021qTagEpdHeaderInserter, Ieee8021rTagEpdHeaderChecker, Ieee8021rTagEpdHeaderInserter, VlanIndFilter, VlanReqFilter, StreamDecoder, StreamEncoder, StreamMerger, BackPressureBarrier, PacketMultiplexer

Outgoing messages (observed)

gatemsgkindctrldestModuletags
out[]Packet0EthernetEncapsulationDispatchProtocolReq, InterfaceInd, MacAddressInd, PacketProtocolTag, NetworkProtocolInd?
out[]Packet0GptpDirectionTag, DispatchProtocolReq, EncapsulationProtocolInd, GptpIngressTimeInd, InterfaceInd, MacAddressInd, PacketProtocolTag
out[]Packet0Ieee8021dRelayDirectionTag, DispatchProtocolReq, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, GptpIngressTimeInd?
out[]Packet0ArpDirectionTag, DispatchProtocolReq, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, DropEligibleInd?, PcpInd?, UserPriorityInd?, VlanInd?
out[]Packet0Ipv4DirectionTag, DispatchProtocolReq, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, DropEligibleInd?, FragmentTag?, PcpInd?, SequenceNumberInd?, StreamInd?, UserPriorityInd?, VlanInd?

Pushed in messages (observed)

gatemsgkindctrlsrcModuletags
in[]Packet0MessageDispatcherDispatchProtocolReq, PacketProtocolTag, DirectionTag?, DispatchProtocolInd?, DropEligibleInd?, EcnInd?, EncapsulationProtocolInd?, EncapsulationProtocolReq?, FragmentTag?, GptpIngressTimeInd?, InterfaceInd?, InterfaceReq?, MacAddressInd?, MacAddressReq?, MulticastReq?, NetworkProtocolInd?, PcpInd?, SequenceNumberInd?, SequenceNumberReq?, SocketInd?, SocketReq?, StreamInd?, StreamReq?, TransportProtocolInd?, UserPriorityInd?, VlanInd?
in[]Packet0EthernetInterfaceDispatchProtocolReq, InterfaceInd, MacAddressInd, PacketProtocolTag, NetworkProtocolInd?
in[]Packet0LayeredEthernetInterfaceDirectionTag, DispatchProtocolReq, InterfaceInd, PacketProtocolTag, FragmentTag?, GptpIngressTimeInd?
in[]Packet0RelayInterfaceLearnerDirectionTag, DispatchProtocolReq, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, CutthroughTag?, DropEligibleInd?, GptpIngressTimeInd?, PcpInd?, UserPriorityInd?, VlanInd?
in[]Packet0RelayInterfaceSelectorDirectionTag, DispatchProtocolReq, EncapsulationProtocolReq, InterfaceReq, MacAddressReq, PacketProtocolTag, CutthroughTag?, DispatchProtocolInd?, DropEligibleReq?, EligibilityTimeTag?, InterfaceInd?, PcpReq?, SequenceNumberReq?, SocketReq?, StreamReq?, UserPriorityReq?, VlanReq?
in[]Packet0EthernetCutthroughInterfaceCutthroughTag, DirectionTag, DispatchProtocolReq, InterfaceInd, PacketProtocolTag
in[]Packet0EthernetFcsCheckerDirectionTag, DispatchProtocolReq, InterfaceInd, PacketProtocolTag, CutthroughTag?, GptpIngressTimeInd?
in[]Packet0EthernetFcsInserterInterfaceReq, MacAddressReq, PacketProtocolTag, CutthroughTag?, DirectionTag?, DispatchProtocolInd?, DropEligibleInd?, DropEligibleReq?, EcnInd?, EligibilityTimeTag?, EncapsulationProtocolReq?, Ieee802SapReq?, InterfaceInd?, MulticastReq?, NetworkProtocolInd?, PcpInd?, PcpReq?, SequenceNumberInd?, SocketReq?, StreamReq?, TransportProtocolInd?, UserPriorityInd?, UserPriorityReq?, VlanInd?, VlanReq?
in[]Packet0EthernetMacHeaderCheckerDirectionTag, DispatchProtocolReq, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, CutthroughTag?, FragmentTag?, GptpIngressTimeInd?
in[]Packet0Ieee8021qSocketPacketProcessorDirectionTag, DispatchProtocolReq, DropEligibleInd, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, PcpInd, SocketInd, UserPriorityInd, VlanInd
in[]Packet0Ieee8021qTagEpdHeaderCheckerDirectionTag, DispatchProtocolReq, DropEligibleInd, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, PcpInd, UserPriorityInd, VlanInd, SequenceNumberInd?
in[]Packet0Ieee8021qTagEpdHeaderInserterDispatchProtocolReq, InterfaceReq, MacAddressReq, PacketProtocolTag, DirectionTag?, DispatchProtocolInd?, DropEligibleInd?, EcnInd?, EncapsulationProtocolReq?, InterfaceInd?, MulticastReq?, NetworkProtocolInd?, PcpInd?, SequenceNumberReq?, SocketReq?, StreamReq?, TransportProtocolInd?, UserPriorityInd?, VlanInd?
in[]Packet0Ieee8021rTagEpdHeaderCheckerDirectionTag, DispatchProtocolReq, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, SequenceNumberInd
in[]Packet0Ieee8021rTagEpdHeaderInserterDirectionTag, DispatchProtocolReq, EncapsulationProtocolReq, InterfaceReq, MacAddressReq, PacketProtocolTag, SequenceNumberInd, StreamReq, VlanInd, DispatchProtocolInd?, DropEligibleInd?, InterfaceInd?, MulticastReq?, NetworkProtocolInd?, PcpInd?, SocketReq?, TransportProtocolInd?, UserPriorityInd?
in[]Packet0VlanIndFilterDirectionTag, DispatchProtocolReq, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, DropEligibleInd?, PcpInd?, UserPriorityInd?, VlanInd?
in[]Packet0VlanReqFilterDispatchProtocolReq, EncapsulationProtocolReq, InterfaceReq, MacAddressReq, PacketProtocolTag, DirectionTag?, DispatchProtocolInd?, DropEligibleReq?, EcnInd?, InterfaceInd?, NetworkProtocolInd?, TransportProtocolInd?, UserPriorityReq?, VlanReq?
in[]Packet0DscpMarkerDispatchProtocolReq, InterfaceInd, MacAddressInd, PacketProtocolTag, NetworkProtocolInd?
in[]Packet0StreamDecoderDirectionTag, DispatchProtocolReq, DropEligibleInd, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, PcpInd, UserPriorityInd, VlanInd, StreamInd?
in[]Packet0StreamEncoderDirectionTag, DispatchProtocolInd, DispatchProtocolReq, EncapsulationProtocolReq, InterfaceReq, MacAddressReq, MulticastReq, NetworkProtocolInd, PacketProtocolTag, StreamReq, TransportProtocolInd, PcpReq?, SequenceNumberReq?, VlanReq?
in[]Packet0StreamMergerDirectionTag, DispatchProtocolReq, DropEligibleInd, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, PcpInd, UserPriorityInd, VlanInd, SequenceNumberInd?, StreamInd?
in[]Packet0BackPressureBarrierDirectionTag, DispatchProtocolReq, DropEligibleInd, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, PcpInd, StreamInd, UserPriorityInd, VlanInd, EligibilityTimeTag?, LabelsTag?, RateTag?
in[]Packet0PacketMultiplexerDispatchProtocolReq, PacketProtocolTag, DirectionTag?, DispatchProtocolInd?, FragmentTag?, InterfaceInd?, InterfaceReq?, MacAddressInd?, MacAddressReq?, NetworkProtocolInd?
in[]Packet0FlowMeasurementRecorderDirectionTag, DispatchProtocolReq, InterfaceInd, PacketProtocolTag

Push out messages (observed)

gatemsgkindctrldestModuletags
out[]Packet0MessageDispatcherDispatchProtocolReq, PacketProtocolTag, DirectionTag?, DispatchProtocolInd?, DropEligibleInd?, EcnInd?, EncapsulationProtocolInd?, EncapsulationProtocolReq?, FragmentTag?, GptpIngressTimeInd?, InterfaceInd?, InterfaceReq?, MacAddressInd?, MacAddressReq?, MulticastReq?, NetworkProtocolInd?, PcpInd?, SequenceNumberInd?, SequenceNumberReq?, SocketInd?, SocketReq?, StreamInd?, StreamReq?, TransportProtocolInd?, UserPriorityInd?, VlanInd?
out[]Packet0PacketDirectionReverserDirectionTag, DispatchProtocolReq, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, CutthroughTag?, DropEligibleInd?, EligibilityTimeTag?, LabelsTag?, PcpInd?, RateTag?, SequenceNumberInd?, StreamInd?, UserPriorityInd?, VlanInd?
out[]Packet0RelayInterfaceLearnerDirectionTag, DispatchProtocolReq, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, CutthroughTag?, DropEligibleInd?, GptpIngressTimeInd?, PcpInd?, SequenceNumberInd?, UserPriorityInd?, VlanInd?
out[]Packet0EthernetFcsCheckerDirectionTag, DispatchProtocolReq, InterfaceInd, PacketProtocolTag, CutthroughTag?, FragmentTag?, GptpIngressTimeInd?
out[]Packet0EthernetMacHeaderInserterDispatchProtocolReq, InterfaceReq, MacAddressReq, PacketProtocolTag, CutthroughTag?, DirectionTag?, DispatchProtocolInd?, DropEligibleInd?, DropEligibleReq?, EcnInd?, EligibilityTimeTag?, EncapsulationProtocolReq?, InterfaceInd?, MulticastReq?, NetworkProtocolInd?, PcpInd?, PcpReq?, SequenceNumberInd?, SocketReq?, StreamReq?, TransportProtocolInd?, UserPriorityInd?, UserPriorityReq?, VlanInd?, VlanReq?
out[]Packet0Ieee8021qTagEpdHeaderCheckerDirectionTag, DispatchProtocolReq, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, SequenceNumberInd?
out[]Packet0Ieee8021qTagEpdHeaderInserterDispatchProtocolReq, EncapsulationProtocolReq, InterfaceReq, MacAddressReq, PacketProtocolTag, DirectionTag?, DispatchProtocolInd?, DropEligibleReq?, EcnInd?, InterfaceInd?, MulticastReq?, NetworkProtocolInd?, PcpReq?, SequenceNumberReq?, SocketReq?, StreamReq?, TransportProtocolInd?, UserPriorityReq?, VlanReq?
out[]Packet0PcpTrafficClassClassifierDirectionTag, EncapsulationProtocolReq, InterfaceInd, InterfaceReq, MacAddressReq, PacketProtocolTag, DropEligibleInd?, DropEligibleReq?, EligibilityTimeTag?, PcpInd?, PcpReq?, StreamReq?, UserPriorityInd?, UserPriorityReq?, VlanInd?, VlanReq?
out[]Packet0Ieee8021rTagEpdHeaderCheckerDirectionTag, DispatchProtocolReq, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag
out[]Packet0Ieee8021rTagEpdHeaderInserterDirectionTag, DispatchProtocolReq, EncapsulationProtocolReq, InterfaceReq, MacAddressReq, PacketProtocolTag, SequenceNumberReq, StreamReq, VlanInd, DispatchProtocolInd?, DropEligibleInd?, InterfaceInd?, MulticastReq?, NetworkProtocolInd?, PcpInd?, SocketReq?, TransportProtocolInd?, UserPriorityInd?
out[]Packet0VirtualTunnelDirectionTag, DispatchProtocolReq, DropEligibleInd, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, PcpInd, SocketInd, UserPriorityInd, VlanInd
out[]Packet0VlanIndFilterDirectionTag, DispatchProtocolReq, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, DropEligibleInd?, PcpInd?, UserPriorityInd?, VlanInd?
out[]Packet0StreamDecoderDirectionTag, DispatchProtocolReq, DropEligibleInd, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, PcpInd, UserPriorityInd, VlanInd, SequenceNumberInd?
out[]Packet0ContentBasedClassifierDirectionTag, InterfaceReq, MacAddressReq, PacketProtocolTag, DispatchProtocolInd?, DropEligibleInd?, EncapsulationProtocolReq?, InterfaceInd?, MulticastReq?, NetworkProtocolInd?, PcpInd?, SequenceNumberInd?, StreamReq?, TransportProtocolInd?, UserPriorityInd?, VlanInd?
out[]Packet0PacketClassifierDirectionTag, PacketProtocolTag, DispatchProtocolInd?, DispatchProtocolReq?, EncapsulationProtocolInd?, EncapsulationProtocolReq?, GptpIngressTimeInd?, InterfaceInd?, InterfaceReq?, MacAddressInd?, MacAddressReq?, MulticastReq?, NetworkProtocolInd?, TransportProtocolInd?, VlanReq?
out[]Packet0PacketMultiplexerDispatchProtocolInd, DispatchProtocolReq, InterfaceReq, MacAddressReq, PacketProtocolTag
out[]Packet0FlowMeasurementStarterDirectionTag, InterfaceReq, MacAddressReq, PacketProtocolTag
out[]Packet0DropTailQueueDirectionTag, DispatchProtocolInd, EncapsulationProtocolReq, InterfaceReq, MacAddressReq, MulticastReq, NetworkProtocolInd, PacketProtocolTag, TransportProtocolInd, VlanReq
out[]Packet0PacketQueueInterfaceReq, MacAddressReq, PacketProtocolTag, CutthroughTag?, DirectionTag?, DispatchProtocolInd?, DropEligibleInd?, DropEligibleReq?, EcnInd?, EncapsulationProtocolReq?, Ieee802SapReq?, InterfaceInd?, MulticastReq?, NetworkProtocolInd?, PcpInd?, PcpReq?, SequenceNumberInd?, SocketReq?, StreamReq?, TransportProtocolInd?, UserPriorityInd?, UserPriorityReq?, VlanInd?, VlanReq?

Shared Tagging operations (observed)

tagTypetagAction
DispatchProtocolReqfindTag
InterfaceReqfindTag
PacketProtocolTagfindTag
SocketIndfindTag
SocketReqfindTag

Source code

//
// This module connects multiple applications, protocols and interfaces with
// each other and automatically dispatches messages and packets between them.
// It allows many different configurations from layered architectures where
// message dispatchers separate different communication layers to centralized
// architectures where a single message dispatcher is connected to all components.
//
// Configuring the dispatch mechanism:
//  - protocols must register by calling registerService and/or registerProtocol
//  - interfaces must register by calling registerInterface
//  - sockets must register by sending socket messages
//  - packets must have tags attached which specifie the destination protocol, interface or socket
//
simple MessageDispatcher extends PacketProcessorBase
{
    parameters:
        bool forwardServiceRegistration = default(true);
        bool forwardProtocolRegistration = default(true);
        @class(MessageDispatcher);
        @display("i=-;b=100,5,,,,1;");
    gates:
        input in[];
        output out[];
}

File: src/inet/common/MessageDispatcher.ned