I will introduce two topics in following posts, which are not part of the ‘Getting started’ section, but are included in oran-sc/it.dep/demos:
- E2 setup between near-RT RIC(ricplt) and O-DU high
- O1 alarm example between near-RT RIC(ricplt) and SDNC-SDNR(smo)
- SDNC: SDN-Controller
- SDNR: SDN-Radio
- CCSDK: Common Controller SDK Project
E2 setup(ricplt and odu-high)
ricplt and odu-high are deployed on seperate VMs.
pls refer to oran-sc-bronze/it.dep/demos/bronze/odu-high.sh for detailed information.
First, we will build odu-high.
step 1, add __RIC_HOST__ and __ODU_HOST__ environment variables to the beginning of the script, which specifie the ip addr. of ricplt and odu-high.
(11:02 dabs@oduhighbronze bronze) > pwd
/home/dabs/oran/dep/demos/bronze
(11:02 dabs@oduhighbronze bronze) > sudo vim odu-high.sh
export __RIC_HOST__="192.168.43.180"
export __ODU_HOST__="192.168.43.181"
step 2, build odu-high:
(11:02 dabs@oduhighbronze bronze) > sudo ./odu-high.sh
make[1]: Leaving directory '/home/dabs/oran/dep/demos/bronze/l2/build/odu'
-e ***** BUILD COMPLETE *****
The compilation has completed. The next step is to run the O-DU HIGH executable. We will see the ODU HIGH establishes SCTP connection to E2Termination, then sending E2 Setup Request and receiving E2 Setup Response. It will be good to also start following the logs of the E2 Termination.
step 3, start ‘kubectl logs -f’ for e2term and e2mgr in ns ricplt:
(11:20 dabs@ricpltbronze ~) > sudo kubectl logs -f deployment-ricplt-e2term-alpha-bcb457df4-dg9qx -n ricplt
(11:45 dabs@ricpltbronze ~) > sudo kubectl logs -f deployment-ricplt-e2mgr-8479fb5ff8-jrbgv -n ricplt
step 4, find e2term and e2mgr service ip addr and port:
- e2term is responsible for SCTP setup between E2 peers
- e2mgr is responsible for E2 connection management
(11:27 dabs@ricpltbronze ~) > sudo kubectl get service -A | grep e2term
ricplt service-ricplt-e2term-rmr-alpha ClusterIP 10.108.246.240 <none> 4561/TCP,38000/TCP 40d
ricplt service-ricplt-e2term-sctp-alpha NodePort 10.107.144.154 <none> 36422:32222/SCTP 40d
(11:27 dabs@ricpltbronze ~) > sudo kubectl get service -A | grep e2mgr
ricplt service-ricplt-e2mgr-http ClusterIP 10.97.246.153 <none> 3800/TCP 40d
ricplt service-ricplt-e2mgr-rmr ClusterIP 10.99.202.98 <none> 4561/TCP,3801/TCP 40d
step 5, query odu-high list and e2term list on e2mgr. As there is no odu-high connected yet, nodeb/ids is empty and e2t/list has empty ranNames.
(15:15 dabs@ricpltbronze ~) > curl http://10.97.246.153:3800/v1/nodeb/ids | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2 100 2 0 0 333 0 --:--:-- --:--:-- --:--:-- 400
[]
(15:16 dabs@ricpltbronze ~) > curl http://10.97.246.153:3800/v1/e2t/list | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 53 100 53 0 0 13250 0 --:--:-- --:--:-- --:--:-- 13250
[
{
"e2tAddress": "10.108.246.240:38000",
"ranNames": []
}
]
step 6, start odu-high to trigger e2 setup
Note: I will omit unrelated debug outputs.
(11:04 dabs@oduhighbronze bronze) > ls l2/bin/odu/
odu odu_script.sh
(11:04 dabs@oduhighbronze bronze) > sudo l2/bin/odu/odu
Creating thread here /home/dabs/oran/dep/demos/bronze/l2/src/mt/mt_ss.c 3780
Set priority 99
Creating thread here /home/dabs/oran/dep/demos/bronze/l2/src/mt/mt_ss.c 3668
Set priority 99
Creating thread here /home/dabs/oran/dep/demos/bronze/l2/src/mt/mt_ss.c 3668
Set priority 98
Creating thread here /home/dabs/oran/dep/demos/bronze/l2/src/mt/mt_ss.c 3668
Set priority 99
Creating thread here /home/dabs/oran/dep/demos/bronze/l2/src/mt/mt_ss.c 3668
DU_APP : DU APP created and registered to 1 sys task
EGTP : Initializing
DU_APP : EGTP created and registered to 1 sys task
SCTP : Initializing
DU_APP : SCTP TAPA task created and registered to 4 sys task
DU_APP : RLC DL and MAC TAPA task created and registered to 2 sys task
DU_APP : RLC UL TAPA task created and registered to 3 sys task
****** Received initial configs at DU APP ******
DU_APP : RLC Gen Cfg Req sent for inst 0
DU_APP : RLC MAC Lower Sap Cfg Req sent for inst 0
DU_APP : RLC DL/UL Lower Sap Cfg Req sent for inst 0
DU_APP : RLC UL Cfg Status 0
DU_APP : RLC UL Cfg Cfm received for the element 1
DU_APP : RLC UL Cfg Status 0
DU_APP : RLC UL Cfg Cfm received for the element 186
DU_APP : RLC UL Cfg Status 0
DU_APP : RLC UL Cfg Cfm received for the element 189
DU_APP : RLC Gen Cfg Req sent for inst 1
DU_APP : RLC Kwu Upper Sap Cfg Req sent for inst 1
DU_APP : RLC MAC Lower Sap Cfg Req sent for inst 1
DU_APP : RLC DL Cfg Status 0
DU_APP : RLC DL Cfg Cfm received for the element 1
DU_APP : RLC DL Cfg Status 0
DU_APP : RLC DL Cfg Cfm received for the element 189
DU_APP : RLC DL Cfg Status 0
DU_APP : RLC DL Cfg Cfm received for the element 186
DU_APP : MAC Gen Cfg Req sent
DU_APP : MAC Rgu USap Cfg Req sent
DU_APP : MAC Rgu USap Cfg Req sent
DU_APP : MAC Cfg Cfm received for the element 1
DU_APP : MAC Cfg Cfm received for the element 186
DU_APP : MAC Cfg Cfm received for the element 186
DU_APP : Completed sending Configs
DU_APP : Cntrl Req to RLC inst 1 to bind MAC sap
DU_APP : BIND OF RLC DL TO MAC (RGU) SAP SUCCESSFUL
DU_APP : Cntrl Req to RLC inst 0 to bind MAC sap
DU_APP : BIND OF RLC UL TO MAC (RGU) SAP SUCCESSFUL
DU_APP : MAC Sch Cfg sent
Received Scheduler gen config at MAC
Received scheduler gen config
Entered SchInstCfg()
Scheduler gen config done
Sending Scheduler config confirm to DU APP
DU_APP : Received SCH CFG CFM at DU APP
DU_APP : Configuring all Layer is complete
CmInetSctpConnectx() Failed : error(115), port(0x9648), sockFd->fd(4)
SCTP : Polling started at DU
CmInetSctpConnectx() Failed : error(115), port(0x7dde), sockFd->fd(5)
DU_APP : Sending EGTP config request
EGTP : EGTP configuration successful
DU_APP : EGTP configuraton complete
SCTP : AssocId assigned to ricParams from PollParams [6]
SCTP : Assoc change notification receivedEvent : COMMUNICATION UP
SCTP : Forwarding received message to duApp
E2AP : Building E2 Setup Request
<E2AP-PDU>
<initiatingMessage>
<procedureCode>1</procedureCode>
<criticality><reject/></criticality>
<value>
<E2setupRequest>
<protocolIEs>
<E2setupRequestIEs>
<id>3</id>
<criticality><reject/></criticality>
<value>
<GlobalE2node-ID>
<gNB>
<global-gNB-ID>
<plmn-id>13 F1 84</plmn-id>
<gnb-id>
<gnb-ID>
00000000000000010000001000000001
</gnb-ID>
</gnb-id>
</global-gNB-ID>
</gNB>
</GlobalE2node-ID>
</value>
</E2setupRequestIEs>
</protocolIEs>
</E2setupRequest>
</value>
</initiatingMessage>
</E2AP-PDU>
E2AP : Created APER encoded buffer for E2SetupRequest
010100010309013fffffff1ffffff84500121
msg: qlen: 0001 mlen: 0020 00-->00 region: 00
dat: 00 01 00 10 00 00 01 00 03 00 09 00 13 f1 84 50 ...............P
00 01 02 01 ....
SCTP : sending the message to ric
SCTP : Forwarding received message to duApp
msg: qlen: 0001 mlen: 0018 00-->00 region: 00
dat: 20 01 00 0e 00 00 01 00 04 00 07 00 13 10 14 aa ...............
cc e0 ..
E2AP : Received E2AP message buffer
msg: qlen: 0001 mlen: 0018 00-->00 region: 00
dat: 20 01 00 0e 00 00 01 00 04 00 07 00 13 10 14 aa ...............
cc e0 ..
E2AP : Received flat buffer to be decoded : 2010e00104070131014ffffffaaffffffccffffffe0
<E2AP-PDU>
<successfulOutcome>
<procedureCode>1</procedureCode>
<criticality><reject/></criticality>
<value>
<E2setupResponse>
<protocolIEs>
<E2setupResponseIEs>
<id>4</id>
<criticality><reject/></criticality>
<value>
<GlobalRIC-ID>
<pLMN-Identity>13 10 14</pLMN-Identity>
<ric-ID>
10101010110011001110
</ric-ID>
</GlobalRIC-ID>
</value>
</E2setupResponseIEs>
</protocolIEs>
</E2setupResponse>
</value>
</successfulOutcome>