RANSIM :
Follow the steps below to setup the Ransim environment:
- Clone the repo from : git clone https://gerrit.onap.org/r/integration/simulators/ran-simulator
- Go to the ran-simulator/ransim directory and build the project : JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ mvn clean install -P docker
- From docker folder, run the following after building the images locally : docker-compose up
- Access the GUI using the following url in the web browser: http://localhost:8081/ransimui/index.html
- Click ‘Start’ button to start the simulation and choose the "sample.json" file and click Configure. Wait till you see success message either in the logs or in the UI. (Might take 5-10 minutes to load data)To access the logs:
docker exec –ti ransim bash
policy@ransim:/tmp/ransim-install$ tail -f /opt/app/policy/servers/ransim/logs/ransim-rest.log - Refresh the page to see the cells.
- Setup honeycomb (Refer HONEYCOMB section). Click ‘Netconf Details’ to see the running netconf servers.
- Right click on cell Chn0005 and click Show Neighbors to view the neighboring cells.
- To trigger collision/confusion , right click on Chn0005 and click Modify Neighbors option. Add ‘,Chn0012,Chn0116,Chn0071’ as neighbours and submit. Refresh page.
Check netconf server ncserver1 logs to see FM notification. - To generate PM data: Click ‘Start’ button under PM data with the below values:
Bad HO metrics leading to neighbor blacklist
bad : Chn0009
poor : Chn0005
HONEYCOMB :
Follow the steps below to setup the honeycomb environment:
- Clone the repo from : git clone https://github.com/onap-oof-pci-poc/ran-sim
- Go to the ran-sim/hcsim-content/enodebsim directory and build the project : JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ mvn clean install -Dcheckstyle.skip
- Go to the ran-sim/Netconf-Agents/hc_50000 directory ,
(if changes to enodebsim-impl are made run below command to place the jar)
cp -r ~/ran-sim/hcsim-content/enodebsim/enodebsim-impl/target/enodebsim-impl-1.0.0-SNAPSHOT.jar lib/org/onap/ransim/enodebsim-impl/1.0.0-SNAPSHOT/
- Execute the following command from the same directory : docker build -t netconf:latest .
- Bring up the docker container : docker run -d --name ncserver1 -e "enodebsimIp=10.31.4.45" -e "enodebsimPort=50001" -e "ransimCtrlrIp=10.31.4.45" -e "ransimCtrlrPort=8081" -e "vesEventListenerUrl=https://10.31.4.51:30417/eventListener/v7" -p 50001:50001 -t netconf:latest
- Bring up any number of netconf servers by changing the container name and port config in the above command.
Troubleshooting Common Errors:
- Check if the enodebsimIP(IPAddress of Honeycomb), enodebsimPort(Port of Honeycomb), ransimCtrlrIp(IPAddress of Ransim) and ransimCtrlrPort(Ransim Port) is accurate.
- After running honeycomb check ransim logs to see successful ping message, data sent to honeycomb or check SDNC restconf page if honeycomb is successfully mounted.
- http://localhost:8081/ransimui/index.html check the Netconf Details page in the UI to get the list of all honeycombs running(port to name mapping).
- To manually mount the honeycomb(If mount point not created in SDNR):
- curl -i -X PUT -k https://<WokerVMIP>:30267/restconf/config/network-topology:network-topology/topology/topology-netconf/node/<nameAssignedToHoneycombInTheRansimUI> \
-H 'Accept: application/xml' -H 'Content-Type: text/xml' \
--user "admin":"Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U" \
-d '<node xmlns="urn:TBD:params:xml:ns:yang:network-topology">
<node-id>[nameAssignedToHoneycombInTheUI]</node-id>
<host xmlns="urn:opendaylight:netconf-node-topology">[HoneycombIPAddress]</host>
<port xmlns="urn:opendaylight:netconf-node-topology">[HoneycombPort]</port>
<username xmlns="urn:opendaylight:netconf-node-topology">admin</username>
<password xmlns="urn:opendaylight:netconf-node-topology">admin</password>
<tcp-only xmlns="urn:opendaylight:netconf-node-topology">false</tcp-only>
<!-- non-mandatory fields with default values, you can safely remove these if you do not wish to override any of these values-->
<reconnect-on-changed-schema xmlns="urn:opendaylight:netconf-node-topology">false</reconnect-on-changed-schema>
<connection-timeout-millis xmlns="urn:opendaylight:netconf-node-topology">20000</connection-timeout-millis>
<max-connection-attempts xmlns="urn:opendaylight:netconf-node-topology">0</max-connection-attempts>
<between-attempts-timeout-millis xmlns="urn:opendaylight:netconf-node-topology">2000</between-attempts-timeout-millis>
<sleep-factor xmlns="urn:opendaylight:netconf-node-topology">1.5</sleep-factor>
<!-- keepalive-delay set to 0 turns off keepalives-->
<keepalive-delay xmlns="urn:opendaylight:netconf-node-topology">120</keepalive-delay>
</node>' -i
- curl -i -X PUT -k https://<WokerVMIP>:30267/restconf/config/network-topology:network-topology/topology/topology-netconf/node/<nameAssignedToHoneycombInTheRansimUI> \
- To check honeycomb data:
- docker exec -ti <honecombContainerName> bash
- cat var/lib/honeycomb/persist/config/data.json
- Check if data is mounted on SDNR:
- curl -i -X GET https://<workerVmIP>:30267/restconf/config/network-topology:network-topology/topology/topology-netconf/node/ncserver1/yang-ext:mount/oofpcipoc:radio-access -k -H 'Accept: application/xml' -H 'Content-Type: application/xml' \
--user "admin":"Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U" -i - If data is not mounted, mount the data by running the below requests:
- cd var/lib/honeycomb/persist/config
- curl -i -X PUT https://<WorkerVMIP>:30267/restconf/config/network-topology:network-topology/topology/topology-netconf/node/<nameAssignedToHoneycombInTheUI>/yang-ext:mount/oofpcipoc:radio-access -k -H 'Accept: application/json' -H 'Content-Type: application/json' --user "admin":"Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U" -d @data.json -i
- To delete mount point in SDNR:
- curl -i -X DELETE https://<WorkerVMIP>:30267/restconf/config/network-topology:network-topology/topology/topology-netconf/node/<nameAssignedToHoneycombInTheUI> -k -H 'Accept: application/xml' -H 'Content-Type: application/xml' \
--user "admin":"Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U" -i
- curl -i -X DELETE https://<WorkerVMIP>:30267/restconf/config/network-topology:network-topology/topology/topology-netconf/node/<nameAssignedToHoneycombInTheUI> -k -H 'Accept: application/xml' -H 'Content-Type: application/xml' \
- curl -i -X GET https://<workerVmIP>:30267/restconf/config/network-topology:network-topology/topology/topology-netconf/node/ncserver1/yang-ext:mount/oofpcipoc:radio-access -k -H 'Accept: application/xml' -H 'Content-Type: application/xml' \
CPS :
Follow the steps below to setup the CPS environment:
- Clone the repo from : https://gerrit.onap.org/r/admin/repos/cps
- Build the project – When building the project run from the root cps folder : mvn clean install
- From docker-compose folder, run the following after building the images locally : VERSION=latest DB_USERNAME=cps DB_PASSWORD=cps docker-compose up -d
- Create the dataspace, schemaset, anchor and datanode using CPS APIs.
Kindly check this page for more details on CPS APIs : R9 TBDMT Enhancements
CPS-TBDMT :
Follow the steps below to setup the CPS-TBDMT environment:
- Clone the repo from : cps/cps-tbdmt · Gerrit Code Review (onap.org)
Build the project – mvn clean install
Change the docker image name to avoid docker login issues : docker tag nexus3.onap.org:10003/onap/cps-tbdmt:latest cps-tbdmt:latest
From the docker-compose folder, edit the application.yml file
cpsCoreConfiguration url – change to VM's IP and the created dataspace's name
schemaToAnchor mapping – provide the created schemaset and anchor name
- From the docker-compose folder, run the following to bring up the containers : docker-compose up -d
SON-HANDLER:
Configure the SON-Handler with the below CPS details and then deploy.
Edit this file oom/kubernetes/dcaegen2-services/components/dcae-son-handler.values.yaml
- cps.username: cpsuser
- cps.password: cpsr0cks!
- sonhandler.clientType: CPS
- cps.service.url: http://<cps-tbdmt-ip>:8080
- cps.get.cell.data.url: execute/cps-ran-schemaset/get-cell-data
- cps.get.nbr.list.url: execute/cps-ran-schemaset/get-nbr-list
- cps.get.pci.url: execute/ran-network-schemaset/get-pci
- cps.get.pnf.url: execute/ran-network-schemaset/get-pnf