Patent Description:
Modern terrestrial telecommunication systems include heterogeneous mixtures of second, third, and fourth generation (<NUM>, <NUM>, and <NUM>) cellular-wireless access technologies, which can be cross-compatible and can operate collectively to provide data communication services. Global Systems for Mobile (GSM) is an example of <NUM> telecommunications technologies; Universal Mobile Telecommunications System (UMTS) is an example of <NUM> telecommunications technologies; and Long Term Evolution (LTE), including LTE Advanced, and Evolved High-Speed Packet Access (HSPA+) are examples of <NUM> telecommunications technologies. Moving forward, future telecommunications systems may include fifth generation (<NUM>) cellular-wireless access technologies to provide improved bandwidth and decreased response times to a multitude of devices that may be connected to a network. Patent document <CIT> describes a system comprising a processor of a communications device configured to monitor a network service usage activity of the communications device in network communication, classify the network service usage activity for differential network access control for protecting network capacity, and associate the network service usage activity with a network service usage control policy based on a classification of the network service usage activity to facilitate differential network access control for protecting network capacity; and a memory coupled to the processor and configured to provide the processor with instructions.

The systems, devices, and techniques described herein are directed to function selection based on utilization levels in mobile networks. In particular, the systems, devices, and techniques can be implemented in fifth generation (<NUM>) mobile networks to provide intelligent selection of a user plane function (UPF) based on utilization levels, capability information, and/or locality information. For example, one or more UPFs can provide indications of a utilization level of the UPF to a network resource function (NRF), which can manage a database of the various utilizations levels of various UPFs. Based on a current, historical, or expected utilization of one or more UPFs, and/or based on the services requested and various locations of the services in a network, the NRF can select and provide, in part, a UPF to the UE, so that the UPF can carry user traffic associated with the UE.

The various functions and components discussed herein can be implemented either as a network element on a dedicated hardware, as a software instance running on a dedicated hardware, or as a virtualized function instantiated on an appropriate platform, such as a cloud infrastructure. Thus, in the case where a UPF is implemented as a software instance or as a virtualized function (e.g., as a virtual machine), efficiencies can be gained by balancing a load provided to the various UPFs in the network, instead of or in addition to overallocation of resources and/or dynamic sizing of the software instance or virtual resources. For example, as a utilization level of a UPF approaches <NUM>% utilization (e.g., of CPU utilization, bandwidth utilization, memory utilization, number of allowable sessions, etc.), additional requests for the UPF can be rerouted to other UPFs having a lower utilization level. In some cases, a UPF operating at a high utilization level can lead to dropped packets, increased latency, or overall decrease in QoS (quality of service) or QoE (quality of experience). Thus, the function selection based on utilization level can prevent reductions to the level of service provided to various UEs transmitting or receiving traffic associated with a UPF.

The system, devices, and techniques described herein can be applied to selecting any function in a mobile network based at least in part on utilization levels. For example, various components of a fifth generation (<NUM>) mobile network can include, but are not limited to, a network exposure function (NEF), a network resource function (NRF), an authentication server function (AUSF), an access and mobility management function (AMF), a policy control function (PCF), a session management function (SMF), a unified data management (UDM) function, a user plane function (UPF), and/or an application function (AF). For example, some or all of the functions discussed herein can provide utilization levels, capability information, locality information, etc., associated with the various functions to a network resource function (NRF) (or other component), for example, such that the NRF or other component can select a particular function of a plurality of possible components providing the same function based on the utilization levels of the particular component. Thus, the system, devices, and techniques broadly apply to selecting network functions, and is not limited to a particular context or function, as discussed herein.

The systems, devices, and techniques described herein can improve a functioning of a network by reducing network congestion, dropped packets, or dropped calls due to overutilization of resources. Further, the systems, devices, and techniques can reduce a size of components (e.g., processing capacity) by obviating or reducing any need to over-allocate resources to ensure spare capacity to reduce congestion. Further, selecting functions based on utilization levels can reduce signaling overhead associated with dynamically allocating a size of a virtual instance. In some instances, the architecture described herein facilitates scalability to allow for additional components to be added or removed while maintaining network performance. In some instances, optimal functions can be selected in connection with handovers (e.g., intracell or intercell) to balance a load on network functions to provide improved Quality of Service (QoS) for network communications. These and other improvements to the functioning of a computer and network are discussed herein.

The systems, devices, and techniques described herein can be implemented in a number of ways. Example implementations are provided below with reference to the following figures.

<FIG> is a diagram illustrating example signaling <NUM> between a user equipment (UE) and various components of a mobile network, such as a fifth generation (<NUM>) mobile network, as described herein. As illustrated, the signaling <NUM> includes interactions between a user equipment (UE) <NUM>, an access and mobility management function (AMF) <NUM>, a network resource function (NRF) <NUM>, a session management function (SMF) <NUM>, and a user plane function (UPF) <NUM>. As can be understood in the context of this disclosure, the example signaling <NUM> is not limited to the components described in <FIG>, and can include other components and operations.

