Поддерживает ли ns3 3d-топологию?

Я использую NS3 для моделирования беспроводного центра обработки данных. Я начал это с 2d топологии, используя "GridPositionAllocator".

    MobilityHelper mobility;
    mobility.SetPositionAllocator ("ns3::GridPositionAllocator",
    "MinX", DoubleValue (0.0),
    "MinY", DoubleValue (0.0),
    "DeltaX", DoubleValue (1.0),
    "DeltaY", DoubleValue (1.0),
    "GridWidth", UintegerValue (8),
    "LayoutType", StringValue ("ColumnFirst"));
    mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
    mobility.Install (wifiNodes);

Как я могу изменить его на 3d, чтобы разместить несколько серверов в стойке?

3 ответа

В принципе, ns-3 поддерживает трехмерную мобильность, поскольку векторы мобильности являются трехмерными (X, Y, Z), однако для этого не реализован "PositionAllocator". Вклад приветствуется.

Простое решение состоит в том, чтобы расширить этот GridPositionAllocator, который предполагает Z=0, и добавить 3-е измерение с соответствующим MinZ, DeltaZ.

Да, но добавить 3D-топологию с распределителем позиций сетки невозможно. Вы можете использовать ListPostionAllocator, чтобы вручную указать позиции всех узлов.

Вы можете использовать следующее:

Ptr<ListPostionAllocator> lp =CreateObject<ListPostionAllocator>();
//Adding locations of 2 nodes 
lp->ADD(Vector (10.0,10.0,10.0);
lp->ADD(Vector (20.0,20.0,20.0);  //Add locations of all the nodes 
mobHelper.SetpostionAllocator(lp);
Другие вопросы по тегам