//Debug void Packet::Print () { std::cout << " ********** \n **Packet:" "\n ** ID " << GetID () << " timeStamp " << GetTimeStamp () << "\n ** size: " << GetSize() << "\n ** sourcePort " << GetSourcePort() << " destinationPort " << GetDestinationPort() << "\n ** srcIP " << GetSourceID() << " dstIP " << GetDestinationID() << "\n ** srcMAC " << GetSourceMAC() << " dstMAC " << GetDestinationMAC() << std::endl; if (m_RLCHeader->IsAFragment()) std::cout << " ** IsAFragment TRUE "; else std::cout << " ** IsAFragment FALSE "; if (m_RLCHeader->IsTheLatestFragment()) std::cout << " IsTheLatestFragment TRUE "; else std::cout << " IsTheLatestFragment FALSE "; std::cout << "\n **********" << std::endl; }
void MainWindow::onReceivedPacket(EthernetPacket *packetData) { QString packetLengthColumn; mUI->infoTable->insertRow(mReceivedPackets); mUI->infoTable->setItem(mReceivedPackets, 0, new QTableWidgetItem((packetData->GetType().c_str()))); mUI->infoTable->setItem(mReceivedPackets, 1, new QTableWidgetItem((packetData->GetSourceMAC()).c_str())); mUI->infoTable->setItem(mReceivedPackets, 2, new QTableWidgetItem((packetData->GetDestinationMAC()).c_str())); auto packetType = packetData->GetType(); if (packetType == "IP" || packetType == "TCP" || packetType == "UDP") { auto ipPacket = reinterpret_cast<IPPacket*>(packetData); mUI->infoTable->setItem(mReceivedPackets, 3, new QTableWidgetItem((ipPacket->GetSourceIP()).c_str())); mUI->infoTable->setItem(mReceivedPackets, 4, new QTableWidgetItem((ipPacket->GetDestinationIP()).c_str())); if (packetType == "TCP") { auto tcpPacket = reinterpret_cast<TcpPacket*>(packetData); mUI->infoTable->setHorizontalHeaderItem(5, new QTableWidgetItem("Src. Port")); mUI->infoTable->setHorizontalHeaderItem(6, new QTableWidgetItem("Dst. Port")); mUI->infoTable->item(mReceivedPackets, 0)->setBackground(Qt::yellow); mUI->infoTable->setItem(mReceivedPackets, 5, new QTableWidgetItem(std::to_string((tcpPacket->GetSourcePort())).c_str())); mUI->infoTable->setItem(mReceivedPackets, 6, new QTableWidgetItem(std::to_string((tcpPacket->GetDestinationPort())).c_str())); } else if (packetType == "UDP") { auto udpPacket = reinterpret_cast<UDPPacket*>(packetData); mUI->infoTable->setHorizontalHeaderItem(5, new QTableWidgetItem("Src. Port")); mUI->infoTable->setHorizontalHeaderItem(6, new QTableWidgetItem("Dst. Port")); mUI->infoTable->item(mReceivedPackets, 0)->setBackground(Qt::blue); mUI->infoTable->setItem(mReceivedPackets, 5, new QTableWidgetItem(std::to_string((udpPacket->GetSourcePort())).c_str())); mUI->infoTable->setItem(mReceivedPackets, 6, new QTableWidgetItem(std::to_string((udpPacket->GetDestinationPort())).c_str())); } else { mUI->infoTable->item(mReceivedPackets, 0)->setBackground(QColor(0, 100,100)); } } // Network Protocol is other type else { } mReceivedPackets++; mPacketDataBuffer->push_back(packetData); }
Packet* Packet::Copy (void) { Packet *p = new Packet (); p->m_id = m_id; p->m_timeStamp = m_timeStamp; if (m_UDPHeader != NULL) { UDPHeader *udp = new UDPHeader (GetSourcePort(), GetDestinationPort()); p->AddUDPHeader(udp); } if (m_IPHeader != NULL) { IPHeader *ip = new IPHeader (GetSourceID(), GetDestinationID()); p->AddIPHeader(ip); } if (m_PDCPHeader != NULL) { PDCPHeader *pdcp = new PDCPHeader (); p->AddPDCPHeader (pdcp); } if (m_RLCHeader != NULL) { RLCHeader *rlc = new RLCHeader (); if (GetRLCHeader ()->IsAFragment ()) rlc->SetAFragment (true); if (!GetRLCHeader ()->IsTheLatestFragment ()) rlc->SetTheLatestFragment (false); rlc->SetFragmentNumber (GetRLCHeader ()->GetFragmentNumber()); rlc->SetRlcEntityIndex (GetRLCHeader ()->GetRlcEntityIndex ()); rlc->SetRlcPduSequenceNumber (GetRLCHeader ()->GetRlcPduSequenceNumber()); rlc->SetStartByte (GetRLCHeader ()->GetStartByte ()); rlc->SetEndByte (GetRLCHeader ()->GetEndByte ()); p->AddRLCHeader (rlc); } if (m_MACHeader != NULL) { MACHeader *mac = new MACHeader (GetSourceMAC (), GetDestinationMAC ()); p->AddMACHeader(mac); } if (m_tags != NULL) { PacketTAGs *tags = new PacketTAGs (); tags->SetApplicationType(GetPacketTags()->GetApplicationType()); tags->SetFrameNumber (GetPacketTags ()->GetFrameNuber ()); tags->SetStartByte (GetPacketTags ()->GetStartByte ()); tags->SetEndByte (GetPacketTags ()->GetEndByte ()); tags->SetApplicationSize (GetPacketTags ()->GetApplicationSize ()); p->SetPacketTags(tags); } p->m_size = m_size; return p; }