In general, the UE <NUM> can be implemented as any suitable type of computing device configured to communicate over a wired or wireless network, including, without limitation, a mobile phone (e.g., a smart phone), a tablet computer, a laptop computer, a portable digital assistant (PDA), a wearable computer (e.g., electronic/smart glasses, a smart watch, fitness trackers, etc.), an internet-of-things (IoT) device, an in-vehicle (e.g., in-car) computer, and/or any similar mobile device, as well as situated computing devices including, without limitation, a television (smart television), set-top-box (STB), desktop computer, an IoT device, and the like.

In general, the AMF <NUM> can be implemented as a network function including functionality to provide UE-based authentication, authorization, mobility management, etc., to various UEs. In some instances, the AMF <NUM> can include functionality to terminate a radio access network (RAN) control plane interface between the UE <NUM> and other functions on the network. In some instances, the AMF <NUM> can include functionality to perform registration management of the UE <NUM> in a network, connection management, reachability management, mobility management, access authentication, access authorization, security anchor functionality (e.g., receiving and/or transmitting security keys during registration/authorization), and the like.

In general, the NRF <NUM> can be implemented as a network function including functionality to support service discovery (e.g., receive a network function discovery request and provide information associated with the discovered network function instances to a requesting entity). In some instances, the NRF can receive utilization information, capability information, etc. from various network functions, such as the UPF <NUM>, to provide such utilization information to the other components discussed herein. Further, the NRF <NUM> can select, assign, implement, or otherwise determine network functions to be used in a network based at least in part on utilization information, as discussed herein.

In general, the SMF <NUM> can be implemented as a network function including functionality to manage communication sessions by and between UEs, and/or to provide internet protocol (IP) addresses to the UEs. In some instances, the SMF <NUM> can select a UPF of a plurality of UPFs, or the SMF <NUM> can utilize a UPF provided by the NRF <NUM>, as discussed herein.

In general, the UPF <NUM> can be implemented as a network function including functionality to control data transfer between the UE <NUM> and the various components of the network. In some instances, the UPF <NUM> can include functionality to act as an anchor point for radio access technology (RAT) handover (e.g., inter and intra), external protocol data unit (PDU) session point of interconnect to a data network (e.g., the internet), packet routing and forwarding, packet inspection and user plane portion of policy rule enforcement, traffic usage reporting, traffic routing, QoS handling for user plane (e.g., packet filtering, gating, uplink/downlink rate enforcement), uplink traffic verification, transport level packet marking in the uplink and downlink, downlink packet buffering and downlink data notification triggering, and the like. As can be understood in the context of this disclosure, there may be a plurality of UPFs associated with a network and/or with the UE <NUM>.

Turning to the signaling <NUM>, the UE <NUM> can transmit a registration request <NUM> to the AMF <NUM>. For example, the UE <NUM> can transmit the registration request <NUM> in response to the UE <NUM> being powered on, or in response to the UE <NUM> being exposed to a network. As discussed in connection with <FIG>, the AMF <NUM>, the NRF <NUM>, the SMF <NUM>, and the UPF <NUM> can collectively be referred to as a network.

In some instances, the registration request <NUM> can include additional signaling between the UE <NUM>, the AMF <NUM>, and/or other network components to authenticate the UE <NUM> (e.g., to determine that the UE <NUM> is authorized to operate on the network).

At a same or different time as the registration request <NUM>, the UPF <NUM> can transmit utilization information <NUM> to the NRF <NUM>. In some instances, the utilization information <NUM> can include information including, but not limited to: CPU utilization level; memory utilization level; active or reserved bandwidth; a number of active sessions; a number of allowable sessions; historical usage; instantaneous usage; dropped packets; packet queue size; delay; Quality of Service (QoS) level; and the like. Further, the utilization information <NUM> can include a status of the UPF <NUM> (e.g., online, offline, schedule for maintenance, etc.). In some instances, the UPF <NUM> can transmit the utilization info <NUM> at any regular or irregular interval. In some instances, the UPF <NUM> can transmit the utilization info <NUM> in response to a request from the NRF <NUM>, and/or in response to a change in one or more utilization levels above or below a threshold value.

Further, the signaling <NUM> can include receiving utilization information associated with any network function in a communications network, as discussed herein. In some instances, any network function discussed herein can be selected, determined, or implemented in the network based on the utilization information.

Next, the UE <NUM> can transmit a session request <NUM> to the AMF <NUM>, which in turn can transmit the session request <NUM> to the SMF <NUM>. In some instances, the session request <NUM> can include a request to initiate a voice communication, a video communication, a data communication, and the like, by and between the UE <NUM> and other services or devices in the network.

