Hi,
I need help with an error:
"Error in module (LtePhyEnb) Scenario_TestCaseAltered.eNodeB.nic.phy (id=100) during network initialization: Model error: no phy listeners"
Any suggestions would be appreciated.
Details of the scenario can be found below.
I am working to get simuLTE and OpenFlowOMNeTSuite to work together, and in that process I am trying to alter one of the examples inside the openflow project by adding simuLTE nodes to the scenario. This is not really relevant to the error (I believe), but just to give some context and explanation for the source code.
NED file:
package openflow.networks;
import inet.networklayer.ipv4.RoutingTableRecorder;
import inet.nodes.ethernet.EtherSwitch;
import inet.nodes.inet.Router;
import inet.nodes.inet.StandardHost;
import inet.networklayer.autorouting.ipv4.*;
import inet.nodes.rip.RIPRouter;
import inet.util.ThruputMeteringChannel;
import inet.world.radio.ChannelControl;
import lte.corenetwork.binder.LteBinder;
import lte.corenetwork.nodes.Ue;
import lte.corenetwork.nodes.eNodeB;
import lte.epc.PgwStandardSimplified;
import openflow.utility.*;
import openflow.nodes.*;
import openflow.openflow.controller.*;
import openflow.openflow.switch.*;
import openflow.hyperflow.*;
network Scenario_TestCaseAltered
{
parameters:
int numClients @display("bgb=768,465") = default(1);
int numControllers @display("bgb=768,465") = default(1);
@display("bgb=925,638");
types:
channel ethernetline extends ThruputMeteringChannel
{
delay = 1us;
datarate = 100Mbps;
thruputDisplayFormat = "u";
}
submodules:
spanningTree: StaticSpanningTree {
@display("p=61,108");
}
openflowGraphAnalyzer: OpenFlowGraphAnalyzer {
@display("p=61,39");
}
clientG1[numClients]: StandardHost {
@display("p=297,229");
}
clientG2[numClients]: StandardHost {
@display("p=765,229");
}
configurator: IPv4NetworkConfigurator {
parameters:
@display("p=61,172");
}
open_flow_switch1: Open_Flow_Switch {
@display("p=516,228");
}
open_flow_controller1: Open_Flow_Controller if numControllers >=1 {
@display("p=516,70");
}
channelControl: ChannelControl {
@display("p=61,351");
}
binder: LteBinder {
@display("p=61,427");
}
routingRecorder: RoutingTableRecorder {
@display("p=61,484");
}
pgw: PgwStandardSimplified {
nodeType = "PGW";
@display("p=516,441");
}
eNodeB: eNodeB {
@display("p=303,441");
}
ue: Ue {
@display("p=241,492");
}
connections:
clientG1[0].ethg++ <--> ethernetline <--> open_flow_switch1.gateDataPlane++;
open_flow_switch1.gateControlPlane++ <--> ethernetline <--> open_flow_controller1.ethg++;
clientG1[0].ethg++ <--> ethernetline <--> open_flow_switch1.gateDataPlane++;
clientG2[0].ethg++ <--> ethernetline <--> open_flow_switch1.gateDataPlane++;
pgw.filterGate <--> ethernetline <--> open_flow_switch1.gateDataPlane++;
pgw.pppg++ <--> ethernetline <--> eNodeB.ppp;
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
omnetpp.ini:
[General]
network = openflow.networks.Scenario_TestCaseAltered
output-vector-file = ${resultdir}/${inifile}/${inifile}-${configname}-${runnumber}.vec
output-scalar-file = ${resultdir}/${inifile}/${inifile}-${configname}-${runnumber}.sca
sim-time-limit = 60s
repeat = 1
seed-set = ${repetition}
**.numControllers = 1
**.numClients = 1
**.rtt.result-recording-modes = +vector,-stats
**.clientG1[*].tcpApp[*].connectionStarted.result-recording-modes = +vector,+stats
**.clientG1[*].tcpApp[*].connectionEstablished.result-recording-modes = +vector,+stats
**.clientG1[*].tcpApp[*].connectionFinished.result-recording-modes = +vector,+stats
**.clientG1[*].tcpApp[*].transmittedBytes.result-recording-modes = +vector,+stats
**.clientG1[*].tcpApp[*].connectionStarted*.vector-recording = true
**.clientG1[*].tcpApp[*].connectionEstablished*.vector-recording = true
**.clientG1[*].tcpApp[*].connectionFinished*.vector-recording = true
**.clientG1[*].tcpApp[*].transmittedBytes*.vector-recording = true
**.packetsPerSecondAt**.scalar-recording = true
**.packets.result-recording-modes = +count
**.packets*.scalar-recording = true
**.avgQueueSizeAt**.scalar-recording = true
**.controllerInvolvementsFor**.scalar-recording = true
**.nodeInNumPaths**.scalar-recording = true
**.avgPathLength.scalar-recording = true
**.minPathLength.scalar-recording = true
**.maxPathLength.scalar-recording = true
**.numClients.scalar-recording = true
**.numPaths.scalar-recording = true
**.vector-recording = false
**.scalar-recording = false
#**.rtt.result-recording-modes = +vector,-stats
#**.queueSize.result-recording-modes = +vector,+stats
#**.bufferSize.result-recording-modes = +vector,+stats
#**.waitingTime.result-recording-modes = +vector,+stats
#**.packets.result-recording-modes = +count
#**.packetBytes.result-recording-modes = +sum
#**.packets*.scalar-recording = true
#**.packetBytes*.scalar-recording = true
#**.numPacketIn*.scalar-recording = true
#**.bufferSize*.vector-recording = true
#**.queueSize*.vector-recording = true
#**.waitingTime*.vector-recording = true
#**.flowTable**.scalar-recording = true
#**.pingApp[*].rtt*.vector-recording = true
#**.controllerApps[*].*.scalar-recording = true
#**.pingApp[*].numLost*.scalar-recording = true
#**.pingApp[*].numOutOfOrderArrivals*.scalar-recording = true
#**.vector-recording = false
#**.scalar-recording = false
**.spanningTree.startNode = 4
**.highlightActivePorts = true
# random ping application
#**.clientG1[*].numTcpApps = 1
**.clientG2[*].numTcpApps = 1
**.clientG2[*].tcpApp[*].typename = "TCPSinkApp"
**.clientG2[*].tcpApp[*].localPort = 1000
#**.clientG1[*].tcpApp[*].typename = "TCPSessionApp"
#**.clientG1[*].tcpApp[*].connectAddress = "clientG2[0]"
#openflow params
**.open_flow_switch*.OF_Switch.connectAddress = "open_flow_controller1"
**.open_flow_switch*.OF_Switch.connectAt = uniform(0s,1s)
**.open_flow_switch*.etherMAC[*].promiscuous = true
# 404bytes see imix and buffer size of 1.5mb see hp switch 1500000/404
**.OF_Switch.bufferCapacity = 3712
**.OF_Switch.serviceTime = 0.000035s
#1800 00 requests per second on 8xcores 8xthreads and 32 switches (hotice2012-final)
**.open_flow_controller*.serviceTime = 0.000005556s *(${controllerServiceTimeFactor=1} )
**.open_flow_controller*.numControllerApps = 1
**.open_flow_controller*.controllerApps[0].typename = "LearningSwitch"
# NIC configuration
**.ppp[*].queue.frameCapacity = 10 # in routers
**.open_flow_switch*.tcp.mss = 800
#linux mint 15 std value
**.arp.cacheTimeout = 60s
####################################################################################################################################
####################################################################################################################################
#FROM LTE - lte.simulations.networks.SingleCell# (edited)
####################################################################################################################################
####################################################################################################################################
tkenv-image-path=../../images
tkenv-plugin-path = ../../../inet/etc/plugins
output-scalar-file-append = false
##########################################################
# Simulation parameters #
##########################################################
#record-eventlog = true
#eventlog-options = module, displaystring, message
#eventlog-message-detail-pattern = *:(not declaredOn(cMessage) and not declaredOn(cNamedObject) and not declaredOn(cObject))
tkenv-default-config =
#debug-on-errors=true
#**.coreDebug = true
##########################################################
# channel parameters #
##########################################################
**.channelControl.pMax = 10W
**.channelControl.alpha = 1.0
**.channelControl.carrierFrequency = 2100e+6Hz
################### RLC parameters #######################
#**.fragmentSize=30B
#**.timeout=50s
################### MAC parameters #######################
**.mac.queueSize = 1MiB
**.mac.maxBytesPerTti = 1KiB
**.mac.macDelay.result-recording-modes = all
**.mac.macThroughput.result-recording-modes = all
# Schedulers
**.mac.schedulingDisciplineDl = "MAXCI"
**.mac.schedulingDisciplineUl = "MAXCI"
################ PhyLayer parameters #####################
**.nic.phy.usePropagationDelay = true
**.nic.phy.channelModel=xmldoc("config_channel.xml")
################ Feedback parameters #####################
**.feedbackComputation = xmldoc("config_channel.xml")
################ Mobility parameters #####################
# *
**.mobility.constraintAreaMinZ = 0m
**.mobility.constraintAreaMaxZ = 0m
**.mobility.initFromDisplayString = true
# UEs
**.enableHandover = false
################# Deployer parameters #######################
# UEs attached to eNB
**.fbDelay = 1
# General
**.deployer.positionUpdateInterval = 0.001s
**.deployer.broadcastMessageInterval = 1s
# RUs
**.deployer.numRus = 0
**.deployer.ruRange = 50
**.deployer.ruTxPower = "50,50,50;"
**.deployer.ruStartingAngle = 0deg
**.deployer.antennaCws = "2;" # !!MACRO + RUS (numRus + 1)
# AMC
**.deployer.numRbDl = 6
**.deployer.numRbUl = 6
**.deployer.rbyDl = 12
**.deployer.rbyUl = 12
**.deployer.rbxDl = 7
**.deployer.rbxUl = 7
**.deployer.rbPilotDl = 3
**.deployer.rbPilotUl = 0
**.deployer.signalDl = 1
**.deployer.signalUl = 1
**.deployer.numBands = 1
**.deployer.numPreferredBands = 1
############### AMC MODULE PARAMETERS ###############
**.rbAllocationType = "localized"
**.mac.amcMode = "AUTO"
**.feedbackType = "ALLBANDS"
**.feedbackGeneratorType = "IDEAL"
**.maxHarqRtx = 3
**.pfAlpha = 0.95
**.pfTmsAwareDL = false
############### Transmission Power ##################
**.ueTxPower = 26
**.microTxPower = 20
**.*TxPower = 40
# connect each UE to the eNB
**.ue.macCellId = 1
**.ue.masterId = 1
#Apps
*.ue.numTcpApps = 1
**.ue.tcpApp[*].typename = "TCPSessionApp"
**.ue.tcpApp[*].localPort = 1000
**.ue.tcpApp[0].tOpen = 1s
**.ue.tcpApp[0].tSend = 1s
**.ue.tcpApp[0].connectAddress = "clientG2[0]"
**.ue.tcpApp[0].localAddress = "ue"
#============= Positioning and mobility ============
*.eNodeB.mobility.initFromDisplayString = false
*.eNodeB.mobility.initialX = 300m
*.eNodeB.mobility.initialY = 300m
*.ue.mobility.constraintAreaMaxX = 600m
*.ue.mobility.constraintAreaMaxY = 600m
*.ue.mobility.constraintAreaMinX = 0m
*.ue.mobility.constraintAreaMinY = 0m
*.ue.mobility.initFromDisplayString = false
*.ue.mobility.initialX = uniform(0m,600m)
*.ue.mobility.initialY = uniform(0m,600m)
*.ue.mobility.speed = 1mps
*.ue.mobilityType = "StationaryMobility"