Patent Publication Number: US-8533360-B2

Title: Method and apparatus to report resource values in a mobile network

Description:
RELATED APPLICATION 
     This application claims the benefit of U.S. Provisional Application No. 61/278,520, filed on Oct. 7, 2009, the entire teachings of which are incorporated herein by reference. 
    
    
     BACKGROUND OF THE INVENTION 
     In subscriber aware networks, such as Worldwide Interoperability for Microwave Access (WiMax) networks, High Speed Packet Access (HSPA) networks, 3 rd  Generation Partnership Project Long Term Evolution (3GPP LTE) networks etc. Billing servers or accounting servers may be used to track activities on a per-subscriber basis, such as for billing subscribers for their respective wireless calling minutes. 
     SUMMARY OF THE INVENTION 
     Embodiments of the present invention include methods, apparatuses, and computer program products for reporting resource values in a mobile network. An example embodiment of the present invention includes, for example, an apparatus, sometimes referred to herein as a functional element, in a mobile network node that employs modules configured to report resources as may be necessary. Specifically, a first module, a notification module, is configured to notify a resource manager of a buffer that contains subscriber information. A second module, a buffer fill module, is configured to fill a buffer with a pointer to resources in the network and is further configured to be interconnected operably to a replacement module, which replaces the resource pointer with a corresponding resource value. A reporting module reports the filled buffer. 
     According to another example embodiment, there can be a second apparatus for reporting resource values in a data plane of a mobile network. The apparatus can include a module configured to fill a buffer with information pertaining to subscribers in a mobile network, including the services corresponding to each of the subscribers and the resource values corresponding to each of the services. The second apparatus further includes a module configured to report the buffer. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The foregoing will be apparent from the following more particular description of example embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating embodiments of the present invention. 
         FIG. 1  is a network diagram of a prior art access portal and an embodiment of the present invention that illustrates functional elements operably interconnected via wireline or wireless mediums. 
         FIG. 2A  is a block diagram of an embodiment of the invention that illustrates features of a functional element involved in reporting hardware resources at a data plane and at a control plane. 
         FIG. 2B  is a flow chart of an embodiment of the present invention that illustrates functions involved in reporting resource values in mobile network. 
         FIG. 2C  is a block diagram of an embodiment of the invention that illustrates components involved in reporting hardware resources. 
         FIG. 3A  is a flow chart of an embodiment of the present invention that illustrates functions involved in reporting resource values in a data plane. 
         FIG. 3B  is a block diagram of an embodiment of the present invention that illustrates components involved in reporting hardware resources in a data plane. 
         FIG. 4  is a logical diagram of a memory of an embodiment of the present invention that illustrates pointer stacks. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     A description of example embodiments of the invention follows. 
     A typical approach to collect application statistics is to send requests to a resource manager in a control plane that can access resource hardware via a device driver, where the resource hardware, such as a counter, keeps track of activity occurring in a data plane. The resource manager and device driver may both be located in a central processing unit (CPU). In the typical approach, an application sends a synchronous read message to the resource manager. Following receipt of the synchronous read message, the resource manager sends a synchronous message to the driver, causing the device driver to read statistics from the hardware. Throughout the process, multiple synchronous transactions or messages are exchanged, meaning the resource manager waits for requested information from the driver or intermediate modules, and the device driver waits for its response from the hardware, and, while waiting, the resource manager, intermediate modules (if any), and device driver perform no other activities. Synchronous operations are fine for small volumes of subscribers, but as subscribers increase in number, such as with the advent of 4G wireless networks, the synchronous approach will be inefficient and result in consuming large amounts of CPU resources, which can produce a sub-optimal rate of information retrieval. 
     In the case of maintaining counters in line cards in a network gateway, for example, and having internal retrieval activities in the same line card, current methods begin with an application&#39;s sending a synchronous message to a resource manager, the resource manager&#39;s responsively sending a synchronous message to the device driver, the device driver sending a synchronous message to the hardware resource, the hardware resource responding in kind to the driver, the driver&#39;s responding in kind to the resource manager, and the resource manager responding in kind to the application. Similarly, current methods for processes across line cards include two additional synchronous messages: one synchronous message sent from the application on a first card to the application on a second card in order to begin the process, and a second synchronous message sent from the application on the second card to the application on the first card in order to end the process. 
     Embodiments of the present invention can allow for the use of asynchronous messaging across all modules and returning hardware statistics, such as statistics from counters, directly from the hardware to an application process. Therefore, an embodiment of the present invention has an ability to bypass transactions between the application and the resource manager, and to bypass similar transactions between the resource manager and device driver. Alternatively, example embodiments of the present invention can be applied to bypassing transactions between cards, thereby removing cross-card synchronous communication. It should be understood that at least two levels of efficiency are achieved first, asynchronous activities enable requesting modules, such as the resource manager, to conduct other activities or release its resources back to its host CPU, and second, bypassing transactions can use fewer control plane resources, and possibly no control plane resources in cases when return of the information from the hardware device is reported back to the requesting application via the data plane absent any control plane interaction. 
     A further optimization of alternative example embodiments of the present invention includes sending a command to return a “bulk of operations to hardware” and retrieve them in a single pass of messaging across these processes. This example embodiment may lower inter-process communications (IPCs) significantly, eliminate synchronous calls, and significantly increase speed of retrieval. 
     Additional alternative example embodiments of the invention include any or all of the modules being configured to operate in an asynchronous manner relative to the activities of the resource manager, and further can include any of the modules configured to operate at a data plane of a network functional element or multiple combinations of the modules configured to operate at both the data plane and the control plane of the network functional element. 
     Alternatively, example embodiments of the present invention can include a buffer being filled with information regarding subscribers in the mobile network, where information can include representations and indications of the subscribers, subscribers&#39; corresponding provisioned services, resource values corresponding to the provisioned services, or other representative subscriber information as may commonly employed or hereafter developed. In example embodiments with modules included on the network functional element, as well as external functional elements or devices, the modules may receive the buffer via transmission of the buffer in the form of a traffic-packet, or, alternatively, the modules may receive a pointer to the buffer. Any of the modules being interconnected operably to one another or other network elements and configured to perform operations such that statistics relevant to a subscriber or set of subscribers in the mobile network may be available to applications external to the functional element. 
     Embodiments of the present invention provide various technical advantages of conventional methods and apparatuses for reporting resources in a network node. Some of these technical advantages are shown and described in the description of the present invention. Certain embodiments of the present invention may enjoy some, all, or none of these advantages. Other technical advantages may be readily apparent to those skilled in the art from the following figures, description, and claims. 
       FIG. 1  is a network diagram of a network  100  illustrating aspects of an example embodiment of the invention. The network  100  can be any type of network configured to enable wireless access, such as a wide area network (WAN) having wireless access thereto, wireless broadband network employing a Worldwide Interoperability for Microwave Access (WiMax) network, High Speed Packet Access (HSPA) network, 3 rd  (or 4 th ) Generation Partnership Project Long Term Evolution (GPP LTE) network, or other commonly employed or hereafter-developed network. The network  100  can include at least one access network  101 , to interconnect operably with a number of network elements, and may include, for example, mobile end user devices (hereinafter “subscriber devices”)  150   a - g.    
     The access network  101  can connect basic network elements such as a mobility management entity (MME) (not shown), home location register (HLR) (not shown), home agent  125 , gateways  120   a - b , or other known network elements. The access network  101  connects to at least one base transceiver station  140   a - f , either directly or through additional networks, such as an edge network (not shown), which connects mobile devices  150   a - g  via a telecommunications interface  199  or wireless medium, e.g., an air interface. The home agent  125  further connects the wireless network  135  to external networks, e.g., the Internet  116  or a mobile switching center  149  containing service portals  115   a - d . The service portals  115   a - d  can provide support for multiple service types through use of, for example, an authentication, authorization, and accounting (AAA) server  115   a , dynamic host configuration protocol (DHCP) server  115   b , billing server  115   c , home policy function (PF) server  115   d , or other type of portal that may be used at the mobile switching center  149 . The AAA server  115   a  may provide authentication services to validate a subscriber, authorization to determine the subscriber&#39;s rights, and accounting to determine subscriber&#39;s usage. The DHCP server  115   b  may provide for address allocation services in a manual, automatic, or dynamic manner, or as otherwise provided by a network administrator. The home PF server  115   d  may provide general policy rules or application dependent policy rules. The home PF server  115   d  may also evaluate network requests against the policies and may be associated with a home policy database, which may be associated with a network service processor (NSP)  162 . 
     Continuing to refer to  FIG. 1 , traffic  102 , originating at a mobile device such as a portable computer mobile device  150   a , may travel toward its respective base station  140   a  via a wireless medium  199 . The base stations  140   a  may, in turn, forward the traffic  102  to a corresponding gateway  120   a  via a wired or wireless medium  199 . The gateway  120   a  can be any of a multitude of wireless gateways, such as an Access Signaling Node Gateway (ASN-GN), Gateway GPRS Support Node (GGSN), Serving General Packet Radio Service Support Node (SGSN), System Architecture Evolution (SAE) gateway, or other currently known or hereafter-developed gateway. In the example network  100 , the gateway  120   b  contains at least one functional element  160   a , such as a line card, that supports traffic packets, or other traffic signals, at traffic rates; multiple line cards in a chassis  160   b - f  can also be present. 
     An example embodiment of the present invention includes a subscriber-aware switch, such as switch  130  in  FIG. 1 , directs traffic from a subscriber to the specific line card where the subscriber&#39;s profile is maintained; for example, the switch can be configured to determine a subscriber profile associated with the communications traffic  102 . Details of a subscriber-aware switch are described further in Applicants&#39; pending U.S. patent application Ser. No. 12/900,354 being filed concurrently herewith, entitled “Method and Apparatus for Switching Communications Traffic in a Communications Network” by Santosh Chandrachood and Pawan Uberoy, which claims priority to Applicants&#39; U.S. Provisional Patent Application No. 61/278,496, filed Oct. 7, 2009, entitled “A Method and Apparatus for Subscriber Distribution and Load Balancing Using Mid-Plane Design in a Subscriber Aware Platform Such as ASN Gateway, GGSN, SGSN etc.” by Chandrachood et al., the entire teachings of both applications being incorporated herein by reference in their entirety. The switch  130  is a subscriber-aware switch and has knowledge of the subscriber&#39;s profile location, whereas previous switches are non-subscriber-aware switches, for example, such as a multiplexer switch  118 , which merely switch traffic without being aware of the traffic&#39;s destination. 
     In an example of a prior art access portal  110   a , the portion of the network includes similar elements and components as the network  100 , including, for example, subscriber devices  150   a - c  connected to base stations  140   a - c  via a wireless medium  199 . The base stations  140   a - c  are similarly connected to a gateway node  120   a  via mediums  199 . The gateway  120   a  may include a multiplexer switch  118 , which simply forwards traffic signals from an input to an output based on header information, and may include a line card  160   g  (or multiple line cards  160   g - i ) for processing functions. However, the prior art example embodiments rely on synchronous resource reporting, where the messages execute sequentially; while one entity is waiting for a response from a second entity, the execution process is suspended. The synchronous messaging system of the prior art example requires more wait time as the number of messages sent increase, thereby increasing run time and resources. 
     For example, in reference to the blown-out prior art synchronous messaging  139 , referencing a line card  160   g , a synchronous-messaging example is illustrated. In order to provide resource statistics to application  123   c , elements of the line card  160   g  must perform a series of synchronous messages. The synchronous messaging series occurs in a control plane  198   c  (i.e., a slow path) and includes communications between a sub-application  127   c , resource manager  121   c , driver  122   c , hardware  126   c , and application  123   c . Synchronous messaging here is communication between these processes, which is un-buffered and requires each process to wait until the data or message between the two processes has been transferred or completed. Throughout the entire process of reporting statistics to the application  123   c , multiple synchronous messages or transactions are sent between each pair of processes cause inefficient results, consume large amounts of CPU resources, and produce sub-optimal rate of retrieval. 
     In the example embodiment of the prior art synchronous messaging, the sub-application  127   c  sends a synchronous message  117   a  to the resource manager  121   c  requesting hardware statistics; before the resources manager can send a message to the driver  122   c , the resource manager  121   c  must give a response to the sub-application  127   c  first. This pattern, of request message/response message pertains to all processes. In other words, the resource manager  121   c  sends a synchronous message  117   b  to the driver  122   c , which responds and then sends a synchronous message  117   c  to the hardware  126   c , which responds. In order for the statistics to be reported to the application  123   c , the processes must reverse order and send the information upwards. In other words, the hardware  126   c  sends a synchronous message  117   d  to the driver  122   c , which responds and sends a synchronous message  117   e  to the resource manager  121   c . The resource manager  121   c  responds to the driver  122   c  and sends a synchronous message  117   f  to the sub-application  127   c , which responds. After all of these synchronous processes complete, the sub-application  127   c  can send a synchronous message  117   g  to the application  123   c , which can include the statistical reports. 
     Example embodiments of the present invention can include asynchronous messaging and fast-path forwarding using a data plane. Resource management employing asynchronous messaging systems do not require response return, and, therefore, allow for scalable resource allocation and messaging without information loss. In an example embodiment of the present invention, large numbers of subscribers can be assigned to one or more hardware counters on the network  100  per subscriber. Details of a method for assigning resources are described further in Applicants&#39; pending U.S. patent application Ser. No. 12/900,243 being filed concurrently herewith, entitled “Method and Apparatus for Assigning Resources in a Network Node” by Santosh Chandrachood, which claims priority to Applicants&#39; U.S. Provisional Patent Application No. 61/278,486, filed Oct. 7, 2009, entitled “A Method and Apparatus to Allocate Network Processing Unit Resources Dynamically in Fast Path Without Host CPU Involvement and Without Statically Holding Up Resources” by Chandrachood, the entire teachings of both applications being incorporated herein by reference in their entirety. 
     In order to report statistics about the counters, the hardware counters can be polled periodically and report the subscriber-hardware statistics using asynchronous messaging in a data plane  197   b , or in the data plane  197   b  and a control plane  198   b . An example embodiment of a function element  160   b  is illustrated in the blown out example embodiment of asynchronous messaging  138 . 
     The functional element  160   b , which can be a line card or a line card designated as an anchor line card (e.g.,  160   a ) that includes a subscriber&#39;s profile. The functional element  160   b  includes a control plane  198   b , which is a slow path and a data plane  197   b , which is a fast path. The control plane  198   b  can contain a sub-application  127   b , resource manager  121   b , and driver  122   b . The data plane  197   b  can contain hardware  126   b . In an example embodiment of the present invention, the sub-application  127   b  can send an asynchronous message  117   h  to the driver  122   b , which can immediately send an asynchronous message  117   i  to the hardware  126   b . The hardware  126   b  can immediately, from the data plane, send an asynchronous message to the application  123   b  in a fast-path  117   j , from the data plane  197   b  to the application  123   b  without going through the control plane  198   b . Additional example embodiments are explained in reference to  FIG. 2A . 
       FIG. 2A  is a block diagram  200   a  illustrating a functional element  260 , such as a network node, for reporting resources using a data plane  297  and a control plane  298 . The functional element  260  can be a single line card at a network node, or be a line card among a plurality of line cards in chassis at a network node. The functional element  260  can include a network processing unit (NPU)  263 , which can be located on the data plane  297 , or forwarding plane, of the functional element  260 . The NPU  263 , operating in the data plane  297 , can include, for example, a hardware component  226 . The CPU  264 , operating in the control plane  298 , can include, for example, a billing sub-application  227 , a resource manager  221 , or a driver  222 . An application programming interface (API) (not shown) implemented by components of a software system, such as an operating system, an application, or a system library, being tied in a logical or physical configuration to the billing applications  223   a - b  for interacting with the billing sub-application  227 . 
     The NPU  263  is interconnected operably to the functional element  260  via a fabric  265 . The fabric  265  further can interconnect operably multiple functional elements (not shown) in a chassis. The NPU  263  can be interconnected operably to the CPU  264  via a peripheral component interconnect (PCI) bus  272 , or other method of interconnecting or integrating circuitry, for example, a traffic rate bus that can be operating at traffic rates or multiples thereof. The CPU  264  can communicate with other nodes at the control plane  298  level via a control channel. The CPU  264  can control states of traffic modules, such as the NPU  263 , operating at the data plane level via a CPU-to-NPU control channel. One or both of the NPU  263  and CPU  265  may be coupled to a memory  235 , where the memory can be a ternary content addressable memory (TCAM) or other finite memory as may be known or hereafter developed. 
     The functional element  260  can include egress output ports  279  from which traffic can be sent to sub-elements within a same node  208  as the functional element  260  or to an external node  209 . Both or either of the same node  208  and external node  209  can be a type of element in a network, such as the network  100  of  FIG. 1 , for example, the node can be a client, a server, a peer, or other network element commonly employed or hereafter developed. The same node  208  and the external node  209  may include, for example, a billing application  223   a - b  (e.g., billing server  115   c  in  FIG. 1 ), an accounting server  228   a - b , and an element management system (EMS)  229   a - b . Alternatively, another example embodiment may include additional applications, management entities, servers, or other services commonly known or hereafter developed applicable to hardware resources. 
     In one example embodiment, a traffic packet  202  can enter the NPU  263  via the fabric  265  or via an ingress input port  271 , the ingress input port  271  being decided based on packet header information, such as protocol information. The traffic packet  202  enters the hardware  226  of the NPU  263  located in the data plane  297 . The control plane  298  receives the packet  202  from the data plane  297  via bus  272 . The traffic packet  202  being associated with a subscriber (not shown), where the subscriber can be assigned to multiple hardware counters. 
     In one example embodiment of the present invention, a series of asynchronous messages  212  can be performed to report statistics to an application. The billing application  223   b  may require statistics or a network operator may program or decide hardware counter statistics to be reported to other network entities. The billing sub-application  227  can send an asynchronous message to the resource manager  221  in the control plane  298 . Without waiting for a response, the resource manager  221  can send an asynchronous message to the driver  222 , which can send an asynchronous message to the hardware  226 , located in the data plane. The hardware  226  can return hardware resource statistics to the driver  222 , which can report the hardware resource statistics to the billing application  223   b  using an asynchronous return message. 
     In an alternative example embodiment, a series of asynchronous messages  213  can be perform to report statistics to an application. The billing sub-application  227  can transmit an asynchronous message to the driver  222 , which can, in turn, transmit an asynchronous message to the hardware  226  located at the data plane  297 . The hardware  226 , in the NPU  263  can directly report the hardware statistics from the data plane  297  to the billing application  223   b , without return response to the control plane  298 . 
     In yet another alternative example embodiment of the present invention, a series of asynchronous messages  214  can be performed to report statistics to an application. The billing sub-application  227  can send an asynchronous message to the hardware  326  directly, bypassing all processes in the control plane, thereby saving the CPU  264  resources and improving production of near-optimal or optimal rate of information retrieval. The hardware  226  reports the statistical results directly from the data plane to the billing application  223   b.    
     In alternative example embodiments, an application on one card can acquire statistical results or information from hardware on another card, bypassing any inter-process communication or synchronous messaging. In yet another alternative example embodiment, an application can specify specific statistics relevant to a subscriber or set of subscribers, such that the relevant statistics can be acquired for all such subscribers with a single transaction and flow of process invocation without synchronous messaging. Further alternative example embodiments can include an application requesting a direct return delivery of statistical results from a device driver, without mediation of a resource manager process. 
     Alternatively, another example embodiment may include resource processes occurring between two line cards or across multiple line cards. In this example embodiment, the same series of asynchronous messages  212 ,  213 , and  214  can occur between two line cards or across multiple line cards on the same or different network elements. 
       FIG. 2B  is a flow chart  200   b  illustrating a method by which a network element, such as the line card  160   a  of  FIG. 1 , can report resource values in a network according to an aspect of the present invention. According to the example embodiment, the flow chart  200   b  notifies a resource manager of a buffer that can contain subscriber information ( 281 ). The buffer containing subscriber information can be filled with resources pointers ( 282 ) and the resource pointers can be replaced with resource values corresponding to the resource pointers ( 383 ). Further, the example embodiment of flow chart  200   b  can report the buffer or buffer contents ( 284 ). 
     In alternative example embodiments, a buffer, such as the buffer  445   b  of  FIG. 4 , can be reported to an external node, such as the external node  309  of  FIG. 3A , by transmitting the buffer or a portion of the buffer. Alternatively, another example embodiment can transmit the buffer to an element of the same node, such as the node  308  of  FIG. 3A , by coping the buffer into a traffic packet without any modifications. The buffer can be reported to any node or network sub-element in the network by other methods commonly employed or hereafter developed. 
       FIG. 2C  is a block diagram  200   c  illustrating a network element, such as the network node  120   a  of  FIG. 1 , illustrating an example embodiment of the invention. The block diagram  200   c  includes a notification module  285 , buffer fill module  286 , replacement module  287 , and reporting module  288 . The notification module  285  can notifying a resource manager regarding a buffer  245 , which can include subscriber information  251  or other information. The notification module  285  can pass a copy of the buffer or forward a pointer to the buffer to the buffer fill module  286 ; the buffer fill module  286  can fill the buffer  245  with resource pointers  248 . The replacement module  287  can receive information from the buffer fill module  286 , such as the resource pointers  248 , subscriber information  251 , or the buffer  245 . The replacement module  287  can be configured to replace the resource pointers  248  with the resource values  249  corresponding to the resource pointers  248 . The reporting module  288  can be configured to report the buffer  245 ; the reporting module  288  can receive a copy of the buffer  245  or a pointer  248  forwarded from the replacement module  287 . 
     Alternatively, another example embodiment can include the reporting module  288  receiving a copy of the buffer  245  directly from a memory, such as the memory  235  of  FIG. 2A . Another alternative example embodiment of the present invention can include, for example, the modules being in any configuration in system of any physical or logical configuration. 
       FIG. 3A  is a flow chart  300   a  illustrating a method by which a network element  380 , such as the line card  160   a  of  FIG. 1 , can report resource values in a data plane according to an example embodiment of the present invention. The example embodiment of flow chart  300   a  provides for a method of filling a memory, which can include a buffer such as the buffer  445   a  of  FIG. 4 , in a data plane with information regarding subscribers or subscriber devices present in a network, such as the mobile network  100  of  FIG. 1  ( 391 ), and the buffer further being reported via a data plane of a mobile network or network entity ( 392 ). 
     In alternative example embodiments, the buffer can be reported to an external node, such as the external node  209  of  FIG. 2A , by transmitting the buffer or a portion of the buffer. Alternatively, another example embodiment can transmit the buffer to an element of the same node, such as the node  208  of  FIG. 2A , by coping the buffer into a traffic packet without any modifications to the buffer. The buffer can be reported to any node or network sub-element in the mobile network by other methods commonly employed or hereafter developed. 
       FIG. 3B  is a block diagram  300   b  illustrating a network element  380 , such as the line card  160   a  of  FIG. 1 , according to an example embodiment of the invention. Components of the network element  380  can include a buffer fill module  393  and a reporting module  394 . The buffer fill module  393  can be configured to fill a buffer  345  with information representing subscribers, such as source or destination, subscribers&#39; corresponding services, such as quality of service, and accounting or billing records of the subscribers. Details of allocation of services, such as quality of service, are described further in Applicants&#39; pending U.S. patent application (Serial Number not yet assigned) being filed concurrently herewith, entitled “Method and Apparatus for Efficient Resource Allocation of Quality of Service Profiles in Mobile Networks” by Santosh Chandrachood and Henry Fung, which claims priority to Applicants&#39; U.S. Provisional Patent Application No. 61/278,505, filed Oct. 7, 2009, entitled “A Method and Apparatus for Efficient Resource Allocation of Quality of Service Profiles in Mobile Networks” by Chandrachood et al., the entire teachings of both applications being incorporated herein by reference in their entirety. According to an example embodiment, the modules can be part of or all of a system to report resource values in a data plane of the network element. Alternatively, another example embodiment of the present invention can include, for example, the modules being in any configuration in system of any physical or logical configuration. 
       FIG. 4  is a logical diagram  400  illustrating a memory  435 , such as buffers  445   a - b , according to an example embodiment of the present invention. The buffers  445   a - b  can be a storage medium used, for example, to collect and stored data for use by a network element, such as network node  120   b  or  FIG. 1 ; the buffers  445   a - b  can be used for other purposes commonly employed or hereafter developed, such as for interconnecting circuits operating at different rates or reading and writing information. In alternative example embodiments, the buffers  445   a - b  can be other types of memory, such as a queue, cache, or other commonly employed or hereafter developed type of memory or portion of memory. The buffers  445   a  and  445   b  can be the same buffer during different stages of a buffer fill procedure, such as the buffer fill procedure  281  of  FIG. 2B . The buffer  445   a  can store subscriber information in general, including, for example, a recipient address  442 , subscriber identifiers  457   a - c , classifiers  453   a - 1 - 453   a - 3  and  453   b - 1 - 453   b - 3 , hardware resource pointers  448   a - f , or other information  443 ; the information stored in the buffer  445   a  can be rewritten, read, and otherwise reconfigured based on different information or processes in the network. The recipient address  442  can be identified or determined based on the information in a traffic packet, such as the traffic packet  202  of  FIG. 2A , the packet information may include, for example, payload or header information with a sender&#39;s and recipient&#39;s Internet protocol (IP) address or other mobile address. The subscriber identifiers  457   a - c  can include unique subscriber identifier, which can be dynamically determined by a network processing unit (NPU), such as the NPU  263  of  FIG. 2A , or may be based on other learned or known information about a subscriber device (not shown). 
     In alternative example embodiments, the subscriber identifiers  457   a - c  can include, for example, a unique serial number of a subscriber device, a temporary identification number in a roaming network, an international mobile subscriber identity (IMSI) associated with a global system for mobile communications (GSM) or universal mobile telecommunications system (UMTS). 
     The buffer  445   a  can include information relating to the subscriber  457   a - c , such as classifiers  453   a - 1 - 453   a - 3  and  453   b - 1 - 453   b - 3 , which may be subscriber-specific classifiers or a group of classifiers shared among subscribers. Classifiers  453   a - 1 - 453   a - 3  and  453   b - 1 - 453   b - 3  can include a multitude of information about the subscriber, for example, a rate limitation, type of service, rules or actions associated with the type of service, or other commonly known or hereafter developed subscriber information for use in a mobile communications network. In one example embodiment, the subscriber identifiers  457   a - c  may be associated with the same, similar, or different types of classifiers or number of classifiers  453   a - 1 - 453   a - 3  and  453   b - 1 - 453   b - 3 . For example, a subscriber in a mobile communications network with subscriber identifier S 1   457   a , can have a first classifier  453   a - 1  that includes the type of service as being a premium level service, such as all voice calls receiving high-priority classification. Subscriber identifier S 1   457   a  may have a second classifier  453   b - 1  that includes the counter values corresponding to a type of service. 
     In alternative example embodiments of the present invention, subscriber identifiers  457   a - c  and classifiers  453   a - 1 - 453   a - 3  and  453   b - 1 - 453   b - 3  can be combined to determine resources that can be used or needed by a certain subscriber or certain group of subscribers. The buffer  445   a  stores pointers to resources  448   a - f , such that the hardware resources  448   a - f  can include pointers to counters located in a different network element being accessible to the buffer  445   a . Additional information  443  may be stored in the buffer  445   a  as determined by a network operator or other subscriber information as may be useful for determining or storing for use in application statistics. 
     The buffer  445   b  can be the same buffer as the buffer  245   a  during a different stage of the buffer fill procedure. In an alternative example embodiment, the buffer  445   b  can be an exact replica of the buffer  445   a , also located in a memory, such as the memory  235  in  FIG. 2A . The buffer  245   b  can include the same information as stored in the buffer  245   a , such as the recipient address  442 , the subscriber identifiers  457   a - c , the classifiers  453   a - 1 - 453   a - 3  and  453   b - 1 - 453   b - 3 , and the additional information  443 . In an example embodiment, the additional information  443  may include, for example, representations of subscribers or a subset of subscribers handled by a node in the mobile network. Continuing to refer to the present example embodiment, during a stage of the buffer fill procedure (as described in reference to  FIG. 2B ), the buffer  445   b  can replace the hardware resource pointers  448   a - f  with resource values  449   a - f . The resource values  449   a - f  can include, for example, accounting information or billing information for a subscriber or service; alternatively, the resource values  449   a - f  can be hardware counter values. In replacing the resource pointers  448   a - f  with resource values  449   a - f , the example embodiment optimizes the procedure and saves network resources without having to copy the buffer or stack multiple times. Alternatively, another example embodiment can include certain portions or entire buffers to be copied or relocated to other network elements. 
     Further example embodiments of the present invention may include a non-transitory computer readable medium containing instruction that may be executed by a processor, and, when executed, cause the processor to monitor the information, such as components or status, of at least a first and second network element. It should be understood that elements of the block and flow diagrams described herein may be implemented in software, hardware, firmware, or other similar medium determined in the future. In addition, the elements of the block and flow diagrams described herein may be combined or divided in any manner in software, hardware, or firmware. If implemented in software, the software may be written in any language that can support the example embodiments disclosed herein. The software may be stored in any form of computer readable medium, such as random access memory (RAM), read only memory (ROM), compact disk read only memory (CD-ROM), and so forth. In operation, a general purpose or application specific processor loads and executes software in a manner well understood in the art. It should be understood further that the block and flow diagrams may include more or fewer elements, be arranged or oriented differently, or be represented differently. It should be understood that implementation may dictate the block, flow, and/or network diagrams and the number of block and flow diagrams illustrating the execution of embodiments of the invention. 
     The teachings of all patents, published applications and references cited herein are incorporated by reference in their entirety. 
     While this invention has been particularly shown and described with references to example embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention encompassed by the appended claims.