Correlation of billing information by a network element

In one embodiment, a method for providing correlation of billing entries for a mobile communications network is provided. A correlating network element in a bearer path determines a plurality of billing entries for a flow. One or more of the billing entries may be received from other network elements and includes traffic altering information for a flow. The correlating network element correlates the plurality of billing entries using state information included in the billing entries. The state information is used to determine information in billing entries that may be related, such as billing entries for a single flow. Also, the correlating network element uses the traffic altering information to determine a data volume sent for the flow. A correlated billing entry may then be generated using the data volume for the flow. The correlated billing entry is then sent to a billing system from the correlating network element. Billing entries are not sent from other network elements that may be generating billing entries in a link to the billing system.

TECHNICAL FIELD

Particular embodiments generally relate to networking.

BACKGROUND

Mobile communication networks use a large array of network elements that have traffic visibility. These elements may impact the volume of content traffic sent/received to/from a user. The network elements generally operate independently of each other; thus, one element is unaware of information/handling of traffic that is known only to other network elements.

Each network element may send billing information separately to a billing office. Because each network element is unaware of what is happening with other network elements, this may create inconsistencies in billing, such as the billing reports may be incomplete or inaccurate from a charging perspective. For example, when a proprietary tunnel is set up, protocol awareness of the traffic is lost and the packets cannot be inspected to determine billing information from them. Thus charging for that flow cannot be determined by a downstream element. Also, because each network element includes a link to the billing office, large amounts of traffic may be sent to the billing office. As more network elements are added to the network, more links and bandwidth are used to send the billing information to the billing office, which results in inefficient use of these billing links (which may run over alternate, higher cost media to a central billing location).

DESCRIPTION OF EXAMPLE EMBODIMENTS

Overview

In one embodiment, a method for providing correlation of billing entries for a mobile communications network is provided. A correlating network element in a bearer path determines a plurality of billing entries for a flow. One or more of the billing entries may be received from other network elements and includes traffic altering information for a flow. The correlating network element correlates the plurality of billing entries using state information included in the billing entries. The state information is used to determine information in billing entries that may be related, such as billing entries for a single flow. Also, the correlating network element uses the traffic altering information to determine a data volume sent for the flow. A correlated billing entry may then be generated using the data volume for the flow. The correlated billing entry is then sent to a billing system from the correlating network element. Billing entries are not sent from other network elements that may be generating billing entries in a link to the billing system. Rather, a correlating network element does the correlation and can then send correlated billing entries to the billing system. This alleviates unnecessary links between the billing system and other network elements and save the cost used to send the billing information over the links. Further, the correlation is performed in the network and intelligence may be used in generating the billing entries. For example, any inaccuracies may be corrected or changes to charges may be performed based on information from other network elements that was previously only known to the other network elements and alleviates the need for a correlating network element to inspect and parse packets that may be sent in a proprietary tunnel.

EXAMPLE EMBODIMENTS

FIG. 1depicts an example of a system for correlating billing entries. In one embodiment, the system includes a mobile communications system; however, it will be understood that other communication systems may be appreciated.

In mobile communications systems, a plurality of cell sites108and a radio network controller110are provided. Mobile nodes112may communicate through cell sites108and radio network controllers110to network element104-1. Cell sites108and radio network controllers110are known in the art and need not be described further.

Mobile nodes112may be any mobile device, such as a cellular phone, personal digital assistant (PDA), smart phone, laptop computer, etc. Although a cellular communication system is described, it will be understood that other systems may be used, such as a wireless fidelity (WiFi) network, a wired network, etc.

Traffic for mobile node112may then be sent to network element104-1. In one embodiment, network element104-1may be a packet gateway, such as a gateway GPRS support node (GGSN), packet data serving node (PDSN), access service network (ASN) gateway, a packet data gateway (PDG), etc. Network element104-1may be an interface between different networks.

A correlating network element102may correlate information in billing entries from other network elements104. Correlating network element102may then generate a correlated billing entry using information from multiple billing entries and send it to a billing system106. A correlated billing entry may be where information received from two different network elements (e.g, correlating network element102and/or network elements104) is used to create a billing entry. A billing entry may be any information that includes billing/charging information for mobile nodes112. The billing entry may include information for a single flow of multiple flows. The correlation may be where two entries are received from different network elements for a flow, and correlating network element102determines that the two entries are related. Then, correlating network element102may correlate them together by associating them with each other.

