Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEMS, METHODS AND DEVICES FOR VIRTUAL NETWORK FUNCTION VIRTUAL PROCESSOR USAGE REPORTING IN CELLULAR NETWORKS
Document Type and Number:
WIPO Patent Application WO/2018/106604
Kind Code:
A1
Abstract:
A virtualized infrastructure manager (VIM) processes usage metrics for a network function virtualization infrastructure (NFVI) and report virtual processor usage metrics to a virtualized network function manager (VNFM). These measurements can allow the VNFM to proactively scale virtualized network functions (VNFs) or virtualized network function components (VNFCs) to give more resources to VNFs/VNFCs that demonstrate a need while moving resources from VNFs/VNFCs that have spare capacity. The usage of an individual virtual processor (also known as a virtual CPU) that is a part of a virtualized compute resource, or the consolidated usage of all of the virtual processors of a virtualized compute resource is monitored by VNFM for the above purpose.

Inventors:
YAO YIZHI (US)
CHOU JOEY (US)
Application Number:
PCT/US2017/064538
Publication Date:
June 14, 2018
Filing Date:
December 04, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
INTEL IP CORP (US)
International Classes:
G06F11/30; G06F9/50; G06F11/34
Foreign References:
US20160205004A12016-07-14
Other References:
None
Attorney, Agent or Firm:
HOLT, Benjamin J. (US)
Download PDF:
Claims:
Claims:

1. An apparatus for a virtualized infrastructure manager (VIM), comprising:

a first interface coupled to a network function virtualization infrastructure ( FVI); a second interface coupled to a virtualized network function manager (VNFM); and a processor coupled to the first interface and second interface, the processor configured to:

receive a set of virtual processor usage metrics from the NFVI, the set of virtual processor usage metrics covering at least a collection period;

generate a virtual processor usage measurement for a virtualized compute resource based at least in part on the virtual processor usage metrics; and

report the virtual processor usage measurement to the VNFM.

2. The apparatus of claim 1, wherein the virtual processor usage metrics are sampled virtual processor usage measurements at pre-defined intervals measured by the NFVI.

3. The apparatus of claim 1, wherein the virtual processor usage metrics are an arithmetic mean of virtual processor usage samples measured in the collection period by the NFVI.

4. The apparatus of claim 1, wherein the virtual processor usage metrics are for an individual virtual processor or are consolidated for virtual processors of a virtualized compute resource.

5. The apparatus of claim 1, wherein the virtual processor usage metrics are formed by selecting a maximum among virtual processor usage samples measured in a given period.

6. The apparatus of any of claims 1-5, wherein to generate the virtual processor usage measurement further comprises to generate the virtual processor usage measurement by processing usage metrics of multiple virtual processors and generating a consolidated measurement.

7. The apparatus of any of claims 1-5, wherein the VFM generates the virtual processor usage measurement by using subcounters for multiple virtual processors.

8. A system for management of virtualized resources (VRs), comprising:

a network function virtualization infrastructure (NFVI) configured to:

sample virtual processor usage of a virtualized compute resource; and provide virtual processor usage metrics to a virtualized infrastructure manager

(VFM);

the VFM configured to:

process the virtual processor usage metrics from the NFVI; generate a virtual processor usage measurement for the virtualized compute resource based at least in part on the virtual processor usage metrics; and

report the virtual processor usage measurement to a virtualized network function manager (V FM);

the VNFM configured to receive the virtual processor usage measurement from the

VIM.

9. The system of claim 8, further comprising a virtualized compute resource that includes one or more virtual processors for which the NFVI samples for virtual processor usage individually or collectively.

10. The system of claim 8, wherein the virtual processor usage measurement is a mean virtual processor usage or peak virtual processor usage.

11. The system of claim 8, wherein the virtual processor usage measurement includes a ratio of a first number of usage samples in a usage range to a second number of total usage samples.

12. The system of claim 8, wherein to generate the virtual processor usage measurement further comprises to generate a distribution of the received virtual processor usage metrics per usage level from a set of usage levels.

13. The system of any of claims 8-11, wherein the virtualized compute resource includes a virtual central processing unit (CPU).

14. A method of managing of virtualized resources (VRs), the method comprising: receiving a set of virtual processor usage metrics from a network function

virtualization infrastructure (NFVI), the set of virtual processor usage metrics covering at least a collection period;

generating a virtual processor usage measurement for a virtualized compute resource based at least in part on the set of virtual processor usage metrics; and

reporting the virtual processor usage measurement to the virtualized network function manager (VNFM).

15. The method of claim 14, wherein the virtual processor usage metrics are for an individual virtual processor or are consolidated for virtual processors of a virtualized compute resource.

16. The method of claim 14, wherein reporting the virtual processor usage measurement further comprises reporting the virtual processor usage measurement to the VNFM using a notification that the virtual processor usage measurement is available.

17. The method of claim 14, wherein reporting the virtual processor usage measurement further comprises reporting the virtual processor usage measurement to the V FM using a message including the virtual processor usage measurement value.

18. The method of claim 14, wherein the virtualized compute resource is identified by an object type and an object instance identifier.

19. The method of claim 14, wherein the virtualized compute resource is identified by a compute ID.

20. An apparatus comprising means to perform a method as claimed in any of claims

14-18.

21. Machine-readable storage including machine-readable instructions, when executed, to implement a method or realize an apparatus as claimed in any of claims 14-18.

22. A machine-readable medium including code, when executed, to cause a machine to perform the method of any one of claims 14-18.

Description:
SYSTEMS, METHODS AND DEVICES FOR VIRTUAL NETWORK FUNCTION VIRTUAL PROCESSOR USAGE REPORTING IN CELLULAR NETWORKS

Related Application

[0001] This application claims the benefit under 35 U.S.C. § 119(e) of U.S. Provisional Application No. 62/430,188 filed December 5, 2016, which is incorporated by reference herein in its entirety.

Technical Field

[0002] The present disclosure relates to cellular networks and more specifically to virtual processor usage reporting for virtual network functions.

Background

[0003] Wireless mobile communication technology uses various standards and protocols to transmit data between a base station and a wireless mobile device. Wireless communication system standards and protocols can include the 3rd Generation Partnership Project (3GPP) long term evolution (LTE); the Institute of Electrical and Electronics Engineers (IEEE) 802.16 standard, which is commonly known to industry groups as worldwide interoperability for microwave access (WiMAX); and the IEEE 802.11 standard for wireless local area networks (WLAN), which is commonly known to industry groups as Wi-Fi. In 3GPP radio access networks (RANs) in LTE systems, the base station can include a RAN Node such as a Evolved Universal Terrestrial Radio Access Network (E-UTRAN) Node B (also commonly denoted as evolved Node B, enhanced Node B, eNodeB, or eNB) and/or Radio Network Controller (RNC) in an E-UTRAN, which communicate with a wireless communication device, known as user equipment (UE). In fifth generation (5G) wireless RANs, RAN Nodes can include a 5G Node, new radio (NR) node or g Node B (gNB).

[0004] RANs use a radio access technology (RAT) to communicate between the RAN Node and UE. RANs can include global system for mobile communications (GSM), enhanced data rates for GSM evolution (EDGE) RAN (GERAN), Universal Terrestrial Radio Access Network (UTRAN), and/or E-UTRAN, which provide access to communication services through a core network. Each of the RANs operates according to a specific 3GPP RAT. For example, the GERAN implements GSM and/or EDGE RAT, the UTRAN implements universal mobile telecommunication system (UMTS) RAT or other 3GPP RAT, and the E- UTRAN implements LTE RAT.

[0005] A core network can be connected to the UE through the RAN Node. The core network can include a serving gateway (SGW), a packet data network (PDN) gateway (PGW), an access network detection and selection function (ANDSF) server, an enhanced packet data gateway (ePDG) and/or a mobility management entity (MME).

Brief Description of the Drawings

[0006] FIG. 1 is a diagram illustrating a network management architecture for virtualized network functions (VNFs or network function virtualization (NFV) more generally) consistent with embodiments disclosed herein.

[0007] FIG. 2 is a sequence diagram illustrating a reporting sequence for virtual processor usage consistent with embodiments disclosed herein.

[0008] FIG. 3 is a bar chart illustrating distribution of a virtual processor usage consistent with embodiments disclosed herein.

[0009] FIG. 4 is a flow chart illustrating a method for managing of virtualized network functions consistent with embodiments disclosed herein.

[0010] FIG. 5 illustrates an architecture of a system of a network in accordance with some embodiments.

[0011] FIG. 6 illustrates example components of a device in accordance with some embodiments.

[0012] FIG. 7 illustrates example interfaces of baseband circuitry in accordance with some embodiments.

[0013] FIG. 8 is an illustration of a control plane protocol stack in accordance with some embodiments.

[0014] FIG. 9 is an illustration of a user plane protocol stack in accordance with some embodiments.

[0015] FIG. 10 illustrates components of a core network in accordance with some embodiments.

[0016] FIG. 11 is a block diagram illustrating components able to read instructions from a machine-readable or computer-readable medium and perform any one or more of the methodologies discussed herein.

Detailed Description

[0017] A detailed description of systems and methods consistent with embodiments of the present disclosure is provided below. While several embodiments are described, it should be understood that the disclosure is not limited to any one embodiment, but instead encompasses numerous alternatives, modifications, and equivalents. In addition, while numerous specific details are set forth in the following description in order to provide a thorough understanding of the embodiments disclosed herein, some embodiments can be practiced without some or all of these details. Moreover, for the purpose of clarity, certain technical material that is known in the related art has not been described in detail in order to avoid unnecessarily obscuring the disclosure.

[0018] Techniques, apparatus and methods are disclosed that enable a virtualized

