Patent ID: 12192759

DETAILED DESCRIPTION

Overview

Providing 5G-AKA User Equipment (UE) authentication and, more specifically, providing 5G-AKA UE authentication at an edge of a network may be provided. An Authentication Server Function (AUSF) at an edge of a network, and the AUSF may request an Authentication Vector (AV) from a Unified Data Management (UDM). The AUSF may receive AV from the UDM and cache the AV at an AV cache. An authentication request may be received from an Access and Mobility Management Function (AMF) and the AV from the AV cache may be provided to the AMF.

Both the foregoing overview and the following example embodiments are examples and explanatory only and should not be considered to restrict the disclosure's scope, as described, and claimed. Furthermore, features and/or variations may be provided in addition to those described. For example, embodiments of the disclosure may be directed to various feature combinations and sub-combinations described in the example embodiments.

Example Embodiments

The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same or similar elements. While embodiments of the disclosure may be described, modifications, adaptations, and other implementations are possible. For example, substitutions, additions, or modifications may be made to the elements illustrated in the drawings, and the methods described herein may be modified by substituting, reordering, or adding stages to the disclosed methods. Accordingly, the following detailed description does not limit the disclosure. Instead, the proper scope of the disclosure is defined by the appended claims.

In a Fifth Generation (5G) network, an Authentication Server Function (AUSF), a Unified Data Management (UDM), and a User Data Repository (UDR) may be deployed on servers that are accessed over a network, commonly referred to as the cloud. An Access and Mobility Management Function (AMF), a Session Management Function (SMF), and a User Plane Function (UPF) may be deployed on edge of the network. The network may have multiple edges that may each have an AMF, an SMF, and a UPF. The components at the edges of the network may communicate with the components of the cloud via the network. However, the edges may not always be able to connect to the components of the cloud for various reasons, such as network outages. When the components at the edges of the cloud cannot communicate with the components of the cloud, User Equipment (UE) authentication requests may fail, for example because the AMF cannot obtain Authentication Vectors (AV).

FIG.1is a block diagram of an operating environment100for providing 5G-AKA UE authentication. The operating environment100includes a UDM108, a UDR110, and a Charging Function (CHF)128located in the cloud130of a network. The cloud130may be a location remote from an edge135of the network. The edge135may be a location in close proximity to users of the network. The network may include multiple edges, including edge135. The operating environment100may also include an AMF104, and AUSF106, a Radio Access Network (RAN)120, a UPF122, a Data Network (DN)124, and an SMF126located at the edge135. The operating environment may also include a UE102. The UE102may have an associated International Mobile Subscriber Identity (IMSI) that may enable the components of the operating environment100to identify the UE102and/or the Subscriber Identification Module (SIM) card present in the UE102.

The AUSF106may be located on the edge135to enable 5G-AKA UE authentication when the cloud130and its components, such as the UDM108, the UDR, and the CHF128, are inaccessible. The AUSF106may store AVs generated by the UDM108in a cache to enable 5G-AKA UE authentication without the AUSF106needing to retrieve an AV from the UDM108. Thus, the AV may be available for 5G-AKA UE authentication even if the cloud130and its components are inaccessible or otherwise unavailable to the edge135and its components.

The UE102access the network by communicating with components located at the edge135, such as the RAN120and/or the AMF104. The UE102may be in close proximity to the location of the edge135. In some examples, the UE102may move locations and connect to an edge of the network that is closer to the UE102than the edge135. The closer edge may have the same or similar components as the components of the edge135.

FIG.2is a block diagram of the operating environment100of the AUSF106for providing 5G-AKA UE authentication. The operating environment may include an AV request queue150, an authorization confirmation and result removal queue155, and an AV cache160.

The AUSF106may receive AVs from the UDM108and store the AVs in the AV cache160. Thus, the AVs may be subsequently accessed at the edge135without communicating with the cloud130. The AV cache160may maintain a first in, first out (FIFO) cache that can store multiple AVs for each UE, such as UE102. Each UE may be identified by its respective IMSI.