In one embodiment, correlating network element102may be a layer7charging node. A layer7charging node may be configured to determine charging information from application layer information. For example, the charging information may be for applications114being accessed by mobile node112. Examples of the layer7information may be information that allows an accurate charge/count for traffic sent/received to/by mobile node112for certain applications114. In one example, the amount of data downloaded for a ringtone download may be determined.

In one embodiment, correlating network element102sits in the bearer path and receives packets for/from mobile node112. Network elements104-2and104-3may be other network elements in the bearer path. Network element104-1also sits in the bearer path and can generate billing entries, but for discussion purposes, it is assumed network elements104-1-104-3generate the billing entries. These network elements104may provide various services. For example, network element104-2may be a traffic packet optimizer (TPO). A traffic packet optimizer may compress traffic such that less bandwidth is used. A traffic packet optimizer may set up a proprietary tunnel, such as a proprietary transmission control protocol (TCP) or a user datagram protocol (UDP) encapsulation, to send traffic to mobile node112or applications114. When a proprietary tunnel is used, layer7information may not be determined from downstream nodes. For example, network element104-3may not be able to read the traffic because deep packet inspection may be needed to determine protocol-related information. The protocol-related information provides the application layer information, such as which flows the packets are for and for what applications114, which allows billing to be performed for mobile node112. However, if a proprietary tunnel is used, the packet may not be inspected for the presence of significant billing events (for example a billable URL for a ringtone download may not be parseable) and thus billing information may not be determined.

Network element104-3may be a caching node. The caching node may cache data until it is ready to be sent. Information for the data being cached may be needed for billing purposes. For example, caching information may be useful to determine how much data was cached and for how long. This may be pertinent for billing in service level agreements. Other network nodes, although not shown, may also include nodes that perform gating, policing, denial of traffic flows, etc.

Network elements104and correlating network element102may be in the bearer path. That is, data traffic being sent between mobile node112and applications114passes through these network elements. Accordingly, the correlation is performed by network elements in the bearer path. This is different from performing correlation in billing system106. Because the correlation is performed in the bearer path (i.e., the network), intelligence may be added in generating the billing entries. Also, the single billing link can be used to report accurate data volume information that represents the number of bytes actually transferred to the user after optimization, and include information on billable layer7events such as ringtone download.

Because of the network location of a network element, information sent in packets from caching node and TPO node may not be received at correlating network element102(e.g., a network node may be upstream from the node or if it is downstream, it cannot inspect information in the packet). Also, the data sent from the caching and TPO may be altered because of the caching of data or optimization. For example, less data volume may be sent because of traffic optimization or caching of data. However, correlating network element102may not be able to determine an accurate data volume count because it may be upstream. Also, correlating network element102may not be able to inspect packets sent in a proprietary tunnel and cannot associate a packet count with a billing event. Thus, particular embodiments provide a feedback loop that is used to send billing information to correlating network102.

Accordingly, correlating network element102may correlate the billing entries into a correlated billing entry. For example, information in billing entries for a flow may be correlated and included in a correlated billing entry. The correlation involves receiving information from network element104-2and/or104-3for a flow. Correlating network element102determines the information is for the same flow thus correlating the received information together. Accordingly, the information is put or brought into a causal, complementary, parallel, and/or reciprocal relation at correlating network element102. Then, one or more billing entries may be generated for the information received from network element104-2and104-3. Thus, billing information sent from network element104-2and/or network element104-3for a flow may be correlated into a correlated billing entry (billing information determined at correlating network element104-2may also be included in the correlated billing entry).

Correlating network element102is able to provide accurate data volume count (including adjustments for data not served or compressed over a link between the TPO and mobile node112) while also reporting accurate layer7billing data such as URLs downloaded. The adjusted data volume count is different than the data served originally. For example, application114may serve a certain amount of data. However, a network element may compress the data and serve it to mobile node112. In some cases, mobile node112should be charged for a lower data volume because the data was compressed. By providing the feedback loop, the network element that compressed the data can send the traffic altering information (e.g., packet count or other compression information) on how the traffic was altered to correlating network element102, which can provide the accurate account for the correct billing event.