infrastructure manager (VIM) to process usage metrics for a network function virtualization infrastructure ( FVI) and report virtual processor usage metrics to a virtualized network function manager (VNFM). These measurements can allow the VNFM to proactively scale virtualized network functions (VNFs) or virtualized network function components (VNFCs) to give more resources to VNFs/VNFCs that demonstrate a need while moving resources from VNFs/VNFCs that have spare capacity.

[0019] For example in a use case, an overloaded Virtualized Compute Resource affects the performance of a VNF/VNFC instance, while a underused Virtualized Compute Resource of a VNF/VNFC instance causes a waste of a resource that cannot be utilized by other

VNF/VNFC instances. As the usage of Virtualized Compute Resources for a given

VNF/VNFC instances can fluctuate dynamically, the VNFM can monitor Virtualized Compute Resource usage. If the Virtualized Compute Resource usage has been saturated for a certain period, the VNFM can scale out or scale in the VNF/VNFC instance to allocate more Virtualized Compute Resources. If the Virtualized Compute Resource usage has been underused for a certain period, the VNFM can scale in or scale down the VNF/VNFC instance to release some Virtualized Compute Resources. The usage of an individual virtual processor (also known as a virtual CPU) that is a part of the Virtualized Compute Resource, or the consolidated usage of all virtual processors of the Virtualized Compute Resource needs to be monitored by VNFM for the above purpose.

[0020] In some embodiments, virtualized can be spelled as virtualised, however the meaning is the same.

[0021] NFV architectures and infrastructures may be used to virtualize one or more network functions, alternatively performed by proprietary hardware, onto physical resources comprising a combination of industry-standard server hardware, storage hardware, or switches. In other words, NFV systems can be used to execute virtual or reconfigurable implementations of one or more EPC components/functions. [0022] FIG. 1 is a diagram illustrating a network management architecture 100 for virtualized network functions (VNFs or network function virtualization (NFV) more generally). These components, according to some example embodiments, can support NFV. The system 100 is illustrated as including a virtualized infrastructure manager (VIM) 102, a network function virtualization infrastructure (NFVI) 104, a VNF manager (VNFM) 106, virtualized network functions (VNFs) 108, an element manager (EM) 110, an NFV Orchestrator (NFVO) 112, and a network manager (NM) 114 within an Operation Support System/Business Support System (OSS/BSS) 122.

[0023] The VIM 102 manages the resources of the NFVI 104. The NFVI 104 can include physical or virtual resources and applications (including hypervisors) used to execute the system 100. The VIM 102 may manage the life cycle of virtual resources with the NFVI 104 (e.g., creation, maintenance, and tear down of virtual machines (VMs) associated with one or more physical resources), track VM instances, track performance, fault and security of VM instances and associated physical resources, and expose VM instances and associated physical resources to other management systems.

[0024] The VNFM 106 may manage the VNFs 108. The VNFs 108 may be used to execute IMS, EPC and 5G (5GC and NG-RAN) components/functions. The VNFM 106 may manage the life cycle of the VNFs 108 and track performance, fault and security of the virtual aspects of VNFs 108. The EM 110 may track the performance, fault and security of the functional aspects of VNFs 108 and physical network functions (PNFs) 124. The tracking data from the VNFM 106 and the EM 110 may comprise, for example, performance measurement (PM) data used by the VIM 102 or the NFVI 104. Both the VNFM 106 and the EM 110 can scale up/down the quantity of VNFs 108 of the system 100. In some embodiments, the EM 110 is responsible for fault, configuration, accounting, performance and security management (FCAPS). In other embodiments, the EM 1 10 can manage multiple VNFs 108 or multiple EMs 110 manage a single VNF 108 each. In an embodiment, the EM 110 can be a VNF 108 itself. In an embodiment, the combination of the NM 114, a domain manager (DM) 126 and/or the EM 110 is considered to be a third generation partnership project (3GPP) management system.

[0025] The NFVO 112 may coordinate, authorize, release and engage resources of the NFVI 104 in order to provide the requested network service (e.g., which may be used to execute an EPC function, component, or slice). The NM 114 may provide a package of end-user functions with the responsibility for the management of a network, which may include network elements with VNFs 108, non-virtualized network functions, or both (management of the VNFs 108 may occur via the EM 110). The OSS portion of the OSS/BSS 122 is responsible for network management, fault management, configuration management and service management. The BSS portion of the OSS/BSS 122 is responsible for customer management, product management and order management. In the FV architecture, the current BSS/OSS 122 of an operator may be interworking with an NFV Management and Orchestration (NFV-MANO) 132 using standard interfaces (or reference points).

[0026] Interconnection points (or reference points) between functional blocks can expose an eternal view of a functional block. These can include OS-Ma-nfvo between the NM 114 and NFVO 112; Ve-VNFM-em between the EM 110 and the VNFM 106; Ve-Vnfm-vnf between a VNF 108 and VNFM 106; Or-Vnfm between the NFVO 112 and the VNFM 106; Or-Vi between the NFVO 112 and the VIM 102; Vi-Vnfm between the VNFM 106 and VFM 102; NF-Vi between the NFVI 104 and the VIM 102; VN-Nf between the NFVI 104 and VNF 108; and Itf-N between the EM 110 or DM 126 and NM 114.

[0027] A Virtualized Resource Performance Management Interface has been defined for reference point Vi-Vnfm between VFM 102 and VNFM 106 as shown in FIG. 1. The operations to create performance measurement (PM, sometimes called performance metrics) job and notify the availability of PM data can be transmitted using the above-mentioned interface. The usage of an individual virtual CPU (sometimes called a virtual processor or vCPU) is a part of a Virtualized Resource (VR), or the consolidated usage of all virtual CPUs of a Virtualized Compute Resource and can be monitored by a performance measurement.

[0028] FIG. 2 is a sequence diagram 200 illustrating a reporting sequence for virtual processor usage. An NFVI 206 samples a virtual processor (or virtual CPU) or all virtual processors of a Virtualized Compute Resource and provides metrics to a VIM 204. The VIM 204 processes the metrics and prepares a report of virtual processor usage to send to a VNFM 202.

[0029] For example, a virtual CPU usage for reference point Vi-Vnfm is collected by the following approach. The VIM 204 receives 212 one or more vCPU usage metrics from the NFVI 206, who samples the vCPU usage at a pre-defined internal. The VIM 204 processes 208 the received vCPU usage metrics within the collection period. An example of the details of the processing is depicted below in the specific vCPU usage measurement definitions. The VIM 204 generates 210 the vCPU usage measurement for reference point Vi-Vnfm. The VIM 204 reports 214 to the VNFM 202 about the available vCPU usage measurement. The report could be a notification to the VNFM 202 informing the vCPU usage measurement is ready, or a data report including the value of the vCPU usage measurements. [0030] In some embodiments, the performance measurement template including the collection method can be defined by a collection method, trigger, measurement unit, measurement name, measurement group, measured object type and/or usage. A collection method can include a cumulative counter (CC): A Measuring Entity (ME) that takes the measurement, resets the counter to "0" at the beginning of each collection period, and increments the counter for each event being detected. A measurement is generated from the counter at the end of the collection period. A collection method can also include status monitoring (SM). The ME samples the counter at a predetermined interval. A measurement is generated from processing (e.g., arithmetic mean, peak) all of the samples obtained in the collection period. A trigger can cause the counter to be updated. A measurement unit can define the unit of the measurement value. A measurement name can define the name of a performance metric. A measurement can contain multiple subcounters (e.g., counts associated with failure causes). A measurement group can define a performance metric group to which a measurement belongs. A measured object type can describe the object type of a measurement. Usage can be optional and describes the usage of the measurement. It may provide additional information on the interest (e.g., used in the VNFD) of the measurement.

[0031] Performance measurements can measure the performance of virtualized resources. The specific virtualized resource where the measurement is to be collected is identified by object type and object instance identifier that may be provided by the performance measurement job creation. Each performance measurement report should contain a time stamp to indicate when the measurement is collected.

[0032] The usage of an individual virtual CPU is a part of the Virtualized Compute Resource, or the consolidated usage of all virtual processors of the Virtualized Compute Resource needs to be monitored by VNFM. The monitoring can include mean virtual CPU usage, peak virtual CPU usage, distribution of virtual CPU usage, etc.

[0033] Mean virtual CPU usage is a measurement that provides the mean usage of an individual virtual CPU or consolidated usage of all virtual CPUs of a of Virtualized Compute Resource. This can be accomplished through status monitoring (SM) as described above. In an embodiment, VIM receives the virtual CPU usage metric from FVI that samples the virtual CPU usage (of an individual virtual CPU or consolidated for all or virtual CPUs of a virtualized compute resource) at the pre-defined interval, and then takes the arithmetic mean of the virtual CPU usage metrics received in the collection period. The VIM may receive the mean virtual CPU usage metric directly from NFVI, if NFVI can take the arithmetic mean of the virtual CPU usage metrics that it collects in the collection period. In case there are multiple virtual CPUs, the lists include options for creating the measurement when multiple virtual CPU usage metrics are received, including: using subcounters to report mean usage measurements of multiple virtual CPUs; reporting a measurement with the highest mean usage among multiple virtual CPUs; or performing processing of the usage measurements of multiple virtual CPUs and then generating a consolidated measurement. Each measurement is a real value indicating the percentage of the virtual CPU resources that are used. The usage can be labeled as VcpuUsageMean or VcpuUsageMean. Vcpuld, where Vcpuld identifies a virtual CPU. The Vcpuld can be used in cases where there are multiple virtual CPUs in the measured Virtualized Compute Resource and each virtual CPU is measured by a subcounter. A virtual resource can be identified using a Virtualized Compute Resource identifier. The identifier can identify the Virtualized Compute Resource (whether it is identified by

Computeld or instanceld). The mean virtual CPU usage can be also requested in VNFD.

