srsran / srsRAN_Project

Open source O-RAN 5G CU/DU solution from Software Radio Systems (SRS) https://docs.srsran.com/projects/project
https://www.srsran.com
GNU Affero General Public License v3.0
523 stars 178 forks source link

Problem integrating E2 interface with external nearRT-RIC #941

Open EspiMCF opened 3 days ago

EspiMCF commented 3 days ago

Hello,

I am facing issues while I am integrating the srsRAN solution with a nearRT-RIC running on a docker compose.

My current setup is the srsRAN ( commit e73b46182 ) on a baremetal server, with Intel E810 and a Broadcom Quad 25Gb Ethernet. The solution is able to connect to the AMF correctly, a full Core Simulator and also to a O-RU FHI simulator. The nearRT-RIC I am trying to integrate is a comercial solution. But when I am adding the E2 interface setup configuration section to the same yaml file I was using previously, it seems it can not reach the nearRT-RIC somehow. But from the nearRT-RIC I can ping the srsRAN server E2 interface and from the server I can ping the nearRT-RIC E2 address. The core is connected to the Intel card, and the RU and nearRT-RIC to the Broadcom card. As far as I know, my nearRT-RIC is running on docker and it is exposing the port 30000:

dric-service-e2node                        NodePort    <none>        5000:30000/SCTP 

And this IP:

dric_e2_intf Link encap:Ethernet 
          inet addr:10.10.20.162

When I am executing the config file without E2 section, I am able to see that is attached to the AMF and the gNB keep working and reporting logs. And I can even attach UEs and make some testing. But when I add the E2 configuration described here:

e2:
  enable_du_e2: true
  e2sm_kpm_enabled: true
  e2sm_rc_enabled: true
  addr: 10.10.20.162
  bind_addr: 10.10.20.171          
  port: 30000

It reports the following message:

--== srsRAN gNB (commit e73b46182) ==--
2024-11-19T10:05:18.146254 [GNB     ] [I] Built in Release mode using commit e73b46182 on branch main
Connecting to NearRT-RIC on 10.10.20.162:30000
Failed to connect SCTP socket to 10.10.20.162:30000. error="Connection refused" timeout=0ms
2024-11-19T10:05:19.447524 [SCTP-GW ] [E] Failed to connect SCTP socket to 10.10.20.162:30000. error="Connection refused" timeout=0ms
srsRAN ERROR: Failed to create SCTP gateway.

It seems it is not able to configure the interface somehow. Also, what I am expecting in the nearRT-RIC is some message from the gNB in order to reject in a first try but with the values in order to admit it in the database, something like this:

 ERROR         E2T_E2AP     E2T_DATA_01 fd 8 E2node Global Id Not Provisioned: {
   gNB {
      global_gNB_ID {
         plmn_id = 0xXXXXXX
         gnb_id {
            gnb-ID = { 32, 0xXX 0xXX 0xXX 0xXX }
         }
      }
   }
}

ERROR         E2T_E2AP     E2T_DATA_01 Provisioned E2node missing in e2_htab table
INFO         E2T_E2AP     E2T_DATA_01 E2node fd 8 sent invalid e2setup

But even this message does not appear in the nearRT-RIC. Also something I am missing is the bind_interface variable for this interface, as it is not the same as the AMF or RU FHI.

Here I attach my configuration file I am currently using and as I said, I am running on commit e73b46182. gnb-2x2-50-fdd-nearRT.txt

Thanks and regards.

pgawlowicz commented 2 days ago

could you share logs and e2ap pcap file?

EspiMCF commented 2 days ago

Hi, do you need any specific level/layers of log? Here I have attached a zip file where you can find the pcap of the E2 interface from the srsRAN solution. DUinterfaceE2.zip

s21sm commented 1 day ago

@EspiMCF is the port number correct? I am not sure, but for my case, if Near-RT RIC either in the same machine or different machine it works for following setup

e2:
  enable_du_e2: true                # Enable DU E2 agent (one for each DU instance)
  e2sm_kpm_enabled: true    # Enable KPM service module
  #addr: 10.224.32.125                        #  When Near-RT RIC is in different machine
  #bind_addr: 10.228.132.238            # When Near-RT RIC is in different machine
  addr: 10.0.2.10                        # When Near-RT RIC is in the same machine
  bind_addr: 10.0.2.1                 # When Near-RT RIC is in the same machine
  port: 36421                             # RIC port
  e2sm_rc_enabled: true
EspiMCF commented 1 day ago

@s21sm As far as I know, the port that the container of the Near-RT RIC is exposing is 30000, I have tried also the default value port 36421 but it is the same behavior.

