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

OMNeT++中使用TsnDevice作中继出现未知协议错误求助

OMNeT++中TsnDevice作为中继触发未知协议错误求助

我在OMNeT++中搭建了两个UDP数据包转发网络:

  • 第一个采用StandardHost作为中继,运行正常;
  • 第二个使用TsnDevice(tsnDevice2设置forwarding=true)作为中继,触发未知协议错误,报错信息如下:

<!> handlePacket(): Unknown protocol: protocolId = 24, protocolName = ethernetmac, servicePrimitive = INDICATION, pathStartGate = combNetwork.tsnDevice2.ipv4.ip.queueOut, pathEndGate = combNetwork.tsnDevice2.ipv4.lp.in[1] -- in module (inet::MessageDispatcher) combNetwork.tsnDevice2.ipv4.lp (id=258), at t=0.00101837s, event #16

NED文件内容

import inet.node.ethernet.EthernetLink;
import inet.node.ethernet.Eth100M;
import inet.networklayer.configurator.ipv4.Ipv4NetworkConfigurator;
import inet.node.inet.StandardHost;

network UdpExample
{
    @display("bgb=655,369");
    submodules:
        configurator: Ipv4NetworkConfigurator {
            parameters:
                @display("p=100,100;is=s");
        }
        client: StandardHost {
            parameters:
                @display("p=250,100");
        }
        server: StandardHost {
            parameters:
                @display("p=544,100;i=device/pc2");
        }
        relay: StandardHost {
            @display("p=402,100");
            forwarding = default(true);
        }
    connections:
        client.ethg++ <--> EthernetLink {  datarate = 100Mbps; } <--> relay.ethg++;
        relay.ethg++ <--> EthernetLink {  datarate = 100Mbps; } <--> server.ethg++;
}

import inet.common.scenario.ScenarioManager;
import inet.node.tsn.TsnDevice;
import inet.networks.base.TsnNetworkBase;
import inet.node.ethernet.Eth100M;

network UdpExample1 extends TsnNetworkBase
{
    parameters:
    @display("bgb=2230.5361,1700.952");
    
    
    submodules:
        tsnDevice1: TsnDevice {
            @display("p=991.728,620.256");
        }
        tsnDevice2: TsnDevice {
            @display("p=1359.792,620.256");
            forwarding = default(true);
        }
        tsnDevice3: TsnDevice {
            @display("p=1751.712,620.256");
        }
        scenarioManager: ScenarioManager {
            @display("p=98.736,839.25604");
        }

    connections:

        tsnDevice1.ethg++ <--> Eth100M <--> tsnDevice2.ethg++;
        tsnDevice2.ethg++ <--> Eth100M <--> tsnDevice3.ethg++;
}

.ini配置文件内容

[Config exp1]
sim-time-limit = 3s

network = UdpExample
*.*.eth[*].bitrate = 100Mbps
*.client.numApps = 1
*.client.app[0].typename = "UdpSourceApp"
*.client.app[0].display-name = "video-Device1"
*.client.app[0].io.destAddress = "server"
*.client.app[0].io.destPort = 1000
*.client.app[0].source.packetLength = 1000B 
*.client.app[0].source.productionInterval = 1ms

# server applications
*.server.numApps = 1
*.server.app[0].typename = "UdpSinkApp"
*.server.app[0].io.localPort = 1000


[Config exp2]

network = UdpExample1
sim-time-limit = 2s

*.tsnDevice2.hasIncomingStreams = true
*.tsnDevice2.hasOutgoingStreams = true

#Ethernet links are 100Mbps
*.*.eth[*].bitrate = 100Mbps

#source
*.tsnDevice1.numApps = 1
*.tsnDevice1.app[0].typename = "UdpSourceApp"
*.tsnDevice1.app[0].source.packetNameFormat = "%M->tsnDevice1:-%c"
*.tsnDevice1.app[0].source.packetLength = 175B
*.tsnDevice1.app[0].source.productionInterval = 1ms 
*.tsnDevice1.app[0].io.destAddress = "tsnDevice3"
*.tsnDevice1.app[0].io.destPort = 1004
*.tsnDevice1.app[0].source.initialProductionOffset = 1ms


#client
*.tsnDevice3.numApps = 1
*.tsnDevice3.app[0].typename = "UdpSinkApp"
*.tsnDevice3.app[0].display-name = "tsnDevice1"
*.tsnDevice3.app[0].io.localPort = 1004

我是OMNeT++新手,希望有人指导我解决该错误,或告知.ini文件需做的修改。

内容的提问来源于stack exchange,提问作者ROHIT S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:35:56