[0034] Peak virtual CPU usage is a measurement that provides the peak usage of an individual virtual CPU or consolidated usage of all virtual CPUs of a Virtualized Compute Resource. This can be accomplished through status monitoring (SM) as described above. In an embodiment, VIM receives the virtual CPU usage metric from FVI that samples the virtual CPU usage at the pre-defined interval, and then selects the maximum metric among the virtual CPU usage metrics received in the collection period. The VIM may receive the peak virtual CPU usage metric directly from NFVI, if NFVI can select the maximum metric among of the virtual CPU usage metrics that it collects in the collection period. In a case where there are multiple virtual CPUs in the measured Virtualized Compute Resource and all of their usage measurements are received by VIM, there are the following options for VIM to generate the measurement, including: using subcounters to report maximum usage measurements of multiple virtual CPUs; reporting a measurement with the highest maximum usage among multiple virtual CPUs; or performing processing of the usage measurements of multiple virtual CPUs, and then generating a consolidated measurement. Each measurement is a real value indicating the percentage of the virtual CPU resources that are used. The usage can be labeled as VcpuUsagePeak or VcpuUsagePeak. Vcpuld, where Vcpuld identifies a virtual CPU of a Virtualized Compute Resource, in case there are multiple virtual CPUs in the measured Virtualized Compute Resource and each is measured by a subcounter. A virtual resource can be identified using a Virtualized Compute Resource identifier. The identifier can identify the Virtualized Compute Resource (whether it is identified by

Computeld or by instanceld ). The peak virtual CPU usage can be also requested in VNFD. [0035] When the more detailed information about virtual CPU usage needs to be monitored, the measurements in FIG. 3 can be used. FIG. 3 is a bar chart 300 illustrating distribution of a virtual CPU usage (of an individual virtual CPU or consolidated for all of the CPUs of a virtualized compute resource). This measurement provides the distribution of the virtual CPU usage for a Virtualized Compute Resource. The distribution is indicated by the ratio of the usage samples that fell into each given usage range (e.g., 60% - 70%, or 70% - 80%) to the total usage samples of the virtual CPU. The example of distribution of virtual CPU usage is illustrated by the following diagram.

Table of the distribution of virtual CPU usage

[0036] This distribution measurement can be accomplished through status monitoring (SM) as described above. In an embodiment, VIM receives the virtual CPU usage metric from NFVI that samples the virtual CPU usage at a pre-defined interval, and performs processing. For example, the received virtual CPU usage metric already indicates the distribution of the virtual CPU usage but multiple metrics (reports) for this virtual CPU are received from NFVI in the collection period, VDVI takes the arithmetic mean of all of the CPU usage metrics received in the collection period. The received virtual CPU usage metrics are not the distribution but samples of the virtual CPU usage; VDVI generates the distribution of virtual CPU usage for each given usage level based on the received samples.

[0037] If there are multiple virtual CPUs in the measured Virtualized Compute Resource, the following lists options for generating the measurement include: using subcounters to report mean usage measurements of multiple virtual CPUs; reporting a measurement for a selected virtual CPU (how to select the virtual CPU is out of standards); or performing processing of the usage measurements of multiple virtual CPUs and then generating a consolidated measurement. Each measurement can be an integer indicating the percentage of virtual CPU usage samples that fell into the corresponding usage level. The usage can be labeled as VcpuUsage. Range or VcpuUsage. VcpuId.Range, where Vcpuld identifies a virtual CPU, in case there are multiple virtual CPUs in the measured Virtualized Compute Resource and each virtual CPU is measured by a subcounter. Range can indicate the configurable range of the virtual CPU usage, e.g., 70% < the virtual CPU usage < 80%. A virtual resource can be identified using a Virtualized Compute Resource identifier. The identifier can identify the Virtualized Compute Resource (whether it is identified by or by instanceld ). The

distribution of virtual CPU usage can be also used in VNFD.

[0038] FIG. 4 is a flow chart illustrating a method 400 for managing of virtualized network functions consistent with embodiments disclosed herein. The method 400 can be

accomplished by a system such as shown in FIGs. 1 and 2, including VIM, NFVI and VNFM. In block 402, the VFM can receive a set of virtual processor usage metrics from NFVI, the set of virtual processor usage metrics covering at least a collection period. In block 404, the VIM can generate a virtual processor usage measurement for a virtualized compute resource based at least in part on the virtual CPU usage metrics. In block 406, the VIM can report the virtual processor usage measurement to the VNFM.

[0039] FIG. 5 illustrates an architecture of a system 500 of a network in accordance with some embodiments. The system 500 is shown to include a user equipment (UE) 501 and a UE 502. The UEs 501 and 502 are illustrated as smartphones (e.g., handheld touchscreen mobile computing devices connectable to one or more cellular networks), but may also comprise any mobile or non-mobile computing device, such as Personal Data Assistants (PDAs), pagers, laptop computers, desktop computers, wireless handsets, or any computing device including a wireless communications interface.

[0040] In some embodiments, any of the UEs 501 and 502 can comprise an Internet of Things (IoT) UE, which can comprise a network access layer designed for low-power IoT applications utilizing short-lived UE connections. An IoT UE can utilize technologies such as machine-to-machine (M2M) or machine-type communications (MTC) for exchanging data with an MTC server or device via a public land mobile network (PLMN), Proximity -Based Service (ProSe) or device-to-device (D2D) communication, sensor networks, or IoT networks. The M2M or MTC exchange of data may be a machine-initiated exchange of data. An IoT network describes interconnecting IoT UEs, which may include uniquely identifiable embedded computing devices (within the Internet infrastructure), with short-lived

connections. The IoT UEs may execute background applications (e.g., keep-alive messages, status updates, etc.) to facilitate the connections of the IoT network.

[0041] The UEs 501 and 502 may be configured to connect, e.g., communicatively couple, with a radio access network (RAN) 510. The RAN 510 may be, for example, an Evolved Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access Network (E-UTRAN), a NextGen RAN (NG RAN), or some other type of RAN. The UEs 501 and 502 utilize connections 503 and 504, respectively, each of which comprises a physical communications interface or layer (discussed in further detail below); in this example, the connections 503 and 504 are illustrated as an air interface to enable communicative coupling, and can be consistent with cellular communications protocols, such as a Global System for Mobile Communications (GSM) protocol, a code-division multiple access (CDMA) network protocol, a Push-to-Talk (PTT) protocol, a PTT over Cellular (POC) protocol, a Universal Mobile Telecommunications System (UMTS) protocol, a 3 GPP Long Term Evolution (LTE) protocol, a fifth generation (5G) protocol, a New Radio (NR) protocol, and the like.

[0042] In this embodiment, the UEs 501 and 502 may further directly exchange

communication data via a ProSe interface 505. The ProSe interface 505 may alternatively be referred to as a sidelink interface comprising one or more logical channels, including but not limited to a Physical Sidelink Control Channel (PSCCH), a Physical Sidelink Shared Channel (PS SCH), a Physical Sidelink Discovery Channel (PSDCH), and a Physical Sidelink

Broadcast Channel (PSBCH).

[0043] The UE 502 is shown to be configured to access an access point (AP) 506 via connection 507. The connection 507 can comprise a local wireless connection, such as a connection consistent with any IEEE 802.11 protocol, wherein the AP 506 would comprise a wireless fidelity (WiFi®) router. In this example, the AP 506 may be connected to the Internet without connecting to the core network of the wireless system (described in further detail below).

[0044] The RAN 510 can include one or more access nodes that enable the connections 503 and 504. These access nodes (ANs) can be referred to as base stations (BSs), NodeBs, evolved NodeBs (eNBs), next Generation NodeBs (gNB), RAN nodes, and so forth, and can comprise ground stations (e.g., terrestrial access points) or satellite stations providing coverage within a geographic area (e.g., a cell). The RAN 510 may include one or more RAN nodes for providing macrocells, e.g., a macro RAN node 511, and one or more RAN nodes for providing femtocells or picocells (e.g., cells having smaller coverage areas, smaller user capacity, or higher bandwidth compared to macrocells), e.g., a low power (LP) RAN node 512.

[0045] Any of the RAN nodes 511 and 512 can terminate the air interface protocol and can be the first point of contact for the UEs 501 and 502. In some embodiments, any of the RAN nodes 511 and 512 can fulfill various logical functions for the RAN 510 including, but not limited to, radio network controller (RNC) functions such as radio bearer management, uplink and downlink dynamic radio resource management and data packet scheduling, and mobility management.

[0046] In accordance with some embodiments, the UEs 501 and 502 can be configured to communicate using Orthogonal Frequency-Division Multiplexing (OFDM) communication signals with each other or with any of the RAN nodes 511 and 512 over a multicarrier communication channel in accordance with various communication techniques, such as, but not limited to, an Orthogonal Frequency-Division Multiple Access (OFDMA)

communication technique (e.g., for downlink communications) or a Single Carrier Frequency Division Multiple Access (SC-FDMA) communication technique (e.g., for uplink and ProSe or sidelink communications), although the scope of the embodiments is not limited in this respect. The OFDM signals can comprise a plurality of orthogonal subcarriers.

[0047] In some embodiments, a downlink resource grid can be used for downlink

transmissions from any of the RAN nodes 511 and 512 to the UEs 501 and 502, while uplink transmissions can utilize similar techniques. The grid can be a time-frequency grid, called a resource grid or time-frequency resource grid, which is the physical resource in the downlink in each slot. Such a time-frequency plane representation is a common practice for OFDM systems, which makes it intuitive for radio resource allocation. Each column and each row of the resource grid correspond to one OFDM symbol and one OFDM subcarrier, respectively. The duration of the resource grid in the time domain corresponds to one slot in a radio frame. The smallest time-frequency unit in a resource grid is denoted as a resource element. Each resource grid comprises a number of resource blocks, which describe the mapping of certain physical channels to resource elements. Each resource block comprises a collection of resource elements; in the frequency domain, this may represent the smallest quantity of resources that currently can be allocated. There are several different physical downlink channels that are conveyed using such resource blocks.

