Method and apparatus for assigning resources in a network node

Achieving resource management within a network processing unit (NPU) can be challenging due to the NPU's fixed and limited instruction set. In the case of large mobile networks, contexts are dynamic, and each subscriber in the network consumes multiple hardware resources, where a central processing unit (CPU) is typically employed to program individual resources even though generally impractical in high-session rates. To avoid programming individual resources, an example embodiment of the present invention creates a group of resources depending on a category, the group being shared dynamically among subscribers when a subscriber is active in the network. The example embodiment may include a network service processor (NSP) located in a forwarding path, such that the NPU may operate in connection with the NSP to allocate NPU resources using a packetized interface. The example embodiment achieves resource management within the NPU without a host CPU's involvement and without statically delaying resources.

BACKGROUND OF THE INVENTION

Network management systems use network resource management in telecommunications networks to maintain an understanding of a status of link resources and allocations, among other reasons. Resource management is used to track and manage network capacity, such as bandwidth, as well as other network resources. Resource management can occur at many hierarchical levels within a network, such as at traffic control nodes, gateways, routers, or switches. Within such nodes are often control circuits, such as central processing units (CPUs), which communicate with other nodes at a control plane level via a node-to-node control channel (i.e., inter-node control channel). The CPUs control states of traffic modules, such as network processing units (NPUs), operating at a data plane level via a CPU-to-NPU control channel (i.e., intra-node control channel). In a typical NPU programming paradigm, a host CPU accesses and programs the NPU resources using a control channel. Communications between the CPU and NPU may be bidirectional to enable the CPU to monitor a state of the NPU, or other data plane processors or modules within the node. Such bidirectional communications between control and data enables service providers to provision network nodes based on network congestion or other states, such as faults within the network, and to maintain sufficient resources for traffic to traverse network communications paths without interruption.

SUMMARY OF THE INVENTION

An example embodiment of the present invention is a network functional element, e.g., a line card in a gateway for assigning resources in a network node. Components integrated with or used by the functional element determine provisioning information in a data plane based on subscriber information that is available at the data plane. The components are configured to look-up data plane resources in order to determine subscriber services, such that the data plane resources can be assigned to the subscriber services in the network node.

DETAILED DESCRIPTION OF THE INVENTION

Sophisticated resource management employing a network processing unit (NPU) can be challenging due to fixed and limited instruction set(s) of the NPU. In a typical NPU programming paradigm, a host central processing unit (CPU) has access to NPU resources; the CPU programs the NPU resources using a control channel within a network node. This model is suitable in cases in which contexts are relatively static and resources are available at all times. However, in the case of a large mobile network with interconnected networks, contexts are dynamic and each subscriber in the network can consume multiple hardware resources, such as statistics pointers, policers, forwarding entries, and the like. In many designs, any time new information is learned about the resources in real-time, the CPU must be involved in order to program these resources. However, as mobile services become a more active part of network services overall, CPU involvement became impractical due to high session rates; for example, 5-tuple flow information is learned at a rate of over 100K 5-tuples per second.

One example embodiment of the present invention that leads to suitable resolution of resource allocation in mobile networks is through avoiding programming individual resources attached to each subscriber. Alternatively, another example embodiment creates a pool or group of resources, divided into categories, for example, which can be shared dynamically when a flow or subscriber is active in the network.

Embodiments of the present invention include methods, network elements, and computer readable media products for assigning resources in a network node by dynamically allocating NPU resources in a fast path (i.e., data plane, as opposed to a control plane) without a host CPU and without a static hold on the NPU resources. An example embodiment of the present invention includes an apparatus, for example, a functional element, physical or logical, in a network node that includes a determination module to determine provisioning information in a data plane based on subscriber information that is available in the data plane, a performance module that looks-up data plane resources based on the subscriber information in order to determine a subscriber service, and an assignment module that assigns the data plane resources in the data plane to the subscriber services in that (or a different) network node.