At least partially in response to receiving the session request <NUM>, the SMF <NUM> can transmit a UPF query <NUM> to the NRF <NUM>. In some instances, the UPF query <NUM> can include information including, but not limited to: a type of session requested by the UE <NUM> (e.g., voice, video, bandwidth, emergency, etc.); services requested by the UE <NUM>; a location of the UE <NUM>; a location of a destination of the session requested by the UE <NUM>; a request for a single UPF or a plurality of UPFs; and the like.

In some instances, at least partially in response to receiving the UPF query <NUM>, the NRF <NUM> can provide a UPF response <NUM> to the SMF <NUM>. In some instances, the UPF response <NUM> can include one or more identifiers associated with one or more UPFs that are available to provide services to the UE <NUM>. In some instances, the UPF response <NUM> can be based at least in part on the session request <NUM> and/or on the utilization info <NUM> received from the UPF <NUM> (as well as other UPFs, as discussed herein). As can be understood in the context of this disclosure, the UPF response <NUM> can include an identifier of a single UPF (e.g., the UPF <NUM>) to be utilized in a communication, and in some instances, the UPF response <NUM> can include a plurality of UPFs that are available/capable to accommodate the session request <NUM>. In some instances, the UPF response <NUM> can include utilization level(s), capability information, locality information, etc. associated with one or more UPFs.

Based at least in part on the UPF response <NUM>, the SMF <NUM> can select a UPF (e.g., in a case where a plurality of UPF identifiers are provided to the SMF <NUM>) or can utilize the UPF provided by the NRF <NUM> for a communication session. The SMF <NUM> can select a UPF and can transmit a UPF selection <NUM> to the UPF (e.g., the UPF <NUM>) that has been selected and/or designated to provide communications to the UE <NUM>.

At least partially in response to the UPF selection <NUM>, the UPF <NUM> can provide services <NUM> to the UE <NUM>. As discussed herein, the UPF <NUM> can facilitate data transfer to and/or from the UE <NUM> to facilitate communications such as voice communications, video communications, data communications, etc..

In accordance with various embodiments described herein, the terms "user equipment (UE)," "wireless communication device," "wireless device," "communication device," "mobile device," and "client device," can be used interchangeably herein to describe any UE (e.g., the UE <NUM>) that is capable of transmitting/receiving data wirelessly using any suitable wireless communications/data technology, protocol, or standard, such as Global System for Mobile Communications (GSM), Time Division Multiple Access (TDMA), Universal Mobile Telecommunications System (UMTS), Evolution-Data Optimized (EVDO), Long Term Evolution (LTE), Advanced LTE (LTE+), Generic Access Network (GAN), Unlicensed Mobile Access (UMA), Code Division Multiple Access (CDMA), Orthogonal Frequency Division Multiple Access (OFDM), General Packet Radio Service (GPRS), Enhanced Data GSM Environment (EDGE), Advanced Mobile Phone System (AMPS), High Speed Packet Access (HSPA), evolved HSPA (HSPA+), Voice over IP (VoIP), VoLTE, Institute of Electrical and Electronics Engineers' (IEEE) <NUM>. 1x protocols, WiMAX, Wi-Fi, Data Over Cable Service Interface Specification (DOCSIS), digital subscriber line (DSL), and/or any future IP-based network technology or evolution of an existing IP-based network technology.

In general, a user can further utilize the UE <NUM> to communicate with other users and associated UEs via an IP Multimedia Subsystem (IMS) core (sometimes referred to as the "IMS core network," the "IMS network," the "Core Network (CN)," or the "IM CN Subsystem"). IMS is an architectural framework defined by the <NUM>rd Generation Partnership Project (3GPP) for delivering Internet Protocol (IP) multimedia to a UE, such as the UE <NUM>. The IMS core can be maintained and/or operated by one or more service providers, such as one or more wireless carriers ("carriers"), that provide IMS-based services to users who are associated with UEs, such as the UE <NUM>. For example, a service provider can offer multimedia telephony services that allow a user to call or message other users via the IMS core using his/her UE. A user can also utilize an associated UE to receive, provide, or otherwise interact with various different IMS-based services by accessing the IMS core. It is to be appreciated that any number of base stations and/or IMS nodes can be include in the IMS network.

Accordingly, an operator of the IMS core can offer any type of IMS-based service, such as, telephony services, emergency services (e.g., E911), gaming services, instant messaging services, presence services, video conferencing services, social networking and sharing services, location-based services, push-to-talk services, and so on. In order to access these services (e.g., telephony services), a UE is configured to request establishment of a communication session. In the case of telephony services, the communication session can comprise a call (e.g., a voice-based communication session, such as a VoLTE call, or a Wi-Fi call).

