...
- Make the SDNC chart and then deploy.
- Execute the following command to log into the sdnc container
- kubectl exec -it dev-sdnc-0 bash
- Once in the docker container, edit the properties file /opt/onap/ccsdk/data/properties/ran-slice-api-dg.properties
- update the following flag to true.
- ransim-mounted=true
- configdb-deployed=false (set to true if configDB is used)
- cps-deployed=true (set to true if cps is used)
- Update IP address for ConfigDB:
- configdb.url=${CONFIG_DB_URL:-http://<IPAddress>:8086/api/sdnc-config-db/v4}
- Update IP address for CPS-TBDMT:
- restapi.cps.anchors.endpoint=${CPS_URL:-http://<IPAddress>:8883}/cps/api/v1/dataspaces/E2EDemo/anchors
- update the following flag to true.
POLICY:
- Login to the policy-drools-pdp container and check if the value 'actor.service.SO.operations.Modify\ NSSI.path=3gppservices/v1/modify' is present in the below file:
- kubectl exec -ti -n onap dev-policy-drools-pdp-0 sh
- /opt/app/policy/config/event-manager.properties
- If value not present update the policy-drools-pdp-image to this version'/onap/policy-pdpd-cl:1.10.2-20220413T1305' or any version after '1.10.2'
Deployment Prerequisite/dependencies
DMaaP, Policy, SO and SDNC pods should be up and running.
- VES, PM mapper and DataFile Collector service should be running.
- ConfigDB container should be running(if configDb is disabled in slice-analysis, CPS and , CPS-TBDMT containers and AAI services should be running).
Slice Analysis MS
...
- Download the configDb source files from configdb-3.0.0.zip
- cd configdb (after extracting the files)
- Setup and run maridb container
- sudo docker run -p 3306:3306 -v $PWD/SDNC_ConfigDB_SchemaV4.sql:/docker-entrypoint-initdb.d/SDNC_ConfigDB_SchemaV4.sql --name mariadb -e MYSQL_ROOT_PASSWORD=password -d mariadb
- Navigate to project directory
- cd configdb/Config-DB-API-App
- Build the application
- JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ mvn clean install
- Run the application
- JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ mvn spring-boot:run &/lib/jvm/java-8-openjdk-amd64/ mvn spring-boot:run &
- Execute this script(update configDB IPAddress and Port) to upload sample closed-loop-data: config_requests_script_closed_loop.sh
AAI:
Sample data to be loaded in AAI:
curl --request PUT -H "X-FromAppId:AAI " -H "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k \
https://$AAI_RESOURCES_IP:8447/aai/v21/business/customers/customer/5GCustomer \
-d @aai-sample-data/atacustomers.json -i
curl --request PUT -H "X-FromAppId:AAI " -H "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k \
https://$AAI_RESOURCES_IP:8447/aai/v21/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G \
-d @aai-sample-data/service_subscriptions.json -i
curl --request PUT -H "X-FromAppId:AAI " -H "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k \
https://$AAI_RESOURCES_IP:8447/aai/v21/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/3f2f23fa-c567-4dd8-8f15-f95ae3e6fd84 \
-d @aai-sample-data/ran_nf_nssi.json -i
curl --request PUT -H "X-FromAppId:AAI " -H "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k \
https://$AAI_RESOURCES_IP:8447/aai/v21/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/2125ad2f-c074-4342-b81e-db99ce0e4ed5 \
-d @aai-sample-data/slice_profile_instance.json -i
curl --request PUT -H "X-FromAppId:AAI " -H "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k \
https://$AAI_RESOURCES_IP:8447/aai/v24/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/2125ad2f-c074-4342-b81e-db99ce0e4ed5/slice-profiles/slice-profile/684hf846f-863b-4901-b202-0ab86a638555 \
-d @aai-sample-data/slice_profile.json -i
curl --request PUT -H "X-FromAppId:AAI " -H "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k \
https://$AAI_RESOURCES_IP:8447/aai/v21/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/b2ae730f-1d5f-495a-8112-dac017a7348c \
-d @sim-data/sliceprofile_an_sa1.json -i
curl --request PUT -H "X-FromAppId:AAI " -H "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k \
https://$AAI_RESOURCES_IP:8447/aai/v21/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/cad8fa36-2d55-4c12-a92e-1bd551517a0c \
-d @aai-sample-data/sliceprofile_cn_sa1.json -i
curl --request PUT -H "X-FromAppId:AAI " -H "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k \
https://$AAI_RESOURCES_IP:8447/aai/v21/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/8d0d698e-77f4-4453-8c09-ae2cbe6a9a04 \
-d @aai-sample-data/sliceprofile_tn_sa1.json -i
curl --request PUT -H "X-FromAppId:AAI " -H "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k \
https://$AAI_RESOURCES_IP:8447/aai/v21/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/0835fd19-6726-4081-befb-cc8932c47767 \
-d @aai-sample-data/alloted-resource.json -i
curl --request PUT -H "X-FromAppId:AAI " -H "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k \
https://$AAI_RESOURCES_IP:8447/aai/v21/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/0835fd19-6726-4081-befb-cc8932c47767/allotted-resources/allotted-resource/530d188d-9087-49af-a44a-90c40e0c2d47 \
-d @aai-sample-data/alloted-resource-data.json -i
curl --request PUT -H "X-FromAppId:AAI " -H "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k \
https://$AAI_RESOURCES_IP:8447/aai/v21/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/50f418a6-804f-4453-bf70-21f0efaf6fcd \
-d @aai-sample-data/nssi.json -i
curl --request PUT -H "X-FromAppId:AAI " -H "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k \
https://$AAI_RESOURCES_IP:8447/aai/v21/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/09cad94e-fbb8-4c70-9c4d-74ec75e97683 \
-d @aai-sample-data/nsi.json -i
CPS and CPS-TBDMT:
CPS:
- git clone "https://gerrit.onap.org/r/cps"
- cd cps/
- mvn clean install
- cd docker-compose/
- docker-compose up
...
Creating dataspace:
curl --location --user cpsuser:cpsr0cks! -H "Accept: application/json" -H "Content-Type: application/json" \
--request POST \
http://$CPS_IP:8080/cps/api/v1/dataspaces?dataspace-name=E2EDemo
Creating schema set:
ran-network.zip
curl --location --user cpsuser:cpsr0cks! \
--request POST \
http://$CPS_IP:8080/cps/api/v1/dataspaces/E2EDemo/schema-sets --form 'file=@"ran-network.zip"' --form 'schema-set-name="ran-network"'
Creating anchor:
curl --location --user cpsuser:cpsr0cks! --request POST \
http://$CPS_IP:8080/cps/api/v1/dataspaces/E2EDemo/anchors?schema-set-name=ran-network \
-d anchor-name=11
Uploading cps sample-payload:
payload-ran-network.json
curl --location --user cpsuser:cpsr0cks! --request POST \
http://$CPS_IP:8080/cps/api/v1/dataspaces/E2EDemo/anchors/11/nodes \
--header 'Content-Type: application/json' \
-d @payload-ran-network.json
ran-inventory-sample-data.json
curl --location --user cpsuser:cpsr0cks! --request POST \
http://$CPS_IP:8080/cps/api/v1/dataspaces/E2EDemo/anchors/ran-inventory-anchor/nodes \
--header 'Content-Type: application/json' \
-d @ran-inventory-sample-data.json ran-inventory-sample-data.json
Uploading tbdmt-templates:
...
If there is a new yang model, build the gnbsim-api with new yang model
Step 1: copy the new yang model to ~/ran-sim/hcsim-content/gnbsim/gnbsim-api/src/main/yang
Step 2: Go to directory ~/ran-sim/hcsim-content/gnbsim/gnbsim-api/
Step 3: Issue the build command "JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ mvn clean install -Dcheckstyle.skip"
For code changes in gnbsim-impl directory
Step 1: Do necessary code changes in gnbsim-impl
Step 2: Issue the build command "JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ mvn clean install -Dcheckstyle.skip"
Once the mvn build is done, build the docker image
Once the mvn build is done, build the docker image
- Go to directory ~/ran-sim/hcsim-content/gnbsim
- JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ mvn clean install -Dcheckstyle.skip
- Import the latest VES certificate into this directory gnbsim-distribution/
- Download certificate from VES url https://<ipAddress>30417/eventListener/v7
- cd gnbsim/gnbsim-distribution/
- keytool -import -noprompt -trustcacerts -alias dcae -file <certsfile downloaded from VES URL> -keystore jssecacerts -storepass changeit
- keytool -importkeystore -srckeystore jssecacerts -srcstoretype pkcs12 -srcalias dcae -destkeystore jssecacerts -deststoretype jks -deststorepass changeit -destalias dcae
- cp -r gnbsim-distribution/jssecacerts gnbsim-distribution/target/gnbsim-distribution-1.19.08-SNAPSHOT-hc/gnbsim-distribution-1.19.08-SNAPSHOT/
- cp -r gnbsim-distribution/honeycomb gnbsim-distribution/target/gnbsim-distribution-1.19.08-SNAPSHOT-hc/gnbsim-distribution-1.19.08-SNAPSHOT/
- cp -r gnbsim-distribution/Dockerfile gnbsim-distribution/target/gnbsim-distribution-1.19.08-SNAPSHOT-hc/gnbsim-distribution-1.19.08-SNAPSHOT/
- docker build -t gn gnbsim-distribution/target/gnbsim-distribution-1.19.08-SNAPSHOT-hc/gnbsim-distribution-1.19.08-SNAPSHOT/
Cross check the docker image
docker images | grep gn
...
2. Give chmod 777 to upload folder which will be created automatically in the home dir.
NOTE: Use sample data attached under CONFIGDB, AAI, RANSIM and CPS if E2E communication service is not done
Further References:
Issues faced during the RAN Simulator set up are documented in Setup related issues.