Embodiments of the present invention provide various technical advantages over conventional methods and apparatuses for allocating resource in a network node, such as allocating network processing unit resources dynamically in the fast path, without host central processing unit involvement and without statically holding-up resources. Some of these technical advantages are shown and described in the following description of the present invention with respect to the accompanying figures. 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 accompanying figures or claims.

FIG. 1is a network diagram of a network100illustrating aspects of an example embodiment of the invention. The network100can 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, 3rdor 4thGeneration Partnership Project Long Term Evolution (GPP LTE) network, or other commonly employed or hereafter-developed network. The network100can include at least one access network101to interconnect operably with a number of network elements, which may include, for example, mobile end user devices (hereinafter “mobile devices”)150a-g.

The access network101can connect basic network elements such as a mobility management entity (MME) (not shown), home location register (HLR) (not shown), home agent125, gateways120a-b, or other known network elements. The access network101connects to at least one base transceiver station (base station)140a-f, either directly or through additional networks, such as an edge network (not shown), which connects mobile devices150a-gvia a telecommunications interface or wireless medium, e.g., an air interface. The home agent125further connects the wireless network135portion of the network100to external networks, e.g., the Internet116or a mobile switching center130containing service portals115a-d. The service portals115a-dcan provide support for multiple service types through use of, for example, an authentication, authorization, and accounting (AAA) server115a, dynamic host configuration protocol (DHCP) server115b, billing server115c, home policy function (PF) server115d, or other type of portal that may be used at the mobile switching center130. The AAA server115amay provide authentication services to validate a subscriber, authorization to determine the subscriber's rights, and accounting to determine subscriber's usage. The DHCP server115bmay provide for address allocation services in a manual, automatic, or dynamic manner, or as otherwise provided by a network administrator. The home PF server115dmay provide general policy rules or application dependent policy rules. The home PF server115dmay also evaluate network requests against the policies and may be associated with a home policy database, which may be associated with a network service provider.

Continuing to refer toFIG. 1, traffic102, originating at a mobile device such as a portable mobile device150a, may travel toward its respective base station140avia a wireless medium199. The base station140amay, in turn, forward the traffic102to a corresponding gateway120avia a wired or wireless medium199. The gateway120acan 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.

An example embodiment of the present invention can include a subscriber-aware switch, such as switch119inFIG. 1, which directs traffic from a subscriber device150a-gto a specific line card where the subscriber's profile is maintained; for example, the subscriber-aware switch119can be configured to determine a subscriber profile or a subscriber identifier associated with the communications traffic102. The switch119is a subscriber-aware switch and has knowledge of the subscriber's profile location or can determine the anchor line card160a, among the multiple line cards160a-ffor a subscriber device. Conversely, previous switches are non-subscriber-aware switches, for example, such as a multiplexer switch118, which merely switches traffic without awareness or knowledge of the traffic's destination. Details of a subscriber-aware switch are described further in Applicants' pending U.S. patent application Ser. No. 12/900,354 filed concurrently Oct. 7, 2010, entitled “Method and Apparatus for Switching Communications Traffic in a Communications Network” by Santosh Chandrachood and Pawan Uberoy, which claims priority to Applicants' 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.

In the example network100, the gateway120bcontains at least one functional element, such as a line card160a, which supports traffic packets, or other traffic signals, at traffic rates; multiple line cards in a chassis160b-fcan also be present.

The functional element160a(described in more detail below in reference toFIG. 2) receives the traffic102, from the downstream base station140f, and may perform network resource functions prior to transmitting the traffic102to the home agent125or final destination. The functional element160acan be an anchor line card, such that the anchor line card160aincludes information about a subscriber in the network. For example, a subscriber150fmay have a profile at the line card160a, which is thereby designated as the anchor line card from among other line cards160b-fbecause the subscriber's150fprofile is located at that line card160a. However, any of the line cards160a-fat gateway120bcan be designated as the anchor line card based on information such as the subscriber device or a subscriber identifier.