The UE <NUM> is configured to utilize various radio access networks (RANs) in order to access the IMS core. In general, the IMS core is agnostic to the access technology that is used to connect a UE to the IMS core. In this manner, the UE <NUM> can connect to the IMS core via a 3GPP RAN, such a GSM/EDGE RAN (GERAN), a Universal Terrestrial RAN (UTRAN), or an evolved UTRAN (E-UTRAN), or alternatively, via a "non-3GPP" RAN, such as a Wi-Fi RAN, or another type of wireless local area network (WLAN) that is based on the IEEE <NUM> standards. Accessing the IMS core through a Wi-Fi access network typically involves the UE <NUM> communicating with the IMS core through a Wi-Fi access point (AP). Providing access to the IMS core through non-3GPP RANs has opened the door to recent advancements in IMS-based services, such as the introduction of Wi-Fi calling, which allows users to initiate and receive calls over an available Wi-Fi AP. Environments can include any number and type of base stations representing any number and type of macrocells, microcells, picocells, or femtocells, for example, with any type or amount of overlapping coverage or mutually exclusive coverage. Additional details of an example network and aspects of the function selection are discussed below in connection with <FIG>.

<FIG> illustrates an example environment <NUM> including user equipment and various components implementing the function selection based on utilization level, as described herein. For example, the environment <NUM> includes the user equipment (UE) <NUM>, the access and mobility function (AMF) <NUM>, the network resource function (NRF) <NUM>, the session management function (SMF) <NUM>, and user plane functions (UPFs) <NUM>(<NUM>), <NUM>(<NUM>),. , <NUM>(N) (where N is an integer), as discussed in connection with <FIG>, as well as a network exposure function (NEF) <NUM>, an authentication server function (AUSF) <NUM>, a policy control function (PCF) <NUM>, a unified data management (UDM) <NUM>, an application (AF) <NUM>, a (radio) access network ((R)AN) <NUM>, and a data network (DN) <NUM>.

In general, the NEF <NUM> can be implemented as a network function including functionality to securely expose services and/or capabilities provided by and amongst the various network functions, as discussed herein. In some instances, the NEF <NUM> receives information from other network functions and can store the received information as structured data using an interface to a data storage network function.

In general, the AUSF <NUM> can be implemented as a network function including functionality to provide authentication to various devices in the network. For example, the AUSF <NUM> can request device credentials (e.g., security key(s)), verify that a device is authorized to connect to a network, and/or control access to the network based on the device credentials.

In general, the PCF <NUM> can be implemented as a network function including functionality to support unified policy framework to govern network behavior, provide policy rules to control plane functions and/or enforce such rules, and/or implement a front end to access subscription information relevant for policy decisions in a data repository.

In general, the UDM <NUM> can be implemented as a network function including functionality to process authentication credentials, handle user identification processing, manage registration and/or mobility, manage subscriptions between a UE and a carrier, and or manage SMS (short message service) data.

In general, the AF <NUM> can be implemented as a network function including functionality to route traffic to/from applications operating on the network, facilitate accessing the network exposure function (NEF) <NUM>, and interact with the policy framework for policy control in connection with the PCF <NUM>.

In general, the (R)AN <NUM> can be implemented as a variety of technologies to provide wired and/or wireless access to the network, as discussed herein. In some instances, the (R)AN <NUM> (also referred to as a RAN <NUM>) can include a 3GPP RAN, such a GSM/EDGE RAN (GERAN), a Universal Terrestrial RAN (UTRAN), or an evolved UTRAN (E-UTRAN), or alternatively, a "non-3GPP" RAN, such as a Wi-Fi RAN, or another type of wireless local area network (WLAN) that is based on the IEEE <NUM> standards. Further, the RAN <NUM> can include any number and type of base stations representing any number and type of macrocells, microcells, picocells, or femtocells, for example, with any type or amount of overlapping coverage or mutually exclusive coverage.

In general, the DN <NUM> can include any public or private network(s), such as the internet.

In general, the NRF <NUM> can receive utilization information associated with any of the various network functions herein to select, assign, implement, or otherwise determine which network function of a plurality of network functions to use based at least in part on utilization information. As discussed herein, the systems, devices, and techniques discussed herein are not limited to selecting a UPF of a plurality of UPFs, for example.

In general, the devices and network functions illustrated in the environment <NUM> can be communicatively coupled via one or more control planes which can pass controls and signaling by and between the various components discussed herein. Further, the environment <NUM> can include a plurality of each of the various functions (e.g., the SMF <NUM> can represent a plurality of SMFs, for example). The environment <NUM> can further include additional functions and is not limited to those represented in <FIG>.