pgawlowicz commented 1 day ago

Can you ping the srsgnb host machine from the dric-service-e2node contanier?

Is this interface (and IP) part of the docker container or the server running docker?

dric_e2_intf Link encap:Ethernet 
          inet addr:10.10.20.162
EspiMCF commented 2 hours ago

Hello,

Yes, the dric_e2_intf is the interface of the NearRT-RIC and running that IP address.

I have executed 3 sniffing tests I attach here: PingAndRunningTests.zip

  1. A ping from the DU to the NearRT-RIC server that replies and the ICMP packets seems to be ok
  2. A ping from the Near-RT RIC to the DU that replies properly as you can see with the tcpdump here, but the problem is that the reply is not reaching the NearRT-RIC:
    listening on eno8403np1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
    12:55:01.128111 IP 10.10.20.162 > DUserver: ICMP echo request, id 239, seq 22, length 64
    12:55:01.128117 IP DUserver > 10.10.20.162: ICMP echo reply, id 239, seq 22, length 64
    12:55:01.141564 IP DUserver.41692 > dns.google.domain: 10813+ [1au] PTR? 171.20.10.10.in-addr.arpa. (54)
    12:55:01.154700 IP dns.google.domain > DUserver.41692: 10813 NXDomain 0/0/1 (54)
    12:55:01.154731 IP DUserver.41692 > dns.google.domain: 10813+ PTR? 171.20.10.10.in-addr.arpa. (43)
    12:55:01.168209 IP dns.google.domain > DUserver.41692: 10813 NXDomain 0/0/0 (43)
    12:55:01.168460 IP DUserver.41062 > dns.google.domain: 44312+ [1au] PTR? 162.20.10.10.in-addr.arpa. (54)
    12:55:01.182188 IP dns.google.domain > DUserver.41062: 44312 NXDomain 0/0/1 (54)
    12:55:01.182215 IP DUserver.41062 > dns.google.domain: 44312+ PTR? 162.20.10.10.in-addr.arpa. (43)
    12:55:01.195918 IP dns.google.domain > DUserver.41062: 44312 NXDomain 0/0/0 (43)
    12:55:01.853324 STP 802.1w, Rapid STP, Flags [Proposal, Learn, Forward, Agreement], bridge-id 80ce.c4:5a:b1:81:06:05.8090, length 36
    12:55:01.853339 STP 802.1w, Rapid STP, Flags [Proposal, Learn, Forward, Agreement], bridge-id 80ce.c4:5a:b1:81:06:05.8090, length 36
    12:55:02.152125 IP 10.10.20.162 > DUserver: ICMP echo request, id 239, seq 23, length 64
    12:55:02.152130 IP DUserver > 10.10.20.162: ICMP echo reply, id 239, seq 23, length 64
  3. Started again the srsRAN gnb configuration and INIT messages are able to execute without any ABORT now but still not connecting and reporting this logs:
    
    --== srsRAN gNB (commit e73b46182) ==--

2024-11-22T12:59:46.268459 [GNB ] [I] Built in Release mode using commit e73b46182 on branch main Connecting to NearRT-RIC on 10.10.20.162:30000 2024-11-22T12:59:47.592544 [E2AP ] [I] Connecting to E2 Agent RIC (10.10.20.162).. Failed to connect SCTP socket to 10.10.20.162:30000. error="Connection timed out" timeout=1364ms 2024-11-22T12:59:48.957338 [SCTP-GW ] [E] Failed to connect SCTP socket to 10.10.20.162:30000. error="Connection timed out" timeout=1364ms srsRAN ERROR: Failed to create SCTP gateway.



Thanks and regards.
pgawlowicz commented 2 hours ago

could you show the routing table of Near-RT RIC ?

EspiMCF commented 2 hours ago
$ ip route show
default via 169.254.1.1 dev eth0
169.254.1.1 dev eth0 scope link

$ ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope: Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1

eth0      Link encap:Ethernet  HWaddr fa:35:7e:51:6e:fa
          inet addr:100.106.143.159  Bcast:0.0.0.0  Mask:255.255.255.255
          inet6 addr: fe80::f835:7eff:fe51:6efa/64 Scope: Link
          UP BROADCAST RUNNING MULTICAST  MTU:1480  Metric:1

dric_e2_intf Link encap:Ethernet  HWaddr 00:50:56:ae:1f:c2  Driver iavf
          inet addr:10.10.20.162  Bcast:10.10.20.191  Mask:255.255.255.224
          inet6 addr: fe80::250:56ff:feae:1fc2/64 Scope: Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
pgawlowicz commented 1 hour ago

and also the routing table of the DU server?