The AUSF106may request the UDM108to send AVs to the AUSF106by adding an AV request to the AV request queue150. The AV request queue150may assign a priority to AV requests based on the number of AVs stored in the AV cache160for the given UE or associated IMSI at the time the request is added to the queue. For example, a request for a UE having two associated AVs stored in the AV cache160will be assigned a higher priority than a request for a UE having five associated AVs stored in the AV cache160. If an AV request fails, such as because the components of the cloud130are inaccessible by the components of the edge135, the AUSF106may re-add the failed request. The re-added AV request may be assigned the same priority that it was assigned when it was initially added or assigned a new priority based on the number of AVs of the IMSI associated with the request stored in the AV cache160and the number of AVs of the other IMS Is associated with other UEs stored in the AV cache160. Thus, the re-added AV request may be sent to the UDM108, such as by the AUSF106, at the same spot in the queue as it was originally intended to be sent or adjusted based on evaluating the present state of the AV cache160.

The AUSF106may request the UDM to send authentication confirmations or perform authentication result removal by adding authentication confirmation requests and/or authentication result removal requests to the authorization confirmation and result removal queue155. The requests added to the authorization confirmation and result removal queue155may be assigned a priority equal to a timestamp indicating the time of the initial addition to the queue. If the request fails and the AUSF106re-adds the request to the authorization confirmation and result removal queue155, the re-added request may have the same priority based on the timestamp of the request's initial addition to the authorization confirmation and result removal queue155. Thus, the re-added request may not lose its spot in the queue.

The requests in the AV request queue150and the authorization confirmation and result removal queue155may be sent when the edge135is able to connect to the cloud130. When the edge135cannot connect to the cloud130, the requests may be stored in the queue until a connection is made.

The AMF104may trigger authentication procedures by requesting the AUSF106to send an AV associated with a UE. The AUSF106may retrieve the AV from the FIFO cache associated with the UE, which may be identified using the IMSI of the UE. The AUSF106may then send the AV to the AMF104. The AUSF106may use a Subscription Permanent Identifier (SUPI) allocated to subscribers of the network, such as the UE102, for local processing of requests and/or AVs and for storage of the AVs in the AV cache160. The SUPI may be the IMSI of the UE and/or a Network Access Identifier (NAI). The AUSF106may also use a Subscriber Concealed Identifier (SUCI) allocated to subscribers of the network, such as the UE102. When the UE102uses a SUCI instead of a SUPI for the AMF104to trigger the authentication procedure, the AUSF106may use a provisioned SUCI private key to decrypt the SUCI to a SUPI and lookup the AVs stored in the AV cache160associated with the UE of the authentication request from the AMF104by using the IMSI. The SUCI private key may be provided by a SIM manufacturer.

The AV associated with an authentication procedure triggered by the AMF104may be retrieved from the AV cache160whenever the AV cache stores the AV. Thus, even though the UDM108may not be able to provide the AV if the cloud130is inaccessible, the AUSF106may send the AV since it is stored in the AV cache160. The AUSF106may retrieve AVs from the AV cache160in response to authentication procedures even if the UDM108and the cloud130are accessible.

When the authentication has been successfully completed, the AMF104may send a confirmation to the AUSF106. The AUSF106may then queue an authentication confirmation request to the UDM108for the AV by adding the request to the authentication confirmation and result removal queue155. The AUSF106may also request a new AV associated with the UE from the UDM108by adding an AV request to the AV request queue150.

FIG.3Ais a flow chart of a method300for providing 5G-AKA UE authentication. The operations shown inFIG.3Amay be for a subscriber that is initially subscribing to the network, and the subscriber does not have any associated AVs stored in an AV cache. The operations shown inFIG.3Amay also be for a subscriber after the AV cache has been flushed, and the subscriber does not have any associated AVs stored in an AV cache.

The method300may begin at starting block305and proceed to operation310, where an AUSF is executed at an edge of a network. For example, the AUSF106shown inFIG.1andFIG.2may be executed at the edge135of the network. In operation315, an AV is requested from a UDM. For example, the AUSF106may receive an authentication request from the AMF104. The associated subscriber may be initially connecting to the network and/or the AV cache160may have been flushed, so the AV cache160does not have any stored AVs associated with the subscriber. In response, the AUSF106may request the AV from the UDM108or add an AV request to the AV request queue150. The AV request may be sent to the UDM108, such as by AUSF106, when the edge135can connect to the cloud130for example.

An AV may be received from the UDM in operation320. For example, the AUSF106may receive the AV sent by the UDM108in response to the AV request sent in operation320. In operation325, the AV may be cached at an AV cache. For example, the AUSF106causes the AV to be cached at the AV cache160. In some examples, multiple AVs may be stored in the AV cache160. Therefore, operations315,320, and325may repeat as many times as necessary to populate the AV cache160with the desired number of AVs.