By providing the feedback loop where traffic altering information is sent to correlating network element102, correlating network element102does not need to understand and parse packets sent by the network element, which might have been sent in a proprietary tunnel. The traffic altering information may be used to determine an adjusted data volume that is different from the data sent from application114(because less data may be sent when it is compressed, cached, etc.). Also, if a feedback loop was not provided, then individual network elements might have sent different packet counts to a billing system separately, which may have caused inaccuracies in billing.

The correlation may be performed based on a number of factors. For example, billing information is correlated per flow, per mobile node, etc. Thus, in one example, billing information is correlated on a per-flow basis from the billing entries. The correlated billing entry may then be sent from correlating network element104-2to billing system106.

A link from correlating network element102to billing system106is needed, but links from network element104-1, network element104-2, and network element104-3are not needed. This alleviates unnecessary traffic and further, correlating network element102may use information from other network elements104to determine any intelligent action that needs to be made for billing purposes. For example, traffic sent through a proprietary tunnel may be determined and charged for.

Billing system106may then use a correlated billing entry to charge or reimburse mobile node112for traffic. Also, billing system106may use the information to re-authorize a prepaid balance, terminate a user flow, re-rate the traffic for charging purposes, reimburse the prepaid billing server, or perform any other intelligent action.

FIG. 2depicts a more detailed example of correlating network102and network elements104-2and104-3. Although these network elements are shown, it will be understood that other network elements may also be provided. Network elements104include a billing information determiner202, a state information determiner204, and a billing entry creator and sender206.

Billing information determiner202may determine billing information. For example, if network element104-2is a traffic packet optimizer, flow-based information may be determined. The flow-based information may include layer7information, compression ratio, or any information that is specifically known only to the traffic packet optimizer. This information is determined for each flow in the bearer path may provide traffic altering information that can be used to determine an adjusted data volume count for a flow.

Also, if network element104-3is a caching node, information based on caching of packets in flows may be determined. For example, information may include cached status, percentage of traffic received from cache, digital rights management information, streaming media-specific information, and other information specifically known only to the caching node. This information may also be used to determine the adjusted data volume count for a flow.

State information determiner204may determine state information for a flow. For example, to correlate billing entries from different network elements104, state information is needed. The state information may include information that identifies the flow that traffic is sent through. For example, state information may include source information (an IP address for mobile node112), destination information (IP address for application114), port information, etc.

Billing information determiner202and state information determiner204may use deep packet inspection to determine the billing information and/or state information. For example, information that can be determined includes the hypertext transfer protocol (HTTP) information, uniform resource locator (URL) information, real time streaming protocol (RTSP) information, or any other information for a flow. This provides information that can be used to generate the billing entry.

Billing entry creator and sender206then creates a billing entry and sends it to correlating network element102. The billing entry includes the state information and the billing information. The billing entry may include information for a single flow or multiple flows.

In one embodiment, a feedback loop may be created from network element104-2to network element104-3to correlating network element102(labeled “1” inFIG. 2). When this feedback loop is created, the billing entry may be sent from network element104-2to network element104-3. Network element104-3also now has the option to review the billing entry and may use it in generating its own billing entries. This may provide intelligence in the network. A chain of intelligent network elements104may relay traffic altering information through the system to allow for accurate billing. Network element104-3may also generate its own billing entry and send it to correlating network element102in addition to the other billing entry from network element104-2.

In another embodiment, each billing entry creator and sender206for network elements104-2and104-3may individually send the billing entries directly to correlating network element102. For example, billing entry creator and sender206-2may send billing entries separately to correlating network element102from billing entry creator and sender206-3(labeled “2” inFIG. 2). Thus, individual feedback loops may be created between correlating network element102and other network elements104.

A billing entry receiver208in correlating network element102is configured to receive the billing entries. Correlating network element102may also include its own billing information determiner202, a state information determiner204, and a billing entry creator and sender206, which create billing entries and send them to billing entry receiver208. Billing entry receiver208may process the entries, such as stripping data out of the payload of packets, etc.

A correlator210is then configured to correlate the billing entries. For example, billing information in the billing entries is correlated based on a flow each of the billing entries is associated with. Thus, a flow-based correlation may be determined where information for a flow is correlated at correlating network element104to determine an adjusted volume data count for a flow. For example, a flow ID is used to determine the traffic altering information for a flow. The traffic data count for a billing entry with the same flow ID may then be altered based on the traffic altering information. Thus, correlator214determines that billing information is for the same flow. The billing information is then correlated together and analyzed to determine the adjusted volume data count. Correlator214can then send the correlated billing entries to billing system106.

