ボトルネック キュー ( DropTailキューへの 2 つのオブジェクト ポインターを持つQueue/LTEQueue/DLAirQueue ) があるスクリプトを実行しています。このキュー ( 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);] が機能します。トレース ファイルと同様にドロップはありません。
NS 2.35 で LTE モデルを使用している場合、この問題を解決できる人はいますか?
/common/connector.cc
void Connector::drop(Packet* p)
{
if (drop_ != 0)
drop_->recv(p);
else
Packet::free(p);
}