EURECOM NEF & Core Simulator¶
Connect OpenOP Release 2 to the EURECOM open-exposure NEF and CoreSim through the oai adapter. This combination exercises QoD sessions, geographic location and device Traffic Influence for a simulated IPv4 device.
Before you start¶
Before connecting the NEF to OpenOP, prepare:
- Git, Docker and Docker Compose to download and run the EURECOM stack.
- An OpenOP Release 2 deployment with network connectivity from SRM to the NEF.
- An HTTP endpoint reachable by the NEF, to use as the QoD/TI
notification_url.
For the automated setup used by the release tests, follow Run the end-to-end tests.
Steps¶
1. Get the NEF/CoreSim configuration¶
Get the EURECOM deployment configuration used as the basis of the release lab:
git clone https://gitlab.eurecom.fr/open-exposure/nef/deployment.git
cd deployment
git checkout 888673aa2dd32a8e3bf1357f424ebc0ca7cbfb5e
cd nef-coresim-compose
Download eurecom-compose.override.yaml into nef-coresim-compose, the directory you are now in. It pins the required service images to the versions listed in the release provider manifest and defines their startup dependencies. Optional services outside this NEF scenario are disabled by default.
2. Configure and start the simulator¶
In config/coreSimulator.yaml, check the following fields under simulationProfile. Preserve the existing PLMN, DNN and slice settings when adapting the example:
simulationProfile:
numOfUe: 1
numOfgNB: 4
baseLat: 43.6144
baseLon: 7.0731
cellSpacing: 1000
posMethod: "UL_TDOA"
Use qos-e, defined in config/asSessionWithQos.yaml, for the first QoD request.
Start the stack using both Compose files and check that its services are running:
docker compose -f docker-compose.yaml -f eurecom-compose.override.yaml up -d
docker compose -f docker-compose.yaml -f eurecom-compose.override.yaml ps
Start the simulation through the CoreSim management API on host port 8081, then follow its logs:
curl --fail-with-body -sS http://localhost:8081/core-simulator/v1/start
docker compose -f docker-compose.yaml -f eurecom-compose.override.yaml logs --follow core-simulator
The start request should return Status: STARTED. Wait for a PDU Session log containing the UE IPv4 address and record it for the network API requests. Press Ctrl+C to leave the log stream.
3. Make the NEF reachable from SRM¶
For a local kind platform on Docker network kind, attach the NEF ingress container to that network if it is not already connected, then print its URL:
docker network connect kind ingress-controller
docker inspect ingress-controller \
--format='http://{{(index .NetworkSettings.Networks "kind").IPAddress}}'
Use the printed URL as the OAI control path's base_url in the next step. On other clusters, use a NEF ingress URL reachable from the SRM Pod.
4. Configure the unified bootstrap¶
Download the OpenOP Helm values example eurecom.values.yaml into your Release 2 Helm checkout. It includes a local Kubernetes workload connection, a NEF connection through oai, and bindings for QoD, location and Traffic Influence. Adapt these values:
| Setting | Value for this deployment |
|---|---|
Kubernetes endpoint_host |
IPv4 address clients use to reach application NodePorts |
OAI base_url |
NEF URL obtained in step 3 |
scs_as_id |
af for this example |
notification_url |
NEF-reachable HTTP receiver prepared earlier |
qos_profiles |
Allowed QoD profiles; use [qos-e] for this example |
The file is a complete example for a kind platform. If you already defined zones, merge the NEF connection and network capabilities into your full bootstrap, preserving existing refs and settings.
Apply the adapted file last, after your platform values. For kind:
helm upgrade --install oop-platform ./oop-platform-chart \
--kube-context PLATFORM_CONTEXT \
-n oop --create-namespace \
-f environments/kind/values.yaml \
-f eurecom.values.yaml
When upgrading, use the existing platform release name, namespace and context, and retain all required platform values files. See Define zones for the complete-bootstrap and seeding rules.
Check it worked¶
Follow Use network capabilities with an authenticated App Provider and the UE IPv4 recorded in step 2. Confirm that:
- The QoD session's
qosStatusbecomesAVAILABLE. - Location retrieval returns an
areaandlastLocationTime. - Device Traffic Influence reaches
activefor the deployed application.
For automated checks, including provider resource removal, see Run the end-to-end tests.
Clean up¶
Complete the tutorial's cleanup steps for any resources created during the exercise. Then stop this provider stack from nef-coresim-compose:
All options¶
The support matrix details accepted device identifiers, profile handling, location limits, callback constraints and unsupported inputs.