本文介绍了在 OMNeT++ 中将 RSU 连接到 OpenFlow 交换机时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想模拟一个基于 VANET 的 SDN,我使用 VEINS 成功地将 SUMO 与 OMNET 集成.然后我导入了INET,OpenFlow,当我向RSU添加门并与OpenFlow交换机连接时出现错误出现以下错误?我该如何解决这个问题,我应该修改什么才能使我的 VEINS 场景与 SDN 兼容?

Gate 'RSUExampleScenario.rsu[0].In' 未连接到子模块(或在内部连接到同一模块的另一个门)——在模块 (omnetpp::cModule) RSUExampleScenario.rsu[0] (id=7) 中,在网络设置期间由于 debug-on-errors=true 配置选项,捕获上述异常.你的调试器准备好了吗?模拟以退出代码终止:-2147483645工作目录:D:/omnetpp-5.1/samples/veins/examples/veins命令行:../../../../bin/opp_run.exe -m -n .;../../src/veins;../../../openflow;../../../inet/src;../../../inet/examples;../../../inet/tutorials;../../../inet/showcases --图像路径=../../images;../../../openflow/images;../../../inet/images -l ../../src/veins -l../../../inet/src/INET omnetpp.ini环境变量:PATH=;D:/omnetpp-5.1/samples/veins/src;D:/omnetpp-5.1/samples/inet/src;D:\omnetpp-5.1\bin;D:\omnetpp-5.1\tools\win64\usr\bin;D:\omnetpp-5.1\tools\win64\mingw64\bin;D:/omnetpp-5.1/ide/jre/bin/server;D:/omnetpp-5.1/ide/jre/bin;D:/omnetpp-5.1/ide/jre/lib/amd64;.;D:\omnetpp-5.1\bin;D:\omnetpp-5.1\tools\win64\mingw64\bin;D:\omnetpp-5.1\tools\win64\usr\本地\bin;D:\omnetpp-5.1\tools\win64\usr\bin;D:\omnetpp-5.1\tools\win64\usr\bin;C:\Windows\System32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\omnetpp-5.1\tools\win64\usr\bin\site_perl;D:\omnetpp-5.1\tools\win64\usr\bin\vendor_perl;D:\omnetpp-5.1\tools\win64\usr\bin\core_perl;D:\omnetpp-5.1;OMNETPP_ROOT=D:/omnetpp-5.1/OMNETPP_IMAGE_PATH=D:\omnetpp-5.1\images

这里是 RSU.ned 的代码,我只是添加了输入和输出门.