<FIG> illustrates an example <NUM> of a request for a user plane and a response including a user plane identifier. For example, the session management function (SMF) <NUM> can transmit a UPF query <NUM> to the network resource function (NRF) <NUM>. In some instances, the UPF query <NUM> can be transmitted at least partially in response to the SMF <NUM> receiving a request for a UPF to establish a communication involving a UE. In some instances, the UPF query <NUM> can be transmitted via a control plane between the SMF <NUM> and the NRF <NUM>. In some instances, the UPF query <NUM> can include information associated with, but not limited to, a type of communication to be established, a request for a particular QoS level, a request for bandwidth, an indication of location of the initiating UE, a request for services to be provided by the UPF (e.g., video compression, encryption, etc.), and the like.

At least partially in response to receiving the UPF query <NUM>, the NRF <NUM> can transmit a UPF response <NUM> to the SMF <NUM>. In some examples, the NRF <NUM> can select a UPF based at least in part on the information contained in or associated with the UPF query <NUM>. For example, the NRF <NUM> can select a UPF based at least in part on utilization levels provided separately by one or more UPFs and a type of communication, location information, etc. contained in the UPF query <NUM>. In some instances, the UPF response <NUM> can include a UPF identifier, such as an IP address, network address, or other identifier to uniquely identify the UPF to provide traffic for a communication. As discussed herein, at least partially in response to receiving the UPF response <NUM>, the SMF <NUM> can control the UPF to provide services to a UE.

<FIG> illustrates an example <NUM> of another request for a user plane and a response including a plurality of user plane identifiers, capability information, utilization information, and location information, for example, as discussed herein. Similar to the UPF query <NUM> in <FIG>, the SMF <NUM> can transmit a UPF query <NUM> to the NRF <NUM>. In some instances, the UPF query <NUM> can be the same query as the UPF query <NUM>. That is, the UPF query <NUM> can include information associated with, but not limited to, a type of communication to be established, a request for a particular QoS level, a request for bandwidth, an indication of a location of the initiating UE, a request for services to be provided by the UPF, etc. In some instances, the UPF query <NUM> can include less information than discussed above, and can include simply a request for one or more UPFs. In some instances, the UPF query <NUM> can specifically request a plurality of available/capable UPFs so that the SMF <NUM> can select a UPF, as discussed herein.

At least partially in response to the UPF query <NUM>, the NRF <NUM> can transmit a UPF response <NUM> to the SMF <NUM>. In some instances, the UPF response <NUM> can include, but is not limited to, a list of UPF identifiers, capability information associated with individual UPFs, utilization information associated with individual UPFs, location information associated with individual UPFs, etc. Based at least in part on the UPF query <NUM>, the SMF <NUM> can select a UPF to be used in a communication based at least in part on communication information such as a type of communication to be requested, locations of devices (e.g., initiating devices, destination devices, etc.), a type of data network associated with the communication, bandwidth levels, requested QoS levels, subscriber information, etc..

<FIG> illustrates an example topology <NUM> of a network resource function providing functionality to a plurality of session management functions and user plane functions, as discussed herein. The example topology <NUM> illustrates how the various network functions can be distributed between hardware components, software components, and/or virtualized functions, which can introduce the challenges of balancing requests for network functions within a network.

As illustrated, the network resource function (NRF) <NUM> can interact with a plurality of session management functions (SMFs) <NUM>(<NUM>), <NUM>(<NUM>),. , <NUM>(M) (where M is an integer that may be a same or different number than N) (also collectively referred to as SMFs <NUM>). In turn, the SMFs <NUM>(<NUM>), <NUM>(<NUM>),. , <NUM>(M) can be communicatively coupled with a plurality of user plane functions (UPFs) <NUM>(<NUM>), <NUM>(<NUM>),. , <NUM>(N) (collectively referred to as UPFs <NUM>). As discussed herein, the UPFs <NUM> can provide utilization information, capability information, location information, etc. to the NRF <NUM> so that the NRF <NUM> can provide UPFs (and/or UPF identifiers, the information discussed above, etc.) to the SMFs <NUM> in an intelligent manner.

Further, the example topology <NUM> provides a flexible framework which allows various functions to be added and removed from the network during operation so that workload can be distributed in a seamless manner. For example, if a UPF <NUM>(<NUM>) is scheduled for maintenance, the NRF <NUM> can easily instruct the SMFs <NUM> not to use the UPF <NUM>(<NUM>) at a particular time (or during a window of time corresponding to the schedule maintenance), or can provide other UPFs (e.g., the UPF <NUM>(<NUM>),. , <NUM>(N)) to the SMFs <NUM> to facilitate communications. After maintenance is performed on the UPF <NUM>(<NUM>), for example, the NRF <NUM> can again instruct the SMFs <NUM> to utilize the UPF <NUM>(<NUM>) for communications.

The techniques discussed herein are not limited to selecting a UPF based on utilization levels. Instead, the disclosure applies to selecting any network function based on any metrics or information associated with the network functions. For example, the NRF <NUM> can select a SMF of the SMFs <NUM> based on utilization levels, capability information, location information, etc., of the individual SMFs <NUM>. In such an example, the SMFs <NUM> would provide utilization information to the NRF <NUM> so that the NRF <NUM> can determine and select an appropriate SMF for use.

