Package: inet.linklayer.ieee8021q
Ieee8021qTagEpdHeaderInserter
simple module(no description)
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 |
| vlanTagType | string | "c" | |
| nextProtocol | string | "ethernetmac" | |
| defaultVlanId | int | -1 | |
| defaultPcp | int | -1 | |
| defaultUserPriority | int | -1 | |
| defaultDropEligible | int | -1 |
<0: unspecified, 0: false, >0: true |
Properties
| Name | Value | Description |
|---|---|---|
| display | i=block/inserter | |
| class | Ieee8021qTagEpdHeaderInserter |
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::handleRegisterService | handleRegisterService |
| MessageDispatcher | inet::MessageDispatcher::pushPacket | pushPacket |
| Ieee8021qTagEpdHeaderInserter | inet::Ieee8021qTagEpdHeaderInserter::pushPacket | pushPacket |
Called methods (observed)
| function | info | call from |
|---|---|---|
| inet::Ieee8021qTagEpdHeaderInserter::pushPacket | pushPacket | MessageDispatcher, Ieee8021qSocketCommandProcessor, Ieee8021qTagEpdHeaderInserter |
Incoming messages (observed)
| gate | msg | kind | ctrl | srcModule | tags |
|---|---|---|---|---|---|
| in | Packet | 0 | Arp | DispatchProtocolReq, InterfaceReq, MacAddressReq, PacketProtocolTag | |
| in | Packet | 0 | Ipv4 | DispatchProtocolInd, DispatchProtocolReq, EcnInd, InterfaceReq, MacAddressReq, NetworkProtocolInd, PacketProtocolTag, TransportProtocolInd |
Pushed in messages (observed)
Push out messages (observed)
| gate | msg | kind | ctrl | destModule | tags |
|---|---|---|---|---|---|
| out | Packet | 0 | MessageDispatcher | DispatchProtocolReq, InterfaceReq, MacAddressReq, PacketProtocolTag, VlanInd, DirectionTag?, DispatchProtocolInd?, DropEligibleInd?, EcnInd?, InterfaceInd?, NetworkProtocolInd?, PcpInd?, SocketReq?, TransportProtocolInd?, UserPriorityInd? |
Packet operations (observed)
| chunkType | packetAction |
|---|---|
| Ieee8021qTagEpdHeader | insertAtFront |
Shared Tagging operations (observed)
| tagType | tagAction |
|---|---|
| DispatchProtocolReq | addTagIfAbsent |
| DropEligibleInd | addTagIfAbsent |
| DropEligibleReq | removeTagIfPresent |
| EncapsulationProtocolReq | findTagForUpdate |
| PacketProtocolTag | getTagForUpdate |
| PcpInd | addTagIfAbsent |
| PcpReq | removeTagIfPresent |
| UserPriorityInd | addTagIfAbsent |
| UserPriorityReq | removeTagIfPresent |
| VlanInd | addTagIfAbsent |
| VlanReq | removeTagIfPresent |
Region Tagging operations (observed)
| tagType | tagAction |
|---|---|
| FlowTag | mapAllTags |
Source code
simple Ieee8021qTagEpdHeaderInserter extends PacketFlowBase like IIeee8021qTagEpdHeaderInserter { parameters: string vlanTagType @enum("c","s") = default("c"); string nextProtocol = default("ethernetmac"); int defaultVlanId = default(-1); int defaultPcp = default(-1); int defaultUserPriority = default(-1); int defaultDropEligible = default(-1); // <0: unspecified, 0: false, >0: true @class(Ieee8021qTagEpdHeaderInserter); @display("i=block/inserter"); }File: src/inet/linklayer/ieee8021q/Ieee8021qTagEpdHeaderInserter.ned