In operation330, an authentication request from an AMF is received. For example, the AMF104may send an authentication request to the AUSF106. In operation335, the AV from the AV cache is provided to the AMF. For example, the AUSF106may retrieve the AV from the AV cache160and send the AV to the AMF104. The method300may conclude at ending block340. The method300may continue inFIG.3B.

FIG.3Bis a flow chart of the method300for providing 5G-AKA UE authentication including evaluating an AV cache. The operations shown inFIG.3Bmay be performed after the operations shown inFIG.3A, or the operations shown inFIG.3Bmay be performed without performing the operations shown inFIG.3A. Thus, a standalone method may comprise the operations shown inFIG.3B. The method300may resume at starting block350and proceed to operation355, and an authentication request is received from the AMF. For example, the AMF104may send an authentication request to the AUSF106.

In operation360, it may be determined if an AV is present in the AV cache. For example, the AUSF106may request an AV from the AV cache160, and the AV cache160may return a message that there is no AV if the AV cache160does not have the AV. If it is determined that the AV is present in the AV cache, method300may proceed to operation365. In operation365, the AV is fetched from the AV cache. For example, the AUSF106requests the AV from the AV cache160, and the AV cache160returns the AV to the AUSF106.

If it is determined that the AV is not present in the AV cache, method300may proceed to operation370. In operation370, the AV is requested from the UDM. For example, the AUSF106requests the AV from the UDM108. In operation375, the AV is received from the UDM. For example, the AUSF106may receive the AV from the UDM108.

Once operation365or operation375is completed, the method300may proceed to operation380. In operation380, the AV is provided to the AMF. For example, the AUSF106provides the AV to the AMF104.

In operation385, a request for a new AV is queued. For example, the AUSF106instructs the AV request queue150to queue a request for a new AV for the associated subscriber. In some examples, multiple new AVs may be requested to populate the AV cache160with a desired or otherwise predetermined number of AVs. For example, the AV cache160may store five AVs for each subscriber. The AV cache160may have zero AVs associated with a subscriber, so the AUSF106may instruct the AV request queue150to queue five requests for a new AV for the associated subscriber in operation385. The method300may conclude at ending block390.

FIG.4is a signaling process400for initial UE authentication with an empty AV cache or re-synchronization of the AV cache. The signaling process400may be between an AMF405, an AUSF410, an AV cache415, an AV request queue420, an authentication request and result removal queue425, and a UDM430. The signaling process400may begin in response to the AMF405initiating an authentication procedure in signal435.

If the authentication procedure is a re-synchronization procedure, signal442may be performed. If the authentication procedure is not a re-synchronization procedure, signals444and446may be performed. In signal442, the AUSF410may remove all AVs associated with the UE of the authentication request. In signal444, the AUSF410may request an AV associated with the UE of the authentication request. In signal446, the AV cache415may signal to the AUSF410that the AV cache has no AVs associated with the UE, which may indicate that the authentication procedure is an initial authentication for the UE.

In signal450, the AUSF410may request the UDM430to generate an AV for the UE. The UDM may return the generated AV in signal452. If the UDM430cannot be connected to, the AUSF410may send an error message to the AMF405because the AV cache415may not be populated and an AV cannot be returned to the AUSF410.

In operation454, the AUSF410may store an expected response (XRES*), store an identifier associated with the UE (e.g., IMSI, SUPI, SUCI), calculate a hash expected response (HXRES*), and/or generate a 5G Serving Environment AV (5G SE AV).

In signal456, the AUSF410may send the AV to the AMF405. In signal458, the AMF405may send authentication confirmation data to the AUSF410. In operation460, the AUSF410may perform response (RES*) verification. The AUSF may add a request to the authentication confirmation and result removal queue425to confirm the successful authentication to the UDM430in signal462. The request in the authentication confirmation and result removal queue425may be sent to the UDM430by the AUSF410when the edge, where the AUSF410may be located, can connect to the cloud where the UDM430may be located. In signal464, the AUSF410may send a confirmation of the successful authentication, such as notifying the UDM430via the request in the authentication confirmation and result removal queue425that is subsequently sent to the UDM430, such as by the AUSF410. In signal466, the AUSF410may send any number of AV requests to the AV request queue420for the associated UE. Therefore, when the AV request queue420subsequently sends the queued AV requests to the UDM430when the UDM430may be connected to, the UDM430may then send an AV to the AUSF410in response to each AV request. Thus, the AUSF410may cause the received AVs to be cached by the AV cache415, and the UE will have associated AVs stored in the AV cache415.