包 org.car2x.veins.nodes;导入 org.car2x.veins.base.modules.*;导入 org.car2x.veins.modules.nic.Nic80211p;导入 inet.node.inet.AdhocHost;导入 inet.node.xmipv6.MobileHost6;导入 openflow.Flow_Table;导入 openflow.nodes.Open_Flow_Controller;导入 openflow.nodes.Open_Flow_Switch;模块 RSU{参数:字符串应用类型;//应用层类型string nicType = default("Nic80211p");//网卡类型大门:输入静脉电台;//sendDirect 的门输入输出输出;子模块:应用程序:像 org.car2x.veins.base.modules.IBaseApplLayer {参数:@display("p=60,50");}nic:<nicType>像 org.car2x.veins.modules.nic.INic80211p {参数:@display("p=60,166");}移动性:BaseMobility {参数:@display("p=130,172;i=block/cogwheel");}连接:nic.upperLayerOut -->appl.lowerLayerIn;nic.upperLayerIn <-- appl.lowerLayerOut;nic.upperControlOut -->appl.lowerControlIn;nic.upperControlIn <-- appl.lowerControlOut;静脉电台输入 -->nic.radioIn;}

这里是 OpenFlow_switch.ned,我也只添加了输入和输出门.

包 openflow.nodes;导入 inet.applications.pingapp.PingApp;导入 inet.applications.contract.ITCPApp;//导入inet.base.NotificationBoard;导入 inet.linklayer.ethernet.EtherMAC;//导入inet.linklayer.ext.ExtInterface;导入 inet.linklayer.ppp.PPP 接口;导入 inet.networklayer.common.InterfaceTable;//导入inet.networklayer.ipv4.RoutingTable;//导入inet.transport.ITCP;//导入inet.transport.udp.UDP;//导入inet.util.TCPDump;//导入inet.nodes.inet.NetworkLayer;导入 inet.transportlayer.contract.ITCP;导入 inet.linklayer.ppp.PPP 接口;导入 inet.linklayer.ethernet.EthernetInterface;导入 inet.linklayer.loopback.LoopbackInterface;导入 inet.networklayer.ipv4.*;导入 openflow.*;//基于OF Switch Specification 1.2的OpenFlow交换机.//新实现的模块:FlowTable、Open_Flow_Processing、Buffer、OFA_Switch(应用程序)//OpenFlow交换机基本上分为两部分.左边的路径,//由一个EtherMAC和一个OpenFlowProcessing模块组成,代表数据平面.//所有生产跟踪,来自连接的不同节点//到开关,在这里处理.处理模块在//流表并执行指令,如果找到匹配的条目.//右侧部分包含模块 EthernetInterface、NetworkLayer、TCP 和//OFASwitch 负责通过遥控器与遥控器通讯//OpenFlow协议,称为控制平面.模块 Open_Flow_Switch{参数://@node();@网络节点;//Inet 3.6 将@node 改为@networkNode@OF_Switch();@标签(节点,以太网节点);@display("i=device/switch;i2=OpenFlow-Logo-small");int numTcpApps = 默认(0);int numUdpApps = 默认(0);int numSctpApps = 默认(0);string tcpAppType = default("n/a");string udpAppType = default("n/a");string sctpAppType = default("n/a");string tcpType = default("TCP");//tcp 实现(例如 TCP、TCP_old、TCP_NSC)bool forwarding = default(false);int namid = 默认(-1);string routingFile = default("");int numExtInterfaces = 默认(0);bool sendCompletePacket = default(false);double serviceTime @unit("s") = default(0s);//DANH 补充说:bool hasTcp = default(numTcpApps > 0);bool hasUdp = default(numUdpApps > 0);bool hasSctp = default(numSctpApps > 0);*.interfaceTableModule = default(absPath(".interfaceTable"));*.routingTableModule = default(absPath(".routingTable"));大门:inout gate_controller[] @labels(Controller-conn);inout ethg[] @labels(EtherFrame-conn);输入输出输出;子模块://通知板:通知板{// 参数://@display("p=57,54");//}接口表:接口表{参数:@display("p=57,134");}路由表:IPv4RoutingTable {参数:转发=转发;routerId = "";路由文件 = 路由文件;@display("p=57,214");}tcp:<tcpType>像 ITCP {参数:@display("p=336,159");}网络层:IPv4网络层{参数:代理ARP =假;@display("p=336,262;q=queue");大门:ifIn[sizeof(gate_controller)];ifOut[sizeof(gate_controller)];}eth[sizeof(gate_controller)]:以太网接口{参数:@display("p=336,390,row,90;q=txQueue");}流表:流表{@display("p=192,134");}etherMAC[sizeof(ethg)]: EtherMAC {参数:@display("p=137,390");doRegisterAtIft = false;//这是为了防止OF-Switch注册到接口表}open_Flow_Processing: Open_Flow_Processing {@display("p=137,282");服务时间 = 服务时间;大门:ifIn[sizeof(ethg)];ifOut[sizeof(ethg)];}缓冲区:缓冲区{@display("p=192,53");}ofa_switch: OFA_switch {@display("p=336,71");sendCompletePacket = sendCompletePacket;}连接允许未连接:tcp.ipOut -->networkLayer.transportIn++ if hasTcp;tcp.ipIn 网络层.ifIn[i];eth[i].upperLayerIn <-- networkLayer.ifOut[i];}对于 i=0..sizeof(ethg)-1 {etherMAC[i].phys<-->ethg[i];open_Flow_Processing.ifOut[i] -->etherMAC[i].upperLayerIn;etherMAC[i].upperLayerOut -->open_Flow_Processing.ifIn[i];}tcp.appOut++ -->ofa_switch.tcpIn;ofa_switch.tcpOut -->tcp.appIn++;}

这里是 RSUExampleScenario.ned

导入 inet.node.ethernet.EtherHost;导入 inet.node.inet.AdhocHost;导入 inet.node.xmipv6.MobileHost6;导入 openflow.nodes.Domain_wController;导入 openflow.nodes.OpenFlow_Domain_fixed;导入 openflow.nodes.Open_Flow_Controller;导入 openflow.nodes.Open_Flow_Switch;导入 org.car2x.veins.nodes.RSU;导入 org.car2x.veins.nodes.Scenario;网络 RSUExampleScenario 扩展场景{@display("bgb=634,315;bgl=2");子模块:rsu[1]: rsu {@display("p=161,117;i=veins/sign/yellowdiamond;is=vs");}open_Flow_Switch: Open_Flow_Switch {@display("p=257,235;b=66,64");}open_Flow_Controller: Open_Flow_Controller {@display("p=427,221;b=85,66");}连接:open_Flow_Switch.ethg++ <-->open_Flow_Controller.ethg++;open_Flow_Controller.ethg++ <-->open_Flow_Switch.ethg++;rsu[0].Out -->open_Flow_Switch.In;open_Flow_Switch.Out -->rsu[0].in;}

最后是 omnetpp.ini

[通用]cmdenv-express-mode = truecmdenv-autoflush = truecmdenv-状态-频率 = 1s**.cmdenv-log-level = 信息内路径 = .图像路径 = ../../images网络 = RSUExampleScenario#########################################################模拟参数#########################################################错误时调试 = 真打印未处理 = 真模拟时间限制 = 3000 秒**.scalar-recording = true**.vector-recording = true**.debug = 假**.coreDebug = 假*.playgroundSizeX = 5500m*.playgroundSizeY = 5500m*.playgroundSizeZ = 5500m#########################################################注解参数#########################################################*.annotations.draw = 真#########################################################障碍物参数#########################################################*.obstacles.debug = false*.obstacles.obstacles = xmldoc("config.xml", "//AnalogueModel[@type='SimpleObstacleShadowing']/obstacles")######################################################### TraCIScenarioManager 参数 #########################################################*.manager.updateInterval = 1s*.manager.host = "本地主机"*.manager.port = 9999*.manager.autoShutdown = true*.manager.launchConfig = xmldoc("DammamMap.launchd.xml")######################################################### RSU 设置#############################################################*.rsu[0].mobility.x = 2000*.rsu[0].mobility.y = 2000*.rsu[0].mobility.z = 3*.rsu[*].applType = "TraCIDemoRSU11p"*.rsu[*].appl.headerLength = 80 位*.rsu[*].appl.sendBeacons = false*.rsu[*].appl.dataOnSch = false*.rsu[*].appl.beaconInterval = 1s*.rsu[*].appl.beaconUserPriority = 7*.rsu[*].appl.dataUserPriority = 5######################################################### 11p 具体参数#### 网卡设置 #########################################################*.connectionManager.sendDirect = true*.connectionManager.maxInterfDist = 2600m*.connectionManager.drawMaxIntfDist = false*.**.nic.mac1609_4.useServiceChannel = false*.**.nic.mac1609_4.txPower = 20mW*.**.nic.mac1609_4.bitrate = 6Mbps*.**.nic.phy80211p.灵敏度 = -89dBm*.**.nic.phy80211p.useThermalNoise = true*.**.nic.phy80211p.thermalNoise = -110dBm*.**.nic.phy80211p.decider = xmldoc("config.xml")*.**.nic.phy80211p.analogModels = xmldoc("config.xml")*.**.nic.phy80211p.usePropagationDelay = true*.**.nic.phy80211p.antenna = xmldoc("antenna.xml", "/root/Antenna[@id='monopole']")######################################################### WaveAppLayer #########################################################*.node[*].applType = "TraCIDemo11p"*.node[*].appl.headerLength = 80 位*.node[*].appl.sendBeacons = false*.node[*].appl.dataOnSch = false*.node[*].appl.beaconInterval = 1s#########################################################流动性#########################################################*.node[*].veinsmobilityType.debug = true*.node[*].veinsmobility.x = 0*.node[*].veinsmobility.y = 0*.node[*].veinsmobility.z = 1.895*.node[*0].veinsmobility.accidentCount = 1*.node[*0].veinsmobility.accidentStart = 75s*.node[*0].veinsmobility.accidentDuration = 50s【配置默认】[使用信标配置]*.rsu[*].appl.sendBeacons = true*.node[*].appl.sendBeacons = true[使用通道切换配置]*.**.nic.mac1609_4.useServiceChannel = true*.node[*].appl.dataOnSch = true*.rsu[*].appl.dataOnSch = true

任何帮助将不胜感激

解决方案

我通过向 RSU.ned 和 RSUExampleScenario.ned 中的连接添加 allowunconnected 解决了这个错误

我希望这能帮助其他面临同样问题的人.

I want to simulate a VANET based SDN, I successfully integrated SUMO with OMNET using VEINS. Then I imported INET, OpenFlow, an error appear when I add gates to the RSU and connected with OpenFlow switch the below error is appear? How can I fix that and what should I modify to make my VEINS scenario work with SDN?

<!> Gate 'RSUExampleScenario.rsu[0].In' is not connected to a submodule (or internally to another gate of the same module) -- in module (omnetpp::cModule) RSUExampleScenario.rsu[0] (id=7), during network setup
TRAPPING on the exception above, due to a debug-on-errors=true configuration option. Is your debugger ready?
Simulation terminated with exit code: -2147483645
Working directory: D:/omnetpp-5.1/samples/veins/examples/veins
Command line: ../../../../bin/opp_run.exe -m -n .;../../src/veins;../../../openflow;../../../inet/src;../../../inet/examples;../../../inet/tutorials;../../../inet/showcases --image-path=../../images;../../../openflow/images;../../../inet/images -l ../../src/veins -l ../../../inet/src/INET omnetpp.ini
Environment variables:
PATH=;D:/omnetpp-5.1/samples/veins/src;D:/omnetpp-5.1/samples/inet/src;D:\omnetpp-5.1\bin;D:\omnetpp-5.1\tools\win64\usr\bin;D:\omnetpp-5.1\tools\win64\mingw64\bin;D:/omnetpp-5.1/ide/jre/bin/server;D:/omnetpp-5.1/ide/jre/bin;D:/omnetpp-5.1/ide/jre/lib/amd64;.;D:\omnetpp-5.1\bin;D:\omnetpp-5.1\tools\win64\mingw64\bin;D:\omnetpp-5.1\tools\win64\usr\local\bin;D:\omnetpp-5.1\tools\win64\usr\bin;D:\omnetpp-5.1\tools\win64\usr\bin;C:\Windows\System32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\omnetpp-5.1\tools\win64\usr\bin\site_perl;D:\omnetpp-5.1\tools\win64\usr\bin\vendor_perl;D:\omnetpp-5.1\tools\win64\usr\bin\core_perl;D:\omnetpp-5.1;
OMNETPP_ROOT=D:/omnetpp-5.1/
OMNETPP_IMAGE_PATH=D:\omnetpp-5.1\images

here the code for RSU.ned and I just add the In and Out gates.


package org.car2x.veins.nodes;

import org.car2x.veins.base.modules.*;
import org.car2x.veins.modules.nic.Nic80211p;

import inet.node.inet.AdhocHost;
import inet.node.xmipv6.MobileHost6;
import openflow.Flow_Table;
import openflow.nodes.Open_Flow_Controller;
import openflow.nodes.Open_Flow_Switch;

module RSU
{
    parameters:
        string applType; //type of the application layer
        string nicType = default("Nic80211p"); // type of network interface card
    gates:
        input veinsradioIn; // gate for sendDirect
        input In;
        output Out;



    submodules:
        appl: <applType> like org.car2x.veins.base.modules.IBaseApplLayer {
            parameters:
                @display("p=60,50");
        }

        nic: <nicType> like org.car2x.veins.modules.nic.INic80211p {
            parameters:
                @display("p=60,166");
        }

        mobility: BaseMobility {
            parameters:
                @display("p=130,172;i=block/cogwheel");
        }


    connections:
        nic.upperLayerOut --> appl.lowerLayerIn;
        nic.upperLayerIn <-- appl.lowerLayerOut;
        nic.upperControlOut --> appl.lowerControlIn;
        nic.upperControlIn <-- appl.lowerControlOut;

        veinsradioIn --> nic.radioIn;

}   

and here the OpenFlow_switch.ned, Also I just add the In and Out gates.


package openflow.nodes;

import inet.applications.pingapp.PingApp;
import inet.applications.contract.ITCPApp;
//import inet.base.NotificationBoard;
import inet.linklayer.ethernet.EtherMAC;
//import inet.linklayer.ext.ExtInterface;
import inet.linklayer.ppp.PPPInterface;
import inet.networklayer.common.InterfaceTable;
//import inet.networklayer.ipv4.RoutingTable;
//import inet.transport.ITCP;
//import inet.transport.udp.UDP;
//import inet.util.TCPDump;
//import inet.nodes.inet.NetworkLayer;

import inet.transportlayer.contract.ITCP;
import inet.linklayer.ppp.PPPInterface;
import inet.linklayer.ethernet.EthernetInterface;
import inet.linklayer.loopback.LoopbackInterface;
import inet.networklayer.ipv4.*;


import openflow.*;
// OpenFlow switch based on the OF Switch Specification 1.2.
// New implemented modules: FlowTable, Open_Flow_Processing, Buffer, OFA_Switch (Application)
// The OpenFlow switch is basically divided in two parts. The left path, which
//consists of a EtherMAC and a OpenFlowProcessing module, represents the data plane.
//All production trac, coming from different nodes connected
//to the switch, is handled here. The Processing module performs packet lookups in the 
//ow table and executes instructions, if a matching entry is found.
//The right part with the modules EthernetInterface, NetworkLayer, TCP and
//OFASwitch is responsible for the communication with a remote controller via the
//OpenFlow protocol and is called control plane.
module Open_Flow_Switch
{
    parameters:
        //        @node(); 
        @networkNode; //Inet 3.6 changed @node to @networkNode
        @OF_Switch();
        @labels(node,ethernet-node);
        @display("i=device/switch;i2=OpenFlow-Logo-small");
        int numTcpApps = default(0);
        int numUdpApps = default(0);
        int numSctpApps = default(0);
        string tcpAppType = default("n/a");
        string udpAppType = default("n/a");
        string sctpAppType = default("n/a");
        string tcpType = default("TCP");  // tcp implementation (e.g. TCP, TCP_old, TCP_NSC)
        bool forwarding = default(false);
        int namid = default(-1);
        string routingFile = default("");
        int numExtInterfaces = default(0);
        bool sendCompletePacket = default(false);
        double serviceTime @unit("s") = default(0s);

        //DANH added:
        bool hasTcp = default(numTcpApps > 0);
        bool hasUdp = default(numUdpApps > 0);
        bool hasSctp = default(numSctpApps > 0);
        *.interfaceTableModule = default(absPath(".interfaceTable"));
        *.routingTableModule = default(absPath(".routingTable"));
    gates:
        inout gate_controller[] @labels(Controller-conn);
        inout ethg[] @labels(EtherFrame-conn);
        input In;
        output Out;

    submodules:
        //        notificationBoard: NotificationBoard {
        //            parameters:
        //                @display("p=57,54");
        //        }
        interfaceTable: InterfaceTable {
            parameters:
                @display("p=57,134");
        }
        routingTable: IPv4RoutingTable {
            parameters:
                forwarding = forwarding;
                routerId = "";
                routingFile = routingFile;
                @display("p=57,214");
        }
        tcp: <tcpType> like ITCP {
            parameters:
                @display("p=336,159");
        }
        networkLayer: IPv4NetworkLayer {
            parameters:
                proxyARP = false;
                @display("p=336,262;q=queue");
            gates:
                ifIn[sizeof(gate_controller)];
                ifOut[sizeof(gate_controller)];
        }
        eth[sizeof(gate_controller)]: EthernetInterface {
            parameters:
                @display("p=336,390,row,90;q=txQueue");
        }
        flow_Table: Flow_Table {
            @display("p=192,134");
        }
        etherMAC[sizeof(ethg)]: EtherMAC {
            parameters:
                @display("p=137,390");
                doRegisterAtIft = false; // this is to prevent OF-Switch from registering to interface table
        }

        open_Flow_Processing: Open_Flow_Processing {
            @display("p=137,282");
            serviceTime = serviceTime;
            gates:
                ifIn[sizeof(ethg)];
                ifOut[sizeof(ethg)];
        }
        buffer: Buffer {
            @display("p=192,53");
        }
        ofa_switch: OFA_switch {
            @display("p=336,71");
            sendCompletePacket = sendCompletePacket;
        }

    connections allowunconnected:
        tcp.ipOut --> networkLayer.transportIn++ if hasTcp;
        tcp.ipIn <-- networkLayer.transportOut++ if hasTcp;

        for i=0..sizeof(gate_controller)-1 {
            eth[i].phys <--> gate_controller[i];
            eth[i].upperLayerOut --> networkLayer.ifIn[i];
            eth[i].upperLayerIn <-- networkLayer.ifOut[i];
        }

        for i=0..sizeof(ethg)-1 {
            etherMAC[i].phys <--> ethg[i];
            open_Flow_Processing.ifOut[i] --> etherMAC[i].upperLayerIn;
            etherMAC[i].upperLayerOut --> open_Flow_Processing.ifIn[i];

        }
        tcp.appOut++ --> ofa_switch.tcpIn;
        ofa_switch.tcpOut --> tcp.appIn++;
}

here the RSUExampleScenario.ned


import inet.node.ethernet.EtherHost;
import inet.node.inet.AdhocHost;
import inet.node.xmipv6.MobileHost6;
import openflow.nodes.Domain_wController;
import openflow.nodes.OpenFlow_Domain_fixed;
import openflow.nodes.Open_Flow_Controller;
import openflow.nodes.Open_Flow_Switch;
import org.car2x.veins.nodes.RSU;
import org.car2x.veins.nodes.Scenario;



network RSUExampleScenario extends Scenario
{
    @display("bgb=634,315;bgl=2");


    submodules:
        rsu[1]: RSU {
            @display("p=161,117;i=veins/sign/yellowdiamond;is=vs");
        }

        open_Flow_Switch: Open_Flow_Switch {
            @display("p=257,235;b=66,64");
        }
        open_Flow_Controller: Open_Flow_Controller {
            @display("p=427,221;b=85,66");
        }
    connections:


        open_Flow_Switch.ethg++ <--> open_Flow_Controller.ethg++;
        open_Flow_Controller.ethg++ <--> open_Flow_Switch.ethg++;

        rsu[0].Out --> open_Flow_Switch.In;
        open_Flow_Switch.Out --> rsu[0].In;
}

and finally the omnetpp.ini

[General]
cmdenv-express-mode = true
cmdenv-autoflush = true
cmdenv-status-frequency = 1s
**.cmdenv-log-level = info

ned-path = .
image-path = ../../images

network = RSUExampleScenario

##########################################################
#            Simulation parameters                       #
##########################################################
debug-on-errors = true
print-undisposed = true

sim-time-limit = 3000s

**.scalar-recording = true
**.vector-recording = true

**.debug = false
**.coreDebug = false

*.playgroundSizeX = 5500m
*.playgroundSizeY = 5500m
*.playgroundSizeZ = 5500m


##########################################################
# Annotation parameters                                  #
##########################################################
*.annotations.draw = true

##########################################################
# Obstacle parameters                                    #
##########################################################
*.obstacles.debug = false
*.obstacles.obstacles = xmldoc("config.xml", "//AnalogueModel[@type='SimpleObstacleShadowing']/obstacles")

##########################################################
#            TraCIScenarioManager parameters             #
##########################################################
*.manager.updateInterval = 1s
*.manager.host = "localhost"
*.manager.port = 9999
*.manager.autoShutdown = true
*.manager.launchConfig = xmldoc("DammamMap.launchd.xml")

##########################################################
#                       RSU SETTINGS                     #
#                                                        #
#                                                        #
##########################################################
*.rsu[0].mobility.x = 2000
*.rsu[0].mobility.y = 2000
*.rsu[0].mobility.z = 3


*.rsu[*].applType = "TraCIDemoRSU11p"
*.rsu[*].appl.headerLength = 80 bit
*.rsu[*].appl.sendBeacons = false
*.rsu[*].appl.dataOnSch = false
*.rsu[*].appl.beaconInterval = 1s
*.rsu[*].appl.beaconUserPriority = 7
*.rsu[*].appl.dataUserPriority = 5

##########################################################
#            11p specific parameters                     #
#                                                        #
#                    NIC-Settings                        #
##########################################################
*.connectionManager.sendDirect = true
*.connectionManager.maxInterfDist = 2600m
*.connectionManager.drawMaxIntfDist = false

*.**.nic.mac1609_4.useServiceChannel = false

*.**.nic.mac1609_4.txPower = 20mW
*.**.nic.mac1609_4.bitrate = 6Mbps
*.**.nic.phy80211p.sensitivity = -89dBm

*.**.nic.phy80211p.useThermalNoise = true
*.**.nic.phy80211p.thermalNoise = -110dBm

*.**.nic.phy80211p.decider = xmldoc("config.xml")
*.**.nic.phy80211p.analogueModels = xmldoc("config.xml")
*.**.nic.phy80211p.usePropagationDelay = true

*.**.nic.phy80211p.antenna = xmldoc("antenna.xml", "/root/Antenna[@id='monopole']")

##########################################################
#                    WaveAppLayer                        #
##########################################################
*.node[*].applType = "TraCIDemo11p"
*.node[*].appl.headerLength = 80 bit
*.node[*].appl.sendBeacons = false
*.node[*].appl.dataOnSch = false
*.node[*].appl.beaconInterval = 1s

##########################################################
#                      Mobility                          #
##########################################################
*.node[*].veinsmobilityType.debug = true
*.node[*].veinsmobility.x = 0
*.node[*].veinsmobility.y = 0
*.node[*].veinsmobility.z = 1.895
*.node[*0].veinsmobility.accidentCount = 1
*.node[*0].veinsmobility.accidentStart = 75s
*.node[*0].veinsmobility.accidentDuration = 50s


[Config Default]

[Config WithBeaconing]
*.rsu[*].appl.sendBeacons = true
*.node[*].appl.sendBeacons = true

[Config WithChannelSwitching]
*.**.nic.mac1609_4.useServiceChannel = true
*.node[*].appl.dataOnSch = true
*.rsu[*].appl.dataOnSch = true

Any help will be greatly appreciated

解决方案

I solved the error by adding allowunconnected to the connections in RSU.ned and RSUExampleScenario.ned

I hope this help other people facing the same problem.

这篇关于在 OMNeT++ 中将 RSU 连接到 OpenFlow 交换机时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-26 15:06