<FIG> illustrate example processes in accordance with embodiments of the disclosure. These processes are illustrated as logical flow graphs, each operation of which represents a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the operations represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and/or in parallel to implement the processes.

<FIG> illustrates an example process <NUM> for selecting a network function, such as a user plane function, based on utilization information. The example process <NUM> can be performed by the network resource function (NRF) <NUM> (or another component), in connection with other components discussed herein. Some or all of the process <NUM> can be performed by one or more devices or components in the environment <NUM>, for example.

At operation <NUM>, the process can include receiving utilization information associated with one or more network functions, such as one or more user planes. Although discussed in the context of a UPF, the process <NUM> and other descriptions in this application apply equally to other network functions, such as a network exposure function (NEF), a policy control function (PCF), a unified data management (UDM), an authentication server function (AUSF), an access and mobility management function (AMF), a session management function (SMF), an application function (AF), and the like. In one example, user planes in a network (e.g., UPFs <NUM>(<NUM>), <NUM>(<NUM>),. , <NUM>(N)) can transmit utilization information to the NRF (e.g., the NRF <NUM>). In some instances, the NRF <NUM> can request utilization information from various UPFs (or any network function) on a regular schedule, upon receipt of a request to initiate a communication, and the like. In some instances, the UPF (or any network function) can transmit utilization information upon determining that a utilization level has changed more than a threshold amount compared to a previous utilization level. In some instances, utilization information can include, but is not limited to, one or more of: CPU utilization (e.g., % utilization), bandwidth utilization, memory utilization, number of allowable sessions, number of active sessions, historical utilization information, expected utilization levels, latency, current QoS of active sessions, and the like.

Further, in some instances, the operation <NUM> can include receiving capability information associated with the user plane(s) (or any network function), location information associated with the user plane(s) (or any network function), etc. Such utilization information, capability information, location information, etc. can be stored in a database accessible by the NRF <NUM>.

At operation <NUM>, the process can include receiving a request for a network function, such as a user plane, the request associated with a user equipment. For example, the operation <NUM> can include receiving a request from a session management function (SMF) or an access and mobility management function (AMF) (or any network function) for a user plane (or any network function) to initiate a communication for a user equipment. In some instances, the request can indicate a number of user planes(or any network function) to be provided by the NRF (e.g., one or many). In some instances, the request can include information associated with the communication, such as a type of the communication, locations of the UE and/or the destination of the communication, specialized services (e.g., video encoding, encryption, etc.) requested in association with the communication, a bandwidth of the communication, a minimum QoS of the communication, and the like. In some instances, the request can be based at least in part on a request initiated by the UE and provided to the AMF, the SMF, or any network function.

At operation <NUM>, the process can include determining one or more network functions (e.g., user planes) based at least in part on the request and the utilization level. For example, the operation <NUM> can include determining that a first user plane (or any network function) is associated with a first utilization level (e.g., <NUM>% CPU utilization) and a second user plane (or any network function) is associated with a second utilization level (e.g., <NUM>% utilization level). Further the operation <NUM> can include determining that the first utilization level is above a utilization threshold (e.g., <NUM>% or any value) such that addition assignments of UEs to the UPF (or any network function) may degrade a quality of connections associated with first UPF (or any network function). Accordingly, the operation <NUM> can include determining that the first UPF (or any network function) is to be selected to provide data traffic for the UE.

As can be understood herein, there may be a variety of algorithms or ways to determine which user planes (or any network function) are to be selected as available for a communication. In some instances, the operation <NUM> can include determining that the utilization level of the second user plane (or any network function) (e.g., <NUM>%, discussed above) is lower than the utilization level of the first user plane (or any network function) (e.g., <NUM>%, discussed above), and accordingly, can determine that the second user plane (or any network function) is to be selected for the communication.

In some instances, the operation <NUM> can include determining a plurality of user planes (or any network function) that are available for a communication (e.g., that have a utilization level below a threshold value). In some instances, the user planes (or any network function) can be selected based on a proximity to the UE, capabilities requested by the UE, etc. In some instances, the operation <NUM> can include ranking or prioritizing individual ones of the plurality of user planes (or any network function) as most appropriate to be selected for the communication.

At operation <NUM>, the process can include providing an identification of the one or more user planes (or any network function) to a session management function (SMF) (or any selecting network function) to facilitate a communication with the user equipment. For example, the operation <NUM> can include providing an address or other identifier corresponding to one or more UPFs (or any one or more network functions) to an SMF (or any selecting network function) in the network. In the case where one user plane (or any network function) is provided, the SMF (or any selecting network function) may utilize the explicit user plane (or any network function) identified by the NRF. In the case where more than one user plane (or any network function) is provided, the identification may include additional information to allow the SMF (or any selecting network function) to select a user plane (or any network function), as discussed herein.

