Introduction

In collaboration with The OpenAirInterfaceTM Software Alliance (OSA) and its partners, b<>com advanced connectivity lab develops some 5G core network functions. Current development mainly focus on NRF, AMF and SMF.
b<>com advanced connectivity labs is proud to provide on the web the cloud native APIs of these 5G core network functions. All the APIs are also available programmatically. Please read next sections for more details.
Our up to date development are based on 3GPP R15.2.0 release. References to 3GPP Technical Specifications are provided in the next sections.

For more details please contact Olivier Choisy and Michel Trefcon.

Recommandations for API use

Anyone is welcome to use the provided APIs.
Nevertheless for the convenience of any API user, we recommend to apply the following rules.
Any user must use the NF instances he·she has registered. NF instances with nfInstanceId value 02000000-cc86-44cf-aaa3-000000000200, 02010000-cc86-44cf-aaa3-000000000201, 02020000-cc86-44cf-aaa3-000000000202, 02030000-cc86-44cf-aaa3-000000000203, 03000000-cc86-44cf-aaa3-000000000300 and 03010000-cc86-44cf-aaa3-000000000301 are reserved and must not be updated.
To register your own NF instance you can:

  1. copy the NFProfile of an existing NF instance
  2. set a new nfInstanceId value (free online UUID generator) and change attribute values
  3. register
Once registered, you are free to update the newly registered NF instance.

b<>com contributions to OSA workshops

Software components

The major java frameworks we use :

Client side and server side source code is automatically generated from 3GPP OpenAPI files thanks to the OpenAPI Generator (https://openapi-generator.tech). Opentracing is enabled.

Common features

For any operation, the operation request is fully validated at server side before processing business logic. In case of validation error, a response is served with a ProblemDetails entity and related HTTP status code as based on 3GPP 5G specifications. A similar behavior is applied at client side on receipt of server response.

Opentracing

Opentracing is enabled in any service in order to trace any HTTP request between microservices.

Next steps

Next development steps include:

5G Network Repository Function

3GPP R15.2.0 NRF technical specification can be downloaded from this link 5G System; Network function repository services; Stage 3.

NNRF NFManagement service

Any API is available :

The API links
The NF heart-beat

Any NF other than NRF manages the heart-beat with the NRF in order to show it is still operative. The NRF specification allows the use of PUT or PATCH method for heart-beat. In our case, a NF alternatively uses PUT and PATCH requests for heart-beat. The time interval varies between 3mn to 5mn depending on the NF.
Heart-beat can be observed thanks to our online Jaeger UI. Press Find Traces button wait at least 3mn and press again this button in order to see the new heart-beat requests. Heart-beat at NRF side will be implemented later.

Request examples

NNRF NFDiscovery service

API fully available

The API links
Request examples

Oauth2 service

not available

Restrictions

NRF forward and redirection are not available.
NRF registration to another NRF is not available.

5G Access and Mobility Management Function

3GPP R15.2.0 AMF technical specification can be downloaded from this link 5G System; Access and Mobility Management Services; Stage 3.

Served response payload contains randomized values based on their type definitions. Business logic is not yet available.

NAMF Communication service

The NAMF Communication service automatically registers with the nnrf-nfm service when starting. Its NFType is AMF and its serviceName is namf-comm. It manages the NF heart-beat. Its NF profile can be downloaded from this link.

The API links

NAMF Event Exposure service

The NAMF Event Exposure service automatically registers with the NNRF-NFM service when starting. Its NFType is AMF and its serviceName is namf-evts. It manages the NF heart-beat. Its NF profile can be downloaded from this link.

The API links

NAMF Location service

The NAMF Location service automatically registers with the NNRF-NFM service when starting. Its NFType is AMF and its serviceName is namf-loc. It manages the NF heart-beat. Its NF profile can be downloaded from this link.

The API links

NAMF MT service

The NAMF MT service automatically registers with the NNRF-NFM service when starting. Its NFType is AMF and its serviceName is namf-mt. It manages the NF heart-beat. Its NF profile can be downloaded from this link.

The API links

5G Session Management Function

3GPP R15.2.0 SMF technical specification can be downloaded from this link 5G System; Session Management Services; Stage 3.

Served response payload contains randomized values based on their type definitions. Business logic is not yet available.

NSMF Event Exposure service

The NSMF Event Exposure service automatically registers with the NNRF-NFM service when starting. Its NFType is SMF and its serviceName is nsmf-event-exposure. It manages the NF heart-beat. Its NF profile can be downloaded from this link.

The API links

NSMF PDUSession service

The NSMF PDUSession service automatically registers with the NNRF-NFM service when starting. Its NFType is SMF and its serviceName is nsmf-pdusession. It manages the NF heart-beat. Its NF profile can be downloaded from this link.

The API links
Request examples

Many operations have two content types application/json and multipart/related. Depending on the context, the response content type can be application/json or multipart/related. For instance in case of error on receipt of a multipart/related request, the producer must serve the N1 and N2 parts in the error response. The following HTTP captures show some of these use cases.
These captures come from our integration tests of our in-house Nsmf_PDUSession service.

Metrics

Metrics are exposed for the following NF services:

Current metrics are of types Meter and Timer. There is one metric per type for any API operation. The format of the metrics is Prometheus text-based format. Of course, the exposed metrics can be consumed by a Prometheus server

Opentracing

Any HTTP request between NF is traced. Jaeger is our end-to-end distributed tracing solution (https://www.jaegertracing.io/). Please visit our online Jaeger UI.

Update history

June 17th, 2020

Adding Nsmf_PDUSession service request examples request examples.

June 2nd, 2020

Adding Nnrf_NFManagement GetNFInstances request example.

May 19th, 2020

Adding Health sections for each NF.

May 18th, 2020

Adding PATCH and DELETE subscription request examples related to Nnrf_NFManagement service.

May 14th, 2020

Adding subscription and notification request examples related to Nnrf_NFManagement service.

May 13th, 2020

Adding many request examples related to Nnrf_NFManagement service and Nnrf_Discovery service .

May 12th, 2020

Adding some Nnrf_NFManagement RegisterNFinstance request examples.

April 28th, 2020

The following features are now available:

Special thanks to Dinh Hoang Tran for his significant contribution.

August 19th, 2019

Upgrade to thorntail 2.5.0

July 19th, 2019

Expose metrics for any AMF service

July 5th, 2019

Add metric paragraph and links

Expose metrics for any NRF service

and any SMF service

GPP,