FIG.5is a signaling process500for UE authentication with a populated AV cache415. Thus, the signaling process400may occur before the signaling process500, resulting in the AV cache415being populated with AVs. The signaling process500may be between the AMF405, the AUSF410, the AV cache415, the AV request queue420, and the authentication request and result removal queue425.

The signaling process500may begin with signal510, and the AMF405may send an authentication request to the AUSF410. In signal510, the AUSF may request from the AV cache415an AV to respond to the authentication request. The requested AV may be the first AV in the FIFO queue for the UE associated with the authentication request.

In signal514, the AV cache415may return the requested AV to the AUSF410. The AUSF may then send the AV to the AMF405in signal516. In operation517, the AMF405may determine a Hash Response (HRES*) and compare the HRES* to an associated HXRES*. In signal518, the AMF405may send authentication confirmation data to the AUSF410. The AUSF410may perform RES* verification in operation520.

If the authentication is successful, signals522and524may be performed. If the authentication is not successful, signal530may occur. In signal522, the AUSF410may send a successful authentication message to the authentication request and result removal queue425to be queued. The message in the authentication request and result removal queue425may be subsequently sent to the UDM430, by the AUSF410for example. In signal524, the AUSF410may send a message to the AMF405confirming the successful authentication. In signal530, the AUSF410may send a message to the AMF405indicating that authentication was not successful. The message may include details regarding why the authentication was not successful.

In signal532, the AUSF410may send an AV request to the AV request queue420. The AV request may be sent to the UDM430by the AUSF410when it is possible to connect to the UDM430, and the UDM430may send a new AV. Therefore, the AV cache415may add the new AV to have the same number of AVs in the FIFO queue associated with the UE before the AV was sent to the AMF405in signal516.

FIG.6is a signaling process600for UE authentication result removal. For example, a UE authentication result removal may be performed in response to a UE deregistering with the network. The signaling process600may be between the AMF405, the AUSF410, and the authentication request and result removal queue425. The signaling process600may begin with signal610, and the AMF405may send a message requesting an authentication result removal procedure to the AUSF410. In signal612, the AUSF410may send a request to remove authentication results to the authentication request and result removal queue425to be queued. The request may be subsequently sent to the UDM430to perform the authentication result removal. In signal614, the AUSF410may send the result of the authentication result removal to the AMF405.

FIG.7is a signaling process700for populating an AV cache. The signaling process700may be between the AMF405, the AUSF410, the AV cache415, the AV request queue420, the authentication request and result removal queue425, and the UDM430.

The signaling process700may begin with signal710, and the AUSF may request the AV request that is next in the queue from the AV request queue420. If there are no queued requests in the AV request queue, signal712may be performed, and the AV request queue420may notify the AUSF410that there are no queued AV request to be sent to the UDM430. If there are queued requests, the signaling process may proceed to signal714. In signal714, the AV request queue420, may remove the AV request from the queue and send the AV request to the AUSF410. In signal716, the AUSF410may attempt to send the AV request to the UDM430.

If the AV request is successfully sent to the UDM430, signals718and720and operation722may be performed. In signal718, the UDM430may send an AV to the AUSF410in response to the AV request. In signal720, the AUSF410may cause the received AV to be stored in the AV cache415. In operation722, the AUSF410may store an XRES*, store an identifier associated with the UE (e.g., IMSI, SUPI, SUCI), calculate a HXRES*, and/or generate a 5G SE AV.

If sending the AV request to the UDM430and/or receiving a response from the UDM430times out, signal724may be performed. In signal724, the AV request may be sent to the AV request queue420to be re-queued. The AV request may be inserted into the queue based on the priority that was previously determined when it was initially added to the queue or inserted into the queue based on evaluating the current state of the AV cache415. For example, the present AV request may be for a UE that still has three associated AVs stored in the AV cache415and another UE that has an AV request queued may presently only have one associated AV in the AV cache415. Thus, the AV request for the UE may be inserted behind an AV request associated with UE with only one stored AV request even though the initial priority of the AV request would have caused it to be inserted ahead of the AV request associated with the UE with one stored AV.