<FIG> illustrates an example process for selecting a user plane function based on utilization information during a handover. The example process <NUM> can be performed by the network resource function (NRF) <NUM> (or another component), in connection with other components discussed herein. Some or all of the process <NUM> can be performed by one or more devices or components in the environment <NUM>, for example.

At operation <NUM>, the process can include receiving utilization information associated with one or more user planes. Similar to the operation <NUM> discussed above, the operation <NUM> can include the user plane(s) providing utilization information to a network resource function (NRF).

At operation <NUM>, the process can include receiving a request for a user plane. Similar to the operation <NUM>, the operation <NUM> can include receiving a request from an access and mobility management function (AMF) that is communicatively coupled with a UE.

At operation <NUM>, the process can include providing a first selection of at least one first user plane based at least in part on the request and the utilization information. Similar to the operations <NUM> and/or <NUM>, the operation <NUM> can include the providing, allocating, and/or selecting at least one user plane based on utilization information to balance a load across a plurality of available user planes. In some instances, the operation <NUM> can include establishing a communication for the UE at a first radio access network (RAN) utilizing the first user plane.

At operation <NUM>, the process can include receiving an indication of a handover request. For example, as a UE moves about an environment, a signal quality can decrease between the UE and the first RAN. Accordingly, the network or the UE can determine that a handover should occur, based on one or more of, but not limited to: signal strength of an anchor connection (e.g., a signal strength of the first RAN); signal strength of a target RAN (e.g., a signal strength of a second RAN); latency; UE speed/direction; traffic level(s); QoS; etc. In some instances, the operation <NUM> can include determining that a new user plane is required/desired based at least in part on the indication of the handover request.

At operation <NUM>, the process can include providing a second selection of at least one second user plane based at least in part on the handover request and the utilization information. For example, the at least one second user plane can include user planes suitable and available to facilitate a communication with the UE. In some instances, the operations <NUM> and <NUM> can be repeated as a UE moves about an environment (and/or in response to initiate a handover based on UPF maintenance, for example). That is, the operations can be repeated continuously or periodically to determine a user plane to facilitate a communication while balancing a load of the user planes.

<FIG> illustrates an example process <NUM> for selecting a user plane function based on utilization information and locality information. The example process <NUM> can be performed by the network resource function (NRF) <NUM> (or another component), in connection with other components discussed herein. Some or all of the process <NUM> can be performed by one or more devices or components in the environment <NUM>, for example.

At operation <NUM>, the process can include receiving utilization information associated with one or more user planes. The operation <NUM> can be similar to or the same as the operations <NUM> and <NUM>, respectively. In some instances, as discussed above, the operation <NUM> can include receiving capability information associate with the user plane(s), location information associate with the user planes, etc..

At operation <NUM>, the process can include receiving a request for a user plane, the request associated with a user equipment. In some instances, the operation <NUM> can be similar to the operations <NUM> and <NUM>, as discussed above.

At operation <NUM>, the process can include receiving locality information associated with the user equipment. For example, the operation <NUM> can include receiving a current location of the UE, and expected location of the UE, a speed/direction of the UE, etc. In some instances, locality information can be based at least in part on GPS information associated with the UE, Wi-Fi triangulation associated with the UE, timing advance of signals sent and/or received by the UE, etc..

At operation <NUM>, the process can include determining one or more user planes based at least in part on the request, the utilization information, and the locality information. For example, based upon a location of the UE and a location of an available UPF, the UE/UPF combination can have an associated delay. Further, a utilization level (e.g., a relatively high utilization level) associated with the UPF can introduce additional delay. Based at least in part on the request (e.g., defining requirements for the UPF based on the intended communication), utilization information (e.g., % CPU utilization, % memory utilization, number of available session, etc.), and location information (e.g., a location of the UE and of the various available UPFs), the operation <NUM> can determine an optimal combination of UE/UPF to substantially maximize QoS. By way of example, the operation <NUM> can determine that a first UPF is located closer to a UE than a second UPF, and that the first UPF should not be selected as the UPF to service the UE if the utilization level is higher for the first UPF compared to the second UPF. Of course, any number of factors can be incorporated into the determination of selecting the various user planes, as discussed herein.

<FIG> illustrates an example device <NUM> to implement the function selection based on utilization levels, as described herein. In some embodiments, some or all of the functionality discussed in connection with <FIG> can be implemented in the device <NUM>. Further, the device <NUM> can be implemented as a server computer <NUM>, a network element on a dedicated hardware, as a software instance running on a dedicated hardware, or as a virtualized function instantiated on an appropriate platform, such as a cloud infrastructure, and the like. It is to be understood in the context of this disclosure that the device <NUM> can be implemented as a single device or as a plurality of devices with components and data distributed among them.

