Service Based Interface Development in 5G CN: 5 OAI Workshop
Service Based Interface Development in 5G CN: 5 OAI Workshop
Luhan Wang
Beijing Univ. of Posts & Telec.
Beijing, 6. 23, 2018
1.1 Service based Architecture Overview 2
• Creating a Resource
- Procedures that allow an NF service consumer to create a new resource at the NF
service producer shall be specified to either use the HTTP POST method, or the
HTTP PUT method with procedures.
NF service NF service
consumer producer
1. GET …/resource?query_parameter=value ()
2. 200 OK (ResourceRepresentation)
• Updating a Resource
- Procedures that allow a service consumer NF (client) to update information stored
at the server by means of a complete replacement shall be specified to use the
HTTP PUT method to replace the current representation of a resource with a new
representation.
NF service NF service
consumer producer
• Deleting a Resource
- Procedures that allow a service consumer NF (client) to delete a resource from the
server shall be specified to use the HTTP DELETE method
NF service NF service
consumer producer
1. DELETE …/resource ()
2. 204 No Content ()
The Service Based Architecture shall support the NF Service Framework that enable the use of NF
services.
• Routing Mechanisms
- Route HTTP messages between Network Functions, routing within a PLMN,
routing across PLMN, Message forwarding.
• Server-Initiated Communication
- Subscribe-Notify service operations require bidirectional communication
between the NFs when the server needs to initiate communication with the client.
- NF service consumer acts as an HTTP client and NF service producer acts as an
HTTP server when NF service consumer subscribes to NF service producer’s
notifications;
- NF service producer acts as an HTTP client and NF service consumer acts as an
HTTP server when NF service producer delivers notifications to NF service
consumer.
3.3 General Functionalities in Service Based Architecture 12
• Load Control
- NRF may provide the NF instance and/or the NF service instance information with the NF capacity
information advertised during NF Service Registration and/or NF Service Update
• Overload Control
- Congestion control between two endpoints is provided by TCP layer and HTTP2 layer.
- An NF Service Producer may mitigate a potential overload status by sending the NF Service
Consumer the following HTTP status codes as a response to requests received during, or close to
reaching, an overload situation:
- 503 Service Unavailable;
- 429 Too Many Requests;
- 307 Temporary Redirect
• The Network Function (NF) Repository Function (NRF) is the network entity, which enables service-
based architecture in the 5G Core Network (5GC). It supports the following functionality:
- Maintains the NF profile of available NF instances and their supported services;
- Allows other NF instances to subscribe to, and get notified about, the registration in NRF of new NF
instances of a given type;
- Supports service discovery function. It receives NF Discovery Requests from NF instances, and
provides the information of the available NF instances fulfilling certain criteria (e.g., supporting a
given service). N27
Nnrf
HPLMN VPLMN
Network
• Allows a Network Function Instance to discover services
Function offered by other Network Function Instances, by querying
Repository Nnrf_NFDiscovery the local NRF.
NFRegister Operation:
NF Service
NRF
Consumer
The NF Service Consumer shall send a PUT request to the resource URI representing the NF Instance. The URI
is determined by the NF Instance. The variable {nfInstanceID} represents an identifier, provided by the NF
Service Consumer, that shall be globally unique inside the PLMN of the NRF where the NF is being registered.
The format of the NF Instance ID shall be a Universally Unique Identifier (UUID)
4.4 Network Function Repository Services 16
NFDiscover:
It provides to the NF service consumer the IP address(es) or FQDN of the NF Instance(s) or NF Service(s)
matching certain input criteria.
NFDiscover Operation:
NF Service
NRF
Consumer
2. 200 OK (SearchResult)
1. The NF Service Consumer shall send an HTTP GET request to the resource URI "nf-instances" collection
resource.
2. On success, "200 OK" shall be returned, contain a validity period, during which the search result can be
cached by the NF Service Consumer, and an array of NF profile objects, that satisfy the search filter criteria (e.g.,
all NF Instances offering a certain NF Service name). If the NF Service Consumer is not allowed to discover the
NF services for the requested NF type provided in the query parameters, the NRF shall return "403 Forbidden"
response.
4.5 Network Function Repository Services 17
OAuth2 Authorization:
The NRF offers an OAuth2 authorization service, following the "Client Credentials" authorization grant. It
exposes a "Token Endpoint" where the Access Token Request service can be requested by NF Service
Consumers.
Access Token Request:
NF Service
NRF
Consumer
1. The NF Service Consumer shall send a POST request to the "Token Endpoint”, The "Token Endpoint" URI shall
be:
{nrfApiRoot}/oauth2/token
2. On success, "200 OK" shall be returned. If the access token request fails at the NRF, the NRF shall return "400
Bad Request" status code, including a JSON object in the response payload, that includes details about the
specific error that occurred.
5.1 Implementation of HTTP/2 in 5GCore 18
Client
NF NF
NF Client Client
NF
Logicals Logicals
NF NF
Server Server
NF-1 NF-1
5.3 Implementation of HTTP/2 in 5GCore 20
SGi N1 N2 N4
S1-U
SGW PGW Internet
UE (R)AN N3 UPF N6 DN
N9
※ Steps
Step 1. Split of MME into Step 2. Split of SPGW into Step 3. Split of HSS to
AMF and SMF UPF and SMF UDM and AUSF
SMF
5G UDM
MME-1 MME-2 (X-GW-C+MME/ESM) (Cassandra DB)
5G AMF 5G SMF UP Abstraction 5G AUSF 5G PCF
Linux (HSS) (PCRF)
OF REST
N1 tools
N2 N4
N4 MME-1 5G AMF 5G SMF MME-2
N3 N1
UE RAN UPF ...
...
UPF
N2 N4
... N3
... UE RAN UPF
Switch
21
MME Splitting Principles
call
Procedure
Thread A Thread B Thread C
Return value
Function A
• Change synchronous calls call
Belongs to Task B
Belongs to Task A
Container B
Thread Messages
Container A
App B Open API
Application
• Change multiple threads
App A
Thread B
22
Current Status
Develop from Scratch
28th June, 2nd Meeting
SBA skeleton Design
MicroServices approach Design
Thank you!
wluhan@bupt.edu.cn