В настоящее время я использую сетевой симулятор NS-3 для реализации сети Wi-Fi 802.11b, которая использует OpenFlow.
Я пытаюсь связать свои узлы и коммутаторы. Как показано в файле openflow-switch.cc, это делается следующим образом с помощью csma:
// Create the csma links, from each terminal to the switch
NetDeviceContainer terminalDevices;
NetDeviceContainer switchDevices;
for (int i = 0; i < 4; i++)
{
NetDeviceContainer link = csma.Install (NodeContainer (terminals.Get(i), csmaSwitch));
terminalDevices.Add (link.Get (0));
switchDevices.Add (link.Get (1));
}
Я использую WifiHelper Wi-Fi для моего сценария, но не могу так просто использовать:
NetDeviceContainer link = wifi.Install(NodeContainer (staDevices.Get (i), Switch));
Потому что метод wifi.Install требует параметров:
wifi.Install (phy, mac, wifiStaNodes);
Я попытался передать в узлах, например, так:
NetDeviceContainer link = wifi.Install(phy, mac, (NodeContainer (wifiStaNodes.Get (i), Switch)));
terminals.Add (link.Get(2));
switchDevices.Add (link.Get(3));
Но при запуске сценария я получил ошибку «прекращено с сигналом SIGSEGV», и при отладке не было предоставлено никакой дополнительной информации о том, почему ошибка возвращалась.
Есть какие-нибудь предложения относительно того, как преодолеть эту проблему, поскольку я пробовал различные способы создания ссылки, но ни один не работал
Ценим любые предложения,
Шон
Задача ещё не решена.
Других решений пока нет …