Я пытаюсь отправить пакет с устройств 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);
}
}