Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • The service name given for creating the policy must match with the service name in the request
  • The scope fields in the policies should match with the value in the resourceSharingLevel(non-shared/shared). Do modify the policy accordingly.
  • Check the case of the attributes with the OOF request with the attribute map (camel to snake and snake to camel) in config/slicing_config.yaml, if any mismatch found modify the attribute map accordingly.
  • You need to restart the OOF docker container once you updated the slicing_config.yaml, you can do it using the following steps,

    • Login to the worker VM where the OOF container is running. You can find the worker node by running (kubectl get pods -n onap -o wide | grep dev-oof)
    • Find the container using docker ps | grep optf-osdf
    • Restart the container using docker restart <container id>


  • CPS Configuration:

    Refer CPS Configuration to setup standalone CPS and configuration of OOF and CPS.

6. Core NF Simulator Setup

...

Refer ACTN Simulator User Guide to setup ACTN-simulator or follow the below steps to launch and initialize domain controllers,

Refer Transport Slicing Configuration and Operation Guidance for NextHop details of AN &CN

Step 1. Fetch the simulator docker image

...

Code Block
languagetext
titleesr_registration
linenumberstrue
collapsetrue
curl -k -X PUT "https://AAI:AAI@<worker-vmIp>:30233/aai/v23/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/ff9ef162-951d-4e14-9ce6-b4fa0adf896b" \
-H 'Accept: application/json' \
-H 'X-FromAppId: AAI' \
-H 'X-TransactionId: 1' \
-H 'Content-Type: application/json' \
-d '{
"thirdparty-sdnc-id":"ff9ef162-951d-4e14-9ce6-b4fa0adf896b",
    "location": "edge",
    "product-name": "TSDN",
	 "esr-system-info-list":{"esr-system-info":[{
"esr-system-info-id": "7c29b9df-feef-4fa7-b56d-3e39f5ef4a90",
"system-name": "sdnc2",
"vendor": "HUAWEI",
"type": "WAN",
"version": "v1.0",
"service-url": "http://<simulator-ip>:<simulator-port>",
"user-name": "onos",
"password": "rocks",
"system-type": "thirdparty_SDNC",
"protocol": "restconf"
}]}
}' 


E2E network slicing test(using resource occupancy details)

Before creating shared communication service for testing NSI/NSSI selection using resource occupancy details, below manual configurations must be done:

Deployment Prerequisite/dependencies

  1. VES, PM mapper and DataFile Collector, dcae-mongodb, Datalake Extraction Service(DES) and Datalake-feeder services should be running.

Datalake Extraction Service(DES):


  1. Build presto image and push the images to a exsting repository
    1. Download and extract presto package version v0.0.2: presto-v0.0.2.tar.gz
    2. docker build -t presto:v0.0.2 .
    3. docker tag presto:v0.0.2 registry.baidubce.com/onap/presto:v0.0.2
    4. docker push registry.baidubce.com/onap/presto:v0.0.2
    5. Note: Replace the repository path with your own repository.
  2. Install presto service
    1. kubectl -n onap run dl-presto --image=presto:v0.0.2 --env="MongoDB_IP=dcae-mongohost" --env="MongoDB_PORT=27017" --image-pull-policy=IfNotPresent
    2. kubectl expose pod dl-presto --name=dl-presto --port=9000 --target-port=9000 --type=NodePort -n onap
  3. Login to the dev-dcae-datalake-postgres-primary container and execute following sql commands:

    1. Code Block
      languagetext
      titledatalake-db init_data
      linenumberstrue
      collapsetrue
      delete from map_db_topic;
      delete from map_db_design;
      delete from db;
      delete from data_exposure ;
      insert into db (id, db_type_id, enabled, encrypt, name,host,port,database_name) values (2, 'MONGO', true, true, 'MongoDB 1','dcae-mongohost',27017,'datalake');
      insert into map_db_topic(db_id,topic_id) select db.id, topic.id from db_type, db, topic where db.db_type_id=db_type.id and db_type.tool=false;
      update kafka set secure=true, pass='admin_secret' where id=1;
      insert into topic_name (id) values ('unauthenticated.PERFORMANCE_MEASUREMENTS');
      insert into topic(id, topic_name_id,correlate_cleared_message,enabled, message_id_path,data_format) values (6, 'unauthenticated.PERFORMANCE_MEASUREMENTS',true,true,'/event/commonEventHeader','JSON');
      insert into data_exposure(id, note,sql_template,db_id) values ('pm_data','pm_message', 'SELECT json_format(CAST( event.perf3gppFields.measDataCollection.measInfoList[1].measTypes.sMeasTypesList AS JSON)) AS sMeasTypesList, json_format(CAST( event.perf3gppFields.measDataCollection.measInfoList[1].measValuesList AS JSON)) AS measValuesList FROM unauthenticatedperformancemeasurements WHERE any_match(event.perf3gppFields.measDataCollection.measInfoList[1].measTypes.sMeasTypesList, e -> e like ''${snssai}'') AND event.commonEventHeader.startEpochMicrosec >= ${time}',2); //db_id refers to mongodb in table db, this template filters PM data based on snssai and startEpochMicrosec;


    2. Load sample data in mongo db(refer DCAE mongodb section)

    3. Execute below request to verify: curl --header "Content-type: application/json" --request POST --data '{"snssai":"SM.PrbUsedDl.01-910EF6","time":"1649853949111"}' http://dl-des:1681/datalake/v1/exposure/pm_data -i


