You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Omnet++添加EIGRP路由器报错:Gate未连接至同级或父模块

添加EIGRP路由器后出现Gate未连接错误

错误信息

Gate 'EigrpTestNetwork.R5.ethg$i[1]' is not connected to sibling or parent module -- in module (omnetpp::cModule) EigrpTestNetwork (id=1), during network setup

错误原因

这个错误的核心是:你给R5声明了3个以太网门(ethg[3]),但其中ethg[1]没有和任何其他模块的门建立连接。OMNeT++要求所有在模块中声明的门必须完成连接,否则网络初始化时会触发该报错。

同样的问题也存在于R6:你声明了ethg[3],但只有ethg[0]完成了连接,剩下的两个门处于未连接状态。

修复方案

方案1:减少门的数量(推荐,若暂时不需要多余门)

如果R5、R6目前只需要1个连接(分别连R4、R2),直接修改它们的门数量为实际需要的数量:

R5: EigrpRouter {
    @display("p=411,302");
    gates:
        ethg[1]; // 仅保留1个门,匹配当前的连接需求
}
R6: EigrpRouter {
    @display("p=178,302");
    gates:
        ethg[1]; // 仅保留1个门,匹配当前的连接需求
}

方案2:补全未连接的门(若需要保留3个门)

如果确实需要给R5、R6预留3个门,需要为未连接的门添加对应连接,比如新增LAN主机:

  1. 在submodules块中添加新的LAN主机:
LAN5: StandardHost {
    @display("p=489,302;i=misc/cloud");
}
LAN6: StandardHost {
    @display("p=76,302;i=misc/cloud");
}
  1. 在connections块中添加门连接:
// 连接R5的剩余门到LAN5
R5.ethg[1] <--> Eth100M <--> LAN5.ethg++;

// 连接R6的剩余门到LAN6
R6.ethg[1] <--> Eth100M <--> LAN6.ethg++;
  1. 同时更新configurator的IP配置,新增LAN对应的网段:
config = xml("<config>"+
            // 原有配置...
            "<interface among='R5 LAN5' address='10.0.5.x' netmask='255.255.255.0' />"+
            "<interface among='R6 LAN6' address='10.0.6.x' netmask='255.255.255.0' />"+
            "</config>");

内容的提问来源于stack exchange,提问作者Connor Dwyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 17:17:48