This disclosure generally relates to systems and methods for wireless communications and, more particularly, to enabling a query language application programming interface for data query and modification services for 6G service-based architecture.
Wireless devices are becoming widely prevalent and are increasingly using wireless channels. The 3rd Generation Partnership Program (3GPP) is developing one or more standards for wireless communications.
The following description and the drawings sufficiently illustrate specific embodiments to enable those skilled in the art to practice them. Other embodiments may incorporate structural, logical, electrical, process, algorithm, and other changes. Portions and features of some embodiments may be included in, or substituted for, those of other embodiments. Embodiments set forth in the claims encompass all available equivalents of those claims.
Wireless devices may operate as defined by technical standards. For cellular telecommunications, the 3rd Generation Partnership Program (3GPP) define communication techniques, including for communications among core network functions. For example, the service-based architecture of the 5G core network adopts the REST paradigm for communications among core network functions, which makes the creation and deployment of distributed services flexible and scalable.
However, for data query (e.g., retrieve data) and modification (e.g., add, update, delete data) services, the following challenges exist:
Over-fetching: A NF service consumer cannot specify the exact data it needs in a query. The response returns data which may result in performance, efficiency and security issues. For example:
Consumer NF sends a REST request to UDM to Retrieve UeContextInSmfData. The response returns the whole structured data rather than the exact data that consumer NF needs.
As a security issue, If an NSSAAF wants to know the serving AMF of a UE, it performs Nudm_UECM_Get operation and is presented with UE's entire AMF registration resource representation in UDM. This can result in potential privacy violation.
Under-fetching: A NF service consumer cannot fetch all data by a single request. For example, to obtain the subscription data during a registration procedure, AMF needs to send multiple requests to UDM to fetch all the needed data.
The 6G system may integrate communication, computing, and data services into its scope. The 6G system needs to consider new API technology in SBA (service-based architecture) to address the above issues for data query and manipulation services.
GraphQL is a query language for the SBA application programming interface (API) and provides a more efficient interface between clients and servers for querying and manipulating data. The GraphQL technology can be adopted as new API technology in 6G SBA. At the same time, because not all NF APIs will benefit in the same way from GraphQL, REST and GraphQL can co-exist. The key features of GraphQL include:
Transport-layer agnostic: A GraphQL server potentially could work based on protocols other than HTTP, like WebSockets or the lower-level TCP.
Data Source(s) agnostic: GraphQL is database agnostic and can be used with any kind of database or even no database at all, for example, remote APIs, and local cache.
A strong typed language: Each type of data such as integer, character, etc. is predefined in the language.
No more over- and under fetching:
Over-fetching is fetching too much data, meaning there is data in the response a client doesn't use. Using GraphQL, a client can specify the data needed in a query. The structure of the server's response follows precisely the nested structure defined in the query.
Under-fetching is not having enough data with a call to an endpoint, forcing a client to call a second endpoint. In GraphQL, only one URI is used to aggregate multiple requests for different resources.
The present disclosure adopts GraphQL in 6G SBA for data query and manipulation services. The present disclosure also provides solutions about the technical realization of GraphQL in SBA.
In Restful, there are some ways to improve the efficiency of data retrieval by using HTTP methods, as shown below:
To mitigate over-fetch, a new query parameter “fields” in HTTP URL is defined to carry the identities of the attributes to be retrieved.
To mitigate under-fetch, bulk (or batching) operations are used to act on more than one resource in a single request.
However, the “fields” parameter attaching to the end of a URL has the disadvantage that practical limitation about the maximum length of the URL is always imposed by client implementation. This will bring scalability problems, that is, only a limited number of attributes are allowed to be obtained via the URL. In addition, only a few NFs and NF services support the functionality, for example, UDR. In addition, the batch operation is not standardized in 3GPP and is implementation-specific, which leads to interoperability issues.
It is therefore proposed in the present disclosure to enable GraphQL API in B5G/6G SBA to provide more efficient data query and manipulation services as an alternative for RESTful APIs.
To enable GrapQL in SBA, there are three options:
Option 1: Use GraphQL API for the NF paired with a data repository.
Option 2: Use GraphQL API for the NF services related to storage and retrieval.
Option 3: A unified mediation NF with GraphQL API.
Option 1: Use GraphQL API for the NF paired with a data repository.
If NF mainly supports data query and manipulation functionalities, it is always implemented by pairing with a database (e.g., MySQL, etc.), for example, UDR (Unified Data Repository), UDSF (Unstructured Data Storage Function), etc. In this option, such NF can use GraphQL to define its schema and expose data query and manipulation services with its GraphQL API and endpoint.
GraphQL API is only applied for the NF, which mainly offers data query and manipulation capabilities, such as UDR, UDSF, etc.
To access services of GraphQL NF, Restful-based NF consumers need to support GraphQL Client functionalities which adds implementation complexity. The issue can be mitigated with some platform technology, for example, by using a service that can decouple the message translations and protocol conversions from the application.
Option 2: Use GraphQL API for the NF services related to data query and manipulation.
Some NFs support not only various communication-related management and control functionalities but also query, manipulation, and subscription of various dynamic data, for example:
NWDAF's Nnwdaf_AnalyticsInfo Service exposes two endpoints: /analytics and /context to provide data query services.
SMF's Nsmf_PDUSession Service exposes the endpoint “/sm contexts/{smContextRef}/retrieve” for a consumer NF to retrieve the context of SM.
NEF's Nnef_PFDmanagement Service exposes the endpoints (e.g., “/applications”, “/applications/{appId}”, “/subscriptions”, “/subscriptions/{subscriptionId}”, . . . etc.) to provide data retrieval, updating and subscription services for external users.
For such NFs, only service operations for data query and manipulation are designed with GraphQL API. For the other types of services, the NFs still use RESTful API. —This option has similar issues with option (e.g., service framework complexity). Some platform technology may be implemented for mitigation.
Option 3: A unified mediation network function with GraphQL.
In this option, the GraphQL-based NF plays as a unified data service API gateway to integrate various NFs and data service instances behind a single, coherent Graph API. The data service function (DSF) may be defined as the network function to provide gateway functionality for data service access, and therefore may be designed as a unified mediation network function.
As a result, data service consumers will reach DSF to fetch all the data they need. DSF is then responsible for:
Single entry endpoint for accessing all the data sources by consolidating all schemas into one schema.
Interacting with different API schema-based data sources. (various NFs providing data query and manipulation services, external data sources, etc.)
Fetching the data and responding in the GraphQL format.
In addition, DSF provides legacy gateway functions, such as security, metrics, and access control functionalities.
This may apply to data query/manipulation services. For other services provided by DSF, RESTful may still be used.
The GraphQL protocol for the service-based interface is shown in the below Table 1.
In 5G, a JavaScript Object Notation (JSON) format may be used as a serialization protocol. 6G GraphQL API still uses JSON as a serialization format. The following JSON values could be used to encode the related GraphQL values as shown in Table 2 below.
GraphQL API may use the same HTTP/Transport protocol as 5G SBA. The default port number may be different from the default one used by RESTful API.
GraphQL API may use the same HTTP/Transport layer security mechanism as 5G SBA.
In 5G, the OpenAPI Specification is used as schema definition language (e.g., Interface Definition Language (IDL)). The GraphQL specification has its schema definition language to define a schema and store it as a string. The syntax is specified as the official GraphQL specification.
For 5G SBA Restful, resources are either individual resources or structured resources that can contain child resources. For 6G, GraphQL may only expose one URI for an API so that resource URI structure is not needed. For example, The REST API for Nudm_UEContextManagement has numerous resource URIs as shown below:
GraphQL SDL specifies an object to represent the resources that can be accessed. An object can contain a list of fields, which are specifically typed. The 6G GraphQL API has a single endpoint for each API. Below is an example of Nudm_UEContextManagement:
The request URI may have the simplified structure defined below:
The {apiRoot} shall be set as the same definition with 5G SBA Restful.
The <apiName> shall define the name of the API.
The /graphql is the only URI used to aggregate multiple requests for different resources for the API.
For 5G SBA Restful, each service operation for request/response communication may be mapped to one of HTTP-based CRUD methods (e.g., GET, POST, PATCH, DELETE . . . etc.). For 6G SBA, GraphQL special types (e.g., Query/Mutation/subscription) for service operations may be carried in the HTTP body with a JSON data format or other available transport protocol and data formats. The following HTTP methods are specified:
The HTTP Method may use “GET” for all the service requests for data query (retrieve data).
The HTTP Method may use “POST” for all the service requests for data manipulation (add, update, delete data) and subscription/notification.
The transport protocol for the notification could be either web socket, HTTP, or other protocols (e.g., a service producer can obtain the notification endpoint information of service consumer from NRF).
In 5G SBI, the simple data types (e.g., string, integer, number, Boolean, Bytes) and enumerations can be referenced from structured data types. The GraphQL syntax may be reused for the simple data types and enumerations as shown below in Table 3:
In 5G, the structured data types may represent an object which can be a resource or sub-resource. For 6G GraphQL-based API, a single graph-structured data model may be used to represent the resources of multiple domains.
An example graph-based structure to represent network data of multiple domains may use the following GraphQL data types:
There may be a scenario when a service consumer (e.g., AF) sends a request to a data service producer to retrieve data. The request may specify the data fields to “get.” The process flow may be as follows:
The service consumer (e.g. AF) sends a GET request to the GraphQL endpoint of the data service producer, with a JSON-encoded body containing structured fields to query.
The data service NF producer has a single GraphQL endpoint no matter what operation is performed.
In contrast to HTTP method determining the operation performed in REST, query type in the JSON-encoded body determines the get operation in GraphQL. Here the HTTP method is “GET”.
The query naming shall follow regular GraphQL naming conventions, for example name verb first and the object then. For example queryRegistrationInformation.
The query could have several arguments to filter the data. The query contains some data fields where the service consumer specifies the data it wants the service producer to return.
(2a) On success, the data service producer responds with “200 OK” with the message body containing only the data that is specified by the request.
(2b) If the query in the request body is malformed or includes a schema field that doesn't exist, HTTP status code “400 Bad Request” should be returned including additional error information in the response body (in the “errors” field).
(2c) Ifusing not allowed HTTP method, HTTP status code “405 Method Not Allowed” should be returned including additional error information in the response body (e.g., in the “errors” field). For other failures, HTTP error status code may be returned including additional error information in the response body (e.g., in the “errors” field).
There may also be a scenario in which the service consumer (e.g., AF) sends a request to the data service provider to create data, and the request may specify which data fields to create. The process flow may be as follows:
The service consumer (e.g., AF) sends a POST request to the GraphQL endpoint of the data service producer, with a JSON-encoded body containing structured fields to create.
The data service NF producer has a single GraphQL endpoint no matter what operation is performed.
In contrast to HTTP method determining the operation performed in REST, mutation type in the JSON-encoded body determines the data create operation performed in GraphQL. So the HTTP method is “POST”. The create operation may contain several mutations that will be wrapped in a structure.
The mutation naming shall follow regular GraphQL naming conventions, for example name verb first and the object then. For example createRegistrationInformation.
The mutation only has one input argument and input will always be an input object composed of input data fields to create.
The response of the mutation contains some data fields where the service consumer specifies the data it wants the service producer to return after the creation is performed. for example, the last values of the added data fields.
(2a) On success, the data service producer responds with “201 Created” with the message body containing only the data that is requested to return after the creation is performed.
(2b) On failure, the HTTP error status code should be returned including additional error information in the response body (e.g., in the “errors” field). For example, if the mutation in the request body is malformed or includes a schema field that does not exist, the HTTP status code “400 Bad Request” should be returned including additional error information in the response body (e.g., in the “errors” field).
There may be a scenario in which the service consumer (e.g., AF) sends a request to the data service producer to update data, and the request may specify which data fields to update. The process flow may be as follows:
The service consumer (e.g., AF) sends a POST request to the GraphQL endpoint of the data service producer, with a JSON-encoded body containing structured fields to update.
The data service NF producer has a single GraphQL endpoint no matter what operation is performed.
In contrast to HTTP method determining the operation performed in REST, the mutation type in the JSON-encoded body determines the data update operation performed in GraphQL. So the HTTP method is “POST”. The update operation may contain several mutations that will be wrapped in a structure.
The mutation naming shall follow regular GraphQL naming conventions, for example name verb first and the object then. For example updateRegistrationInformation.
A mutation only has one input argument and input will always be an input object composed of input data fields to update.
The response of mutation contains some data fields where the service consumer specifies the data it wants the service producer to return after the update is performed, for example, the last values of the updated data fields.
(2a) On success, the data service producer responds with “200 OK” with the message body containing only the data that is requested to return after the update is performed.
(2b) On failure, the HTTP error status code should be returned including additional error information in the response body (e.g., in the “errors” field), for example, if the mutation in the request body is malformed or includes a schema field that does not exist, HTTP status code “400 Bad Request” should be returned including additional error information in the response body (e.g., in “errors” field).
There may be a scenario in which the service consumer (e.g., AF) sends a request to the data service producer to delete data, and the request may specify which data fields to delete. The process flow may be as follows:
The service consumer (e.g., AF) sends a POST request to the GraphQL endpoint of the data service producer, with a JSON-encoded body containing structured fields to delete.
The data service NF producer has a single GraphQL endpoint no matter what operation is performed.
In contrast to HTTP method determining the operation performed in REST, mutation type in the JSON-encoded body determines the data delete operation performed in GraphQL. So the HTTP method is “POST”. The delete operation may contain several mutations that will be wrapped in a structure.
The mutation naming shall follow regular GraphQL naming conventions, for example name verb first and the object then. For example deleteRegistrationInformation.
The mutation only has one input argument and input will always be an input object composed of input data fields to delete.
The response of the mutation contains some data fields where the service consumer specifies the data it wants the service producer to return after the delete is performed, for example, deleted object UUID.
(2a) The data service producer responds with “200 OK” with the message body containing only the data that is requested to return after the delete is performed.
(2b) n failure, the HTTP error status code should be returned including additional error information in the response body (e.g., in the “errors” field). For example, if the mutation in the request body is malformed or includes a schema field that doesn't exist, the HTTP status code “400 Bad Request” should be returned including additional error information in the response body (e.g., in the “errors” field).
There are service operation options for the scenario in which the service consumer (e.g., AF) sends a request to the data service producer to subscribe to the notification of a data change.
The first option uses a Callback URI in the subscription request according to the following process flow:
The service consumer (e.g., AF) sends a POST request to the GraphQL endpoint of the data service producer, with a JSON-encoded body containing structured fields to delete.
The data service NF producer has a single GraphQL endpoint no matter what operation is performed.
In contrast to HTTP method determining the operation performed in REST, the subscription type in the JSON-encoded body determines the data delete operation performed in GraphQL. So the HTTP method is “POST.”
The subscription naming shall follow regular GraphQL naming conventions, for example name verb first and the object then. For example subscribeRegistrationInformation.
The subscription shall have several arguments to filter the data to subscribe. The subscription contains some data fields where the service consumer specifies the data it wants to receive after the data changes.
The subscription shall have one argument for callback URI used by data change notification.
(2a) On success, the data service producer responds with “200 OK” with the message body containing only the current data values.
(2b) On failure, the HTTP error status code should be returned including additional error information in the response body (e.g., in the “errors” field).
(3) The service producer sends a POST request to the callback URI. The message body contains only the data that is requested to return after the data changes.
The second option is to obtain a Callback URI from the NRF according to the following process flow:
The service consumer (e.g., AF) registers to NRF with its profile which contains the default callback URI.
The service consumer (e.g., AF) sends a POST request to the GraphQL endpoint of the data service producer, with a JSON-encoded body containing structured fields to delete.
The data service NF producer has a single GraphQL endpoint no matter what operation is performed.
In contrast to the HTTP method determining the operation performed in REST, the subscription type in the JSON-encoded body determines the data delete operation performed in GraphQL. So the HTTP method is “POST.”
The subscription naming shall follow regular GraphQL naming conventions, for example, name verb first and the object then. For example subscribeRegistrationInformation.
The subscription shall have several arguments to filter the data to subscribe. The subscription contains some data fields where the service consumer specifies the data it wants to receive after the data changes.
The subscription shall have one argument to represent the subscriber's NF instance information, including NF type, NF instance ID, etc. The information will be used by the service producer.
(3) The service producer (e.g., UDM) queries NRF for the NF profile of the service consumer to obtain the default callback URI.
(4a) On success, the data service producer responds with “200 OK” with the message body containing only the data that is requested to return after the data changes.
(4b) On failure, the HTTP error status code should be returned including additional error information in the response body (e.g., in the “errors” field). For example, if unsuccessfully obtaining callback URI from the NRF, HTTP status code “500 Internal Server Error” should be returned including additional error information in the response body (e.g., in the “errors” field).
(5) The service producer sends a POST request to the callback URI. The message body contains only the data that is requested to return after the data changes.
The above descriptions are for purposes of illustration and are not meant to be limiting. Numerous other examples, configurations, processes, algorithms, etc., may exist, some of which are described in greater detail below. Example embodiments will now be described with reference to the accompanying figures.
Referring to
If NF mainly supports data query and manipulation functionalities, it is always implemented by pairing with a database (e.g., MySQL, etc.), for example, UDR (Unified Data Repository), UDSF (Unstructured Data Storage Function), etc. In this option, such NF can use GraphQL to define its schema and expose data query and manipulation services with its GraphQL API and endpoint.
GraphQL API is only applied for the NF, which mainly offers data query and manipulation capabilities, such as UDR, UDSF, etc.
To access services of GraphQL NF, Restful-based NF consumers need to support GraphQL Client functionalities which adds implementation complexity. The issue can be mitigated with some platform technology, for example, by using a service that can decouple the message translations and protocol conversions from the application.
Referring to
Some NFs support not only various communication-related management and control functionalities but also query, manipulation, and subscription of various dynamic data, for example:
NWDAF's Nnwdaf_AnalyticsInfo Service exposes two endpoints: /analytics and /context to provide data query services
SMF's Nsmf_PDUSession Service exposes the endpoint “/sm contexts/{smContextRef}/retrieve” for a consumer NF to retrieve the context of SM.
NEF's Nnef_PFDmanagement Service exposes the endpoints (e.g., “/applications”, “/applications/{appId}”,”/subscriptions”, “/subscriptions/{subscriptionId}”, . . . etc.) to provide data retrieval, updating and subscription services for external users.
For such NFs, only service operations for data query and manipulation are designed with GraphQL API. For the other types of services, the NFs still use RESTful API. —This option has similar issues with option (e.g., service framework complexity). Some platform technology may be implemented for mitigation.
Referring to
In this option, the GraphQL-based NF plays as a unified data service API gateway to integrate various NFs and data service instances behind a single, coherent Graph API. The data service function (DSF) may be defined as the network function to provide gateway functionality for data service access, and therefore may be designed as a unified mediation network function.
As a result, data service consumers will reach DSF to fetch all the data they need. DSF is then responsible for:
Single entry endpoint for accessing all the data sources by consolidating all schemas into one schema.
Interacting with different API schema-based data sources. (various NFs providing data query and manipulation services, external data sources, etc.)
Fetching the data and responding in the GraphQL format.
In addition, DSF provides legacy gateway functions, such as security, metrics, and access control functionalities.
This may apply to data query/manipulation services. For other services provided by DSF, RESTful may still be used.
In 5G, the structured data types may represent an object which can be a resource or sub-resource. For 6G GraphQL-based API, a single graph-structured data model may be used to represent the resources of multiple domains as shown in
Referring to
The graph-based structure 400 to represent network data of multiple domains may use the following GraphQL data types:
Referring to
Step 506: The service consumer 502 sends a GET request to the GraphQL endpoint (e.g., HTTP GET request /{apiName}/graphQL) of the data service NF producer 504, with a JSON-encoded body containing structured fields to query.
The data service NF producer 504 has a single GraphQL endpoint no matter what operation is performed.
In contrast to HTTP method determining the operation performed in REST, query type in the JSON-encoded body determines the get operation in GraphQL. Here the HTTP method is “GET”.
The query naming shall follow regular GraphQL naming conventions, for example name verb first and the object then. For example queryRegistrationInformation.
The query could have several arguments to filter the data. The query contains some data fields where the service consumer specifies the data it wants the service producer to return.
Step 508: On success, the data service NF producer 504 responds with “200 OK” with the message body containing only the data that is specified by the request.
Step 510: If the query in the request body is malformed or includes a schema field that doesn't exist, HTTP status code “400 Bad Request” should be returned including additional error information in the response body (in the “errors” field).
Step 512: If using not allowed HTTP method, HTTP status code “405 Method Not Allowed” should be returned including additional error information in the response body (e.g., in the “errors” field). For other failures, HTTP error status code may be returned including additional error information in the response body (e.g., in the “errors” field).
Referring to
Step 606: The service consumer 602 sends a POST request to the GraphQL endpoint of the data service NF producer 604 (e.g., HTTP POST request /{apiName}/graphQL), with a JSON-encoded body containing structured fields to create.
The data service NF producer 604 has a single GraphQL endpoint no matter what operation is performed.
In contrast to HTTP method determining the operation performed in REST, mutation type in the JSON-encoded body determines the data create operation performed in GraphQL. So the HTTP method is “POST”. The create operation may contain several mutations that will be wrapped in a structure.
The mutation naming shall follow regular GraphQL naming conventions, for example name verb first and the object then. For example createRegistrationInformation.
The mutation only has one input argument and input will always be an input object composed of input data fields to create.
The response of the mutation contains some data fields where the service consumer specifies the data it wants the service producer to return after the creation is performed. For example, the last values of the added data fields.
Step 608: On success, the data service NF producer 604 responds with “201 Created” with the message body containing only the data that is requested to return after the creation is performed.
Step 610: On failure, the HTTP error status code should be returned including additional error information in the response body (e.g., in the “errors” field). For example, if the mutation in the request body is malformed or includes a schema field that does not exist, the HTTP status code “400 Bad Request” should be returned including additional error information in the response body (e.g., in the “errors” field).
Referring to
Step 706: The service consumer 702 sends a POST request to the GraphQL endpoint of the data service NF producer 704 (e.g., HTTP POST request /{apiName}/graphQL), with a JSON-encoded body containing structured fields to update.
The data service NF producer 704 has a single GraphQL endpoint no matter what operation is performed.
In contrast to HTTP method determining the operation performed in REST, the mutation type in the JSON-encoded body determines the data update operation performed in GraphQL. So the HTTP method is “POST”. The update operation may contain several mutations that will be wrapped in a structure.
The mutation naming shall follow regular GraphQL naming conventions, for example name verb first and the object then. For example updateRegistrationInformation.
A mutation only has one input argument and input will always be an input object composed of input data fields to update.
The response of mutation contains some data fields where the service consumer specifies the data it wants the service producer to return after the update is performed, for example, the last values of the updated data fields.
Step 708: On success, the data service NF producer 704 responds with “200 OK” with the message body containing only the data that is requested to return after the update is performed.
Step 710: On failure, the HTTP error status code should be returned including additional error information in the response body (e.g., in the “errors” field), for example, if the mutation in the request body is malformed or includes a schema field that does not exist, HTTP status code “400 Bad Request” should be returned including additional error information in the response body (e.g., in “errors” field).
Referring to
Step 806: The service consumer 802 sends a POST request to the GraphQL endpoint of the data service NF producer 804 (e.g., HTTP POST request /{apiName}/graphQL), with a JSON-encoded body containing structured fields to delete.
The data service NF producer 804 has a single GraphQL endpoint no matter what operation is performed.
In contrast to HTTP method determining the operation performed in REST, mutation type in the JSON-encoded body determines the data delete operation performed in GraphQL. So the HTTP method is “POST”. The delete operation may contain several mutations that will be wrapped in a structure.
The mutation naming shall follow regular GraphQL naming conventions, for example name verb first and the object then. For example deleteRegistrationInformation.
The mutation only has one input argument and input will always be an input object composed of input data fields to delete.
The response of the mutation contains some data fields where the service consumer 802 specifies the data it wants the data service NF producer 804 to return after the delete is performed, for example, deleted object UUID.
Step 808: The data service NF producer 804 responds with “200 OK” with the message body containing only the data that is requested to return after the delete is performed.
Step 810: On failure, the HTTP error status code should be returned including additional error information in the response body (in the “errors” field). For example, if the mutation in the request body is malformed or includes a schema field that doesn't exist, the HTTP status code “400 Bad Request” should be returned including additional error information in the response body (in the “errors” field).
Referring to
Step 906: The service consumer 902 sends a POST request to the GraphQL endpoint of the data service NF producer 904 (e.g., HTTP POST request /{apiName}/graphQL), with a JSON-encoded body containing structured fields to delete.
The data service NF producer 904 has a single GraphQL endpoint no matter what operation is performed.
In contrast to HTTP method determining the operation performed in REST, the subscription type in the JSON-encoded body determines the data delete operation performed in GraphQL. So the HTTP method is “POST.”
The subscription naming shall follow regular GraphQL naming conventions, for example name verb first and the object then. For example subscribeRegistrationInformation.
The subscription shall have several arguments to filter the data to subscribe. The subscription contains some data fields where the service consumer specifies the data it wants to receive after the data changes.
The subscription shall have one argument for callback URI used by data change notification.
Step 908: On success, the data service NF producer 904 responds with “200 OK” with the message body containing only the current data values.
Step 910: On failure, the HTTP error status code should be returned including additional error information in the response body (e.g., in the “errors” field).
Step 911: A data change to the subscribed data is detected by the data service NF producer 904, triggering an update to the service consumer 902.
Step 912: The data service producer 904 sends a POST request to the callback URI. The message body contains only the data that is requested to return after the data changes.
Referring to
Step 1008: The service consumer 1002 registers to the NRF 1006 with its profile which contains the default callback URI.
Step 1010: The service consumer 1002 sends a POST request to the GraphQL endpoint of the data service NF producer 1004 (e.g., HTTP POST request /{apiName}/graphQL), with a JSON-encoded body containing structured fields to delete.
The data service NF producer 1004 has a single GraphQL endpoint no matter what operation is performed.
In contrast to the HTTP method determining the operation performed in REST, the subscription type in the JSON-encoded body determines the data delete operation performed in GraphQL. So the HTTP method is “POST.”
The subscription naming shall follow regular GraphQL naming conventions, for example, name verb first and the object then. For example subscribeRegistrationInformation.
The subscription shall have several arguments to filter the data to subscribe. The subscription contains some data fields where the service consumer 1002 specifies the data it wants to receive after the data changes.
The subscription shall have one argument to represent the data subscriber's NF instance information, including NF type, NF instance ID, etc. The information will be used by the data service NF producer 1004.
Step 1011: The data service NF producer 1004 queries the NRF 1006 for the NF profile of the service consumer 1002 to obtain the default callback URI.
Step 1012: On success, the data service NF producer 1004 responds with “200 OK” with the message body containing only the data that is requested to return after the data changes.
Step 1014: On failure, the HTTP error status code should be returned including additional error information in the response body (e.g., in the “errors” field). For example, if unsuccessfully obtaining callback URI from the NRF, HTTP status code “500 Internal Server Error” should be returned including additional error information in the response body (e.g., in the “errors” field).
Step 1015: A data change to the subscribed data is detected by the data service NF producer 1004, triggering an update to the service consumer 1002.
Step 1016: The data service NF producer 1004 sends a POST request to the callback URI. The message body contains only the data that is requested to return after the data changes.
At block 1102, a NF may detect a request, received at a GraphQL API, from a service consumer, to manipulate or query data (e.g., a HTTP GET or POST request).
At block 1104, the NF may determine a response to the request (e.g., approving the request, notifying of an error, notifying of a modification to subscription data, etc.).
At block 1106, the NF may provide the response using the GraphQL API to the requesting service consumer.
These embodiments are not meant to be limiting.
The network 1200 may include a UE 1202, which may include any mobile or non-mobile computing device designed to communicate with a RAN 1204 via an over-the-air connection. The UE 1202 may be communicatively coupled with the RAN 1204 by a Uu interface. The UE 1202 may be, but is not limited to, a smartphone, tablet computer, wearable computer device, desktop computer, laptop computer, in-vehicle infotainment, in-car entertainment device, instrument cluster, head-up display device, onboard diagnostic device, dashtop mobile equipment, mobile data terminal, electronic engine management system, electronic/engine control unit, electronic/engine control module, embedded system, sensor, microcontroller, control module, engine management system, networked appliance, machine-type communication device, M2M or D2D device, IoT device, etc.
In some embodiments, the network 1200 may include a plurality of UEs coupled directly with one another via a sidelink interface. The UEs may be M2M/D2D devices that communicate using physical sidelink channels such as, but not limited to, PSBCH, PSDCH, PSSCH, PSCCH, PSFCH, etc.
In some embodiments, the UE 1202 may additionally communicate with an AP 1206 via an over-the-air connection. The AP 1206 may manage a WLAN connection, which may serve to offload some/all network traffic from the RAN 1204. The connection between the UE 1202 and the AP 1206 may be consistent with any IEEE 802.11 protocol, wherein the AP 1206 could be a wireless fidelity (Wi-Fi®) router. In some embodiments, the UE 1202, RAN 1204, and AP 1206 may utilize cellular-WLAN aggregation (for example, LWA/LWIP). Cellular-WLAN aggregation may involve the UE 1202 being configured by the RAN 1204 to utilize both cellular radio resources and WLAN resources.
The RAN 1204 may include one or more access nodes, for example, AN 1208. AN 1208 may terminate air-interface protocols for the UE 1202 by providing access stratum protocols including RRC, PDCP, RLC, MAC, and LI protocols. In this manner, the AN 1208 may enable data/voice connectivity between CN 1220 and the UE 1202. In some embodiments, the AN 1208 may be implemented in a discrete device or as one or more software entities running on server computers as part of, for example, a virtual network, which may be referred to as a CRAN or virtual baseband unit pool. The AN 1208 be referred to as a BS, gNB, RAN node, eNB, ng-eNB, NodeB, RSU, TRxP, TRP, etc. The AN 1208 may be a macrocell base station or a low power base station for providing femtocells, picocells or other like cells having smaller coverage areas, smaller user capacity, or higher bandwidth compared to macrocells.
In embodiments in which the RAN 1204 includes a plurality of ANs, they may be coupled with one another via an X2 interface (if the RAN 1204 is an LTE RAN) or an Xn interface (if the RAN 1204 is a 5G RAN). The X2/Xn interfaces, which may be separated into control/user plane interfaces in some embodiments, may allow the ANs to communicate information related to handovers, data/context transfers, mobility, load management, interference coordination, etc.
The ANs of the RAN 1204 may each manage one or more cells, cell groups, component carriers, etc. to provide the UE 1202 with an air interface for network access. The UE 1202 may be simultaneously connected with a plurality of cells provided by the same or different ANs of the RAN 1204. For example, the UE 1202 and RAN 1204 may use carrier aggregation to allow the UE 1202 to connect with a plurality of component carriers, each corresponding to a Pcell or Scell. In dual connectivity scenarios, a first AN may be a master node that provides an MCG and a second AN may be secondary node that provides an SCG. The first/second ANs may be any combination of eNB, gNB, ng-eNB, etc.
The RAN 1204 may provide the air interface over a licensed spectrum or an unlicensed spectrum. To operate in the unlicensed spectrum, the nodes may use LAA, eLAA, and/or feLAA mechanisms based on CA technology with PCells/Scells. Prior to accessing the unlicensed spectrum, the nodes may perform medium/carrier-sensing operations based on, for example, a listen-before-talk (LBT) protocol.
In V2X scenarios the UE 1202 or AN 1208 may be or act as a RSU, which may refer to any transportation infrastructure entity used for V2X communications. An RSU may be implemented in or by a suitable AN or a stationary (or relatively stationary) UE. An RSU implemented in or by: a UE may be referred to as a “UE-type RSU”; an eNB may be referred to as an “eNB-type RSU”; a gNB may be referred to as a “gNB-type RSU”; and the like. In one example, an RSU is a computing device coupled with radio frequency circuitry located on a roadside that provides connectivity support to passing vehicle UEs. The RSU may also include internal data storage circuitry to store intersection map geometry, traffic statistics, media, as well as applications/software to sense and control ongoing vehicular and pedestrian traffic. The RSU may provide very low latency communications required for high speed events, such as crash avoidance, traffic warnings, and the like. Additionally or alternatively, the RSU may provide other cellular/WLAN communications services. The components of the RSU may be packaged in a weatherproof enclosure suitable for outdoor installation, and may include a network interface controller to provide a wired connection (e.g., Ethernet) to a traffic signal controller or a backhaul network.
In some embodiments, the RAN 1204 may be an LTE RAN 1210 with eNBs, for example, eNB 1212. The LTE RAN 1210 may provide an LTE air interface with the following characteristics: SCS of 15 kHz; CP-OFDM waveform for DL and SC-FDMA waveform for UL; turbo codes for data and TBCC for control; etc. The LTE air interface may rely on CSI-RS for CSI acquisition and beam management; PDSCH/PDCCH DMRS for PDSCH/PDCCH demodulation; and CRS for cell search and initial acquisition, channel quality measurements, and channel estimation for coherent demodulation/detection at the UE. The LTE air interface may operating on sub-6 GHz bands.
In some embodiments, the RAN 1204 may be an NG-RAN 1214 with gNBs, for example, gNB 1216, or ng-eNBs, for example, ng-eNB 1218. The gNB 1216 may connect with 5G-enabled UEs using a 5G NR interface. The gNB 1216 may connect with a 5G core through an NG interface, which may include an N2 interface or an N3 interface. The ng-eNB 1218 may also connect with the 5G core through an NG interface, but may connect with a UE via an LTE air interface. The gNB 1216 and the ng-eNB 1218 may connect with each other over an Xn interface.
In some embodiments, the NG interface may be split into two parts, an NG user plane (NG-U) interface, which carries traffic data between the nodes of the NG-RAN 1214 and a UPF 1248 (e.g., N3 interface), and an NG control plane (NG-C) interface, which is a signaling interface between the nodes of the NG-RAN 1214 and an AMF 1244 (e.g., N2 interface).
The NG-RAN 1214 may provide a 5G-NR air interface with the following characteristics: variable SCS; CP-OFDM for DL, CP-OFDM and DFT-s-OFDM for UL; polar, repetition, simplex, and Reed-Muller codes for control and LDPC for data. The 5G-NR air interface may rely on CSI-RS, PDSCH/PDCCH DMRS similar to the LTE air interface. The 5G-NR air interface may not use a CRS, but may use PBCH DMRS for PBCH demodulation; PTRS for phase tracking for PDSCH; and tracking reference signal for time tracking. The 5G-NR air interface may operating on FR1 bands that include sub-6 GHz bands or FR2 bands that include bands from 24.25 GHz to 52.6 GHz. The 5G-NR air interface may include an SSB that is an area of a downlink resource grid that includes PSS/SSS/PBCH.
In some embodiments, the 5G-NR air interface may utilize BWPs for various purposes. For example, BWP can be used for dynamic adaptation of the SCS. For example, the UE 1202 can be configured with multiple BWPs where each BWP configuration has a different SCS. When a BWP change is indicated to the UE 1202, the SCS of the transmission is changed as well. Another use case example of BWP is related to power saving. In particular, multiple BWPs can be configured for the UE 1202 with different amount of frequency resources (for example, PRBs) to support data transmission under different traffic loading scenarios. A BWP containing a smaller number of PRBs can be used for data transmission with small traffic load while allowing power saving at the UE 1202 and in some cases at the gNB 1216. A BWP containing a larger number of PRBs can be used for scenarios with higher traffic load.
The RAN 1204 is communicatively coupled to CN 1220 that includes network elements to provide various functions to support data and telecommunications services to customers/subscribers (for example, users of UE 1202). The components of the CN 1220 may be implemented in one physical node or separate physical nodes. In some embodiments, NFV may be utilized to virtualize any or all of the functions provided by the network elements of the CN 1220 onto physical compute/storage resources in servers, switches, etc. A logical instantiation of the CN 1220 may be referred to as a network slice, and a logical instantiation of a portion of the CN 1220 may be referred to as a network sub-slice.
In some embodiments, the CN 1220 may be an LTE CN 1222, which may also be referred to as an EPC. The LTE CN 1222 may include MME 1224, SGW 1226, SGSN 1228, HSS 1230, PGW 1232, and PCRF 1234 coupled with one another over interfaces (or “reference points”) as shown. Functions of the elements of the LTE CN 1222 may be briefly introduced as follows.
The MME 1224 may implement mobility management functions to track a current location of the UE 1202 to facilitate paging, bearer activation/deactivation, handovers, gateway selection, authentication, etc.
The SGW 1226 may terminate an S1 interface toward the RAN and route data packets between the RAN and the LTE CN 1222. The SGW 1226 may be a local mobility anchor point for inter-RAN node handovers and also may provide an anchor for inter-3GPP mobility. Other responsibilities may include lawful intercept, charging, and some policy enforcement.
The SGSN 1228 may track a location of the UE 1202 and perform security functions and access control. In addition, the SGSN 1228 may perform inter-EPC node signaling for mobility between different RAT networks; PDN and S-GW selection as specified by MME 1224; MME selection for handovers; etc. The S3 reference point between the MME 424 and the SGSN 1228 may enable user and bearer information exchange for inter-3GPP access network mobility in idle/active states.
The HSS 1230 may include a database for network users, including subscription-related information to support the network entities' handling of communication sessions. The HSS 1230 can provide support for routing/roaming, authentication, authorization, naming/addressing resolution, location dependencies, etc. An S6a reference point between the HSS 1230 and the MME 1224 may enable transfer of subscription and authentication data for authenticating/authorizing user access to the LTE CN 1220.
The PGW 1232 may terminate an SG1 interface toward a data network (DN) 1236 that may include an application/content server 1238. The PGW 1232 may route data packets between the LTE CN 1222 and the data network 1236. The PGW 1232 may be coupled with the SGW 1226 by an S5 reference point to facilitate user plane tunneling and tunnel management. The PGW 1232 may further include a node for policy enforcement and charging data collection (for example, PCEF). Additionally, the SG1 reference point between the PGW 1232 and the data network 1236 may be an operator external public, a private PDN, or an intra-operator packet data network, for example, for provision of IMS services. The PGW 1232 may be coupled with a PCRF 1234 via a Gx reference point.
The PCRF 1234 is the policy and charging control element of the LTE CN 1222. The PCRF 1234 may be communicatively coupled to the app/content server 1238 to determine appropriate QoS and charging parameters for service flows. The PCRF 1232 may provision associated rules into a PCEF (via Gx reference point) with appropriate TFT and QCI.
In some embodiments, the CN 1220 may be a 5GC 1240. The 5GC 1240 may include an AUSF 1242, AMF 1244, SMF 1246, UPF 1248, NSSF 1250, NEF 1252, NRF 1254, PCF 1256, UDM 1258, and AF 1260 coupled with one another over interfaces (or “reference points”) as shown. Functions of the elements of the 5GC 1240 may be briefly introduced as follows.
The AUSF 1242 may store data for authentication of UE 1202 and handle authentication-related functionality. The AUSF 1242 may facilitate a common authentication framework for various access types. In addition to communicating with other elements of the 5GC 1240 over reference points as shown, the AUSF 1242 may exhibit an Nausf service-based interface.
The AMF 1244 may allow other functions of the 5GC 1240 to communicate with the UE 1202 and the RAN 1204 and to subscribe to notifications about mobility events with respect to the UE 1202. The AMF 1244 may be responsible for registration management (for example, for registering UE 1202), connection management, reachability management, mobility management, lawful interception of AMF-related events, and access authentication and authorization. The AMF 1244 may provide transport for SM messages between the UE 1202 and the SMF 1246, and act as a transparent proxy for routing SM messages. AMF 1244 may also provide transport for SMS messages between UE 1202 and an SMSF. AMF 1244 may interact with the AUSF 1242 and the UE 1202 to perform various security anchor and context management functions. Furthermore, AMF 1244 may be a termination point of a RAN CP interface, which may include or be an N2 reference point between the RAN 1204 and the AMF 1244; and the AMF 1244 may be a termination point of NAS (N1) signaling, and perform NAS ciphering and integrity protection. AMF 1244 may also support NAS signaling with the UE 1202 over an N3 IWF interface.
The SMF 1246 may be responsible for SM (for example, session establishment, tunnel management between UPF 1248 and AN 1208); UE IP address allocation and management (including optional authorization); selection and control of UP function; configuring traffic steering at UPF 1248 to route traffic to proper destination; termination of interfaces toward policy control functions; controlling part of policy enforcement, charging, and QoS; lawful intercept (for SM events and interface to LI system); termination of SM parts of NAS messages; downlink data notification; initiating AN specific SM information, sent via AMF 1244 over N2 to AN 1208; and determining SSC mode of a session. SM may refer to management of a PDU session, and a PDU session or “session” may refer to a PDU connectivity service that provides or enables the exchange of PDUs between the UE 1202 and the data network 1236.
The UPF 1248 may act as an anchor point for intra-RAT and inter-RAT mobility, an external PDU session point of interconnect to data network 1236, and a branching point to support multi-homed PDU session. The UPF 1248 may also perform packet routing and forwarding, perform packet inspection, enforce the user plane part of policy rules, lawfully intercept packets (UP collection), perform traffic usage reporting, perform QoS handling for a user plane (e.g., packet filtering, gating, UL/DL rate enforcement), perform uplink traffic verification (e.g., SDF-to-QoS flow mapping), transport level packet marking in the uplink and downlink, and perform downlink packet buffering and downlink data notification triggering. UPF 1248 may include an uplink classifier to support routing traffic flows to a data network.
The NSSF 1250 may select a set of network slice instances serving the UE 1202. The NSSF 1250 may also determine allowed NSSAI and the mapping to the subscribed S-NSSAIs, if needed. The NSSF 1250 may also determine the AMF set to be used to serve the UE 1202, or a list of candidate AMFs based on a suitable configuration and possibly by querying the NRF 1254. The selection of a set of network slice instances for the UE 1202 may be triggered by the AMF 1244 with which the UE 1202 is registered by interacting with the NSSF 1250, which may lead to a change of AMF. The NSSF 1250 may interact with the AMF 1244 via an N22 reference point; and may communicate with another NSSF in a visited network via an N31 reference point (not shown). Additionally, the NSSF 1250 may exhibit an Nnssf service-based interface.
The NEF 1252 may securely expose services and capabilities provided by 3GPP network functions for third party, internal exposure/re-exposure, AFs (e.g., AF 1260), edge computing or fog computing systems, etc. In such embodiments, the NEF 1252 may authenticate, authorize, or throttle the AFs. NEF 1252 may also translate information exchanged with the AF 1260 and information exchanged with internal network functions. For example, the NEF 1252 may translate between an AF-Service-Identifier and an internal 5GC information. NEF 1252 may also receive information from other NFs based on exposed capabilities of other NFs. This information may be stored at the NEF 1252 as structured data, or at a data storage NF using standardized interfaces. The stored information can then be re-exposed by the NEF 1252 to other NFs and AFs, or used for other purposes such as analytics. Additionally, the NEF 1252 may exhibit an Nnef service-based interface.
The NRF 1254 may support service discovery functions, receive NF discovery requests from NF instances, and provide the information of the discovered NF instances to the NF instances. NRF 1254 also maintains information of available NF instances and their supported services. As used herein, the terms “instantiate,” “instantiation,” and the like may refer to the creation of an instance, and an “instance” may refer to a concrete occurrence of an object, which may occur, for example, during execution of program code. Additionally, the NRF 1254 may exhibit the Nnrf service-based interface.
The PCF 1256 may provide policy rules to control plane functions to enforce them, and may also support unified policy framework to govern network behavior. The PCF 1256 may also implement a front end to access subscription information relevant for policy decisions in a UDR of the UDM 1258. In addition to communicating with functions over reference points as shown, the PCF 1256 exhibit an Npcf service-based interface.
The UDM 1258 may handle subscription-related information to support the network entities' handling of communication sessions, and may store subscription data of UE 1202. For example, subscription data may be communicated via an N8 reference point between the UDM 1258 and the AMF 1244. The UDM 1258 may include two parts, an application front end and a UDR. The UDR may store subscription data and policy data for the UDM 1258 and the PCF 1256, and/or structured data for exposure and application data (including PFDs for application detection, application request information for multiple UEs 1202) for the NEF 1252. The Nudr service-based interface may be exhibited by the UDR to allow the UDM 1258, PCF 1256, and NEF 1252 to access a particular set of the stored data, as well as to read, update (e.g., add, modify), delete, and subscribe to notification of relevant data changes in the UDR. The UDM may include a UDM-FE, which is in charge of processing credentials, location management, subscription management and so on. Several different front ends may serve the same user in different transactions. The UDM-FE accesses subscription information stored in the UDR and performs authentication credential processing, user identification handling, access authorization, registration/mobility management, and subscription management. In addition to communicating with other NFs over reference points as shown, the UDM 1258 may exhibit the Nudm service-based interface.
The AF 1260 may provide application influence on traffic routing, provide access to NEF, and interact with the policy framework for policy control.
In some embodiments, the 5GC 1240 may enable edge computing by selecting operator/3rd party services to be geographically close to a point that the UE 1202 is attached to the network. This may reduce latency and load on the network. To provide edge-computing implementations, the 5GC 1240 may select a UPF 1248 close to the UE 1202 and execute traffic steering from the UPF 1248 to data network 1236 via the N6 interface. This may be based on the UE subscription data, UE location, and information provided by the AF 1260. In this way, the AF 1260 may influence UPF (re)selection and traffic routing. Based on operator deployment, when AF 1260 is considered to be a trusted entity, the network operator may permit AF 1260 to interact directly with relevant NFs. Additionally, the AF 1260 may exhibit an Naf service-based interface.
The data network 1236 may represent various network operator services, Internet access, or third party services that may be provided by one or more servers including, for example, application/content server 1238.
The UE 1302 may be communicatively coupled with the AN 1304 via connection 1306. The connection 1306 is illustrated as an air interface to enable communicative coupling, and can be consistent with cellular communications protocols such as an LTE protocol or a 5G NR protocol operating at mmWave or sub-6 GHz frequencies.
The UE 1302 may include a host platform 1308 coupled with a modem platform 1310. The host platform 1308 may include application processing circuitry 1312, which may be coupled with protocol processing circuitry 1314 of the modem platform 1310. The application processing circuitry 1312 may run various applications for the UE 1302 that source/sink application data. The application processing circuitry 1312 may further implement one or more layer operations to transmit/receive application data to/from a data network. These layer operations may include transport (for example UDP) and Internet (for example, IP) operations
The protocol processing circuitry 1314 may implement one or more of layer operations to facilitate transmission or reception of data over the connection 1306. The layer operations implemented by the protocol processing circuitry 1314 may include, for example, MAC, RLC, PDCP, RRC and NAS operations.
The modem platform 1310 may further include digital baseband circuitry 1316 that may implement one or more layer operations that are “below” layer operations performed by the protocol processing circuitry 1314 in a network protocol stack. These operations may include, for example, PHY operations including one or more of HARQ-ACK functions, scrambling/descrambling, encoding/decoding, layer mapping/de-mapping, modulation symbol mapping, received symbol/bit metric determination, multi-antenna port precoding/decoding, which may include one or more of space-time, space-frequency or spatial coding, reference signal generation/detection, preamble sequence generation and/or decoding, synchronization sequence generation/detection, control channel signal blind decoding, and other related functions.
The modem platform 1310 may further include transmit circuitry 1318, receive circuitry 1320, RF circuitry 1322, and RF front end (RFFE) 1324, which may include or connect to one or more antenna panels 1326. Briefly, the transmit circuitry 1318 may include a digital-to-analog converter, mixer, intermediate frequency (IF) components, etc.; the receive circuitry 1320 may include an analog-to-digital converter, mixer, IF components, etc.; the RF circuitry 1322 may include a low-noise amplifier, a power amplifier, power tracking components, etc.; RFFE 1324 may include filters (for example, surface/bulk acoustic wave filters), switches, antenna tuners, beamforming components (for example, phase-array antenna components), etc. The selection and arrangement of the components of the transmit circuitry 1318, receive circuitry 1320, RF circuitry 1322, RFFE 1324, and antenna panels 1326 (referred generically as “transmit/receive components”) may be specific to details of a specific implementation such as, for example, whether communication is TDM or FDM, in mmWave or sub-6 gHz frequencies, etc. In some embodiments, the transmit/receive components may be arranged in multiple parallel transmit/receive chains, may be disposed in the same or different chips/modules, etc.
In some embodiments, the protocol processing circuitry 1314 may include one or more instances of control circuitry (not shown) to provide control functions for the transmit/receive components.
A UE reception may be established by and via the antenna panels 1326, RFFE 1324, RF circuitry 1322, receive circuitry 1320, digital baseband circuitry 1316, and protocol processing circuitry 1314. In some embodiments, the antenna panels 1326 may receive a transmission from the AN 1304 by receive-beamforming signals received by a plurality of antennas/antenna elements of the one or more antenna panels 1326.
A UE transmission may be established by and via the protocol processing circuitry 1314, digital baseband circuitry 1316, transmit circuitry 1318, RF circuitry 1322, RFFE 1324, and antenna panels 1326. In some embodiments, the transmit components of the UE 1304 may apply a spatial filter to the data to be transmitted to form a transmit beam emitted by the antenna elements of the antenna panels 1326.
Similar to the UE 1302, the AN 1304 may include a host platform 1328 coupled with a modem platform 1330. The host platform 1328 may include application processing circuitry 1332 coupled with protocol processing circuitry 1334 of the modem platform 1330. The modem platform may further include digital baseband circuitry 1336, transmit circuitry 1338, receive circuitry 1340, RF circuitry 1342, RFFE circuitry 1344, and antenna panels 1346. The components of the AN 1304 may be similar to and substantially interchangeable with like-named components of the UE 1302. In addition to performing data transmission/reception as described above, the components of the AN 1308 may perform various logical functions that include, for example, RNC functions such as radio bearer management, uplink and downlink dynamic radio resource management, and data packet scheduling.
The processors 1410 may include, for example, a processor 1412 and a processor 1414. The processors 1410 may be, for example, a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a DSP such as a baseband processor, an ASIC, an FPGA, a radio-frequency integrated circuit (RFIC), another processor (including those discussed herein), or any suitable combination thereof.
The memory/storage devices 1420 may include main memory, disk storage, or any suitable combination thereof. The memory/storage devices 1420 may include, but are not limited to, any type of volatile, non-volatile, or semi-volatile memory such as dynamic random access memory (DRAM), static random access memory (SRAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), Flash memory, solid-state storage, etc.
The communication resources 1430 may include interconnection or network interface controllers, components, or other suitable devices to communicate with one or more peripheral devices 1404 or one or more databases 1406 or other network elements via a network 1408. For example, the communication resources 1430 may include wired communication components (e.g., for coupling via USB, Ethernet, etc.), cellular communication components, NFC components, Bluetooth® (or Bluetooth® Low Energy) components, Wi-Fi® components, and other communication components.
Instructions 1450 may comprise software, a program, an application, an applet, an app, or other executable code for causing at least any of the processors 1410 to perform any one or more of the methodologies discussed herein. The instructions 1450 may reside, completely or partially, within at least one of the processors 1410 (e.g., within the processor's cache memory), the memory/storage devices 1420, or any suitable combination thereof. Furthermore, any portion of the instructions 1450 may be transferred to the hardware resources 1400 from any combination of the peripheral devices 1404 or the databases 1406. Accordingly, the memory of processors 1410, the memory/storage devices 1420, the peripheral devices 1404, and the databases 1406 are examples of computer-readable and machine-readable media.
The network 1500 may operate in a matter consistent with 3GPP technical specifications or technical reports for 6G systems. In some examples, the network 1500 may operate concurrently with network 1200. For example, in some examples, the network 1500 may share one or more frequency or bandwidth resources with network 1200. As one specific example, a UE (e.g., UE 1502) may be configured to operate in both network 1500 and network 1200. Such configuration may be based on a UE including circuitry configured for communication with frequency and bandwidth resources of both networks 1200 and 1500. In general, several elements of network 1500 may share one or more characteristics with elements of network 1200. For the sake of brevity and clarity, such elements may not be repeated in the description of network 1500.
The network 1500 may include a UE 1502, which may include any mobile or non-mobile computing device designed to communicate with a RAN 1508 via an over-the-air connection. The UE 1502 may be similar to, for example, UE 1202. The UE 1502 may be, but is not limited to, a smartphone, tablet computer, wearable computer device, desktop computer, laptop computer, in-vehicle infotainment, in-car entertainment device, instrument cluster, head-up display device, onboard diagnostic device, dashtop mobile equipment, mobile data terminal, electronic engine management system, electronic/engine control unit, electronic/engine control module, embedded system, sensor, microcontroller, control module, engine management system, networked appliance, machine-type communication device, M2M or D2D device, IoT device, etc.
Although not specifically shown in
The UE 1502 and the RAN 1508 may be configured to communicate via an air interface that may be referred to as a sixth generation (6G) air interface. The 6G air interface may include one or more features such as communication in a terahertz (THz) or sub-THz bandwidth, or joint communication and sensing. As used herein, the term “joint communication and sensing” may refer to a system that allows for wireless communication as well as radar-based sensing via various types of multiplexing. As used herein, THz or sub-THz bandwidths may refer to communication in the 80 GHz and above frequency ranges. Such frequency ranges may additionally or alternatively be referred to as “millimeter wave” or “mmWave” frequency ranges.
The RAN 1508 may allow for communication between the UE 1502 and a 6G core network (CN) 1510. Specifically, the RAN 1508 may facilitate the transmission and reception of data between the UE 1502 and the 6G CN 1510. The 6G CN 1510 may include various functions such as NSSF 1250, NEF 1252, NRF 1254, PCF 1256, UDM 1258, AF 1260, SMF 1246, and AUSF 1242. The 6G CN 1510 may additional include UPF 1248 and DN 1236 as shown in
Additionally, the RAN 1508 may include various additional functions that are in addition to, or alternative to, functions of a legacy cellular network such as a 4G or 5G network. Two such functions may include a Compute Control Function (Comp CF) 1524 and a Compute Service Function (Comp SF) 1536. The Comp CF 1524 and the Comp SF 1536 may be parts or functions of the Computing Service Plane. Comp CF 1524 may be a control plane function that provides functionalities such as management of the Comp SF 1536, computing task context generation and management (e.g., create, read, modify, delete), interaction with the underlaying computing infrastructure for computing resource management, etc. Comp SF 1536 may be a user plane function that serves as the gateway to interface computing service users (such as UE 1502) and computing nodes behind a Comp SF instance. Some functionalities of the Comp SF 1536 may include: parse computing service data received from users to compute tasks executable by computing nodes; hold service mesh ingress gateway or service API gateway; service and charging policies enforcement; performance monitoring and telemetry collection, etc. In some examples, a Comp SF 1536 instance may serve as the user plane gateway for a cluster of computing nodes. A Comp CF 1524 instance may control one or more Comp SF 1536 instances.
Two other such functions may include a Communication Control Function (Comm CF) 1528 and a Communication Service Function (Comm SF) 1538, which may be parts of the Communication Service Plane. The Comm CF 1528 may be the control plane function for managing the Comm SF 1538, communication sessions creation/configuration/releasing, and managing communication session context. The Comm SF 1538 may be a user plane function for data transport. Comm CF 1528 and Comm SF 1538 may be considered as upgrades of SMF 1246 and UPF 1248, which were described with respect to a 5G system in
Two other such functions may include a Data Control Function (Data CF) 1522 and Data Service Function (Data SF) 1532 may be parts of the Data Service Plane. Data CF 1522 may be a control plane function and provides functionalities such as Data SF 1532 management, Data service creation/configuration/releasing, Data service context management, etc. Data SF 1532 may be a user plane function and serve as the gateway between data service users (such as UE 1502 and the various functions of the 6G CN 1510) and data service endpoints behind the gateway. Specific functionalities may include: parse data service user data and forward to corresponding data service endpoints, generate charging data, report data service status.
Another such function may be the Service Orchestration and Chaining Function (SOCF) 1520, which may discover, orchestrate and chain up communication/computing/data services provided by functions in the network. Upon receiving service requests from users, SOCF 1520 may interact with one or more of Comp CF 1524, Comm CF 1528, and Data CF 1522 to identify Comp SF 1536, Comm SF 1538, and Data SF 1532 instances, configure service resources, and generate the service chain, which could contain multiple Comp SF 1536, Comm SF 1538, and Data SF 1532 instances and their associated computing endpoints. Workload processing and data movement may then be conducted within the generated service chain. The SOCF 1520 may also responsible for maintaining, updating, and releasing a created service chain.
Another such function may be the service registration function (SRF) 1514, which may act as a registry for system services provided in the user plane such as services provided by service endpoints behind Comp SF 1536 and Data SF 1532 gateways and services provided by the UE 1502. The SRF 1514 may be considered a counterpart of NRF 1254, which may act as the registry for network functions.
Other such functions may include an evolved service communication proxy (eSCP) and service infrastructure control function (SICF) 1526, which may provide service communication infrastructure for control plane services and user plane services. The eSCP may be related to the service communication proxy (SCP) of 5G with user plane service communication proxy capabilities being added. The eSCP is therefore expressed in two parts: eCSP-C 712 and eSCP-U 1534, for control plane service communication proxy and user plane service communication proxy, respectively. The SICF 1526 may control and configure eCSP instances in terms of service traffic routing policies, access rules, load balancing configurations, performance monitoring, etc.
Another such function is the AMF 1544. The AMF 1544 may be similar to 1244, but with additional functionality. Specifically, the AMF 1544 may include potential functional repartition, such as move the message forwarding functionality from the AMF 1544 to the RAN 1508.
Another such function is the service orchestration exposure function (SOEF) 1518. The SOEF may be configured to expose service orchestration and chaining services to external users such as applications.
The UE 1502 may include an additional function that is referred to as a computing client service function (comp CSF) 1504. The comp CSF 1504 may have both the control plane functionalities and user plane functionalities, and may interact with corresponding network side functions such as SOCF 1520, Comp CF 1524, Comp SF 1536, Data CF 1522, and/or Data SF 1532 for service discovery, request/response, compute task workload exchange, etc. The Comp CSF 1504 may also work with network side functions to decide on whether a computing task should be run on the UE 1502, the RAN 1508, and/or an element of the 6G CN 1510.
The UE 1502 and/or the Comp CSF 1504 may include a service mesh proxy 1506. The service mesh proxy 1506 may act as a proxy for service-to-service communication in the user plane. Capabilities of the service mesh proxy 1506 may include one or more of addressing, security, load balancing, and/or the like.
In this example, the UE 1605 and the RAN 1610 operate in a matter consistent with 3GPP technical specifications and/or technical reports for 6G systems. In some examples, the wireless cellular communication between the UE 1605 and the RAN 1610 may be part of, or operate concurrently with, networks 1200, 1500, and/or some other network described herein.
The UE 1605 may be similar to, and share one or more features with, UE 1202, UE 1502, and/or some other UE described herein. The UE 1605 may be, but is not limited to, a smartphone, tablet computer, wearable computer device, desktop computer, laptop computer, in-vehicle infotainment, in-car entertainment device, instrument cluster, head-up display device, onboard diagnostic device, dashtop mobile equipment, mobile data terminal, electronic engine management system, electronic/engine control unit, electronic/engine control module, embedded system, sensor, microcontroller, control module, engine management system, networked appliance, machine-type communication device, M2M or D2D device, IoT device, etc. The RAN 1610 may be similar to, and share one or more features with, RAN 1214, RAN 1508, and/or some other RAN described herein.
As may be seen in
As previously noted, the UE 1605 may include various elements or functions that are related to AI/ML. Such elements may be implemented as hardware, software, firmware, and/or some combination thereof. In examples, one or more of the elements may be implemented as part of the same hardware (e.g., chip or multi-processor chip), software (e.g., a computing program), or firmware as another element.
One such element may be a data repository 1615. The data repository 1615 may be responsible for data collection and storage. Specifically, the data repository 1615 may collect and store RAN configuration parameters, measurement data, performance key performance indicators (KPIs), model performance metrics, etc., for model training, update, and inference. More generally, collected data is stored into the repository. Stored data can be discovered and extracted by other elements from the data repository 1615. For example, as may be seen, the inference data selection/filter element 1650 may retrieve data from the data repository 815. In various examples, the UE 1605 may be configured to discover and request data from the data repository 1615 in the RAN, and vice versa. More generally, the data repository 1615 of the UE 1605 may be communicatively coupled with the data repository 1615 of the RAN 1610 such that the respective data repositories of the UE and the RAN may share collected data with one another.
Another such element may be a training data selection/filtering functional block 1620. The training data selection/filter functional block 1620 may be configured to generate training, validation, and testing datasets for model training. Training data may be extracted from the data repository 1615. Data may be selected/filtered based on the specific AI/ML model to be trained. Data may optionally be transformed/augmented/pre-processed (e.g., normalized) before being loaded into datasets. The training data selection/filter functional block 1620 may label data in datasets for supervised learning. The produced datasets may then be fed into model training the model training functional block 1625.
As noted above, another such element may be the model training functional block 1625. This functional block may be responsible for training and updating (re-training) AI/ML models. The selected model may be trained using the fed-in datasets (including training, validation, testing) from the training data selection/filtering functional block. The model training functional block 1625 may produce trained and tested AI/ML models which are ready for deployment. The produced trained and tested models can be stored in a model repository 1635.
The model repository 1635 may be responsible for AI/ML models' (both trained and un-trained) storage and exposure. Trained/updated model(s) may be stored into the model repository 1635. Model and model parameters may be discovered and requested by other functional blocks (e.g., the training data selection/filter functional block 1620 and/or the model training functional block 1625). In some examples, the UE 1605 may discover and request AI/ML models from the model repository 1635 of the RAN 1610. Similarly, the RAN 1610 may be able to discover and/or request AI/ML models from the model repository 1635 of the UE 1605. In some examples, the RAN 1610 may configure models and/or model parameters in the model repository 1635 of the UE 1605.
Another such element may be a model management functional block 1640. The model management functional block 1640 may be responsible for management of the AI/ML model produced by the model training functional block 1625. Such management functions may include deployment of a trained model, monitoring model performance, etc. In model deployment, the model management functional block 1640 may allocate and schedule hardware and/or software resources for inference, based on received trained and tested models. As used herein, “inference” refers to the process of using trained AI/ML model(s) to generate data analytics, actions, policies, etc. based on input inference data. In performance monitoring, based on wireless performance KPIs and model performance metrics, the model management functional block 1640 may decide to terminate the running model, start model re-training, select another model, etc. In examples, the model management functional block 1640 of the RAN 1610 may be able to configure model management policies in the UE 1605 as shown.
Another such element may be an inference data selection/filtering functional block 1650. The inference data selection/filter functional block 1650 may be responsible for generating datasets for model inference at the inference functional block 1645, as described below. Specifically, inference data may be extracted from the data repository 1615. The inference data selection/filter functional block 1650 may select and/or filter the data based on the deployed AI/ML model. Data may be transformed/augmented/pre-processed following the same transformation/augmentation/pre-processing as those in training data selection/filtering as described with respect to functional block 1620. The produced inference dataset may be fed into the inference functional block 1645.
Another such element may be the inference functional block 1645. The inference functional block 1645 may be responsible for executing inference as described above. Specifically, the inference functional block 1645 may consume the inference dataset provided by the inference data selection/filtering functional block 1650, and generate one or more outcomes. Such outcomes may be or include data analytics, actions, policies, etc. The outcome(s) may be provided to the performance measurement functional block 1630.
The performance measurement functional block 1630 may be configured to measure model performance metrics (e.g., accuracy, model bias, run-time latency, etc.) of deployed and executing models based on the inference outcome(s) for monitoring purpose. Model performance data may be stored in the data repository 1615.
The following examples pertain to further embodiments.
For one or more embodiments, at least one of the components set forth in one or more of the preceding figures may be configured to perform one or more operations, techniques, processes, and/or methods as set forth in the example section below. For example, the baseband circuitry as described above in connection with one or more of the preceding figures may be configured to operate in accordance with one or more of the examples set forth below. For another example, circuitry associated with a UE, base station, network element, etc. as described above in connection with one or more of the preceding figures may be configured to operate in accordance with one or more of the examples set forth below in the example section.
The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments. The terms “computing device,” “user device,” “communication station,” “station,” “handheld device,” “mobile device,” “wireless device” and “user equipment” (UE) as used herein refers to a wireless communication device such as a cellular telephone, a smartphone, a tablet, a netbook, a wireless terminal, a laptop computer, a femtocell, a high data rate (HDR) subscriber station, an access point, a printer, a point of sale device, an access terminal, or other personal communication system (PCS) device. The device may be either mobile or stationary.
As used within this document, the term “communicate” is intended to include transmitting, or receiving, or both transmitting and receiving. This may be particularly useful in claims when describing the organization of data that is being transmitted by one device and received by another, but only the functionality of one of those devices is required to infringe the claim. Similarly, the bidirectional exchange of data between two devices (both devices transmit and receive during the exchange) may be described as “communicating,” when only the functionality of one of those devices is being claimed. The term “communicating” as used herein with respect to a wireless communication signal includes transmitting the wireless communication signal and/or receiving the wireless communication signal. For example, a wireless communication unit, which is capable of communicating a wireless communication signal, may include a wireless transmitter to transmit the wireless communication signal to at least one other wireless communication unit, and/or a wireless communication receiver to receive the wireless communication signal from at least one other wireless communication unit.
As used herein, unless otherwise specified, the use of the ordinal adjectives “first,” “second,” “third,” etc., to describe a common object, merely indicates that different instances of like objects are being referred to and are not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in ranking, or in any other manner.
The term “access point” (AP) as used herein may be a fixed station. An access point may also be referred to as an access node, a base station, an evolved node B (eNodeB), or some other similar terminology known in the art. An access terminal may also be called a mobile station, user equipment (UE), a wireless communication device, or some other similar terminology known in the art. Embodiments disclosed herein generally pertain to wireless networks. Some embodiments may relate to wireless networks that operate in accordance with one of the IEEE 802.11 standards.
Some embodiments may be used in conjunction with various devices and systems, for example, a personal computer (PC), a desktop computer, a mobile computer, a laptop computer, a notebook computer, a tablet computer, a server computer, a handheld computer, a handheld device, a personal digital assistant (PDA) device, a handheld PDA device, an on-board device, an off-board device, a hybrid device, a vehicular device, a non-vehicular device, a mobile or portable device, a consumer device, a non-mobile or non-portable device, a wireless communication station, a wireless communication device, a wireless access point (AP), a wired or wireless router, a wired or wireless modem, a video device, an audio device, an audio-video (A/V) device, a wired or wireless network, a wireless area network, a wireless video area network (WVAN), a local area network (LAN), a wireless LAN (WLAN), a personal area network (PAN), a wireless PAN (WPAN), and the like.
Some embodiments may be used in conjunction with one way and/or two-way radio communication systems, cellular radio-telephone communication systems, a mobile phone, a cellular telephone, a wireless telephone, a personal communication system (PCS) device, a PDA device which incorporates a wireless communication device, a mobile or portable global positioning system (GPS) device, a device which incorporates a GPS receiver or transceiver or chip, a device which incorporates an RFID element or chip, a multiple input multiple output (MIMO) transceiver or device, a single input multiple output (SIMO) transceiver or device, a multiple input single output (MISO) transceiver or device, a device having one or more internal antennas and/or external antennas, digital video broadcast (DVB) devices or systems, multi-standard radio devices or systems, a wired or wireless handheld device, e.g., a smartphone, a wireless application protocol (WAP) device, or the like.
Some embodiments may be used in conjunction with one or more types of wireless communication signals and/or systems following one or more wireless communication protocols, for example, radio frequency (RF), infrared (IR), frequency-division multiplexing (FDM), orthogonal FDM (OFDM), time-division multiplexing (TDM), time-division multiple access (TDMA), extended TDMA (E-TDMA), general packet radio service (GPRS), extended GPRS, code-division multiple access (CDMA), wideband CDMA (WCDMA), CDMA 2000, single-carrier CDMA, multi-carrier CDMA, multi-carrier modulation (MDM), discrete multi-tone (DMT), Bluetooth®, global positioning system (GPS), Wi-Fi, Wi-Max, ZigBee, ultra-wideband (UWB), global system for mobile communications (GSM), 2G, 2.5G, 3G, 3.5G, 4G, fifth generation (5G) mobile networks, 3GPP, long term evolution (LTE), LTE advanced, enhanced data rates for GSM Evolution (EDGE), or the like. Other embodiments may be used in various other devices, systems, and/or networks.
Various embodiments are described below.
Example 1 may include a wireless communications network service-based architecture for providing data query and manipulation services, the wireless communications network service-based architecture comprising processing circuitry for a network function coupled to storage for storing information associated with the data query and manipulation services, the processing circuitry configured to: detect a request from a service consumer, received at a GraphQL interface of the network function, to query or manipulate data; and provide, using the GraphQL interface, a response to the request.
Example 2 may include the wireless communications network service-based architecture of example 1 and/or any other example herein, wherein the network function is paired with a database that supports GraphQL query language.
Example 3 may include the wireless communications network service-based architecture of example 2 and/or any other example herein, wherein the service consumer supports GraphQL client functionality.
Example 4 may include the wireless communications network service-based architecture of example 1 and/or any other example herein, wherein the data query and manipulation services of the network function support the GraphQL interface.
Example 5 may include the wireless communications network service-based architecture of example 4 and/or any other example herein, wherein other data query and manipulation services of the network function not supporting data query or manipulation use a RESTful interface of the network function.
Example 6 may include the wireless communications network service-based architecture of example 1 and/or any other example herein, wherein a data service function (DSF) of the wireless communications network service-based architecture is configured to provide network mediation functionality for data service access, and comprises GraphQL interfaces and RESTful interfaces.
Example 7 may include the wireless communications network service-based architecture of example 6 and/or any other example herein, wherein the DSF is a single-entry endpoint for accessing all data sources based on consolidating all schemas into a single GraphQL schema.
Example 8 may include the wireless communications network service-based architecture of example 6 and/or any other example herein, wherein the DSF interacts with different application programming interface schema-based data sources comprising the network function, at least one additional network function of the wireless communications network service-based architecture, and at least one external data source, and wherein the response uses a GraphQL format.
Example 9 may include the wireless communications network service-based architecture of any of examples 1-8 and/or any other example herein, wherein a protocol stack is used for the GraphQL interface.
Example 10 may include the wireless communications network service-based architecture of example 1 and/or any other example herein, wherein the GraphQL interface uses JavaScript Object Notation (JSON) as a serialization format.
Example 11 may include the wireless communications network service-based architecture of example 1 and/or any other example herein, wherein the GraphQL interface uses a same HperText Transfer Protocol (HTTP) or transport protocol as a Fifth Generation (5G) communications service-based architecture.
Example 12 may include the wireless communications network service-based architecture of example 1 and/or any other example herein, wherein a default port number for the GraphQL interface is different than a default port number of a RESTful interface of the network function.
Example 13 may include the wireless communications network service-based architecture of example 1 and/or any other example herein, wherein the GraphQL interface uses a same security protocol as a 5G service-based architecture.
Example 14 may include the wireless communications network service-based architecture of example 1 and/or any other example herein, wherein the GraphQL interface uses a same syntax as interface definition language (IDL), and wherein the same syntax as the IDL is different than a syntax used by a RESTful interface of the network function.
Example 15 may include the wireless communications network service-based architecture of example 1 and/or any other example herein, wherein the GraphQL interface uses a uniform resource identifier (URI) with a structure of application programming interface (API) root, API name, and GraphQL.
Example 16 may include the wireless communications network service-based architecture of any of examples 1-15 and/or any other example herein, wherein the request is a HTTP GET request to query the data.
Example 17 may include the wireless communications network service-based architecture of any of examples 1-15 and/or any other example herein, wherein the request is a HTTP POST request to add, update, or delete the data.
Example 18 may include the wireless communications network service-based architecture of any of examples 1-15 and/or any other example herein, wherein a transport protocol used by the GraphQL interface may be a web socket or HTTP.
Example 19 may include the wireless communications network service-based architecture of any of examples 1-15 and/or any other example herein, wherein the processing circuitry is further configured to: obtain, by the network service function, notification endpoint information of the service consumer from a network repository function of the wireless communications network service-based architecture.
Example 20 may include the wireless communications network service-based architecture of any of examples 1-15 and/or any other example herein, wherein the GraphQL interface comprises a data query service operation for fetching the data, a data creation service operation for adding the data, a data update service operation for modifying the data, a data delete service operation for deleting the data, and a subscribe and notify service operation for changes to the data.
Example 21 may include a computer-readable storage medium comprising instructions to cause processing circuitry of a network function of a wireless communications network service-based architecture for providing data query and manipulation services, upon execution of the instructions by the processing circuitry, to: detect a request from a service consumer, received at a GraphQL interface of the network function, to query or manipulate data; and provide, using the GraphQL interface, a response to the request.
Example 22 may include a method for providing data query and manipulation services, the method comprising: detecting, by a network function of a wireless communications network service-based architecture, a request from a service consumer to query or manipulate data, wherein the request is received at a GraphQL interface of the network function; and providing, by the network function, using the GraphQL interface, a response to the request.
Example 23 may include the method of example 22 and/or any other example herein, wherein the network function is paired with a database that supports GraphQL query language.
Example 24 may include an apparatus comprising means for: detecting a request from a service consumer, received at a GraphQL interface of the network function, to query or manipulate data; and providing, using the GraphQL interface, a response to the request.
Example 25 may include one or more non-transitory computer-readable media comprising instructions to cause an electronic device, upon execution of the instructions by one or more processors of the electronic device, to perform one or more elements of a method described in or related to any of examples 1-24, or any other method or process described herein.
Example 26 may include an apparatus comprising logic, modules, and/or circuitry to perform one or more elements of a method described in or related to any of examples 1-24, or any other method or process described herein.
Example 27 may include a method, technique, or process as described in or related to any of examples 1-24, or portions or parts thereof.
Example 28 may include an apparatus comprising: one or more processors and one or more computer readable media comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform the method, techniques, or process as described in or related to any of examples 1-24, or portions thereof.
Example 29 may include a method of communicating in a wireless network as shown and described herein.
Example 30 may include a system for providing wireless communication as shown and described herein.
Example 31 may include a device for providing wireless communication as shown and described herein.
Embodiments according to the disclosure are in particular disclosed in the attached claims directed to a method, a storage medium, a device and a computer program product, wherein any feature mentioned in one claim category, e.g., method, can be claimed in another claim category, e.g., system, as well. The dependencies or references back in the attached claims are chosen for formal reasons only. However, any subject matter resulting from a deliberate reference back to any previous claims (in particular multiple dependencies) can be claimed as well, so that any combination of claims and the features thereof are disclosed and can be claimed regardless of the dependencies chosen in the attached claims. The subject-matter which can be claimed comprises not only the combinations of features as set out in the attached claims but also any other combination of features in the claims, wherein each feature mentioned in the claims can be combined with any other feature or combination of other features in the claims. Furthermore, any of the embodiments and features described or depicted herein can be claimed in a separate claim and/or in any combination with any embodiment or feature described or depicted herein or with any of the features of the attached claims.
The foregoing description of one or more implementations provides illustration and description, but is not intended to be exhaustive or to limit the scope of embodiments to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of various embodiments.
Certain aspects of the disclosure are described above with reference to block and flow diagrams of systems, methods, apparatuses, and/or computer program products according to various implementations. It will be understood that one or more blocks of the block diagrams and flow diagrams, and combinations of blocks in the block diagrams and the flow diagrams, respectively, may be implemented by computer-executable program instructions. Likewise, some blocks of the block diagrams and flow diagrams may not necessarily need to be performed in the order presented, or may not necessarily need to be performed at all, according to some implementations.
These computer-executable program instructions may be loaded onto a special-purpose computer or other particular machine, a processor, or other programmable data processing apparatus to produce a particular machine, such that the instructions that execute on the computer, processor, or other programmable data processing apparatus create means for implementing one or more functions specified in the flow diagram block or blocks. These computer program instructions may also be stored in a computer-readable storage media or memory that may direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable storage media produce an article of manufacture including instruction means that implement one or more functions specified in the flow diagram block or blocks. As an example, certain implementations may provide for a computer program product, comprising a computer-readable storage medium having a computer-readable program code or program instructions implemented therein, said computer-readable program code adapted to be executed to implement one or more functions specified in the flow diagram block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational elements or steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions that execute on the computer or other programmable apparatus provide elements or steps for implementing the functions specified in the flow diagram block or blocks.
Accordingly, blocks of the block diagrams and flow diagrams support combinations of means for performing the specified functions, combinations of elements or steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block of the block diagrams and flow diagrams, and combinations of blocks in the block diagrams and flow diagrams, may be implemented by special-purpose, hardware-based computer systems that perform the specified functions, elements or steps, or combinations of special-purpose hardware and computer instructions.
Conditional language, such as, among others, “can,” “could,” “might,” or “may,” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain implementations could include, while other implementations do not include, certain features, elements, and/or operations. Thus, such conditional language is not generally intended to imply that features, elements, and/or operations are in any way required for one or more implementations or that one or more implementations necessarily include logic for deciding, with or without user input or prompting, whether these features, elements, and/or operations are included or are to be performed in any particular implementation.
Many modifications and other implementations of the disclosure set forth herein will be apparent having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the disclosure is not to be limited to the specific implementations disclosed and that modifications and other implementations are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
For the purposes of the present document, the following terms and definitions are applicable to the examples and embodiments discussed herein.
The term “circuitry” as used herein refers to, is part of, or includes hardware components such as an electronic circuit, a logic circuit, a processor (shared, dedicated, or group) and/or memory (shared, dedicated, or group), an Application Specific Integrated Circuit (ASIC), a field-programmable device (FPD) (e.g., a field-programmable gate array (FPGA), a programmable logic device (PLD), a complex PLD (CPLD), a high-capacity PLD (HCPLD), a structured ASIC, or a programmable SoC), digital signal processors (DSPs), etc., that are configured to provide the described functionality. In some embodiments, the circuitry may execute one or more software or firmware programs to provide at least some of the described functionality. The term “circuitry” may also refer to a combination of one or more hardware elements (or a combination of circuits used in an electrical or electronic system) with the program code used to carry out the functionality of that program code. In these embodiments, the combination of hardware elements and program code may be referred to as a particular type of circuitry.
The term “processor circuitry” as used herein refers to, is part of, or includes circuitry capable of sequentially and automatically carrying out a sequence of arithmetic or logical operations, or recording, storing, and/or transferring digital data. Processing circuitry may include one or more processing cores to execute instructions and one or more memory structures to store program and data information. The term “processor circuitry” may refer to one or more application processors, one or more baseband processors, a physical central processing unit (CPU), a single-core processor, a dual-core processor, a triple-core processor, a quad-core processor, and/or any other device capable of executing or otherwise operating computer-executable instructions, such as program code, software modules, and/or functional processes. Processing circuitry may include more hardware accelerators, which may be microprocessors, programmable processing devices, or the like. The one or more hardware accelerators may include, for example, computer vision (CV) and/or deep learning (DL) accelerators. The terms “application circuitry” and/or “baseband circuitry” may be considered synonymous to, and may be referred to as, “processor circuitry.”
The term “interface circuitry” as used herein refers to, is part of, or includes circuitry that enables the exchange of information between two or more components or devices. The term “interface circuitry” may refer to one or more hardware interfaces, for example, buses, I/O interfaces, peripheral component interfaces, network interface cards, and/or the like.
The term “user equipment” or “UE” as used herein refers to a device with radio communication capabilities and may describe a remote user of network resources in a communications network. The term “user equipment” or “UE” may be considered synonymous to, and may be referred to as, client, mobile, mobile device, mobile terminal, user terminal, mobile unit, mobile station, mobile user, subscriber, user, remote station, access agent, user agent, receiver, radio equipment, reconfigurable radio equipment, reconfigurable mobile device, etc. Furthermore, the term “user equipment” or “UE” may include any type of wireless/wired device or any computing device including a wireless communications interface.
The term “network element” as used herein refers to physical or virtualized equipment and/or infrastructure used to provide wired or wireless communication network services. The term “network element” may be considered synonymous to and/or referred to as a networked computer, networking hardware, network equipment, network node, router, switch, hub, bridge, radio network controller, RAN device, RAN node, gateway, server, virtualized VNF, NFVI, and/or the like.
The term “computer system” as used herein refers to any type interconnected electronic devices, computer devices, or components thereof. Additionally, the term “computer system” and/or “system” may refer to various components of a computer that are communicatively coupled with one another. Furthermore, the term “computer system” and/or “system” may refer to multiple computer devices and/or multiple computing systems that are communicatively coupled with one another and configured to share computing and/or networking resources.
The term “appliance,” “computer appliance,” or the like, as used herein refers to a computer device or computer system with program code (e.g., software or firmware) that is specifically designed to provide a specific computing resource. A “virtual appliance” is a virtual machine image to be implemented by a hypervisor-equipped device that virtualizes or emulates a computer appliance or otherwise is dedicated to provide a specific computing resource.
The term “resource” as used herein refers to a physical or virtual device, a physical or virtual component within a computing environment, and/or a physical or virtual component within a particular device, such as computer devices, mechanical devices, memory space, processor/CPU time, processor/CPU usage, processor and accelerator loads, hardware time or usage, electrical power, input/output operations, ports or network sockets, channel/link allocation, throughput, memory usage, storage, network, database and applications, workload units, and/or the like. A “hardware resource” may refer to compute, storage, and/or network resources provided by physical hardware element(s). A “virtualized resource” may refer to compute, storage, and/or network resources provided by virtualization infrastructure to an application, device, system, etc. The term “network resource” or “communication resource” may refer to resources that are accessible by computer devices/systems via a communications network. The term “system resources” may refer to any kind of shared entities to provide services, and may include computing and/or network resources. System resources may be considered as a set of coherent functions, network data objects or services, accessible through a server where such system resources reside on a single host or multiple hosts and are clearly identifiable.
The term “channel” as used herein refers to any transmission medium, either tangible or intangible, which is used to communicate data or a data stream. The term “channel” may be synonymous with and/or equivalent to “communications channel,” “data communications channel,” “transmission channel,” “data transmission channel,” “access channel,” “data access channel,” “link,” “data link,” “carrier,” “radiofrequency carrier,” and/or any other like term denoting a pathway or medium through which data is communicated. Additionally, the term “link” as used herein refers to a connection between two devices through a RAT for the purpose of transmitting and receiving information.
The terms “instantiate,” “instantiation,” and the like as used herein refers to the creation of an instance. An “instance” also refers to a concrete occurrence of an object, which may occur, for example, during execution of program code.
The terms “coupled,” “communicatively coupled,” along with derivatives thereof are used herein. The term “coupled” may mean two or more elements are in direct physical or electrical contact with one another, may mean that two or more elements indirectly contact each other but still cooperate or interact with each other, and/or may mean that one or more other elements are coupled or connected between the elements that are said to be coupled with each other. The term “directly coupled” may mean that two or more elements are in direct contact with one another. The term “communicatively coupled” may mean that two or more elements may be in contact with one another by a means of communication including through a wire or other interconnect connection, through a wireless communication channel or link, and/or the like.
The term “information element” refers to a structural element containing one or more fields. The term “field” refers to individual contents of an information element, or a data element that contains content.
Unless used differently herein, terms, definitions, and abbreviations may be consistent with terms, definitions, and abbreviations defined in 3GPP TR 21.905 v16.0.0 (2019-06) and/or any other 3GPP standard. For the purposes of the present document, the following abbreviations (shown in Table 4) may apply to the examples and embodiments discussed herein.
Number | Date | Country | Kind |
---|---|---|---|
PCT/CN2023/083675 | Mar 2023 | WO | international |
This application claims the benefit of PCT Provisional Application No. PCT/CN2023/083675, filed Mar. 24, 2023, the disclosure of which is incorporated herein by reference as if set forth in full.