1. Description

The simulator exposes standard NSSMF northbound api for 5G network slicing use case. Including allocate, deallocate, activate, deactivate etc. this simulator api exposed only support https.

External Core NSSMF Simulator can be found in integration project. (Created in H release.)

Repo location: https://gerrit.onap.org/r/admin/repos/integration/simulators/core-nssmf-simulator (Created in H release.)


2. Architecture

The high-level architecture of the simulator and its interface to ONAP is shown below.  

3. Precondition

  1. Make sure the node where simulator installed can support ssh.  
  2. jdk 1.8 or higher is also required. 

4. Installation Steps:

       There are two ways to run Core NSSMF simulator. One is to start via jar package. The other is to start via docker-compose.

    Start by jar package

        there is a packge: simulator.tar.gz below need to be downloaded. 

        simulator.tar.gz


  1. cp simulator.tar.gz to a special folder
  2.  unzip simulator.tar.gz
  3. cd simulator
  4. modify application.properties

          server.port=11111: the value you can modify as you want but not used in this node,

          #the values below, please keep them default.

          notifyurl=http://192.168.235.110:30472/v1/pm/notification

          ftppath=sftp://root:oom@192.168.235.110:22/home/ubuntu/dcae/PM.tar.gz

          fixeddelay=900000

          filepath=/home/ubuntu/dcae

          amffilepath=/home/ubuntu/dcae/AMF.xml.gz

          upffilepath=/home/ubuntu/dcae/UPF.xml.gz 

      5. run the commandjava -jar simulator-0.0.1-SNAPSHOT.jar >/dev/null &

    Start by docker-compose(Updated in H release)

there is a packge:

cn-nssmf-simulator-docker-compose.tar.gz

1. Extract the downloaded cn-nssmf-simulator-docker-compose.tar.gz

tar xf cn-nssmf-simulator-docker-compose.tar.gz -C .
cd cn-nssmf-simulator-docker-compose

2. modify application.properties

# vi application.properties
server.port=11111
notifyurl=http://192.168.235.25:30472/v1/pm/notification
ftppath=sftp://root:oom@192.168.235.25:22/home/ubuntu/dcae/PM.tar.gz
fixeddelay=900000
#Configure the output files generated in docker.
filepath=/app/dcae
amffilepath=/app/dcae/AMF.xml.gz
upffilepath=/app/dcae/UPF.xml.gz

3. modify docker-compose.yml

# vi docker-compose.yml
version: '3'
services:
cn-simulator-docker-compose:
image: openjdk:8-jre-slim
container_name: cn-simulator-test-1
ports:
- "11111:11111"
restart: always
# mount the cn-nssmf-simulator-docker-compose directory of the host machine to the /app directory of the container
# If you need to modify the simulator's configuration file application.properties later,
# you can directly modify the host's cn-nssmf-simulator-docker-compose/application.properties to synchronize to the container
volumes:
- ./:/app
working_dir: /app
entrypoint: java -jar simulator-0.0.1-SNAPSHOT.jar


4. start up the application by running " docker-compose up "


5. Register sndc info in AAI-ESR-GUI:

K8S='172.19.0.50' # depned on your k8s
THIRDPARTY_SDNC_ID='12345' # dont' care, anyting ok
ESR_SYSTEM_INFO_ID='12345' # dont' care, anyting ok
VENDER='HW' # only HW
TYPE='cn' # only cn
SIM_IP='172.19.0.11' # depned on your sim

curl -k -X PUT "https://AAI:AAI@${K8S}:30233/aai/v19/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/${THIRDPARTY_SDNC_ID}/esr-system-info-list/esr-system-info/${ESR_SYSTEM_INFO_ID}" \
-H 'Accept: application/json' \
-H 'X-FromAppId: AAI' \
-H 'X-TransactionId: 1' \
-H 'Content-Type: application/json' \
-d '{
"system-name": "E2E",
"vendor": "${VENDER}",
"type": "${TYPE}",
"service-url": "",
"user-name": "",
"password": "",
"system-type": "thirdparty_SDNC",
"ip-address": "${SIM_IP}",
"port": "11111"
}'

NSMF-NSSMF API Prososal:




  • No labels