Datalake Feeder:

  1. Restart datalake-feeder container after loading above configurations in the DB.

POLICY :

     The following policies are to be included for the OOF optimisation based on resource occupancy . Refer Optimization Policy Creation Steps for optimization policy creation and deployment steps.

View file
nameresource-occupancy-policies.zip
height150

RANSIM :

  1. RANSIM and honeycomb containers should be running
  2. You can update/add/delete data(throughput, PRBs, maxNoConns etc) in mariadb container(credentials in docker-compose file) if required before generation of PM data.
  3. RANSIM must contain 'plmninfo' of the service which is to be shared with other services. Then generate closed-loop PM data which will be stored in mongo-db by datalake-feeder.
  4. Sample closed loop data: closed-loop-data.txt
  5. Run the following command to generate Closed Loop PM data:
    1. curl -X POST http://localhost:8081/ransim/api/generateClosedLoopPmData -i
  6. Run the following command to stop Closed Loop PM data(When enough PM data is generated): 
    1. curl -X GET http://localhost:8081/ransim/api/stopClosedLoopPmData -i
  7. Access the DU honeycomb containers to view the logs:
    1. docker container logs -f 110
  8. Check the folder(where SFTP setup is done) to view the generated PM data files.
  9. Access VES, data file collector, dmaap-dr, PM mapper and slice-analysis logs to verify.


DCAE-MONGO DB:

  1. Login to dcae-mongodb container and execute following commands to check if PM data was saved in DB:
    1. mongo
    2. use datalake
    3. db.unauthenticatedperformancemeasurements.find({})
    4. to load sample data:


Code Block
languagetext
titlesample mongodb data
linenumberstrue
collapsetrue
db.unauthenticatedperformancemeasurements.insert({
   "event":{
      "commonEventHeader":{
         "domain":"perf3gpp",
         "eventId":"95e79282-2876-4000-8192-b514ad7f399a",
         "sequence":0,
         "eventName":"perf3gpp_RnNode-Slicing_pmMeasResult",
         "sourceName":"220",
         "reportingEntityName":"",
         "priority":"Normal",
         "startEpochMicrosec":1651216762867,
         "lastEpochMicrosec":1651216762868,
         "version":"4.0",
         "vesEventListenerVersion":"7.1",
         "timeZoneOffset":"UTC+05:30"
      },
      "perf3gppFields":{
         "perf3gppFieldsVersion":"1.0",
         "measDataCollection":{
            "granularityPeriod":900,
            "measuredEntityUserName":"",
            "measuredEntityDn":"220",
            "measuredEntitySoftwareVersion":"r0.1",
            "measInfoList":[
               {
                  "measInfoId":{
                     "sMeasInfoId":"measInfoIsVal"
                  },
                  "measTypes":{
                     "sMeasTypesList":[
                        "SM.PrbUsedDl.01-3C5C90",
                        "SM.PrbUsedUl.01-3C5C90"
                     ]
                  },
                  "measValuesList":[
                     {
                        "measObjInstId":"15155",
                        "suspectFlag":"false",
                        "measResults":[
                           {
                              "p":1,
                              "sValue":"5"
                           },
                           {
                              "p":2,
                              "sValue":"7"
                           }
                        ]
                     },
                     {
                        "measObjInstId":"15174",
                        "suspectFlag":"false",
                        "measResults":[
                           {
                              "p":1,
                              "sValue":"6"
                           },
                           {
                              "p":2,
                              "sValue":"7"
                           }
                        ]
                     },
                     {
                        "measObjInstId":"15175",
                        "suspectFlag":"false",
                        "measResults":[
                           {
                              "p":1,
                              "sValue":"15"
                           },
                           {
                              "p":2,
                              "sValue":"4"
                           }
                        ]
                     },
                     {
                        "measObjInstId":"15176",
                        "suspectFlag":"false",
                        "measResults":[
                           {
                              "p":1,
                              "sValue":"5"
                           },
                           {
                              "p":2,
                              "sValue":"14"
                           }
                        ]
                     },
                     {
                        "measObjInstId":"15825",
                        "suspectFlag":"false",
                        "measResults":[
                           {
                              "p":1,
                              "sValue":"0"
                           },
                           {
                              "p":2,
                              "sValue":"14"
                           }
                        ]
                     }
                  ]
               }
            ]
         }
      }
   }
})