Я запускаю скрипт с узкой очередью (Queue/LTEQueue/DLAirQueue, которая имеет два указателя объекта на очередь DropTail). Отброшенный пакет отображается при использовании этого файла очереди (проверка с помощью printf, let, drop packet=8000), но не включен в файл трассировки (.tr)(отсутствует 'd') .
1. $ns simplex-link $eNB $UE($i) 10Mb 2ms DropTail
2. $ns simplex-link $eNB $UE($i) 10Mb 2ms LTEQueue/DLAirQueue
Если используется 1, то работает [drop_->recv(p);]; пакеты отбрасываются как обычно, что также отображается в файле трассировки. Но если используется 2, то [Packet::free(p);] работает; Никаких падений, как и в файле трассировки.
Может ли кто-нибудь помочь в этом вопросе тем, кто использует модель LTE в NS 2.35?
/common/connector.cc
void Connector::drop(Packet* p)
{
if (drop_ != 0)
drop_->recv(p);
else
Packet::free(p);
}