...
- 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 hc_50001 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:
...
- 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