[0048] The physical downlink shared channel (PDSCH) may carry user data and higher-layer signaling to the UEs 501 and 502. The physical downlink control channel (PDCCH) may carry information about the transport format and resource allocations related to the PDSCH channel, among other things. It may also inform the UEs 501 and 502 about the transport format, resource allocation, and H-ARQ (Hybrid Automatic Repeat Request) information related to the uplink shared channel. Typically, downlink scheduling (assigning control and shared channel resource blocks to the UE 502 within a cell) may be performed at any of the RAN nodes 511 and 512 based on channel quality information fed back from any of the UEs 501 and 502. The downlink resource assignment information may be sent on the PDCCH used for (e.g., assigned to) each of the UEs 501 and 502.

[0049] The PDCCH may use control channel elements (CCEs) to convey the control information. Before being mapped to resource elements, the PDCCH complex-valued symbols may first be organized into quadruplets, which may then be permuted using a sub- block interleaver for rate matching. Each PDCCH may be transmitted using one or more of these CCEs, where each CCE may correspond to nine sets of four physical resource elements known as resource element groups (REGs). Four Quadrature Phase Shift Keying (QPSK) symbols may be mapped to each REG. The PDCCH can be transmitted using one or more CCEs, depending on the size of the downlink control information (DCI) and the channel condition. There can be four or more different PDCCH formats defined in LTE with different numbers of CCEs (e.g., aggregation level, L=l, 2, 4, or 8).

[0050] Some embodiments may use concepts for resource allocation for control channel information that are an extension of the above-described concepts. For example, some embodiments may utilize an enhanced physical downlink control channel (EPDCCH) that uses PDSCH resources for control information transmission. The EPDCCH may be transmitted using one or more enhanced control channel elements (ECCEs). Similar to above, each ECCE may correspond to nine sets of four physical resource elements known as enhanced resource element groups (EREGs). An ECCE may have other numbers of EREGs in some situations.

[0051] The RAN 510 is shown to be communicatively coupled to a core network (CN) 520— via an SI interface 513. In embodiments, the CN 520 may be an evolved packet core (EPC) network, a NextGen Packet Core (NPC) network, or some other type of CN. In this embodiment the SI interface 513 is split into two parts: an Sl-U interface 514, which carries traffic data between the RAN nodes 511 and 512 and a serving gateway (S-GW) 522, and an SI -mobility management entity (MME) interface 515, which is a signaling interface between the RAN nodes 511 and 512 and MMEs 521.

[0052] In this embodiment, the CN 520 comprises the MMEs 521, the S-GW 522, a Packet Data Network (PDN) Gateway (P-GW) 523, and a home subscriber server (HSS) 524. The MMEs 521 may be similar in function to the control plane of legacy Serving General Packet Radio Service (GPRS) Support Nodes (SGSN). The MMEs 521 may manage mobility aspects in access such as gateway selection and tracking area list management. The HSS 524 may comprise a database for network users, including subscription-related information to support the network entities' handling of communication sessions. The CN 520 may comprise one or several HSSs 524, depending on the number of mobile subscribers, on the capacity of the equipment, on the organization of the network, etc. For example, the HSS 524 can provide support for routing/roaming, authentication, authorization,

naming/addressing resolution, location dependencies, etc.

[0053] The S-GW 522 may terminate the SI interface 513 toward the RAN 510, and routes data packets between the RAN 510 and the CN 520. In addition, the S-GW 522 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.

[0054] The P-GW 523 may terminate an SGi interface toward a PDN. The P-GW 523 may route data packets between the CN 520 (e.g., an EPC network) and external networks such as a network including an application server 530 (alternatively referred to as application function (AF)) via an Internet Protocol (IP) interface 525. Generally, the application server 530 may be an element offering applications that use IP bearer resources with the CN 520 (e.g., UMTS Packet Services (PS) domain, LTE PS data services, etc.). In this embodiment, the P-GW 523 is shown to be communicatively coupled to the application server 530 via the IP communications interface 525. The application server 530 can also be configured to support one or more communication services (e.g., Voice-over-Internet Protocol (VoIP) sessions, PTT sessions, group communication sessions, social networking services, etc.) for the UEs 501 and 502 via the CN 520.

[0055] The P-GW 523 may further be a node for policy enforcement and charging data collection. A Policy and Charging Enforcement Function (PCRF) 526 is the policy and charging control element of the CN 520. In a non-roaming scenario, there may be a single PCRF 526 in the Home Public Land Mobile Network (HPLMN) associated with a UE's Internet Protocol Connectivity Access Network (IP-CAN) session. In a roaming scenario with local breakout of traffic, there may be two PCRFs 526 associated with a UE's IP-CAN session: a Home PCRF (H-PCRF) within a HPLMN and a Visited PCRF (V-PCRF) within a Visited Public Land Mobile Network (VPLMN). The PCRF 526 may be communicatively coupled to the application server 530 via the P-GW 523. The application server 530 may signal the PCRF 526 to indicate a new service flow and select the appropriate Quality of Service (QoS) and charging parameters. The PCRF 526 may provision this rule into a Policy and Charging Enforcement Function (PCEF) (not shown) with the appropriate traffic flow template (TFT) and QoS class of identifier (QCI), which commences the QoS and charging as specified by the application server 530.

[0056] FIG. 6 illustrates example components of a device 600 in accordance with some embodiments. In some embodiments, the device 600 may include an application circuitry 602, a baseband circuitry 604, a Radio Frequency (RF) circuitry 606, a front-end module (FEM) circuitry 608, one or more antennas 610, and a power management circuitry (PMC) 612 coupled together at least as shown. The components of the illustrated device 600 may be included in a UE or a RAN node. In some embodiments, the device 600 may include fewer elements (e.g., a RAN node may not utilize the application circuitry 602, and instead include a processor/controller to process IP data received from an EPC). In some embodiments, the device 600 may include additional elements such as, for example, memory/storage, display, camera, sensor, or input/output (I/O) interface. In other embodiments, the components described below may be included in more than one device (e.g., said circuitries may be separately included in more than one device for Cloud-RAN (C-RAN) implementations).

[0057] The application circuitry 602 may include one or more application processors. For example, the application circuitry 602 may include circuitry such as, but not limited to, one or more single-core or multi-core processors. The processor(s) may include any combination of general-purpose processors and dedicated processors (e.g., graphics processors, application processors, etc.). The processors may be coupled with or may include

memory/storage and may be configured to execute instructions stored in the memory/storage to enable various applications or operating systems to run on the device 600. In some embodiments, processors of the application circuitry 602 may process IP data packets received from an EPC.

[0058] The baseband circuitry 604 may include circuitry such as, but not limited to, one or more single-core or multi-core processors. The baseband circuitry 604 may include one or more baseband processors or control logic to process baseband signals received from a receive signal path of the RF circuitry 606 and to generate baseband signals for a transmit signal path of the RF circuitry 606. The baseband processing circuity 604 may interface with the application circuitry 602 for generation and processing of the baseband signals and for controlling operations of the RF circuitry 606. For example, in some embodiments, the baseband circuitry 604 may include a third generation (3G) baseband processor 604 A, a fourth generation (4G) baseband processor 604B, a fifth generation (5G) baseband processor 604C, or other baseband processor(s) 604D for other existing generations, generations in development or to be developed in the future (e.g., second generation (2G), sixth generation (6G), etc.). The baseband circuitry 604 (e.g., one or more of the baseband processors 604A- D) may handle various radio control functions that enable communication with one or more radio networks via the RF circuitry 606. In other embodiments, some or all of the functionality of the baseband processors 604A-D may be included in modules stored in a memory 604G and executed via a central processing unit (CPU) 604E. The radio control functions may include, but are not limited to, signal modulation/demodulation,

encoding/decoding, radio frequency shifting, etc. In some embodiments,

modulation/demodulation circuitry of the baseband circuitry 604 may include Fast-Fourier Transform (FFT), precoding, or constellation mapping/demapping functionality. In some embodiments, encoding/decoding circuitry of the baseband circuitry 604 may include convolution, tail-biting convolution, turbo, Viterbi, or Low Density Parity Check (LDPC) encoder/decoder functionality. Embodiments of modulation/demodulation and

encoder/decoder functionality are not limited to these examples and may include other suitable functionality in other embodiments.

[0059] In some embodiments, the baseband circuitry 604 may include one or more audio digital signal processor(s) (DSP) 604F. The audio DSP(s) 604F may include elements for compression/decompression and echo cancellation and may include other suitable processing elements in other embodiments. Components of the baseband circuitry 604 may be suitably combined in a single chip or a single chipset, or disposed on a same circuit board in some embodiments. In some embodiments, some or all of the constituent components of the baseband circuitry 604 and the application circuitry 602 may be implemented together such as, for example, on a system on a chip (SOC).

[0060] In some embodiments, the baseband circuitry 604 may provide for

communication compatible with one or more radio technologies. For example, in some embodiments, the baseband circuitry 604 may support communication with an evolved universal terrestrial radio access network (EUTRAN) or other wireless metropolitan area networks (WMAN), a wireless local area network (WLAN), or a wireless personal area network (WPAN). Embodiments in which the baseband circuitry 604 is configured to support radio communications of more than one wireless protocol may be referred to as multi-mode baseband circuitry. [0061] The RF circuitry 606 may enable communication with wireless networks

using modulated electromagnetic radiation through a non-solid medium. In various embodiments, the RF circuitry 606 may include switches, filters, amplifiers, etc. to facilitate the communication with the wireless network. The RF circuitry 606 may include a receive signal path which may include circuitry to down convert RF signals received from the FEM circuitry 608 and provide baseband signals to the baseband circuitry 604. The RF circuitry 606 may also include a transmit signal path which may include circuitry to up convert baseband signals provided by the baseband circuitry 604 and provide RF output signals to the FEM circuitry 608 for transmission.

