PacketProtocolTag

Namespace inet

PacketProtocolTag

class

This tag specifies the protocol of the packet.

Packet processing at the sender ===============================

| ApplicationData | whole packet has no protocol data part has no protocol

| UdpHeader ApplicationData | whole packet has UDP protocol data part has UDP protocol

| Ipv4Header UdpHeader ApplicationData | whole packet has IPv4 protocol data part has IPv4 protocol

EthernetMacHeader | Ipv4Header UdpHeader ApplicationData | whole packet has incomplete Ethernet protocol data part has IPv4 protocol

EthernetMacHeader | Ipv4Header UdpHeader ApplicationData | EthernetPadding EthernetFcs whole packet has Ethernet protocol data part has IPv4 protocol

| EthernetMacHeader Ipv4Header UdpHeader ApplicationData EthernetPadding EthernetFcs | whole packet has Ethernet protocol data part has Ethernet protocol

Packet processing at the receiver =================================

| EthernetMacHeader Ipv4Header UdpHeader ApplicationData EthernetPadding EthernetFcs | whole packet has Ethernet protocol data part has Ethernet protocol

EthernetMacHeader Ipv4Header UdpHeader ApplicationData EthernetPadding | EthernetFcs whole packet has Ethernet protocol data part has no protocol

EthernetMacHeader | Ipv4Header UdpHeader ApplicationData | EthernetPadding EthernetFcs whole packet has Ethernet protocol data part has IPv4 protocol

EthernetMacHeader Ipv4Header | UdpHeader ApplicationData | EthernetPadding EthernetFcs whole packet has Ethernet protocol data part has UDP protocol

EthernetMacHeader Ipv4Header UdpHeader | ApplicationData | EthernetPadding EthernetFcs whole packet has Ethernet protocol data part has no protocol

Extends

Name Type Description
ProtocolTagBase (unknown -- not in documented files)

Fields

Name Type Description
frontOffset b

extra offset relative to the packet data part front offset

backOffset b

extra offset relative to the packet data part back offset

Shared Tagging operations (observed)

tagActionmodule
addTagIpvxTrafGen, PingApp, BMac, CsmaCaMac, EthernetCsmaMac, EthernetMac, MacRelayUnit, PacketDirectionReverser, Ieee802154NarrowbandMac, Gptp, Ieee8021dRelay, Rstp, Stp, LMac, Loopback, Ppp, ShortcutMac, Tun, XMac, Arp, EchoProtocol, Ipv4NetworkConfigurator, Icmpv6, Icmp, ApskDimensionalRadio, ApskDimensionalRadioMedium, ApskRadio, ApskScalarRadio, ApskScalarRadioMedium, RadioMedium, Ieee80211OfdmRadio, Ieee80211DimensionalRadio, Ieee80211DimensionalRadioMedium, Ieee80211Radio, Ieee80211ScalarRadio, Ieee80211ScalarRadioMedium, Ieee80211UnitDiskRadio, Ieee802154NarrowbandDimensionalRadio, Ieee802154NarrowbandScalarRadio, Ieee802154NarrowbandScalarRadioMedium, UnitDiskRadio, UnitDiskRadioMedium, PacketTransmitter, StreamThroughTransmitter, StreamingTransmitter, ActivePacketSource, PassivePacketSource, Dsdv, Dymo, Gpsr, PimDm, PimSm
addTagIfAbsentPcapRecorder, AckingMac, BMac, CsmaCaMac, EthernetCsmaMac, EthernetEncapsulation, EthernetMac, EthernetFcsInserter, EthernetMacHeaderChecker, Ieee80211LlcEpd, Ieee80211LlcLpd, Ieee80211Mac, Ieee80211MgmtAp, Ieee80211MgmtSta, Ieee80211Portal, Ieee802154Mac, Ieee802154NarrowbandMac, Ieee8021qTagEpdHeaderChecker, Ieee8021rTagEpdHeaderChecker, Ieee8022Llc, LMac, Ppp, XMac, Ipv4NetworkConfigurator, Flooding, Icmpv6, Ipv6NeighbourDiscovery, Icmp, Igmpv2, Igmpv3, Ipv4, Ipv6, Mpls, NextHopForwarding, AdaptiveProbabilisticBroadcast, ProbabilisticBroadcast, RsvpTe, LinkStateRouting, WiseRoute, EthernetFragmentPhyHeaderInserter, EthernetPhyHeaderChecker, EthernetPhyHeaderInserter, ApskDimensionalRadio, ApskRadio, ApskScalarRadio, Ieee80211OfdmRadio, Ieee80211DimensionalRadio, Ieee80211Radio, Ieee80211ScalarRadio, UnitDiskRadio, EigrpIpv4Pdm, EigrpIpv6Pdm, Gpsr, Ospfv2, Ospfv3Process, PimDm, PimSm, Sctp, Tcp, TcpConnection, TcpLwip, Udp
findTagEthernetSocketIo, MessageDispatcher, PcapRecorder, PacketDirectionReverser, EthernetCutthroughSource, Ieee80211LlcLpd, Ieee8021qSocketPacketProcessor, Ieee8022Llc, BehaviorAggregateClassifier, DiffservQueue, MultiFieldClassifier, Mpls, StreamIdentifier, StreamThroughReceiver, ContentBasedClassifier, PacketMultiplexer, ContentBasedFilter, ContentBasedLabeler, ContentBasedTagger, ContentBasedScheduler
findTagForUpdateEthernetFragmentFcsInserter
getTagPingApp, PcapRecorder, AckingMac, BMac, ExampleQosClassifier, QosClassifier, CsmaCaMac, MacRelayUnit, Ieee80211LlcEpd, Ieee80211Mac, Ieee802154Mac, Ieee802154NarrowbandMac, Gptp, Ieee8021dRelay, LMac, Loopback, Ppp, ShortcutMac, Tun, XMac, Ipv4NetworkConfigurator, DscpMarker, Flooding, Ipv6NeighbourDiscovery, Ipv4, Ipv6, Mpls, NextHopForwarding, AdaptiveProbabilisticBroadcast, ProbabilisticBroadcast, WiseRoute, ApskDimensionalRadio, ApskDimensionalRadioMedium, ApskRadio, ApskScalarRadio, ApskScalarRadioMedium, RadioMedium, Ieee80211OfdmRadio, Ieee80211DimensionalRadio, Ieee80211DimensionalRadioMedium, Ieee80211Radio, Ieee80211ScalarRadio, Ieee80211ScalarRadioMedium, Ieee80211UnitDiskRadio, Ieee802154NarrowbandDimensionalRadio, Ieee802154NarrowbandScalarRadio, Ieee802154NarrowbandScalarRadioMedium, UnitDiskRadio, UnitDiskRadioMedium, RedDropper, Dsdv, EigrpSplitter, EigrpIpv4Pdm, EigrpIpv6Pdm, Ospfv2, Ospfv3Splitter, Ospfv3Process, PimSplitter, Sctp, SctpCrcInsertion, Tcp, TcpCrcInsertionHook, TcpLwip, Udp, UdpCrcInsertionHook
getTagForUpdateEthernetFcsChecker, EthernetFragmentFcsChecker, EthernetMacHeaderInserter, Ieee8021qTagEpdHeaderInserter, Ieee8021rTagEpdHeaderInserter, ShortcutMac, EthernetFragmentPhyHeaderChecker, EthernetPhyHeaderChecker, ShortcutRadio
removeTagEthernetCsmaMac, EthernetMac, Ppp, Udp
removeTagIfPresentIeee80211LlcLpd, Ieee8022Llc, Ipv4, Ipv6, NextHopForwarding, PreemptableStreamer, PacketTransmitter, StreamThroughTransmitter, StreamingTransmitter, Gpsr, Udp