If sending the AV request to the UDM430fails, signal726may be performed. In signal726, the AV request may be dropped, and an alert may be triggered by the AUSF410. The AV request may be dropped because the AV request may never be successfully sent to the UDM430. The AUSF410may determine why the AV request failed and include the determination in the alert.

The signaling process700may be repeated performed to continuously clear the AV request queue420and send the AV requests to the UDM430.

FIG.8is a signaling process800for authentication confirmation and for authentication result removal. The signaling process800may be between the AUSF410, the authentication request and result removal queue425, and the UDM430. The signaling process may begin in signal810, and the AUSF410may request the next queued authentication confirmation or authentication result removal from the authentication request and result removal queue425. If the authentication request and result removal queue425does not have any queued authentication confirmations or result removals, signal812may be performed. In signal812, the authentication request and result removal queue425may send a message to the AUSF410indicating that there are no queued authentication confirmations or result removals.

If the authentication request and result removal queue425is not empty, signal814may be performed. In signal814, the authentication request and result removal queue425may send the queued authentication confirmation or result removal to the AUSF410.

If the AUSF410receives an authentication confirmation, the signaling process may proceed to signal816. In signal816, the AUSF410may send the authentication confirmation to the UDM430. If the authentication is successfully sent to the UDM430, signal818may be performed, and the UDM430may send a confirmation of the authentication confirmation success to the AUSF410.

If sending the authentication confirmation and/or receiving a response from the UDM430times out in signal816, signal820may be performed, and the AUSF410may send the authentication confirmation to the authentication request and result removal queue425to be re-queued. The authentication confirmation may be inserted into the authentication request and result removal queue425based on the priority determined when the authentication confirmation was initially added to the authentication request and result removal queue425.

If sending the authentication confirmation fails or the UDM430cannot process the authentication confirmation, signals822and824may be performed. In signal822, the UDM430may send a message detailing the reasons for the failure to the AUSF410. In signal824, the AUSF410may drop the request.

If AUSF410receives a result removal in signal814, the signaling process may proceed to signal826. In signal826, the AUSF410may attempt to send the result removal to the UDM430. If the result removal is successfully sent to the UDM430, signal828may be performed. In signal828, the UDM430may send a confirmation of the result removal to the AUSF410.

If sending the result removal to the UDM430and/or receiving a response from the UDM430times out, signal830may be performed. In signal830, the result removal may be sent to the authentication request and result removal queue425to be re-queued. The result removal may be inserted into the authentication request and result removal queue425based on the priority determined when the result removal was initially added to the authentication request and result removal queue425.

If sending the result removal to the UDM430, and/or the UDM430cannot process the result removal, signals832and834may be performed. In signal832, the UDM422may send a message detailing the reasons for the failure to the AUSF410. In signal834, the AUSF410may drop the request.

FIG.9is a signaling process900for pre-population of the AV cache415. The signaling process900may be between a provisioning client905, the AUSF410, and the AV request queue420. The provisioning client905may initiate causing the AV cache415to be pre-populated for one or more UEs to ensure 5G-AKA UE authentication can be performed even when the edge cannot connect to the cloud.

The signaling process900may begin with signal910, and the provisioning client905may send to the AUSF410a provisioning request to provision a subscriber of the network, such as an IMSI. In signal912, the AUSF410may send one or more AV requests to the AV request queue420to be queued by the AV request queue420. The signaling process700may be performed to populate the AV cache415with AVs associated with the subscriber. In signal914, the AUSF410sends a message to the provisioning client905indicating that the provisioning is being performed.

FIG.10is a signaling process1000for de-provisioning an AV cache. The signaling process1000may be between the provisioning client905, the AUSF410, and the AV cache415. In signal1010, the provisioning client905sends a de-provisioning request for a subscriber to the AUSF410.

In signal1012, the AUSF410instructs the AV cache415to remove all AVs associated with the subscriber. In signal1014, the AUSF410sends a message to the provisioning client905indicating that the de-provisioning is being performed.

