Пример #1
0
//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;
}
Пример #2
0
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);
}
Пример #3
0
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;
}