Unipisa / Simu5G

Simu5G - 5G NR and LTE/LTE-A user-plane simulation model for OMNeT++ & INET
https://simu5g.org
Other
151 stars 87 forks source link

Address contains no value #231

Closed mubashirma closed 2 months ago

mubashirma commented 3 months ago

Hello,

I am facing the following error. I am not sure why it is happening. It was working fine. When I adjusted "%x2ppp0"/"%x2ppp1" connections in INI file, it was working fine. I thought this error came from the connection gate but I am not sure. Suddenly, it is giving the same error.

"Address contains no value -- in module (inet::Udp) MultiRATHO_v3.gNodeB12.udp". Can anyone please advise the reason behind these issue?

In my scenario, there are 4 eNodeBs and each eNodeB's has 3 gNodeBs. The NED file connections is as follow " server.pppg++ <--> Eth10G <--> router.pppg++; router.pppg++ <--> Eth10G <--> pgw.filterGate; pgw.pppg++ <--> Eth10G <--> eNodeB1.ppp; pgw.pppg++ <--> Eth10G <--> eNodeB2.ppp; pgw.pppg++ <--> Eth10G <--> eNodeB3.ppp; pgw.pppg++ <--> Eth10G <--> eNodeB4.ppp;

    eNodeB1.x2++ <--> Eth10G <--> eNodeB2.x2++;
    eNodeB1.x2++ <--> Eth10G <--> eNodeB3.x2++;
    eNodeB1.x2++ <--> Eth10G <--> eNodeB4.x2++;
    eNodeB2.x2++ <--> Eth10G <--> eNodeB3.x2++;
    eNodeB2.x2++ <--> Eth10G <--> eNodeB4.x2++;
    eNodeB3.x2++ <--> Eth10G <--> eNodeB4.x2++;
    eNodeB1.x2++ <--> Eth10G <--> gNodeB11.x2++;
    eNodeB1.x2++ <--> Eth10G <--> gNodeB12.x2++;
    eNodeB2.x2++ <--> Eth10G <--> gNodeB21.x2++;
    eNodeB2.x2++ <--> Eth10G <--> gNodeB22.x2++;
    eNodeB3.x2++ <--> Eth10G <--> gNodeB31.x2++;
    eNodeB3.x2++ <--> Eth10G <--> gNodeB32.x2++;
    eNodeB4.x2++ <--> Eth10G <--> gNodeB41.x2++;
    eNodeB4.x2++ <--> Eth10G <--> gNodeB42.x2++;       "

The following is the INI file connection part. " .eNodeB.nicType = "LteNicEnbD2D" .eNodeB.cellularNic.LtePdcpRrcType = "NRPdcpRrcEnb"

*.gNodeB1.masterId = 1

*.gNodeB2.masterId = 3

.gNodeB11.masterId = 1 .gNodeB12.masterId = 9 .gNodeB21.masterId = 3 .gNodeB22.masterId = 10 .gNodeB31.masterId = 5 .gNodeB32.masterId = 11 .gNodeB41.masterId = 7 .gNodeB42.masterId = 12 **.dualConnectivityEnabled = true

.eNodeB.numX2Apps = 5 # one x2App per peering node .gNodeB.numX2Apps = 1 # one x2App per peering node ..x2App[*].server.localPort = 5000 + ancestorIndex(1) # Server ports (x2App[0]=5000, x2App[1]=5001, ...)

.eNodeB1.x2App[0].client.connectAddress = "gNodeB11%x2ppp0" .eNodeB2.x2App[0].client.connectAddress = "gNodeB21%x2ppp0" .eNodeB3.x2App[0].client.connectAddress = "gNodeB31%x2ppp0" .eNodeB4.x2App[0].client.connectAddress = "gNodeB41%x2ppp0" .gNodeB11.x2App[0].client.connectAddress = "eNodeB1%x2ppp0" .gNodeB21.x2App[0].client.connectAddress = "eNodeB2%x2ppp0" .gNodeB31.x2App[0].client.connectAddress = "eNodeB3%x2ppp0" .gNodeB41.x2App[0].client.connectAddress = "eNodeB4%x2ppp0"

.eNodeB1.x2App[2].client.connectAddress = "gNodeB12%x2ppp0" .eNodeB2.x2App[2].client.connectAddress = "gNodeB22%x2ppp0" .eNodeB3.x2App[2].client.connectAddress = "gNodeB32%x2ppp0" .eNodeB4.x2App[2].client.connectAddress = "gNodeB42%x2ppp0" .gNodeB12.x2App[0].client.connectAddress = "eNodeB1%x2ppp2" .gNodeB22.x2App[0].client.connectAddress = "eNodeB2%x2ppp2" .gNodeB32.x2App[0].client.connectAddress = "eNodeB3%x2ppp2" .gNodeB42.x2App[0].client.connectAddress = "eNodeB4%x2ppp2" '

giovanninardini commented 2 months ago

By looking at your configuration I noticed that the assignment of “masterId” parameters is incorrect. For each (secondary) gNodeB, the masterId parameter should be set to the ID of its master eNodeB.

Also, note that IDs are assigned incrementally to eNodeBs and gNodeBs, based on the order they appear in the NED file. In your case, eNodeB1 has ID 1, gNodeB11 has ID 2, gNodeB12 has ID 3, eNodeB2 has ID 4, and so on. As a result, the “masterId” parameter for gNodeB11 and gNodeB12 should be set to 1 (i.e. the ID of eNodeB1). Similar reasoning applies to all other gNodeBs.

mubashirma commented 2 months ago

It works. Thank you for your help @giovanninardini.