[0062] In some embodiments, the receive signal path of the RF circuitry 606 may include a mixer circuitry 606A, an amplifier circuitry 606B and a filter circuitry 606C. In some embodiments, the transmit signal path of the RF circuitry 606 may include the filter circuitry 606C and the mixer circuitry 606A. The RF circuitry 606 may also include a synthesizer circuitry 606D for synthesizing a frequency for use by the mixer circuitry 606A of the receive signal path and the transmit signal path. In some embodiments, the mixer circuitry 606A of the receive signal path may be configured to down convert RF signals received from the FEM circuitry 608 based on the synthesized frequency provided by synthesizer circuitry 606D. The amplifier circuitry 606B may be configured to amplify the down-converted signals and the filter circuitry 606C may be a low-pass filter (LPF) or band-pass filter (BPF) configured to remove unwanted signals from the down-converted signals to generate output baseband signals. Output baseband signals may be provided to the baseband circuitry 604 for further processing. In some embodiments, the output baseband signals may be zero-frequency baseband signals, although this is not a requirement. In some embodiments, the mixer circuitry 606A of the receive signal path may comprise passive mixers, although the scope of the embodiments is not limited in this respect.

[0063] In some embodiments, the mixer circuitry 606A of the transmit signal path may be configured to up convert input baseband signals based on the synthesized frequency provided by the synthesizer circuitry 606D to generate RF output signals for the FEM circuitry 608. The baseband signals may be provided by the baseband circuitry 604 and may be filtered by the filter circuitry 606C.

[0064] In some embodiments, the mixer circuitry 606A of the receive signal path and the mixer circuitry 606A of the transmit signal path may include two or more mixers and may be arranged for quadrature downconversion and upconversion, respectively. In some embodiments, the mixer circuitry 606A of the receive signal path and the mixer circuitry 606A of the transmit signal path may include two or more mixers and may be arranged for image rejection (e.g., Hartley image rejection). In some embodiments, the mixer circuitry 606A of the receive signal path and the mixer circuitry 606A may be arranged for direct downconversion and direct upconversion, respectively. In some embodiments, the mixer circuitry 606A of the receive signal path and the mixer circuitry 606A of the transmit signal path may be configured for super-heterodyne operation.

[0065] In some embodiments, the output baseband signals and the input baseband signals may be analog baseband signals, although the scope of the embodiments is not limited in this respect. In some alternate embodiments, the output baseband signals and the input baseband signals may be digital baseband signals. In these alternate embodiments, the RF circuitry 606 may include analog-to-digital converter (ADC) and digital-to-analog converter (DAC) circuitry and the baseband circuitry 604 may include a digital baseband interface to communicate with the RF circuitry 606.

[0066] In some dual-mode embodiments, a separate radio IC circuitry may be provided for processing signals for each spectrum, although the scope of the embodiments is not limited in this respect.

[0067] In some embodiments, the synthesizer circuitry 606D may be a fractional-N synthesizer or a fractional N/N+l synthesizer, although the scope of the embodiments is not limited in this respect as other types of frequency synthesizers may be suitable. For example, the synthesizer circuitry 606D may be a delta-sigma synthesizer, a frequency multiplier, or a synthesizer comprising a phase-locked loop with a frequency divider.

[0068] The synthesizer circuitry 606D may be configured to synthesize an output frequency for use by the mixer circuitry 606A of the RF circuitry 606 based on a frequency input and a divider control input. In some embodiments, the synthesizer circuitry 606D may be a fractional N/N+l synthesizer.

[0069] In some embodiments, frequency input may be provided by a voltage controlled oscillator (VCO), although that is not a requirement. Divider control input may be provided by either the baseband circuitry 604 or the application circuitry 602 (such as an applications processor) depending on the desired output frequency. In some embodiments, a divider control input (e.g., N) may be determined from a look-up table based on a channel indicated by the application circuitry 602.

[0070] The synthesizer circuitry 606D of the RF circuitry 606 may include a divider, a delay- locked loop (DLL), a multiplexer and a phase accumulator. In some embodiments, the divider may be a dual modulus divider (DMD) and the phase accumulator may be a digital phase accumulator (DP A). In some embodiments, the DMD may be configured to divide the input signal by either N or N+l (e.g., based on a carry out) to provide a fractional division ratio. In some example embodiments, the DLL may include a set of cascaded, tunable, delay elements, a phase detector, a charge pump and a D-type flip-flop. In these embodiments, the delay elements may be configured to break a VCO period up into Nd equal packets of phase, where Nd is the number of delay elements in the delay line. In this way, the DLL provides negative feedback to help ensure that the total delay through the delay line is one VCO cycle.

[0071] In some embodiments, the synthesizer circuitry 606D may be configured to generate a carrier frequency as the output frequency, while in other embodiments, the output frequency may be a multiple of the carrier frequency (e.g., twice the carrier frequency, four times the carrier frequency) and used in conjunction with quadrature generator and divider circuitry to generate multiple signals at the carrier frequency with multiple different phases with respect to each other. In some embodiments, the output frequency may be a LO frequency (fLO). In some embodiments, the RF circuitry 606 may include an IQ/polar converter.

[0072] The FEM circuitry 608 may include a receive signal path which may include circuitry configured to operate on RF signals received from the one or more antennas 610, amplify the received signals and provide the amplified versions of the received signals to the RF circuitry 606 for further processing. The FEM circuitry 608 may also include a transmit signal path which may include circuitry configured to amplify signals for transmission provided by the RF circuitry 606 for transmission by one or more of the one or more antennas 610. In various embodiments, the amplification through the transmit or receive signal paths may be done solely in the RF circuitry 606, solely in the FEM circuitry 608, or in both the RF circuitry 606 and the FEM circuitry 608.

[0073] In some embodiments, the FEM circuitry 608 may include a TX/RX switch to switch between transmit mode and receive mode operation. The FEM circuitry 608 may include a receive signal path and a transmit signal path. The receive signal path of the FEM circuitry 608 may include an LNA to amplify received RF signals and provide the amplified received RF signals as an output (e.g., to the RF circuitry 606). The transmit signal path of the FEM circuitry 608 may include a power amplifier (PA) to amplify input RF signals (e.g., provided by the RF circuitry 606), and one or more filters to generate RF signals for subsequent transmission (e.g., by one or more of the one or more antennas 610).

[0074] In some embodiments, the PMC 612 may manage power provided to the baseband circuitry 604. In particular, the PMC 612 may control power-source selection, voltage scaling, battery charging, or DC-to-DC conversion. The PMC 612 may often be included when the device 600 is capable of being powered by a battery, for example, when the device 600 is included in a UE. The PMC 612 may increase the power conversion efficiency while providing desirable implementation size and heat dissipation characteristics.

[0075] FIG. 6 shows the PMC 612 coupled only with the baseband circuitry 604. However, in other embodiments, the PMC 612 may be additionally or alternatively coupled with, and perform similar power management operations for, other components such as, but not limited to, the application circuitry 602, the RF circuitry 606, or the FEM circuitry 608.

[0076] In some embodiments, the PMC 612 may control, or otherwise be part of, various power saving mechanisms of the device 600. For example, if the device 600 is in an

RRC Connected state, where it is still connected to the RAN node as it expects to receive traffic shortly, then it may enter a state known as Discontinuous Reception Mode (DRX) after a period of inactivity. During this state, the device 600 may power down for brief intervals of time and thus save power.

[0077] If there is no data traffic activity for an extended period of time, then the device 600 may transition off to an RRC Idle state, where it disconnects from the network and does not perform operations such as channel quality feedback, handover, etc. The device 600 goes into a very low power state, and it performs paging where again it periodically wakes up to listen to the network and then powers down again. The device 600 may not receive data in this state, and in order to receive data, it transitions back to an RRC Connected state.

[0078] An additional power saving mode may allow a device to be unavailable to the network for periods longer than a paging interval (ranging from seconds to a few hours). During this time, the device is totally unreachable to the network and may power down completely. Any data sent during this time incurs a large delay, and it is assumed the delay is acceptable.

[0079] Processors of the application circuitry 602 and processors of the baseband circuitry 604 may be used to execute elements of one or more instances of a protocol stack. For example, processors of the baseband circuitry 604, alone or in combination, may be used to execute Layer 3, Layer 2, or Layer 1 functionality, while processors of the application circuitry 602 may utilize data (e.g., packet data) received from these layers and further execute Layer 4 functionality (e.g., transmission communication protocol (TCP) and user datagram protocol (UDP) layers). As referred to herein, Layer 3 may comprise a radio resource control (RRC) layer, described in further detail below. As referred to herein, Layer 2 may comprise a medium access control (MAC) layer, a radio link control (RLC) layer, and a packet data convergence protocol (PDCP) layer, described in further detail below. As referred to herein, Layer 1 may comprise a physical (PHY) layer of a UE/RAN node, described in further detail below.

[0080] FIG. 7 illustrates example interfaces of baseband circuitry in accordance with some embodiments. As discussed above, the baseband circuitry 604 of FIG. 6 may comprise processors 604A-604E and a memory 604G utilized by said processors. Each of the processors 604A-604E may include a memory interface, 704A-704E, respectively, to send/receive data to/from the memory 604G.

[0081] The baseband circuitry 604 may further include one or more interfaces to

communicatively couple to other circuitries/devices, such as a memory interface 712 (e.g., an interface to send/receive data to/from memory external to the baseband circuitry 604), an application circuitry interface 714 (e.g., an interface to send/receive data to/from the application circuitry 602 of FIG. 6), an RF circuitry interface 716 (e.g., an interface to send/receive data to/from the RF circuitry 606 of FIG. 6), a wireless hardware connectivity interface 718 (e.g., an interface to send/receive data to/from Near Field Communication (NFC) components, Bluetooth® components (e.g., Bluetooth® Low Energy), Wi-Fi® components, and other communication components), and a power management interface 720 (e.g., an interface to send/receive power or control signals to/from the PMC 612).

