109 hash_val = pcpp::hash5Tuple(packet);
112 packet_len =
static_cast<uint32_t
>(packet->getRawPacket()->getRawDataLen());
115 timespec timestamp = packet->getRawPacket()->getPacketTimeStamp();
116 tv_sec = timestamp.tv_sec;
119 pcpp::IPv4Layer* ipv4layer = packet->getLayerOfType<pcpp::IPv4Layer>();
122 src_ip = ipv4layer->getSrcIPAddress().toString();
123 dst_ip = ipv4layer->getDstIPAddress().toString();
126 pcpp::iphdr* ipv4hdr = ipv4layer->getIPv4Header();
127 tos = ipv4hdr->typeOfService;
129 offset = ipv4hdr->fragmentOffset;
130 len_ip = ipv4hdr->totalLength;
131 ttl = ipv4hdr->timeToLive;
135 if(ipv4hdr->ipVersion==4)
139 else if(ipv4hdr->ipVersion==6)
145 if (packet->isPacketOfType(pcpp::TCP))
148 pcpp::TcpLayer *tcpLayer = packet->getLayerOfType<pcpp::TcpLayer>();
149 pcpp::tcphdr *tcpHeader = tcpLayer->getTcpHeader();
152 src_port = packet->getLayerOfType<pcpp::TcpLayer>()->getSrcPort();
153 dst_port = packet->getLayerOfType<pcpp::TcpLayer>()->getDstPort();
157 flag = (tcpHeader->finFlag << 7) | (tcpHeader->synFlag << 6) | (tcpHeader->rstFlag << 5) |
158 (tcpHeader->pshFlag << 4) | (tcpHeader->ackFlag << 3) | (tcpHeader->urgFlag << 2) |
159 (tcpHeader->eceFlag << 1) | (tcpHeader->cwrFlag << 0);
162 seq_num = tcpHeader->sequenceNumber;
163 ack_num = tcpHeader->ackNumber;
166 len_load = tcpLayer->getLayerPayloadSize();
167 window = tcpHeader->windowSize;
169 else if (packet->isPacketOfType(pcpp::UDP))
174 src_port = packet->getLayerOfType<pcpp::UdpLayer>()->getSrcPort();
175 dst_port = packet->getLayerOfType<pcpp::UdpLayer>()->getDstPort();
177 pcpp::UdpLayer *udpLayer = packet->getLayerOfType<pcpp::UdpLayer>();
178 pcpp::udphdr *udpHeader = udpLayer->getUdpHeader();
182 len_load = udpLayer->getLayerPayloadSize();
184 else if (packet->isPacketOfType(pcpp::ICMP))
189 pcpp::IcmpLayer *icmpLayer = packet->getLayerOfType<pcpp::IcmpLayer>();
190 pcpp::icmphdr *icmpHeader = icmpLayer->getIcmpHeader();