Example embodiments of the present invention provide for a network processing unit (NPU)163to request information regarding a subscriber in the network100from a network service processor (NSP)162. The NSP162, located in a data plane of the anchor line card160a, provides a “fast path” (i.e., data plane, as opposed to a “slow path.” i.e., control plane) look-up of subscriber information in the NSP162subscriber database (not shown). The NSP162may also provide the NPU163with the subscriber information in a resource map (not shown) via a traffic rate bus. The traffic rate bus from the NSP162to the NPU163allows for high traffic rates without using a central processing unit (CPU)164, which is located in a control plane of the anchor line card160aand is connected to the NPU163via a PCI bus. The PCI bus and the CPU164are slow mechanisms of transfer and cause allocation of resources to be slow, accordingly, as compared to rates of data bus.

FIG. 2is a system diagram200of a functional element260aillustrating aspects of an example embodiments of the invention. The functional element260acan be designated as an anchor functional element (as illustrated inFIG. 1, 160a); the anchor functional element260acan be, for example, a line card in a gateway (not shown). The functional element260acan include a network processing unit (NPU)263, which can be located on the data plane280of the functional element260a. The NPU263operating in the data plane280can include, for example, a table245, quality of service (QoS) table233, or NPU interface276. Details of QoS are described further in Applicants' pending U.S. patent application Ser. No. 12/900,324 filed concurrently Oct. 7, 2010, 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' 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. The functional element260acan include further a central processing unit (CPU)264, which can operate at the control plane298. The functional element260afurther can include a network service processor (NSP)262, which can operate in the data plane280. The NSP262can include, for example, an NSP subscriber database244, assignment unit243, or resource map unit242. The NSP262may be interconnected operably to a deep packet inspection (DPI) module269. Details of deep packet inspection are described further in Applicants' pending U.S. patent application Ser. No. 12/900,346 filed concurrently Oct. 7, 2010, entitled “Method and Apparatus to Support Deep Packet Inspection in a Mobile Network” by Santosh Chandrachood, Pawan Uberoy and Rehan Jalil, which claims priority to Applicants' U.S. Provisional Patent Application No. 61/278,518, filed Oct. 7, 2009, entitled “Method and Apparatus to Support Network-Initiated VoIP voice over IP telephony using deep packet inspection” by Chandrachood and Applicants' U.S. Provisional Patent Application No. 61/278,519, filed Oct. 7, 2009, entitled “Method and Apparatus to Support Transfer of Context Generated Using Deep Packet Inspection Across Mobile Elements” by Chandrachood et al., the entire teachings of both applications being incorporated herein by reference in their entirety.

To begin processing, a traffic packet202is sent by a base station240d-f, via a wireless interface299, and received by a traffic management entity219, via any of a multitude of ingress-interface ports271. The ingress-interface ports271being determined based on protocols in the traffic packet202or alternatively, determined by a network management entity. The traffic packet202enters the NPU263via an NPU interface276; after examining the traffic packet202, the NPU263may perform a look-up of provisioning information in a subscriber table244based on subscriber information available in the data plane280.

If NPU263cannot locate subscriber information, it can transmit the first traffic packet202to the NSP262, which can look-up the subscriber information in an NSP subscriber database244. Following locating the subscriber information, the NSP262can create or amend the resource map232, at a mapping unit242, including the located subscriber information in a resource map232and assign data plane resources in an assignment unit243. Data plane resources can include policers, forwarding entries, QoS parameters233, subscriber information or profiles, or other data plane resources. The NSP262returns the first packet202to the NPU263with the resource map232in a fast-packet processing path272, such as a traffic rate bus or control channel; the fast-packet processing path272can operate at traffic rates or multiples thereof. Following receipt of the first packet202and resource map232at the NPU263, the NPU263can store the resource map in a memory235, which can be a ternary content addressable memory (TCAM), or other finite memory. The NPU263can dynamically create a hash table entry203, such as a 5-tuple entry or the dynamically generated table can include a subscriber Internet protocol (IP) address or other table entries, in the memory235, which points to the resources allocated by the NSP262to be used by the NPU263. The 5-tuple entry can include information, regarding the traffic packet202that was returned from the NSP262with the resource map232, such as a source, destination, first port, second port, and protocol to be used.