Source code

//
// This tag specifies the protocol of the packet.
//
// Packet processing at the sender
// ===============================
//
// | ApplicationData |
//     whole packet has no protocol
//     data part has no protocol
//
// | UdpHeader ApplicationData |
//     whole packet has UDP protocol
//     data part has UDP protocol
//
// | Ipv4Header UdpHeader ApplicationData |
//     whole packet has IPv4 protocol
//     data part has IPv4 protocol
//
// EthernetMacHeader | Ipv4Header UdpHeader ApplicationData |
//     whole packet has incomplete Ethernet protocol
//     data part has IPv4 protocol
//
// EthernetMacHeader | Ipv4Header UdpHeader ApplicationData | EthernetPadding EthernetFcs
//     whole packet has Ethernet protocol
//     data part has IPv4 protocol
//
// | EthernetMacHeader Ipv4Header UdpHeader ApplicationData EthernetPadding EthernetFcs |
//     whole packet has Ethernet protocol
//     data part has Ethernet protocol
//
// Packet processing at the receiver
// =================================
//
// | EthernetMacHeader Ipv4Header UdpHeader ApplicationData EthernetPadding EthernetFcs |
//     whole packet has Ethernet protocol
//     data part has Ethernet protocol
//
// EthernetMacHeader Ipv4Header UdpHeader ApplicationData EthernetPadding | EthernetFcs
//     whole packet has Ethernet protocol
//     data part has no protocol
//
// EthernetMacHeader | Ipv4Header UdpHeader ApplicationData | EthernetPadding EthernetFcs
//     whole packet has Ethernet protocol
//     data part has IPv4 protocol
//
// EthernetMacHeader Ipv4Header | UdpHeader ApplicationData | EthernetPadding EthernetFcs
//     whole packet has Ethernet protocol
//     data part has UDP protocol
//
// EthernetMacHeader Ipv4Header UdpHeader | ApplicationData | EthernetPadding EthernetFcs
//     whole packet has Ethernet protocol
//     data part has no protocol
//
class PacketProtocolTag extends ProtocolTagBase
{
    b frontOffset = b(0); // extra offset relative to the packet data part front offset
    b backOffset = b(0); // extra offset relative to the packet data part back offset
}

File: src/inet/common/ProtocolTag.msg