[0082] FIG. 8 is an illustration of a control plane protocol stack in accordance with some embodiments. In this embodiment, a control plane 800 is shown as a communications protocol stack between the UE 501 (or alternatively, the UE 502), the RAN node 511 (or alternatively, the RAN node 512), and the MME 521.

[0083] A PHY layer 801 may transmit or receive information used by a MAC layer 802 over one or more air interfaces. The PHY layer 801 may further perform link adaptation or adaptive modulation and coding (AMC), power control, cell search (e.g., for initial synchronization and handover purposes), and other measurements used by higher layers, such as an RRC layer 805. The PHY layer 801 may still further perform error detection on the transport channels, forward error correction (FEC) coding/decoding of the transport channels, modulation/demodulation of physical channels, interleaving, rate matching, mapping onto physical channels, and Multiple Input Multiple Output (MIMO) antenna processing.

[0084] The MAC layer 802 may perform mapping between logical channels and transport channels, multiplexing of MAC service data units (SDUs) from one or more logical channels onto transport blocks (TB) to be delivered to PHY via transport channels, de-multiplexing MAC SDUs to one or more logical channels from transport blocks (TB) delivered from the PHY via transport channels, multiplexing MAC SDUs onto TBs, scheduling information reporting, error correction through hybrid automatic repeat request (HARQ), and logical channel prioritization.

[0085] An RLC layer 803 may operate in a plurality of modes of operation, including:

Transparent Mode (TM), Unacknowledged Mode (UM), and Acknowledged Mode (AM). The RLC layer 803 may execute transfer of upper layer protocol data units (PDUs), error correction through automatic repeat request (ARQ) for AM data transfers, and concatenation, segmentation and reassembly of RLC SDUs for UM and AM data transfers. The RLC layer 803 may also execute re-segmentation of RLC data PDUs for AM data transfers, reorder RLC data PDUs for UM and AM data transfers, detect duplicate data for UM and AM data transfers, discard RLC SDUs for UM and AM data transfers, detect protocol errors for AM data transfers, and perform RLC re-establishment.

[0086] A PDCP layer 804 may execute header compression and decompression of IP data, maintain PDCP Sequence Numbers (SNs), perform in-sequence delivery of upper layer PDUs at re-establishment of lower layers, eliminate duplicates of lower layer SDUs at re- establishment of lower layers for radio bearers mapped on RLC AM, cipher and decipher control plane data, perform integrity protection and integrity verification of control plane data, control timer-based discard of data, and perform security operations (e.g., ciphering, deciphering, integrity protection, integrity verification, etc.).

[0087] The main services and functions of the RRC layer 805 may include broadcast of system information (e.g., included in Master Information Blocks (MIBs) or System

Information Blocks (SIBs) related to the non-access stratum (NAS)), broadcast of system information related to the access stratum (AS), paging, establishment, maintenance and release of an RRC connection between the UE and E-UTRAN (e.g., RRC connection paging, RRC connection establishment, RRC connection modification, and RRC connection release), establishment, configuration, maintenance and release of point-to-point radio bearers, security functions including key management, inter radio access technology (RAT) mobility, and measurement configuration for UE measurement reporting. Said MIBs and SIBs may comprise one or more information elements (IEs), which may each comprise individual data fields or data structures.

[0088] The UE 501 and the RAN node 511 may utilize a Uu interface (e.g., an LTE-Uu interface) to exchange control plane data via a protocol stack comprising the PHY layer 801, the MAC layer 802, the RLC layer 803, the PDCP layer 804, and the RRC layer 805.

[0089] In the embodiment shown, non-access stratum (NAS) protocols 806 form the highest stratum of the control plane between the UE 501 and the MME 521. The NAS protocols 806 support the mobility of the UE 501 and the session management procedures to establish and maintain IP connectivity between the UE 501 and the P-GW 523.

[0090] An SI Application Protocol (Sl-AP) layer 815 may support the functions of the SI interface 513 and comprise Elementary Procedures (EPs). An EP is a unit of interaction between the RAN node 511 and the CN 520. The Sl-AP layer 815 services may comprise two groups: UE-associated services and non UE-associated services. These services perform functions including, but not limited to: E-UTRAN Radio Access Bearer (E-RAB)

management, UE capability indication, mobility, NAS signaling transport, RAN Information Management (RIM), and configuration transfer.

[0091] A stream control transmission protocol (SCTP) layer (alternatively referred to as the stream control transmission protocol/internet protocol (SCTP/IP) layer) 814 may ensure reliable delivery of signaling messages between the RAN node 511 and the MME 521 based, in part, on the IP protocol, supported by an IP layer 813. An L2 layer 812 and an LI layer 811 may refer to communication links (e.g., wired or wireless) used by the RAN 511 node and the MME 521 to exchange information.

[0092] The RAN node 511 and the MME 521 may utilize an SI -MME interface to exchange control plane data via a protocol stack comprising the LI layer 811, the L2 layer 812, the IP layer 813, the SCTP layer 814, and the Sl-AP layer 815.

[0093] FIG. 9 is an illustration of a user plane protocol stack in accordance with some embodiments. In this embodiment, a user plane 900 is shown as a communications protocol stack between the UE 501 (or alternatively, the UE 502), the RAN node 511 (or alternatively, the RAN node 512), the S-GW 522, and the P-GW 523. The user plane 900 may utilize at least some of the same protocol layers as the control plane 800. For example, the UE 501 and the RAN node 511 may utilize a Uu interface (e.g., an LTE-Uu interface) to exchange user plane data via a protocol stack comprising the PHY layer 801, the MAC layer 802, the RLC layer 803, the PDCP layer 804.

[0094] A General Packet Radio Service (GPRS) Tunneling Protocol for the user plane (GTP- U) layer 904 may be used for carrying user data within the GPRS core network and between the radio access network and the core network. The user data transported can be packets in any of IPv4, IPv6, or PPP formats, for example. A UDP and IP security (UDP/IP) layer 903 may provide checksums for data integrity, port numbers for addressing different functions at the source and destination, and encryption and authentication on the selected data flows. The RAN node 511 and the S-GW 522 may utilize the Sl-U interface 514 to exchange user plane data via a protocol stack comprising the LI layer 811, the L2 layer 812, the UDP/IP layer 903, and the GTP-U layer 904. The S-GW 522 and the P-GW 523 may utilize an S5/S8a interface to exchange user plane data via a protocol stack comprising the LI layer 811, the L2 layer 812, the UDP/IP layer 903, and the GTP-U layer 904. As discussed above with respect to FIG. 8, the NAS protocols 806 support the mobility of the UE 501 and the session management procedures to establish and maintain IP connectivity between the UE 501 and the P-GW 523.

[0095] FIG. 10 illustrates components of a core network in accordance with some embodiments. The components of the CN 520 may be implemented in one physical node or separate physical nodes including components to read and execute instructions from a machine-readable or computer-readable medium (e.g., a non-transitory machine-readable storage medium). In some embodiments, network function virtualization (NFV) is utilized to virtualize any or all of the above described network node functions via executable instructions stored in one or more computer readable storage mediums (described in further detail below). A logical instantiation of the CN 520 may be referred to as a network slice 1001. A logical instantiation of a portion of the CN 520 may be referred to as a network sub- slice 1002 (e.g., the network sub-slice 1002 is shown to include the P-GW 523 and the PCRF 526).

[0096] FIG. 11 is a block diagram illustrating components, according to some example embodiments, able to read instructions from a machine-readable or computer-readable medium (e.g., a non-transitory machine-readable storage medium) and perform any one or more of the methodologies discussed herein. Specifically, FIG. 11 shows a diagrammatic representation of hardware resources 1100 including one or more processors (or processor cores) 1110, one or more memory/storage devices 1120, and one or more communication resources 1130, each of which may be communicatively coupled via a bus 1140. For embodiments where node virtualization (e.g., NFV) is utilized, a hypervisor 1102 may be executed to provide an execution environment for one or more network slices/sub-slices to utilize the hardware resources 1100.