The NPU may not contain any subscriber information until it receives a return packet from the NSP.

The NPU263can process any subsequent packets, belonging to the first packet flow, based on the resource map232. In an embodiment where subsequent packets, belonging to the first packet flow of packet202, continue to arrive, the hash table entry203does not age out of the memory235; the hash table entry203can auto refresh. Further, the NPU263may determine hardware resources based on packets received from the NSP262in real time, as well as, scaling network resources using multicast messaging and using the hash table entry203.

During periods of idle activity at the NPU263, such as no packets entering the functional element260a, the NPU263can notify the NSP262with subscriber information and the resource map232, so that the NSP262may age out flow information from a cache (not shown), allowing the resource map232to be marked as free and open for another request. Following process completion of packets mapped to the same resources, the NPU263can forward the packets202to an additional functional element (not shown) using the fabric265or the NPU263can transmit the processed packets to an element external to the functional element260avia any output-egress port279. The output-egress port279can be determined based on the routing protocol of the traffic packet202, for example, the protocol stored in the 5-tuple entry.

In alternative example embodiments, the aging process can be explicitly provided for via signaling protocols or other control methods. For example, in the situation of session initiation protocol (SIP), the SIP will generate a “bye” message that will signal a module, such as the NSP, to tear down resources. Further examples can include the NPU having an awareness of the signaling that is being torn down and using such information to signal another module, such as the NSP, to tear down its resources. In alternative situations the NPU may not recognize the idle period and can continue to send the control channel information to the NSP, the NSP can realize the session is completed and tear down resources.

In alternative example embodiments, additional methods of table learning can be used, such as, tree, array, radix tree, hash table, 5-tuple, or other table entries commonly employed or hereafter developed.

Alternative embodiments of the present invention may include a module or set of modules in the NSP262that collect subscriber information that can include subscriber identifiers, subscriber QoS parameters, deep packet inspection (DPI) parameters, or additional subscriber information, any of which may be passed between or among the NPU263and NSP262as a specialized packet (not shown). In further alternative embodiments, it is possible to collect information and assign resources because the NPU263and NSP262are operably interconnected. The NPU263does not have to pre-program contexts (e.g., policers, forwarding entries, QoS parameters, classifiers, etc.) such that the hardware resources are statically reserved. Such embodiments enable dynamic resource allocation without involvement of a central processing unit (CPU)264.

In some example embodiments, QoS can allow for resource reservation and control or can provide different priorities to different elements of the network. QoS may include, for example, providing different services based on applications, subscribers, performance level, data flows, or other commonly known or here-after developed elements requiring QoS specifications. QoS parameters can include, for example, delay, jitter, bit rate, guarantees, bandwidth, or other commonly employed or hereafter-developed parameters pertaining to QoS in a network.

In alternative example embodiments of the present invention, network resources or hardware resources can include, for example, NPU, CPU, or other hardware resources such as search capabilities, TCAM, control functions, statistics, memory channels, fabric buffering memory, fabric backplane, or other commonly known or hereafter developed network resources. Details of network and hardware resources are described further in Applicants' pending U.S. patent application (Serial Number not yet assigned) being filed concurrently herewith, entitled “Method and Apparatus to Report Resource Values in a Mobile Network” by Santosh Chandrachood, which claims priority to Applicants' U.S. Provisional Patent Application No. 61/278,520, filed Oct. 7, 2009, entitled “A Method and Apparatus to Read Large Hardware Counters in a Scalable Way” by Chandrachood et al., the entire teachings of both applications being incorporated herein by reference in their entirety.