As illustrated, the device <NUM> comprises a memory <NUM> storing the access and mobility management function (AMF) <NUM>, the network resource function (NRF) <NUM>, the session management function (SMF) <NUM>, the user plane function (UPF) <NUM>, the network exposure function (NEF) <NUM>, the authentication server function (AUSF) <NUM>, the policy control function (PCF) <NUM>, the unified data management (UDM) <NUM>, the application function (AF) <NUM>, and the data network (DN) <NUM> to provide functionality to the device <NUM> to facilitate improved function selection based on utilization level, as described herein. Also, the device <NUM> includes processor(s) <NUM>, a removable storage <NUM> and non-removable storage <NUM>, input device(s) <NUM>, output device(s) <NUM>, and transceiver(s) <NUM>.

Aspects of the access and mobility management function (AMF) <NUM>, the network resource function (NRF) <NUM>, the session management function (SMF) <NUM>, the user plane function (UPF) <NUM>, the network exposure function (NEF) <NUM>, the authentication server function (AUSF) <NUM>, the policy control function (PCF) <NUM>, the unified data management (UDM) <NUM>, the application function (AF) <NUM>, and the data network (DN) <NUM> are discussed above with connection with at least <FIG> and <FIG>. In general, these functions comprise aspects of a <NUM> mobile network.

In various embodiments, the memory <NUM> is volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. The access and mobility management function (AMF) <NUM>, the network resource function (NRF) <NUM>, the session management function (SMF) <NUM>, the user plane function (UPF) <NUM>, the network exposure function (NEF) <NUM>, the authentication server function (AUSF) <NUM>, the policy control function (PCF) <NUM>, the unified data management (UDM) <NUM>, the application function (AF) <NUM>, and the data network (DN) <NUM> stored in the memory <NUM> can comprise methods, threads, processes, applications or any other sort of executable instructions. The access and mobility management function (AMF) <NUM>, the network resource function (NRF) <NUM>, the session management function (SMF) <NUM>, the user plane function (UPF) <NUM>, the network exposure function (NEF) <NUM>, the authentication server function (AUSF) <NUM>, the policy control function (PCF) <NUM>, the unified data management (UDM) <NUM>, the application function (AF) <NUM>, and the data network (DN) <NUM> can also include files and databases.

In some embodiments, the processor(s) <NUM> is a central processing unit (CPU), a graphics processing unit (GPU), or both CPU and GPU, or other processing unit or component known in the art.

The device <NUM> also includes additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in <FIG> by removable storage <NUM> and non-removable storage <NUM>. Tangible computer-readable media can include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Memory <NUM>, removable storage <NUM> and non-removable storage <NUM> are all examples of computer-readable storage media. Computer-readable storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile discs (DVD), content-addressable memory (CAM), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the device <NUM>. Any such tangible computer-readable media can be part of the device <NUM>.

The device <NUM> also can include input device(s) <NUM>, such as a keypad, a cursor control, a touch-sensitive display, voice input device, etc., and output device(s) <NUM> such as a display, speakers, printers, etc. These devices are well known in the art and need not be discussed at length here.

As illustrated in <FIG>, the device <NUM> also includes one or more wired or wireless transceiver(s) <NUM>. For example, the transceiver(s) <NUM> can include a network interface card (NIC), a network adapter, a local area network (LAN) adapter, or a physical, virtual, or logical address to connect to the various base stations or networks contemplated herein, for example, or the various user devices and servers. To increase throughput when exchanging wireless data, the transceiver(s) <NUM> can utilize multiple-input/multiple-output (MIMO) technology. The transceiver(s) <NUM> can comprise any sort of wireless transceivers capable of engaging in wireless, radio frequency (RF) communication. The transceiver(s) <NUM> can also include other wireless modems, such as a modem for engaging in Wi-Fi, WiMAX, Bluetooth, or infrared communication.

Claim 1:
A system (<NUM>) operating in a fifth generation, <NUM>, mobile network comprising:
one or more processors (<NUM>);
a memory (<NUM>); and
one or more components stored in the memory (<NUM>) and executable by the one or more processors (<NUM>) to perform operations comprising:
receiving utilization information associated with a plurality of user plane functions (<NUM>), individual ones of the plurality of user plane functions (<NUM>) configurable to carry data associated with at least one communication associated with at least one user equipment (<NUM>);
receiving, from a session management function (<NUM>), a request for a user plane function, the request associated with a user equipment (<NUM>);
determining, by a network resource function (<NUM>), one or more user plane functions of the plurality of user plane functions (<NUM>) to provide to the session management function (<NUM>) based at least in part on the utilization information; and
providing an identification of the one or more user plane functions to the session management function (<NUM>) to facilitate a communication with the user equipment (<NUM>).