The invention relates to the field of communications. More specifically, the invention relates to enabling dynamic modification of a subscriber connection.
In the field of communications, the need for high-speed transmission of data including video and audio has continued to increase. Moreover, there has been an increase in the selection of services by which users can connect to a network, such as the Internet. Specifically, Internet Service Providers (ISPs) may allow for connectivity to the Internet through lower-speed connections at different rates, such as 56 kilobits/second, by employing a Plain Old Telephone Service (POTS) line. Other choices for connection, which are at higher speeds, into a network can include Integrated Services Digital Network (ISDN), Digital Subscriber Line (DSL) service (both using a POTS line), and cable modem service over a Radio Frequency (RF) cable line.
Additionally, there is an increasing demand by the ISPs to allow for modifications in the connection rates for a given type of service. In particular, the market to provide certain services, including DSL, is very competitive. Accordingly, the low-speed connections are deeply discounted. Additionally, there are less users of the higher-speed connections due to the costs. Therefore, ISPs need an approach to offering variable services, wherein a subscriber can typically pay for low-speed connection service, while occasionally upgrading their connection when a higher bandwidth may be needed and/or advantageous.
Accordingly, this enables the ISPs as well as the users of the ISPs flexibility with regard to bandwidth usage and costs associated therewith. To help illustrate, a given user may want to connect to the Internet at a slower connection speed when the user is only traversing pages of different web sites, in comparison to when the user may be involved in a video conference and/or downloading a large amount of data wherein a higher connection speed is needed and/or more advantageous.
Disadvantageously, current approaches to allow for modifications to a subscriber connection (such as modifications to the connection rate or policing values for the connection) to a network require that the subscriber connection be broken, wherein a new connection is re-established that applies these modifications. Accordingly, subscribers experience service interruptions when a modification is made to the current connection. Moreover, administrators working for the ISPs can be required to manage the updates to these subscriber accounts and/or connections.
A method and apparatus for enabling dynamic modification of a subscriber connection are described. In one embodiment, a method comprises receiving a request to modify a subscriber connection to a network element. The method also includes modifying attributes of the subscriber connection, within a memory of the network element, without disconnecting the subscriber connection from the network element.
In an embodiment, an apparatus comprises a memory to store an attribute of a subscriber connection between a computing device and a network. The apparatus also comprises a forwarding engine coupled to the memory. The forwarding engine is to modify the attribute of the subscriber connection, while the subscriber connection is active, without disconnecting the subscriber connection.
In one embodiment, a network element comprises a traffic card coupled to connect a computing device and a network through a subscriber connection. The network element also comprises a forwarding card coupled to the traffic card. The forwarding card is to store a number of attributes for the subscriber connection. The forwarding card is to include a forwarding engine. The forwarding engine is to modify one of the number of attributes for the subscriber connection, while the subscriber connection is active, without disconnecting the subscriber connection between the computing device and the network.
Embodiments of the invention may be best understood by referring to the following description and accompanying drawings which illustrate such embodiments. The numbering scheme for the Figures included herein are such that the leading number for a given element in a Figure is associated with the number of the Figure. For example, system 100 can be located in
A method and apparatus for enabling dynamic modification of a subscriber connection are described. In the following description, numerous specific details such as logic implementations, opcodes, means to specify operands, resource partitioning/sharing/duplication implementations, types and interrelationships of system components, and logic partitioning/integration choices are set forth in order to provide a more thorough understanding of the present invention. It will be appreciated, however, by one skilled in the art that the invention may be practiced without such specific details. In other instances, control structures, gate level circuits and full software instruction sequences have not been shown in detail in order not to obscure the invention. Those of ordinary skill in the art, with the included descriptions, will be able to implement appropriate functionality without undue experimentation.
References in the specification to “one embodiment”, “an embodiment”, “an example embodiment”, etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
In the following description and claims, the terms “coupled” and “connected,” along with their derivatives, may be used. It should be understood that these terms are not intended as synonyms for each other. Rather, in particular embodiments, “connected” may be used to indicate that two or more elements are in direct physical or electrical contact with each other. “Coupled” may mean that two or more elements are in direct physical or electrical contact. However, “coupled” may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other.
With regard to
In one embodiment, the network 110 is a local area network (LAN). In an embodiment, the network 110 is a wide area network (WAN). Further, the network 110 may be a combination of different networks that couple the network element 104 to other computing devices and network elements coupled thereto.
In one embodiment, the database server 108 stores data for a number of subscribers and their associated subscriber connections. In an embodiment, the database server 108 stores data related to authentication, authorization and accounting for subscribers coupled to different network elements within a network. In one embodiment, the database server 108 is a RADIUS server for storing this data regarding subscribers and the associated subscriber connections. In one embodiment, the network element 104 enables dynamic modification of a subscriber connection, as will be described in more detail below.
In an embodiment, the HFC network 120 is a cable infrastructure that combines the radio frequency (RF) data communications of a number of computing devices 102 that are forwarded to the CMTS 122. In an embodiment, the CMTS converts the RF data communications into data packets, such as Internet Protocol (IP) packets, to be routed by the network element 104.
As shown, the computing device 102 is coupled to the network 104 (via the subscriber connection 112) through the DSLAM 124 and the ATM network 126. The computing device 132 is coupled to the network element 104 through an Ethernet communications 134.
As is known in the art, the DSLAM 124 is a device within a network that combines a number of DSL communications into a single ATM transmission. The ATM network 126 comprises a number of communication links for routing data based on the ATM protocol. Accordingly, in an embodiment, the communications from the computing device 102 is received into the network element 104 as data based on the ATM protocol. Additionally, as shown, the computing device 132 and the network element 104 communicate based on the Ethernet protocol through Ethernet communications link 134. The operations of the systems illustrated in
In an embodiment, each of the traffic cards 202-208 and the control card 210 can include a processor and memory. The traffic cards 202-208, the control card 210 and the forwarding card 212 are coupled to system buses. In an embodiment, the control card 210 performs control, system configuration and management tasks for the network element 104. For example, if the forwarding card 212 needs to be updated with a new Internet Protocol (IP) address table, such data is received by the control card 210 and transmitted to the forwarding card 212, wherein such data is updated therein. Additionally, as will be described in more detail below, the forwarding card 212 includes memory that stores subscriber connections for the network element 104. For example, returning to
Moreover, the forwarding card 212 provides for buffering, packet processing and forwarding of data packets being received by the traffic cards 202-208. In particular, the traffic cards 202-208 can be coupled to a number of data transmission lines, which are coupled to other network elements and/or computing devices, as shown in
The embodiment of the network element 104 is by way of example and not by way of limitation, as network elements having other architectural configurations can incorporate embodiments of the present invention. Examples of other network elements that include incorporate embodiments of the present invention could have multiple forwarding cards or have a single line card incorporating the functionality of both the forwarding and the controlling. Moreover, a network element having the forwarding functionality distributed across the traffic cards could incorporate embodiments of the present invention.
The processor 310 is coupled to the forwarding engine 302, the AAA logic 304 and the memory 320. The forwarding engine 302 is coupled to the AAA logic 304 and the memory 320. The AAA logic 304 is coupled to the memory 320.
The processor 310 may comprise any suitable processor architecture. The forwarding card 212 for other embodiments may comprise more processors any of which may execute a set of instructions that are in accordance with embodiments of the present invention. The memory 320 stores a number of subscriber connection records 306A-I. These subscriber connection records 306 include a number of attributes associated with the subscriber connection, including the source address (e.g., the source Internet Protocol (IP) address), the rate limit value, the policing value, the access control list, etc. The memory 320 may store also store other data and/or instructions, for example, for the forwarding card 212 and may comprise any suitable memory, such as a dynamic random access memory (DRAM) for example.
In an embodiment, the forwarding engine 302 and the AAA logic 304 are processes or tasks that can reside within the memory 320 and/or the processor 310 and can be executed within the processor 310. However, embodiments of the present invention are not so limited, as the forwarding engine 302 and the AAA logic 304 can be different types of hardware (such as digital logic) executing the processing described therein (which is described in more detail below).
Accordingly, the forwarding card 212 may include a machine-readable medium on which is stored a set of instructions (i.e., software) embodying any one, or all, of the methodologies described herein. For example, software can reside, completely or at least partially, within the memory 320 and/or within the processor 310.
The operations of dynamically modifying a subscriber connection will now be described. In particular,
In block 402, a request to update a subscriber connection is received. With reference to the exemplary embodiment of
To help illustrate, a subscriber, such as a user of the computing device 102, could be connected to the network element 104 through the subscriber connection 112. Such a subscriber may want to modify the attributes, such as the current data rate, of the subscriber connection. Accordingly, the subscriber could transmit this request to update the current subscriber connection to the application server 106. For example, in one embodiment, the subscriber could communicate this request using a web page of a web site that is within the application server 106. Such a web page may enable modifications to the current subscriber connection.
In one embodiment, the subscriber could manually generate this request. In other embodiments, this request could be dictated by the user of the computing device 102. For example, a first user could be an adult wherein the attributes, such as the access control list, is different when compared to a second user, who is a child. Accordingly, when the first user logs off and the second user logs on, such that the subscriber connection remains active, a script could be generate this request to modify the attributes for this subscriber connection.
However, embodiments of the invention are not limited to the use of a web interface and/or the application server 106 for the communication of this request. For example, in another embodiment, the subscriber could communicate this request directly to the network element 104 without the use of the application server 106. Moreover, requests for updates to the subscriber connection are not limited to those request generated by a subscriber. For example, in other embodiments, a current ISP allowing for the subscriber connection may make periodic adjustments to different subscriber connections. In another embodiment, the control card 210 within the network element 104 may generate such a request to allow, for example, for bandwidth balancing across of a number of subscribers, etc.
In block 404, a determination is made on whether the subscriber connection is still active. With reference to the exemplary embodiment of
In an embodiment, if the associated subscriber connection record 306 is located within the memory 320, the subscriber connection is considered active. In another embodiment, the subscriber connection record 306 includes a field that indicates whether the associated subscriber connection is active. Accordingly, subscriber connection records 306 may reside in the memory 320 even when the subscriber connection is longer active.
Upon determining that the subscriber connection is not active, the operations of the flow diagram 400 are complete. As described above, in an embodiment, the attributes for the subscriber connection that were requested to be updated were updated within the database server 108. Therefore, when the subscriber establishes a new subscriber connection these attributes will be incorporated into this new subscriber connection.
In block 406, upon determining that the subscriber connection is active, the subscriber is re-authenticated. With reference to the exemplary embodiment illustrated in
In one embodiment, the AAA logic 304 generates a re-authenticate request for this subscriber that is forwarded to the database server 108.
In block 408, a determination is made on whether the re-authentication is successful. With reference to the exemplary embodiment illustrated in
In block 410, upon determining that the re-authentication is successful, the current subscriber connection is updated. With reference to the exemplary embodiment illustrated in
In an embodiment, such an update message is stored into a task queue of the forwarding engine 302. In one embodiment, the forwarding engine 302 is a single threaded process. Accordingly, the forwarding engine 302 processes the different tasks stored in the task queue in an order that such tasks are stored therein.
As described above, in an embodiment, the forwarding engine 302 processes the packets received into the network element 104. In one such embodiment, the forwarding engine 302 determines whether to drop data packets for a given subscriber (whether being received from or transmitted to) based on the data rates for this subscriber connection stored in the associated subscriber connection record 306. For example, if a packet is received from a given subscriber connection and the data rate for this subscriber connection is beyond the limits provided in the associated subscriber connection record 306, the forwarding engine 302 drops the packet. Conversely, if a packet is received from a given subscriber connection and the data rate for this subscriber connection is within the limits provided in the associated subscriber connection record 306, the forwarding engine 302 forwards the packet based on the destination address stored in the packet.
As described, in an embodiment, the forwarding engine 302 is reading from and writing to the different subscriber connection records 306. Because in an embodiment, the forwarding engine 302 is a single-threaded process, there is no conflict between two different processes attempting to access a given subscriber connection record 306. Therefore, the subscriber connection can be dynamically updated within the memory 320 of the network element 104 without having to disconnect or tear down the subscriber connection to allow for the updates to the subscriber connection to take effect.
In an embodiment, because the forwarding engine 302 is both forwarding packets as well as updating the different subscriber connection records 306, the forwarding engine 302 can employ a same task queue for processing both types of tasks, such that the forwarding engine 302 processes the different types of task as based on the order in which such tasks are stored into task queue. However, embodiments of the invention are not so limited. For example, in another embodiment, one task queue can be associated with the forwarding of packets, while a separate task queue can be associated with the updates to the different subscriber connection records 306. Accordingly, the forwarding engine 302 can employ a number of different types of arbitration when processing the tasks from the different task queues. For example, in an embodiment, the forwarding engine 302 would only process a task from the task queue for updating the different subscriber connection records 306 when the other task queue is empty. In another embodiment, the forwarding engine 302 would process the tasks from the different tasks queues in a N-to-M ratio. For example, in an embodiment, the forwarding engine 302 would process two tasks from the task queue for forwarding packets for every one task processed from the task queue for updating the different subscriber connection records 306.
However, embodiments of the invention are not limited such that the forwarding engine 302 is a single-threaded process. In another embodiment, the forwarding engine 302 can be comprises of a number of different threads. In one such embodiment, in order to preclude access conflicts to the subscriber connection records 306, the threads of the forwarding engine 302 lock the subscriber connection records 306 when accessing such records. For example, an update thread within the forwarding engine 302 may process the update messages received for the different subscriber connection records 306, while a packet forwarding thread may process the data packets received fro the different subscriber connections. As described, the two different threads can attempt to access a same subscriber connection record 306. For example, the update thread may attempt to update a given subscriber connection record 306 to modify the policing value attribute. At a same time, the packet forwarding thread may attempt to read the given subscriber connection record 306 to determine whether to forward or drop the current data packet for this subscriber connection.
Therefore, in an embodiment, the different threads can lock the different subscriber connection records 306 such that a second thread may have to wait for the completion of an access of a given subscriber connection record 306 by a first thread. In other embodiments, multiple copies of the subscriber connection records 306 can be maintained such that different threads access different copies of the subscriber connection records 306 in order to preclude access conflicts. Accordingly, a separate thread can keep the different copies of the subscriber connection records 306 up to date.
In block 412, the account for the subscriber connection is updated. With reference to the exemplary embodiment illustrated in
The servers as well as the traffic cards, forwarding cards and control cards included in the different network elements include memories, processors and/or Application Specific Integrated Circuits (ASICs). Such memory includes a machine-readable medium on which is stored a set of instructions (i.e., software) embodying any one, or all, of the methodologies described herein. Software can reside, completely or at least partially, within this memory and/or within the processor and/or ASICs. For the purposes of this specification, the term “machine-readable medium” shall be taken to include any mechanism that provides (i.e., stores and/or transmits) information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes machine storage media (read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices) and machine transmission media (electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.)); etc.
Thus, a method and apparatus for enabling dynamic modification of a subscriber connection have been described. Although the present invention has been described with reference to specific exemplary embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. For example, while embodiments of the invention are described such that a separate database server is coupled to store data related to subscriber connections. In other embodiments, such data can be stored within the network element 104. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.
This application is a continuation of application Ser. No. 11/980,831, filed Oct. 30, 2007, which is a continuation of application Ser. No. 10/176,222, filed Jun. 20, 2002, issued as U.S. Pat. No. 7,290,054, which claims the benefit of U.S. provisional patent application No. 60/375,684 entitled “Dynamic Modification of a Subscriber Connection,” filed Apr. 26, 2002, which are each incorporated by reference.
Number | Date | Country | |
---|---|---|---|
60375684 | Apr 2002 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11980831 | Oct 2007 | US |
Child | 13162554 | US | |
Parent | 10176222 | Jun 2002 | US |
Child | 11980831 | US |