FIG. 3depicts an example of a method for correlating billing entries in the network. In one embodiment, the method is performed at correlating network element102.

Step302receives billing entries generated by different network elements104. For example, network elements104-2and104-3may generate billing entries and send them to correlating network element102. Thus, a feedback loop is created between network elements104to correlating network element102.

Step304determines state information for the entries. Because entries may be received for different flows at correlating network element102, state information is needed to determine which entries are for the same flow.

Step306correlates information for the billing entries based on the state information. For example, billing information for the same flow may be correlated together from the billing entries. Also, it will be understood that mobile nodes112may have multiple flows and thus multiple flows may be correlated together.

Step308then sends the correlated billing entries to billing system106. Accordingly, for all the billing entries that are received in step302, correlated billing entries are generated and sent. This alleviates each different billing entry being sent to billing system106by different network elements and also allows the correlation to be performed in the network, which eliminates excess traffic on links to billing system106.

FIG. 4depicts an example of a method for generating billing entries. Step402determines billing information. The billing information may be any information that may be known only to network element104.

Step404determines state information. The state information may identify a flow for the billing information.

Step406generates a billing entry with an adjusted volume data count based on the billing information. Step408then sends the billing entry to correlating network element104or the next network element104. Thus, a feedback loop may be generated in which billing entries are sent back to correlating network element102.

Although the description has been described with respect to particular embodiments thereof, these particular embodiments are merely illustrative, and not restrictive.

Any suitable programming language can be used to implement the routines of particular embodiments including C, C++, Java, assembly language, etc. Different programming techniques can be employed such as procedural or object oriented. The routines can execute on a single processing device or multiple processors. Although the steps, operations, or computations may be presented in a specific order, this order may be changed in different particular embodiments. In some particular embodiments, multiple steps shown as sequential in this specification can be performed at the same time. The sequence of operations described herein can be interrupted, suspended, or otherwise controlled by another process, such as an operating system, kernel, etc. The routines can operate in an operating system environment or as stand-alone routines occupying all, or a substantial part, of the system processing. Functions can be performed in hardware, software, or a combination of both. Unless otherwise stated, functions may also be performed manually, in whole or in part.

In the description herein, numerous specific details are provided, such as examples of components and/or methods, to provide a thorough understanding of particular embodiments. One skilled in the relevant art will recognize, however, that a particular embodiment can be practiced without one or more of the specific details, or with other apparatus, systems, assemblies, methods, components, materials, parts, and/or the like. In other instances, well-known structures, materials, or operations are not specifically shown or described in detail to avoid obscuring aspects of particular embodiments.

A “computer-readable medium” for purposes of particular embodiments may be any medium that can contain and store, the program for use by or in connection with the instruction execution system, apparatus, system, or device. The computer readable medium can be, by way of example only but not by limitation, a semiconductor system, apparatus, system, device, or computer memory.

Particular embodiments can be implemented in the form of control logic in software or hardware or a combination of both. The control logic, when executed by one or more processors, may be operable to perform that what is described in particular embodiments.

Reference throughout this specification to “one embodiment”, “an embodiment”, “a specific embodiment”, or “particular embodiment” means that a particular feature, structure, or characteristic described in connection with the particular embodiment is included in at least one embodiment and not necessarily in all particular embodiments. Thus, respective appearances of the phrases “in a particular embodiment”, “in an embodiment”, or “in a specific embodiment” in various places throughout this specification are not necessarily referring to the same embodiment. Furthermore, the particular features, structures, or characteristics of any specific embodiment may be combined in any suitable manner with one or more other particular embodiments. It is to be understood that other variations and modifications of the particular embodiments described and illustrated herein are possible in light of the teachings herein and are to be considered as part of the spirit and scope.

The foregoing description of illustrated particular embodiments, including what is described in the Abstract, is not intended to be exhaustive or to limit the invention to the precise forms disclosed herein. While specific particular embodiments of, and examples for, the invention are described herein for illustrative purposes only, various equivalent modifications are possible within the spirit and scope, as those skilled in the relevant art will recognize and appreciate. As indicated, these modifications may be made to the present invention in light of the foregoing description of illustrated particular embodiments and are to be included within the spirit and scope.