11 Comments

  1. Hi Chen,


    Testing the simulator showed that only allocationNSSI and getNSSI were working as the same as the proposal.

    When to implement the entire API?
    I am looking forward to that.


    Yukihiro Kishsimoto


    1. Hi, Yukihiro Kishsimoto,

      In fact, the simulator realized all the interfaces, but what you note that when you use the simulator, all the interfaces are not independent and have relationship with each other, For example: if you want to do the deallocate operation, you must make sure that the slice has been allocated. and the information you send to the deallocate interface based on the data generated in allocate operation. In this case, the delete operation can be successfully executed. the same principle also applies to other interfaces, my understanding is that you may operated these interfaces separately, and didn't think about the relationship between each other.


      Kai

  2. Hi, Lukai

    Thanks for your kindly reply. 

    I understand that deallocate, terminate are able to execute after activating NSSI.
    but creation does not work. I attached the whole result of my test.
    Would you give me some advice to able to test?


    Yukihiro Kishisomto

  3. Hi, Lukai

    The API found in the simulator is shown below. I think there are mistakes in the simulator or proposal.

    Can you upload the latest materials when you have time?

    nSSIChangeNotify {[/api/rest/securityManagement/v1/oauth/token],methods=[POST]}
    modifyNSSI {[/api/rest/provMns/v1/NSS/SliceProfiles/{sliceProfileId}],methods=[PUT]}
    getNsstIds() {[/api/rest/provMns/v1/nsstIds],methods=[GET]}
    modifyNSSIbyId {[/api/rest/provMns/v1/NSS/nssi/{nssiId}],methods=[PUT]}
    activateNSSI {[/api/rest/provMns/v1/NSS/{snssai}/activation],methods=[PUT]}
    deactivateNSSI {[/api/rest/provMns/v1/NSS/{snssai}/deactivation],methods=[PUT]}
    getJobStatus {[/api/rest/provMns/v1/NSS/jobs/{jobId}],methods=[GET]}
    getJobStatus() {[/api/rest/provMns/v1/jobs],methods=[GET]}
    nSSIChangeNotify {[/api/rest/provMns/v1/NSS/nssi/notification],methods=[POST]}
    getSnssaiIds() {[/api/rest/provMns/v1/snssaiIds],methods=[GET]}
    getActivatedSlices() {[/api/rest/provMns/v1/activatedSlices],methods=[GET]}
    createPM() {[/api/rest/provMns/v1/createPM],methods=[GET]}
    getNSSI {[/api/rest/provMns/v1/NSS/SliceProfiles/{id}],methods=[GET]}
    getSliceProfileIds() {[/api/rest/provMns/v1/sliceProfileIds],methods=[GET]}
    terminateNSSI {[/api/rest/provMns/v1/NSS/nssi/{nssiId}],methods=[DELETE]}
    deallocateNSSI {[/api/rest/provMns/v1/NSS/SliceProfiles/{sliceProfileId}],methods=[DELETE]}
    allocateNSSI {[/api/rest/provMns/v1/NSS/SliceProfiles],methods=[POST]}
    getNSSIbyId {[/api/rest/provMns/v1/NSS/nssi/{id}],methods=[GET]}
    getNssiIds() {[/api/rest/provMns/v1/nssiIds],methods=[GET]}

    Yukihiro kishimoto

  4. Chuanyu Chen LUKAI

    where do i find the source code for this simulator?

    and also is this very specific for Core? how about RAN and TRansport?

  5. Chuanyu Chen Yukihiro Kishimoto

    Where do I find the below mentioned AMF.xml.gz and UPF.xml.gz files which are used in installation?

    amffilepath=/home/ubuntu/dcae/AMF.xml.gz

    upffilepath=/home/ubuntu/dcae/UPF.xml.gz

    1. I have the same question. Where can we find the two zip files for AMF and UPF ? It is not there in the simulator.tar.gz mentioned above.

      Are these not needed ?

      I am testing it on the Guilin+ release of ONAP.

  6. Hanif Kukkalli

    Hi,

    I suppose that those pm files or LCM didn't implement in Frankfurt but in Guilin.
    https://wiki.onap.org/display/DW/Core-NF-Simulator
    https://wiki.onap.org/display/DW/Core+NF+Simulator+setup

    Yukihiro kishimoto

    1. Hi Yukihiro Kishimoto ,

      I see the links, but I do not see the installation guide or the files I was looking for in Guilin either.

      I see the helm charts for AMF, SMF, UPF, but I don't think they are the files for the NSSMF Simulator.

      Is there any completed page for installation of the setup or that has yet to be written?

      Kind Regards,
      Hanif

  7. Dear Zhang Min,  Yukihiro Kishimoto

    I want to be sure that is  this  url http://192.168.235.25:30472 is  xdcae-hv-ves-collector  or xdcae-hv-ves-collector service url ?

    notifyurl=http://192.168.235.25:30472/v1/pm/notification
    ftppath=sftp://root:oom@192.168.235.25:22/home/ubuntu/dcae/PM.tar.gz


    Thanks,