我使用下面的代码创建了一个动态模块。该模块已成功创建,但是ipv4configurator模块未将IP地址分配给创建的动态模块。因此,当我运行模拟时,会出现以下错误:
“ ASSERT:条件'!myIPAddress.isUnspecified()'不保存在inet / networklayer / arp / ipv4 / Arp.cc:173中的'sendArpRequest'函数中-在模块(inet :: Arp)中Drones.clone .ipv4.arp(id = 323),在t = 1.057126851753s,事件#272“
moduleType = cModuleType::get("inet.node.inet.WirelessHost");
module = moduleType->create("clone", this);
module->finalizeParameters();
module->buildInside();
module->scheduleStart(simTime() + updateInterval);
cPreModuleInitNotification pre;
pre.module = module;
emit(POST_MODEL_CHANGE, &pre);
module->callInitialize();
cPostModuleInitNotification post;
post.module = module;
emit(POST_MODEL_CHANGE, &post);
答案 0 :(得分:0)
是的,这是Ipv4Configurator
的限制。它需要事先了解网络拓扑,以便能够分配IP地址,优化子网掩码和设置路由表条目。
全局IpV4NetworkConfigurator
首先建立一个数据库,然后每个节点在设置过程中查看该数据库,并提取与其自身有关的信息,并设置接口和路由表等。