[0097] The processors 1110 (e.g., 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 digital signal processor (DSP) such as a baseband processor, an application specific integrated circuit (ASIC), a radio-frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, a processor 1112 and a processor 1114. [0098] The memory/storage devices 1120 may include main memory, disk storage, or any suitable combination thereof. The memory/storage devices 1120 may include, but are not limited to, any type of volatile or non-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.

[0099] The communication resources 1130 may include interconnection or network interface components or other suitable devices to communicate with one or more peripheral devices 1104 or one or more databases 1106 via a network 1108. For example, the communication resources 1130 may include wired communication components (e.g., for coupling via a Universal Serial Bus (USB)), cellular communication components, NFC components, Bluetooth® components (e.g., Bluetooth® Low Energy), Wi-Fi® components, and other communication components.

[00100] Instructions 1150 may comprise software, a program, an application, an applet, an app, or other executable code for causing at least any of the processors 1110 to perform any one or more of the methodologies discussed herein. The instructions 1150 may reside, completely or partially, within at least one of the processors 1110 (e.g., within the processor's cache memory), the memory/storage devices 1120, or any suitable combination thereof. Furthermore, any portion of the instructions 1150 may be transferred to the hardware resources 1100 from any combination of the peripheral devices 1104 or the databases 1106. Accordingly, the memory of processors 1110, the memory/storage devices 1120, the peripheral devices 1104, and the databases 1106 are examples of computer-readable and machine-readable media.

Examples

[0100] The following examples pertain to further embodiments.

[0101] Example 1 is an apparatus for a virtualized infrastructure manager (VFM), comprising: a first interface coupled to a network function virtualization infrastructure (NFVI); a second interface coupled to a virtualized network function manager (VNFM); and a processor coupled to the first interface and second interface. The processor configured to: receive a set of virtual processor usage metrics from the NFVI, the set of virtual processor usage metrics covering at least a collection period; generate a virtual processor usage measurement for a virtualized compute resource based at least in part on the virtual processor usage metrics; and report the virtual processor usage measurement to the VNFM. [0102] Example 2 is the apparatus of Example 1, wherein the virtual processor usage metrics are sampled virtual processor usage measurements at pre-defined intervals measured by the FVI.

[0103] Example 3 is the apparatus of Example 1, wherein the virtual processor usage metrics are an arithmetic mean of virtual processor usage samples measured in the collection period by the NFVI.

[0104] Example 4 is the apparatus of Example 1, wherein the virtual processor usage metrics are for an individual virtual processor or are consolidated for virtual processors of a virtualized compute resource.

[0105] Example 5 is the apparatus of Example 1, wherein the virtual processor usage metrics are formed by selecting a maximum among virtual processor usage samples measured in a given period.

[0106] Example 6 is the apparatus of any of Examples 1-5, wherein to generate the virtual processor usage measurement further comprises to generate the virtual processor usage measurement by processing usage metrics of multiple virtual processors and generating a consolidated measurement.

[0107] Example 7 is the apparatus of any of Examples 1-5, wherein the VIM generates the virtual processor usage measurement by using subcounters for multiple virtual processors.

[0108] 8. A system for management of virtualized resources (VRs), comprising a network function. The network function virtualization infrastructure (NFVI) configured to: sample virtual processor usage of a virtualized compute resource; and provide virtual processor usage metrics to a virtualized infrastructure manager (VIM). The VFM configured to: process the virtual processor usage metrics from the NFVI; generate a virtual processor usage measurement for the virtualized compute resource based at least in part on the virtual processor usage metrics; and report the virtual processor usage measurement to a virtualized network function manager (VNFM); the VNFM configured to receive the virtual processor usage measurement from the VIM.

[0109] Example 9 is the system of Example 8, further comprising a virtualized compute resource that includes one or more virtual processors for which the NFVI samples for virtual processor usage individually or collectively.

[0110] Example 10 is the system of Example 8, wherein the virtual processor usage measurement is a mean virtual processor usage or peak virtual processor usage. [0111] Example 11 is the system of Example 8, wherein the virtual processor usage measurement includes a ratio of a first number of usage samples in a usage range to a second number of total usage samples.

[0112] Example 12 is the system of Example 8, wherein to generate the virtual processor usage measurement further comprises to generate a distribution of the received virtual processor usage metrics per usage level from a set of usage levels.

[0113] Example 13 is the system of any of Examples 8-11, wherein the virtualized compute resource includes a virtual central processing unit (CPU).

[0114] Example 14 is a method of managing of virtualized resources (VRs), the method comprising: receiving a set of virtual processor usage metrics from a network function virtualization infrastructure (NFVI), the set of virtual processor usage metrics covering at least a collection period; generating a virtual processor usage measurement for a virtualized compute resource based at least in part on the set of virtual processor usage metrics; and reporting the virtual processor usage measurement to the virtualized network function manager (VNFM).

[0115] Example 15 is the method of Example 14, wherein the virtual processor usage metrics are for an individual virtual processor or are consolidated for virtual processors of a virtualized compute resource.

[0116] Example 16 is the method of Example 14, wherein reporting the virtual processor usage measurement further comprises reporting the virtual processor usage measurement to the VNFM using a notification that the virtual processor usage measurement is available.

[0117] Example 17 is the method of Example 14, wherein reporting the virtual processor usage measurement further comprises reporting the virtual processor usage measurement to the VNFM using a message including the virtual processor usage measurement value.

[0118] Example 18 is the method of Example 14, wherein the virtualized compute resource is identified by an object type and an object instance identifier.

[0119] Example 19 is the method of Example 14, wherein the virtualized compute resource is identified by a compute ID.

[0120] Example 20 is an apparatus comprising means to perform a method as exemplified in any of Examples 14-18.

[0121] Example 21 is a machine-readable storage including machine-readable instructions, when executed, to implement a method or realize an apparatus as exemplified in any of Examples 14-18. [0122] Example 22 is a machine-readable medium including code, when executed, to cause a machine to perform the method of any one of Examples 14-18.

[0123] Example 23 is a computer program product comprising a computer-readable storage medium that stores instructions for execution by a processor to perform operations of a virtualized infrastructure manager (VIM), the operations, when executed by the processor, to perform a method, the method comprising: receiving a set of virtual processor usage metrics from a network function virtualization infrastructure (NFVI), the set of virtual processor usage metrics covering at least a collection period; generating a virtual processor usage measurement for a virtualized compute resource based at least in part on the set of virtual processor usage metrics; and reporting the virtual processor usage measurement to the virtualized network function manager (VNFM).

[0124] Example 24 is an apparatus for managing of virtualized network functions (VNFs), the apparatus comprising: means for receiving a set of virtual processor usage metrics from a network function virtualization infrastructure (NFVI), the set of virtual processor usage metrics covering at least a collection period; means for generating a virtual processor usage measurement for a virtualized compute resource based at least in part on the set of virtual processor usage metrics; and means for reporting the virtual processor usage measurement to the virtualized network function manager (VNFM).

Additional Examples

[0125] Additional Example 1 may include the Virtualized Infrastructure Manager (VIM) comprising one or more processors configured to: receive the virtual CPU usage metric from Network Function Virtualization Infrastructure (NFVI); perform processing of the virtual CPU usage metrics that were received within a collection period; generate the virtual CPU usage measurement for a Virtualized Compute Resource from the processing of virtual CPU usage metrics; and report the virtual CPU usage measurements to Virtualized Network Function Manager (VNFM).

[0126] Additional Example 2 may include the method according to Additional Example 1 and/or some other example herein, wherein the said virtual CPU usage metric is generated by NFVI by sampling the virtual CPU usage at the pre-defined interval.

[0127] Additional Example 3 may include the method according to Additional Example 1 and/or some other Additional Examples herein, wherein the said virtual CPU usage metric is generated by NFVI by taking the arithmetic mean of the virtual CPU usage samples measured in a given period. [0128] Additional Example 4 may include the method according to Additional Example 1 and/or some other Additional Example herein, wherein the said virtual CPU usage metric is generated by FVI by selecting the maximum among the virtual CPU usage samples measured in a given period.

[0129] Additional Example 5 may include the method according to Additional Example 1 and/or some other Additional Example herein, wherein the said virtual CPU usage metric is generated by NFVI by calculating the distribution of the virtual CPU usage samples measured in collection given period.

[0130] Additional Example 6 may include the method according to Additional Example 1, 2 and/or 3 and/or some other Additional Example herein, wherein the said virtual CPU usage measurement is the mean virtual CPU usage.

[0131] Additional Example 7 may include the method according to Additional Example 1, 2 and/or 4 and/or some other Additional Example herein, wherein the said virtual CPU usage measurement is the peak virtual CPU usage.

[0132] Additional Example 8 may include the method according to Additional Example 1, 2 and/or 5 and/or some other Additional Example herein, wherein the said virtual CPU usage measurement contains the ratio of the number of usage samples that fell into each given usage range to the number of total usage samples of the virtual CPU.

[0133] Additional Example 9 may include the method according to Additional Example 1 and/or 6 and/or some other Additional Example herein, wherein the said processing is taking arithmetic mean of the received virtual CPU usage metric.

[0134] Additional Example 10 may include the method according to Additional Example 1 and 7 and/or some other Additional Example herein, wherein the said processing is taking a maximum of the received virtual CPU usage metric.

[0135] Additional Example 11 may include the method according to Additional Example 1 and 8 and/or some other Additional Example herein, wherein the said processing is generating the distribution of the received virtual CPU usage metric per usage level.

[0136] Additional Example 12 may include the method according to Additional Example 1 to 11 and/or some other Additional Example herein, wherein the VIM generates the virtual CPU usage measurement by using subcounters for multiple virtual CPUs.

[0137] Additional Example 13 may include the method according to Additional Example 1 to 11 and/or some other Additional Example herein, wherein the VIM generates the virtual CPU usage measurement by selecting one for multiple virtual CPUs to report. [0138] Additional Example 14 may include the method according to Additional Example 1 and/or some other Additional Example herein, wherein the VIM generates the virtual CPU usage measurement by processing the usage metrics of multiple virtual CPUs, and generating a consolidated measurement.

[0139] Additional Example 15 may include the method according to Additional Example 1 and/or some other Additional Example herein, wherein the VIM reports the virtual CPU usage measurements to VNFM by a notification informing the virtual CPU usage measurements are available.

[0140] Additional Example 16 may include the method according to Additional Example 1 and/or some other Additional Example herein, wherein the VIM reports the virtual CPU usage measurements to VNFM by an operation including the virtual CPU usage

measurements value.

[0141] Additional Example 17 may include the method according to Additional Example 1 and/or some other Additional Example herein, wherein the collection interval can be divided into multiple sampling intervals.

[0142] Additional Example 18 may include the method according to Additional Example 1 and/or some other Additional Example herein, wherein the Virtualized Compute Resource is identified by object type and object instance identifier.

[0143] Additional Example 19 may include the method according to Additional Example 1 and/or some other Additional Example herein, wherein the Virtualized Compute Resource is identified by the computeld.

[0144] Additional Example 20 may include the method according to Additional Example 1 and/or some other Additional Example herein, wherein the measurement may contain the measurement name, measurement value and timestamp.

[0145] Additional Example 21 may include an apparatus comprising means to perform one or more elements of a method described in or related to any of Additional Examples 1- 20, or any other method or process described herein.

[0146] Additional Example 22 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 Additional Examples 1-20, or any other method or process described herein. [0147] Additional Example 23 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

Additional Examples 1-20, or any other method or process described herein.

[0148] Additional Example 24 may include a method, technique, or process as described in or related to any of Additional Examples 1-20, or portions or parts thereof.

[0149] Additional Example 25 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 Additional Examples 1-20, or portions thereof.

[0150] Additional Example 26 may include a method of communicating in a wireless network as shown and described herein.

[0151] Additional Example 27 may include a system for providing wireless

communication as shown and described herein.

[0152] Additional Example 28 may include a device for providing wireless

communication as shown and described herein.

[0153] In some embodiments, performance measurement is obtained via a Status Counter (SC): The entity receives a metric at each predetermined interval. A measurement is generated from processing (e.g., arithmetic mean, peak) all of the samples received in the collection period.

[0154] In some embodiments, mean virtual CPU usage is used. The mean virtual CPU usage can include the following:

Description: This measurement provides the mean virtual CPU usage of the virtualized compute resource.

Collection Method: SC.

Trigger: VIM receives the cpu utilization measurement for the virtual compute instance from

NFVI at the pre-defined interval, and then takes the arithmetic mean of the virtual CPU usage metrics received in the collection period.

Measurement Unit: Each measurement is a real value (Unit: %).

Measurement Group: VirtualizedComputeResource.

Measured Object Type: objectType is equal to "virtualCompute," objectlnstanceld corresponds to computeld of the virtualized compute resource.

Measurement Name: VcpuUsageMean. [0155] In some embodiments, peak virtual CPU usage is used. The peak virtual CPU usage can include the following:

Description: This measurement provides the peak virtual CPU usage of the Virtualized Compute Resource.

Collection Method: SC.

Trigger: VIM receives the cpu utilization measurement for the virtual compute instance from FVI at the pre-defined interval, and then selects the maximum metric among the virtual CPU usage metrics received in the collection period.

Measurement Unit: Each measurement is a real value (Unit: %).

Measurement Group: VirtualizedComputeResource.

Measured Object Type: objectType is equal to "virtualCompute," objectlnstanceld corresponds to computeld of the Virtualized Compute Resource.

Measurement Name: VcpuUsagePeak.

[0156] Embodiments and implementations of the systems and methods described herein may include various operations, which may be embodied in machine-executable instructions to be executed by a computer system. A computer system may include one or more general- purpose or special-purpose computers (or other electronic devices). The computer system may include hardware components that include specific logic for performing the operations or may include a combination of hardware, software, and/or firmware.

[0157] Computer systems and the computers in a computer system may be connected via a network. Suitable networks for configuration and/or use as described herein include one or more local area networks, wide area networks, metropolitan area networks, and/or Internet or IP networks, such as the World Wide Web, a private Internet, a secure Internet, a value-added network, a virtual private network, an extranet, an intranet, or even stand-alone machines which communicate with other machines by physical transport of media. In particular, a suitable network may be formed from parts or entireties of two or more other networks, including networks using disparate hardware and network communication technologies.

[0158] One suitable network includes a server and one or more clients; other suitable networks may contain other combinations of servers, clients, and/or peer-to-peer nodes, and a given computer system may function both as a client and as a server. Each network includes at least two computers or computer systems, such as the server and/or clients. A computer system may include a workstation, laptop computer, disconnectable mobile computer, server, mainframe, cluster, so-called "network computer" or "thin client," tablet, smart phone, personal digital assistant or other hand-held computing device, "smart" consumer electronics device or appliance, medical device, or a combination thereof.

[0159] Suitable networks may include communications or networking software, such as the software available from Novell®, Microsoft®, and other vendors, and may operate using TCP/IP, SPX, IPX, and other protocols over twisted pair, coaxial, or optical fiber cables, telephone lines, radio waves, satellites, microwave relays, modulated AC power lines, physical media transfer, and/or other data transmission "wires" known to those of skill in the art. The network may encompass smaller networks and/or be connectable to other networks through a gateway or similar mechanism.

[0160] Various techniques, or certain aspects or portions thereof, may take the form of program code (i.e., instructions) embodied in tangible media, such as floppy diskettes, CD- ROMs, hard drives, magnetic or optical cards, solid-state memory devices, a nontransitory computer-readable storage medium, or any other machine-readable storage medium wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the various techniques. In the case of program code execution on programmable computers, the computing device may include a processor, a storage medium readable by the processor (including volatile and nonvolatile memory and/or storage elements), at least one input device, and at least one output device. The volatile and nonvolatile memory and/or storage elements may be a RAM, an EPROM, a flash drive, an optical drive, a magnetic hard drive, or other medium for storing electronic data. The eNB (or other base station) and UE (or other mobile station) may also include a transceiver component, a counter component, a processing component, and/or a clock component or timer component. One or more programs that may implement or utilize the various techniques described herein may use an application programming interface (API), reusable controls, and the like. Such programs may be implemented in a high-level procedural or an object-oriented programming language to communicate with a computer system. However, the program(s) may be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language, and combined with hardware implementations.

[0161] Each computer system includes one or more processors and/or memory; computer systems may also include various input devices and/or output devices. The processor may include a general purpose device, such as an Intel®, AMD®, or other "off-the-shelf microprocessor. The processor may include a special purpose processing device, such as ASIC, SoC, SiP, FPGA, PAL, PLA, FPLA, PLD, or other customized or programmable device. The memory may include static RAM, dynamic RAM, flash memory, one or more flip-flops, ROM, CD-ROM, DVD, disk, tape, or magnetic, optical, or other computer storage medium. The input device(s) may include a keyboard, mouse, touch screen, light pen, tablet, microphone, sensor, or other hardware with accompanying firmware and/or software. The output device(s) may include a monitor or other display, printer, speech or text synthesizer, switch, signal line, or other hardware with accompanying firmware and/or software.

[0162] It should be understood that many of the functional units described in this specification may be implemented as one or more components, which is a term used to more particularly emphasize their implementation independence. For example, a component may be implemented as a hardware circuit comprising custom very large scale integration (VLSI) circuits or gate arrays, or off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A component may also be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices, or the like.

[0163] Components may also be implemented in software for execution by various types of processors. An identified component of executable code may, for instance, comprise one or more physical or logical blocks of computer instructions, which may, for instance, be organized as an object, a procedure, or a function. Nevertheless, the executables of an identified component need not be physically located together, but may comprise disparate instructions stored in different locations that, when joined logically together, comprise the component and achieve the stated purpose for the component.

[0164] Indeed, a component of executable code may be a single instruction, or many instructions, and may even be distributed over several different code segments, among different programs, and across several memory devices. Similarly, operational data may be identified and illustrated herein within components, and may be embodied in any suitable form and organized within any suitable type of data structure. The operational data may be collected as a single data set, or may be distributed over different locations including over different storage devices, and may exist, at least partially, merely as electronic signals on a system or network. The components may be passive or active, including agents operable to perform desired functions.

[0165] Several aspects of the embodiments described will be illustrated as software modules or components. As used herein, a software module or component may include any type of computer instruction or computer-executable code located within a memory device. A software module may, for instance, include one or more physical or logical blocks of computer instructions, which may be organized as a routine, program, object, component, data structure, etc., that perform one or more tasks or implement particular data types. It is appreciated that a software module may be implemented in hardware and/or firmware instead of or in addition to software. One or more of the functional modules described herein may be separated into sub-modules and/or combined into a single or smaller number of modules.

[0166] In certain embodiments, a particular software module may include disparate instructions stored in different locations of a memory device, different memory devices, or different computers, which together implement the described functionality of the module. Indeed, a module may include a single instruction or many instructions, and may be distributed over several different code segments, among different programs, and across several memory devices. Some embodiments may be practiced in a distributed computing environment where tasks are performed by a remote processing device linked through a communications network. In a distributed computing environment, software modules may be located in local and/or remote memory storage devices. In addition, data being tied or rendered together in a database record may be resident in the same memory device, or across several memory devices, and may be linked together in fields of a record in a database across a network.

[0167] Reference throughout this specification to "an example" means that a particular feature, structure, or characteristic described in connection with the example is included in at least one embodiment. Thus, appearances of the phrase "in an example" in various places throughout this specification are not necessarily all referring to the same embodiment.

[0168] As used herein, a plurality of items, structural elements, compositional elements, and/or materials may be presented in a common list for convenience. However, these lists should be construed as though each member of the list is individually identified as a separate and unique member. Thus, no individual member of such list should be construed as a de facto equivalent of any other member of the same list solely based on its presentation in a common group without indications to the contrary. In addition, various embodiments and examples may be referred to herein along with alternatives for the various components thereof. It is understood that such embodiments, examples, and alternatives are not to be construed as de facto equivalents of one another, but are to be considered as separate and autonomous representations.

[0169] Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided, such as examples of materials, frequencies, sizes, lengths, widths, shapes, etc., to provide a thorough understanding of the embodiments. One skilled in the relevant art will recognize, however, that the embodiments may be practiced without one or more of the specific details, or with other methods, components, materials, etc. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of embodiments.

[0170] It should be recognized that the systems described herein include descriptions of specific embodiments. These embodiments can be combined into single systems, partially combined into other systems, split into multiple systems or divided or combined in other ways. In addition, it is contemplated that parameters/attributes/aspects/etc. of one embodiment can be used in another embodiment. The parameters/attributes/aspects /etc. are merely described in one or more embodiments for clarity, and it is recognized that the parameters/attributes/aspects /etc. can be combined with or substituted for

parameters/attributes/etc. of another embodiment unless specifically disclaimed herein.

[0171] Although the foregoing has been described in some detail for purposes of clarity, it will be apparent that certain changes and modifications may be made without departing from the principles thereof. It should be noted that there are many alternative ways of implementing both the processes and apparatuses described herein. Accordingly, the present embodiments are to be considered illustrative and not restrictive, and the description is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.

[0172] Those having skill in the art will appreciate that many changes may be made to the details of the above-described embodiments without departing from the underlying principles. The scope of the present embodiments should, therefore, be determined only by the following claims.