Step-by-Step 5G Network Slicing Using ONAP Guilin+

Updated: Mar 25

R. P. Mishra & Yogendra Pal


With the help of several ONAP community members, such as Aniello and Krishna, we have been able to successfully create a 5G Slice on ONAP Guilin+ release. You can follow the steps below or join our End-to-End 5G Network Slicing technical meetup on Monday March-29 at 7AM PDT.


Below are the wiki links that we followed for creating the setup.


https://wiki.onap.org/display/DW/Template+Design+for+Option2

https://wiki.onap.org/display/DW/Setup+related+issues

https://wiki.onap.org/display/DW/Install+Minimum+Scope+for+Option+1

https://wiki.onap.org/display/DW/External+Core+NSSMF+Simulator+Use+Guide

https://wiki.onap.org/display/DW/External+RAN+NSSMF

https://wiki.onap.org/pages/viewpage.action?pageId=92996521

https://wiki.onap.org/display/DW/Manual+Configuration+for+5G+Network+Slicing


In addition a few additional things to note.


- The above documentation does not work on Guilin branch and it won't work on master either. Besides the image changes described in above documentation we had to do the following changes.

a. We used the master branch from 19th March 2021

b. Downgraded the following images

Image: nexus3.onap.org:10001/onap/optf-osdf:3.0.2

Image: nexus3.onap.org:10001/onap/optf-has:2.1.2


- The above documentation has a mention but was not very clear. We added all the ARs to AAI, otherwise distribution will fail.


curl --user AAI:AAI -X PUT -H "X-FromAppId:AAI" -H "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k -d '{ "model-invariant-id": "bb9c30d4-552b-4231-a172-c24967e8ee24", "model-type": "resource", "model-vers": { "model-ver": [ { "model-version-id": "f10a33da-114e-41b6-89b2-851c31a1e0dc", "model-name": "Slice_AR", "model-version": "1.0" } ] } }' "https://10.43.189.167:8443/aai/v21/service-design-and-creation/models/model/bb9c30d4-552b-4231-a172-c24967e8ee24


curl --user AAI:AAI -X PUT -H "X-FromAppId:AAI" -H "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k -d '{ "model-invariant-id": "43515a2b-5aa7-4544-9c40-f2ce693b99bd", "model-type": "service", "model-vers": { "model-ver": [ { "model-version-id": "81d13710-811f-47f7-9871-affc666ba11a", "model-name": "EmbbNst_O2", "model-version": "1.0" } ] } }' "https://10.43.189.167:8443/aai/v21/service-design-and-creation/models/model/43515a2b-5aa7-4544-9c40-f2ce693b99bd" | python -m json.tool


curl --user AAI:AAI -X PUT -H "X-FromAppId:AAI" -H "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k -d '{ "model-invariant-id": "7a1ffb3c-7bd0-415c-b3d8-cf6170de805e", "model-type": "resource", "model-vers": { "model-ver": [ { "model-version-id": "e551c7cd-9270-4d15-b1f8-9634e0ab0ffe", "model-name": "EmbbAn_NF_AR", "model-version": "1.0" } ] } }' "https://10.43.189.167:8443/aai/v21/service-design-and-creation/models/model/7a1ffb3c-7bd0-415c-b3d8-cf6170de805e" | python -m json.tool


curl --user AAI:AAI -X PUT -H "X-FromAppId:AAI" -H "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k -d '{ "model-invariant-id": "29620dfe-cffc-4959-93cc-314279d17f96", "model-type": "resource", "model-vers": { "model-ver": [ { "model-version-id": "529f5a61-7a8c-4b8b-b591-0bba72f9fd2e", "model-name": "Tn_BH_AR", "model-version": "1.0" } ] } }' "https://10.43.189.167:8443/aai/v21/service-design-and-creation/models/model/29620dfe-cffc-4959-93cc-314279d17f96" | python -m json.tool


- We needed to follow a specific order to push policies, here is how we did it.


python3 policy_utils.py create_policy_types policy_types

python3 policy_utils.py generate_nsi_policies EmbbNst_O2

python3 policy_utils.py create_and_push_policies gen_nsi_policies

python3 policy_utils.py generate_nssi_policies EmbbAn_NF minimize latency

python3 policy_utils.py create_and_push_policies gen_nssi_policies

python3 policy_utils.py generate_nssi_policies Tn_ONAP_internal_BH minimize latency

python3 policy_utils.py create_and_push_policies gen_nssi_policies

python3 policy_utils.py generate_nssi_policies EmbbCn_External minimize latency

python3 policy_utils.py create_and_push_policies gen_nssi_policies


- For core simulator, the vendor name should match the one passed in the SDC templates, here is what worked for us.


"esr-system-info": [

{

"esr-system-info-id": "nssmf-an-01",

"type": "an",

"vendor": "huawei",

"user-name": "admin",

"password": "123456",

"system-type": "thirdparty-sdnc",

"ssl-cacert": "test.ca",

"ip-address": "192.168.122.198",

"port": "8443",

"resource-version": "1616417615150"

}

]


Please join the technical meetup mentioned above or contact us to get tips on how to replicate this setup in your lab.

401 views0 comments