56 #if defined(INET_WITH_ETHERNET) || defined(INET_WITH_IPv4) || defined(INET_WITH_IPv6) || defined(INET_WITH_UDP) || defined(INET_WITH_TCP_COMMON)
57 auto packet = check_and_cast<Packet *>(msg);
59 int ethernetMacProtocol = -1;
60 b ethernetMacHeaderLength =
b(0);
61 b ipHeaderLength =
b(-1);
64 #ifdef INET_WITH_ETHERNET
66 const auto& ethernetMacHeader = packet->peekAtFront<EthernetMacHeader>();
67 ethernetMacProtocol = ethernetMacHeader->getTypeOrLength();
68 ethernetMacHeaderLength = ethernetMacHeader->getChunkLength();
74 const auto& ipv4Header = packet->peekDataAt<Ipv4Header>(ethernetMacHeaderLength);
77 ipProtocol = ipv4Header->getProtocolId();
78 ipHeaderLength = ipv4Header->getChunkLength();
84 const auto& ipv6Header = packet->peekDataAt<Ipv6Header>(ethernetMacHeaderLength);
87 ipProtocol = ipv6Header->getProtocolId();
88 ipHeaderLength = ipv6Header->getChunkLength();
97 const auto& udpHeader = packet->peekDataAt<UdpHeader>(ethernetMacHeaderLength + ipHeaderLength);
98 unsigned int srcPort = udpHeader->getSourcePort();
99 unsigned int destPort = udpHeader->getDestinationPort();
100 if (destPort == 21 || srcPort == 21)
102 if (destPort == 80 || srcPort == 80)
104 if (destPort == 4000 || srcPort == 4000)
106 if (destPort == 5000 || srcPort == 5000)
108 if (destPort == 6000 || srcPort == 6000)
113 #ifdef INET_WITH_TCP_COMMON
115 const auto& tcpHeader = packet->peekDataAt<tcp::TcpHeader>(ethernetMacHeaderLength + ipHeaderLength);
116 unsigned int srcPort = tcpHeader->getSourcePort();
117 unsigned int destPort = tcpHeader->getDestinationPort();
118 if (destPort == 21 || srcPort == 21)
120 if (destPort == 80 || srcPort == 80)
122 if (destPort == 4000 || srcPort == 4000)
124 if (destPort == 5000 || srcPort == 5000)
126 if (destPort == 6000 || srcPort == 6000)