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
- Make sure the node where simulator installed can support ssh.
- 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.
- cp simulator.tar.gz to a special folder
- unzip simulator.tar.gz
- cd simulator
- 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 command: java -jar simulator-0.0.1-SNAPSHOT.jar >/dev/null &
Start by docker-compose(Updated in H release)
there is a packge:
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"
}'
11 Comments
Yukihiro Kishimoto
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
LUKAI
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
Yukihiro Kishimoto
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
Yukihiro Kishimoto
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
Nabraj Khatri
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?
Hanif Kukkalli
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
Rajendra Prasad Mishra
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.
Yukihiro Kishimoto
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
Hanif Kukkalli
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
Zhang Min
Hi Hanif Kukkalli,You can check from this link 5GC Instantiation and Modify Config flow through CDS.
Gülsüm Atıcı
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,