Further example embodiments of the present invention may include the traffic packet202sent from a second functional element (not shown) to the functional element260avia the fabric265or the traffic packet202may enter the NPU263directly without entering a traffic management entity219. Alternative embodiments of the present invention can connect hardware components, for example, the CPU264, memory235, NPU263, NSP262, or additional components used in a line card, via component subsystems, such as PCI bus273, or other known or future developed methods for operably interconnecting hardware. Alternatively, example embodiments of the present invention can include any of the NPU, CPU, or NSP operating in the control plane of the functional element.

FIG. 3is a flow chart300of an embodiment of the present invention illustrating assigning resources in a network node, such as the gateway120bofFIG. 1.

In the example flow chart300, a determination is made as to the provisioning information available or existing in a data plane based on subscriber information available in the data plane (380). Next, a look-up of data plane resources is performed to determine subscriber services based on the subscriber information available in the data plane (381). Finally, the data plane resources are assigned to the subscriber services in the network node (382).

FIG. 4is a flow diagram400illustrating an embodiment of the present invention in which an assignment of data plane resources in a network node, such as the gateway120bofFIG. 1, is performed using a resource assignment procedure. The example embodiment is performed in reference to a network node having a configuration consistent with the example embodiment ofFIG. 2. Other node configurations can result in a resource assignment procedure different from the example described in reference to the example ofFIG. 4.

After beginning, the assignment procedure ofFIG. 4determines provisioning information in the data plane (480), where the data plane includes a network processing unit (NPU). The NPU receives a first packet (483) and performs a look-up of subscriber information at the NPU (484). A determination is made as to whether the subscriber information exists at the NPU (485); if subscriber information exists at the NPU, data resources for that subscriber are collected and the procedure ends. Alternatively, if no subscriber information exists at the NPU, the packet is transmitted to a network service processor (NSP) (487), where the NSP is also in the data plane or can be logically or physically configured to operate with the data plane.

Once the packet is transmitted to the NSP, the NSP performs a look-up of the subscriber information associated with or corresponding to the received traffic packet in an NSP database (488). The NSP provides the subscriber information and assigns associated data plane resources, optimally in a form of a resource map, in a fast-packet-processing path (i.e., in the data plane), to the NPU (489). The NSP and transmits the traffic packet and associated resource map, including at least the data plane resources, to the NPU (490). Once the traffic packet and resource map are received by the NPU, and upon receiving corresponding subsequent packets at the NPU (491), the NPU can process the subsequent packets by employing the resource map (492).

Following completion of processing the traffic flow or during intervals as may be determined by a network management entity, the NPU can determine if traffic activity is idle (493). If traffic is not idle, the NPU can continue to receive corresponding subsequent packets (491). However, if it is determined that traffic is idle, the NPU can notify the NSP of the idle status and include the currently known subscriber information and corresponding resource maps (495). Alternatively, the NPU can notify the NSP of idle status without additional information. The NSP ages-out flow information from a cache (496) and marks resources, such as the resource map, free for a next request for a look-up from the NPU (497). A determination is made as to whether a packet not affiliated with subscriber information currently known by the NPU is received (498); if such packet is identified, the procedure of the flow diagram400begins again (480).

FIG. 5is a block diagram500of a network node576illustrating aspects of an example embodiment of the present invention. The block diagram500can be a physical or logical representation and may exist, for example, in a line card at a gateway node in a network, such as the network100ofFIG. 1, or distributed among multiple different physical or logical network elements. The example embodiment of the block diagram500can include a determination module577, performance module578, and assignment module579according to an example embodiment of the present invention. According to the example embodiment, the determination module577determines provisioning information551based on subscriber information552available in a data plane and can pass that information to the performance module578. The performance module578uses the subscriber information551to perform a look-up of data plane resources553, which can be passed as information to the assignment module579. The assignment module579assigns the data plane resources553to subscriber services.

Further example embodiments of the present invention may include a non-transitory computer readable medium containing instructions that may be executed by a processor, and, when executed by the processor, cause the processor to monitor the information, such as 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 manifestation available 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 the 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.