To validate the BP, a 5GC emulator is provided, which consists of a 5G CP and UP.
The 5G CP is based on the Network Exposure Function (NEF) implemented by openNESS ngc
The 5G UP is an iPerf instance running in the client mode, controller by the 5G CP
Offloading call flow
The offloading call flow is as follows.
- A UE (not shown in the figure) sends a DNS request via the 5G user plane, which is detected by the Local DNS (LDNS) at the Edge GW.
- A new offloading rule is injected to the Edge Connector by the Edge GW.
- AF function hosted on the Edge Connector invokes the TrafficInfluence API, offered by the 5G CP.
- A DNS response is composed and sent by the LDNS, which includes an IP pointing to an Edge server.
- 5G CP configures the 5G UP with standardized 5G signaling related to offloading.
- Traffic from the UE is offloaded to the Edge server.
Setup guide
- Step 1, deploy edge GW and on-board iPerf (server) following the steps described in Installation Documentation.
Step 2, run ngc/start.sh to launch the 5G CP (NEF), Edge GW+server and AF. A DNS request will be sent hereafter.
Step 3, run ngc/test/Post.sh to start traffic offloading or ngc/test/Delete.sh to stop offloading.
Test results
- Non-offloading case
The 5GC prints "No data offloaded..." when offloading is not enabled.
- Offloading case
The 5GC prints "Offloading in progress", while the Edge GW prints the mount of data it receives in realtime.
Unit Test
NEF
prerequisite - ginkgo
- cd 5GCEmulator/ngc && make build
- make test-unit-nef
edgdnscli (configures LDNS)
prerequisite - ginkgo
- cd edgecontroller && make build-dnscli
- make test-dnscli
Setup Test-Env
Enter test directory:
- cd ./5g-mec-cloud-gaming
Execute the versify.sh script to setup the test environment:
versify.sh script first installs Golang and ginkgo,then installs docker and docker-compose.
Unit Test
This part is also included in versify.sh script. The test commands for the three submodules are as follows:
- make -C 5GCEmulator/ngc build && make -C 5GCEmulator/ngc test-unit-nef
- make -C edgenode networkedge
- make -C edgecontroller build-dnscli && make -C edgecontroller test-dnscli
Test results
5GCEmulator
EdgeNode
EdgeController
CI/CD logs
Pushed to the Nexus server.