FIG.11is a block diagram of a computing device. As shown inFIG.11, computing device1100may include a processing unit1110and a memory unit1115. Memory unit1115may include a software module1120and a database1125. While executing on processing unit1110, software module1120may perform, for example, processes for providing 5G-AKA UE authentication as described above with respect toFIG.1,FIG.2,FIG.3A,FIG.3B,FIG.4,FIG.5,FIG.6,FIG.7,FIG.8,FIG.9, and FIG. Computing device1100, for example, may provide an operating environment for the UE102, the AMF104, AUSF106, the UDM108, the UDR110, the RAN120, the UPF122, the DN124, the SMF126, the CHF128, the AV request queue150, the authentication confirmation and result removal queue155, the AV cache160, the AMF405, the AUSF410, the AV cache415, the AV request queue420, the authentication confirmation and result removal queue425, the UDM430, the provisioning client905, and/or any other system described herein. The UE102, the AMF104, AUSF106, the UDM108, the UDR110, the RAN120, the UPF122, the DN124, the SMF126, the CHF128, the AV request queue150, the authentication confirmation and result removal queue155, the AV cache160, the AMF405, the AUSF410, the AV cache415, the AV request queue420, the authentication confirmation and result removal queue425, the UDM430, the provisioning client905, and/or any other system described herein may operate in other environments and are not limited to computing device1100.

Computing device1100may be implemented using a Wi-Fi access point, a tablet device, a mobile device, a smart phone, a telephone, a remote control device, a set-top box, a digital video recorder, a cable modem, a personal computer, a network computer, a mainframe, a router, a switch, a server cluster, a smart TV-like device, a network storage device, a network relay device, or other similar microcomputer-based device. Computing device1100may comprise any computer operating environment, such as hand-held devices, multiprocessor systems, microprocessor-based or programmable sender electronic devices, minicomputers, mainframe computers, and the like. Computing device1100may also be practiced in distributed computing environments where tasks are performed by remote processing devices. The aforementioned systems and devices are examples, and computing device1100may comprise other systems or devices.

Embodiments of the disclosure, for example, may be implemented as a computer process (method), a computing system, or as an article of manufacture, such as a computer program product or computer readable media. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process. Accordingly, the present disclosure may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.). In other words, embodiments of the present disclosure may take the form of a computer program product on a computer-usable or computer-readable storage medium having computer-usable or computer-readable program code embodied in the medium for use by or in connection with an instruction execution system. A computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.

The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific computer-readable medium examples (a non-exhaustive list), the computer-readable medium may include the following: an electrical connection having one or more wires, a portable computer diskette, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, and a portable compact disc read-only memory (CD-ROM). Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.

While certain embodiments of the disclosure have been described, other embodiments may exist. Furthermore, although embodiments of the present disclosure have been described as being associated with data stored in memory and other storage mediums, data can also be stored on, or read from other types of computer-readable media, such as secondary storage devices, like hard disks, floppy disks, or a CD-ROM, a carrier wave from the Internet, or other forms of RAM or ROM. Further, the disclosed methods' stages may be modified in any manner, including by reordering stages and/or inserting or deleting stages, without departing from the disclosure.

Furthermore, embodiments of the disclosure may be practiced in an electrical circuit comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors. Embodiments of the disclosure may also be practiced using other technologies capable of performing logical operations such as, for example, AND, OR, and NOT, including but not limited to, mechanical, optical, fluidic, and quantum technologies. In addition, embodiments of the disclosure may be practiced within a general purpose computer or in any other circuits or systems.

Embodiments of the disclosure may be practiced via a system-on-a-chip (SOC) where each or many of the element illustrated inFIG.1may be integrated onto a single integrated circuit. Such an SOC device may include one or more processing units, graphics units, communications units, system virtualization units and various application functionality all of which may be integrated (or “burned”) onto the chip substrate as a single integrated circuit. When operating via an SOC, the functionality described herein with respect to embodiments of the disclosure, may be performed via application-specific logic integrated with other components of computing device1100on the single integrated circuit (chip).

Embodiments of the present disclosure, for example, are described above with reference to block diagrams and/or operational illustrations of methods, systems, and computer program products according to embodiments of the disclosure. The functions/acts noted in the blocks may occur out of the order as shown in any flowchart. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved.

While the specification includes examples, the disclosure's scope is indicated by the following claims. Furthermore, while the specification has been described in language specific to structural features and/or methodological acts, the claims are not limited to the features or acts described above. Rather, the specific features and acts described above are disclosed as example for embodiments of the disclosure.