Skip to content

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 qosStatus becomes AVAILABLE.
  • Location retrieval returns an area and lastLocationTime.
  • Device Traffic Influence reaches active for 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:

docker compose -f docker-compose.yaml -f eurecom-compose.override.yaml down

All options

The support matrix details accepted device identifiers, profile handling, location limits, callback constraints and unsupported inputs.