Steps to build the RAN-Sim Controller setup:
- Clone and Checkout Ran-Sim Controller
- Copy ‘settings.xml’ from ‘<YOURFOLDER>/ran-simulator/ransim/ransimctrlr/packages/base/src/files/m2/settings.xml’ to <HOME>/.m2/ folder as settings.xml file after updating environment specific configurations.
If the file already exists in <HOME>/.m2/ folder, then merge this file content into the existing file appropriately.
Note: settings.xml entries are mandatory to include dependencies.
3. Open the terminal and navigate to the '<YOURFOLDER>/ran-simulator/ransim'
4. Run the following command in the terminal
mvn clean install -U -Dcheckstyle.skip=true -Dmaven.test.skip=true -P docker
5. After successful build navigate to '<YOURFOLDER>/ran-simulator/ransim/docker' directory
6. The SDNR details can be updated in the file '<YOURFOLDER>/ran-simulator/ransim/docker/docker-compose.yml'.
environment:
- SDNR_IP={SDNR IP address}
- SDNR_PORT={SDNR port number}
- SDNR_USER={SDNR user ID}
- SDNR_PASSWORD={SDNR user password}
7. Run the 'docker-compose up -d' command in the terminal( Note: Use docker compose version 1.6.0 or above)
8. Once the ransim and mariadb containers are started, you can see logs in the ransim container under the folder /opt/app/policy/servers/ransim/logs
Steps to check the RAN-Sim Controller logs
- Open the console and enter the following command:
'docker ps'
2. Once the container details is displayed enter the following command:
'docker exec -it <ransim container> bash'
3. Navigate to '/opt/app/policy/servers/ransim/logs' using the cd command.
4. Execute the following command to check the logs:
'tail -f ransim-rest.log'
Steps to access the tables in mysql and check table contents
- Enter the following commands in console to accessmysql:
'mysql -uroot -psecret'
'use ransim_db'
2. Type 'show tables;' to check the and access the tables.
Steps to start/stop RAN network slice simulation
- Open the console and enter the following command:
'docker ps'
2. Once the container details is displayed enter the following command:
'docker exec -it <ransim container> bash'
3. Run the following command tostart the RAN network slice simulation:
curl -k -X POST --header 'Content-Type: application/json' --header 'Accept: */*' 'http://localhost:8081/ransim/api/StartRanSliceSimulation'
4. Run the following command tostop the RAN network slice simulation:
curl -k -X POST --header 'Content-Type: application/json' --header 'Accept: */*' 'http://localhost:8081/ransim/api/StopRanSliceSimulation'
Steps to start/stop generating Intelligent slicing PM data
- Open the console and enter the following command:
'docker ps'
2. Once the container details is displayed enter the following command:
'docker exec -it <ransim container> bash'
3. Run the following command tostart generate Intelligent slicing PM data:
curl -X POST -H "Content-Type: text/plain" http://localhost:8081/ransim/api/GenerateIntelligentSlicingPmData -i
4. Run the following commandto Start generate Intelligent slicing PM data:
curl -X POST -H "Content-Type: text/plain" http://localhost:8081/ransim/api/stopIntelligentSlicingPmData -i
5. You can see the generated slicing pm data files in the ransim container under the folder /tmp/ransim-install.
Sample Slicing PM Data:
<?xml version="1.0" encoding="UTF-8"?>
<measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec">
<fileHeader dnPrefix="Prefix" fileFormatVersion="32.435 V10.0" vendorName="Acme Ltd">
<fileSender localDn="cucpserver1"/>
<measCollec beginTime="2020-12-02T05:01:37.863"/>
</fileHeader>
<measData>
<managedElement localDn="cucpserver1" swVersion="r0.1"/>
<measInfo measInfoId="measInfoIsVal">
<job jobId="9327"/>
<granPeriod duration="PT900S" endTime="2020-12-02T05:01:37.863"/>
<repPeriod duration="PT900S"/>
<measType p="1">SM.PDUSessionSetupReq.0011-0010</measType>
<measType p="2">SM.PDUSessionSetupSucc.0011-0010</measType>
<measType p="3">SM.PDUSessionSetupFail.0</measType>
<measType p="4">SM.PDUSessionSetupReq.0010-1110</measType>
<measType p="5">SM.PDUSessionSetupSucc.0010-1110</measType>
<measValue measObjLdn="13999">
<r p="1">2676.0</r>
<r p="2">1749.0</r>
<r p="4">3158.0</r>
<r p="5">1921.0</r>
<r p="3">1958.0</r>
<suspect>false</suspect>
</measValue>
<measValue measObjLdn="14000">
<r p="1">2392.0</r>
<r p="2">1522.0</r>
<r p="4">3571.0</r>
<r p="5">2575.0</r>
<r p="3">1696.0</r>
<suspect>false</suspect>
</measValue>
<measValue measObjLdn="15155">
<r p="1">5279.0</r>
<r p="2">3300.0</r>
<r p="4">7237.0</r>
<r p="5">5187.0</r>
<r p="3">3655.0</r>
<suspect>false</suspect>
</measValue>
<measValue measObjLdn="15174">
<r p="1">5545.0</r>
<r p="2">3397.0</r>
<r p="4">7649.0</r>
<r p="5">5493.0</r>
<r p="3">3994.0</r>
<suspect>false</suspect>
</measValue>
<measValue measObjLdn="15175">
<r p="1">5229.0</r>
<r p="2">3349.0</r>
<r p="4">8120.0</r>
<r p="5">5590.0</r>
<r p="3">4016.0</r>
<suspect>false</suspect>
</measValue>
</measInfo>
</measData>
<fileFooter>
<measCollec endTime="2020-12-02T05:01:37.863"/>
</fileFooter>
</measCollecFile>