Ошибка отбрасывания пакета во время фильтрации MAC - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь отправить пакет с устройств FF: FF на устройства 00:01 и 00:02, но он отбрасывается из-за фильтрации MAC-адресов.Это может быть связано с тем, что пакет находится в очереди.Я получаю следующую ошибку

Packet of size 100 was dropped during MAC filtering

Кто-нибудь знает, как это исправить?Это мой код.

  static void PacketSendInfo (Ptr<LrWpanNetDevice> dev, Ptr<const Packet> 
  p, 
  uint8_t retries, uint8_t csmaca_backoffs)
{
BasicPacketData bpd (p);
NS_LOG_UNCOND ("----------MSDU SEND INFO----------\n"
<< "Packet with sequence number "<< int(bpd.seq_nr)        
    <<"\n"
<< "was sent or given up on device with address " << dev->GetMac()- 
    >GetShortAddress() << "\n"
<< "Number of sending retries " << int(retries)<<"\n"
<< "Number of CSMA/CA backoffs " << int(csmaca_backoffs) << "\n"
<< "----------MSDU SEND INFO------------\n"

   }

   static void PacketDropped (Ptr<LrWpanNetDevice> dev, Ptr<const Packet> 
   p)
   {

BasicPacketData bpd (p);
NS_LOG_UNCOND ("----------Packet dropped----------\n"
        << "Packet of size " << bpd.size << " was dropped 
    during MAC filtering\n"
<< "on device with address "<<dev->GetMac()->GetShortAddress()<<"\n"
<< "coming from address " << bpd.src << " to address " << bpd.dst << 
    "\n" 
        << "sequence number is " << (int) bpd.seq_nr << "\n"
        << "PAN ID is " << bpd.pan_id << "\n"
        << "----------Packet dropped------------\n\n"
 );
     }



Ptr< Packet> createpacketschallenge(Ptr<LrWpanNetDevice> dev, 
Ptr<LrWpanNetDevice> dev3)
{
Ptr< Packet> packet;

if (dev->GetMac()->GetShortAddress() == ("FF:FF") && dev3->GetMac()- 
>GetShortAddress() == ("00:01") ){


std::string packettype = ("01");
std::string packetInformation = ("4565613685534302");
packettype += packetInformation;
std::stringstream msgx;
msgx << packettype;
uint16_t packetSize = msgx.str().length()+1;
packet = Create<Packet>((uint8_t*) msgx.str().c_str(), packetSize);

}
 }
...