Quality of service provisioning for wireless networks

Information

  • Patent Grant
  • 8340110
  • Patent Number
    8,340,110
  • Date Filed
    Friday, August 24, 2007
    17 years ago
  • Date Issued
    Tuesday, December 25, 2012
    12 years ago
Abstract
A technique for improving quality of service involves dynamically provisioning quality of service parameters. An example according to this technique is a system including a server and an access point. The server provisions quality of service parameters restricting the station's transmission of data through the access point to one or more access classes of varying priority.
Description
BACKGROUND

Wireless networks are frequently governed by 802.11 standards. While not all networks need to use all of the standards associated with 802.11, a discussion of the standards by name, such as 802.11e provides, at least partly because the standards are well-known and documented, a useful context in which to describe issues as they relate to wireless systems.


There is only one 802.11 standard, however under the revisions introduced by 802.11e current implementations of QoS specifications typically perform one or more of the following. Mapping to a Wi-Fi Multimedia (WMM) access class by mapping an entire service set identifier (SSID), writing a cumbersome access control list (ACL), or automatically mapping DiffServ Code Point bits. Nothing within 802.11e or WMM addresses dynamic assignment of QoS to frames. Thus, QoS parameters are provisioned in a static manner.


The foregoing examples of the related art and limitations related therewith are intended to be illustrative and not exclusive. For Example, wireless clients may use different protocols other than 802.11e, potentially including protocols that have not yet been developed. However, problems associated with QoS may persist. Other limitations of the relevant art will become apparent to those of skill in the art upon a reading of the specification and a study of the drawings.


SUMMARY

The following embodiments and aspects thereof are described and illustrated in conjunction with systems, tools, and methods that are meant to be exemplary and illustrative, not limiting in scope. In various embodiments, one or more of the above-described problems have been reduced or eliminated, while other embodiments are directed to other improvements.


A technique for QoS provisioning includes provisioning QoS parameters dynamically. The dynamic provisioning may be part of authentication of a system to a wireless network. The technique may or may not be compatible with 802.11e and WMM concepts, and provide ways to dynamically configure QoS features on a per-client basis.


In a non-limiting example, consider a phone, and a laptop. Each may request use of a wireless network that operates in accordance with QoS. The phone may operate a soft phone application and transmit voice data over a network, whereas, for this example only, that the laptop does not. The phone and the laptop may each request a high priority access class in order to transmit data. Each of the phone and the laptop may or may not be validated as a part of authentication. In validating, the soft phone may or may not be identified as an application that requires a high priority access class. In contrast, the laptop, which may have requested a high priority access class even though it may not be running a high priority application, may be denied the use of the high priority access class. QoS parameters may be dynamically created and provisioned. The dynamic assignment of the high priority access class may allow the phone to transmit data at high priority whereas the laptop may not.


These and other advantages will become apparent to those skilled in the relevant art upon a reading of the following descriptions and a study of the several examples of the drawings.





BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention are illustrated in the figures. However, the embodiments and figures are illustrative rather than limiting; they provide examples of the inventions.



FIG. 1 depicts a diagram 100 of an example of a system including a wireless access domain.



FIGS. 2A and 2B depict diagrams of examples of a system 200 including a verification engine.



FIG. 3 depicts a flowchart 300 of an example of a method for dynamically provisioning QoS parameters.



FIG. 4 depicts a flowchart 400 of an example of a method for dynamically provisioning QoS parameters including verifying that an application that requires priority is executing on a station.



FIG. 5 depicts a flowchart 500 of an example of a method for dynamically provisioning QoS parameters.



FIG. 6 depicts a flowchart 600 of an example of a method for dynamically provisioning QoS parameters including checking a database, setting a utilization rate, and/or setting a RADIUS attribute.



FIG. 7 depicts a diagram 700 of a computer system for use in the system of FIG. 1.



FIG. 8 depicts an example of a system 800 for dynamically provisioning QoS parameters to stations.





DETAILED DESCRIPTION

In the following description, several specific details are presented to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art will recognize, however, that the invention can be practiced without one or more of the specific details, or in combination with other components, etc. In other instances, well-known implementations or operations are not shown or described in detail to avoid obscuring aspects of various embodiments.



FIG. 1 depicts a system 100 including a wireless access domain. The system 100 includes a server 102, a network 104, and a wireless access domain 106. The system 100 may or may not include multiple wireless access domains. The server 102 may be practically any type of device that is capable of communicating with a communications network, such as, by way of example but not limitation, a mainframe or a workstation. The network 104 may be practically any type of communications network, such as, by way of example but not limitation, the Internet or an infrastructure network. The term “Internet” as used herein refers to a network of networks which uses certain protocols, such as the TCP/IP protocol, and possibly other protocols such as the hypertext transfer protocol (HTTP) for hypertext markup language (HTML) documents that make up the World Wide Web (the web). The physical connections of the Internet and the protocols and communication procedures of the Internet are well known to those of skill in the art.


In a non-limiting embodiment, the server 102 may be running a program such as, by way of example but not limitation, ethereal, to decode, by way of example but not limitation, IEEE 802.11 standard packets encapsulated in TaZman Sniffer Protocol (TZSP) that are received from the wireless access domain 106. In a non-limiting embodiment, the server 102 is connected to a wireless backbone network (not shown), either directly or indirectly through a wireless network. The server 102 may include, by way of example but not limitation, a Remote Authentication Dial In User Services (RADIUS) server, an Lightweight Directory Access Protocol (LDAP) server, a policy server, a combination of these servers, or some other server.


In non-limiting embodiments, the wireless access domain 106 may be referred to as, by way of example but not limitation, a Local Area Network (LAN), virtual LAN (VLAN), and/or wireless LAN (WLAN). In an embodiment, the wireless access domain 106 may include one or more radios.


In the example of FIG. 1, the wireless access domain 106 includes access areas 108-1 to 108-N (hereinafter collectively referred to as access areas 108). The access areas 108 have characteristics that depend upon, among other things, a radio profile. A radio profile is a group of parameters such as, by way of example but not limitation, beacon interval, fragmentation threshold, and security policies. In an embodiment, the parameters may be configurable in common across a set of radios in one or more access areas 108. In another embodiment, a few parameters, such as the radio name and channel number, must be set separately for each radio. An example of the implementation of a wireless access domain, provided by way of example but not limitation, includes a Trapeze Networks “identity-aware” Mobility Domain™.


In the example of FIG. 1, the following elements are associated with each of the access areas 108: Wireless exchange switches 110-1 to 110-N (hereinafter collectively referred to as wireless exchange switches 110), networks 112-1 to 112-N (hereinafter collectively referred to as networks 112), and access points 114-1 to 114-N (hereinafter collectively referred to as access points 114).


In an embodiment, the wireless exchange switches 110 swap topology data and client information that details each user's identity, location, authentication state, VLAN membership, permissions, roaming history, bandwidth consumption, and/or other attributes assigned by, by way of example but not limitation, an Authentication, Authorization, and Accounting (AAA) backend (not shown). In an embodiment, the wireless exchange switches 110 provide forwarding, queuing, tunneling, and/or some security services for the information the wireless exchange switches 110 receive from their associated access points 114. In another embodiment, the wireless exchange switches 110 coordinate, provide power to, and/or manage the configuration of the associated access points 114. An implementation of a wireless exchange switch, provided by way of example but not limitation, includes a Trapeze Networks Mobility Exchange® switch. The Trapeze Networks Mobility Exchange® switches may, in another implementation, be coordinated by means of the Trapeze Access Point Access (TAPA) protocol.


In an embodiment, the networks 112 are simply wired connections from the wireless exchange switches 110 to the access points 114. The networks 112 may or may not be part of a larger network. In a non-limiting embodiment, the networks 112 provide a Layer 2 path for Layer 3 traffic, preserving IP addresses, sessions, and other wired Layer 3 attributes as users roam throughout the wireless access domain 106. By tunneling Layer 3 traffic at Layer 2, users stay connected with the same IP address and keep the same security and Quality of Service (QoS) policies from the wired network while they roam the wireless side.


In a non-limiting embodiment, the access points 114 are hardware units that act as a communication hub by linking wireless mobile stations such as PCs to a wired backbone network. In an embodiment, the access points 114 connect users to other users within the network and, in another embodiment, can serve as the point of interconnection between a WLAN and a fixed wire network. The number of users and size of a network help to determine how many access points are desirable for a given implementation. An implementation of an access point, provided by way of example but not limitation, includes a Trapeze Networks Mobility System® Mobility Point® (MP®) access point.


The access points 114 are stations that transmit and receive data (and may therefore be referred to as transceivers) using one or more radio transmitters. For example, an access point may have two associated radios, one which is configured for IEEE 802.11a standard transmissions, and the other which is configured for IEEE 802.11b standard transmissions. In a non-limiting embodiment, an access point transmits and receives information as radio frequency (RF) signals to and from a wireless client over a 10/100BASE-T Ethernet connection. The access points 114 transmit and receive information to and from their associated wireless exchange switches 110. Connection to a second wireless exchange switch provides redundancy.


A station, as used herein, may be referred to as a device with a media access control (MAC) address and a physical layer (PHY) interface to the wireless medium that comply with the IEEE 802.11 standard. As such, in a non-limiting embodiment, the access points 114 are stations. Similarly, a wireless client, such as the mobile device 116 of FIG. 1, may be implemented as a station. In alternative embodiments, a station may comply with a different standard than IEEE 802.11, and may have different interfaces to a wireless or other medium.


In the example of FIG. 1, the server 102 includes memory 120 and a processor 122. In the example of FIG. 1, the memory 120 includes an operating system, a QoS parameters database, and a QoS setup module. In operation, a policy configuration for the mobile device 116 includes setting or accepting QoS parameters for the mobile device 116 (or a user of the mobile device 116). The QoS setup module may provide the mobile device 116 with the policy configuration during association. In the example of FIG. 1, this QoS provisioning is illustrated by the arrow 130 from the QoS setup module to the mobile device 116.


In the example of FIG. 1, queues 118 are depicted for illustrative purposes (depending upon the implementation, the queues 118 may be considered a part of the access point 114-1). As is shown in the example of FIG. 1, the QoS provisioning 130 provides the mobile device 116 with access to background, best effort, and video queues, but no access to the high-priority voice queue. It should be noted that the policy could be configured to grant access to the high-priority voice queue if the mobile device 116 were running a VoIP application. However, for illustrative purposes, it is assumed that when the mobile device 116 was not running a VoIP application when it associated. Therefore, in the example of FIG. 1, access to the voice queue on the access point 114-1 is blocked.


If the user were allowed access to the voice queue (not shown) there could be an associated limit to voice traffic as well. For instance, a limit of 100 kbps on voice traffic could be employed to limit users to one active telephone call.



FIG. 2A and FIG. 2B depict diagrams of examples of a system including a verification engine. In the example of FIG. 2A, the system 200A includes sever 202 and station 216. The station 216 includes the application 226. The server 202 includes memory 220 and processor 222. The memory includes verification engine 224A, application 226. In the example of FIG. 2B, the system 200B includes server 202, station 216, and verification engine 224B. Notably, in this example, the verification engine 224B is not stored in the memory 220 of the server. Unless a distinction is needed, the verification engine 224A and 224B are referred to as verification engine 224.


In some embodiments, verification engine 224 determines whether or not a specific software application is executing on the station and instructs server 202 to deny the station use of a high priority data transmission queue if the software application is not executing on the station. Users naturally want the best service possible and will be tempted to try and move their best effort traffic into the voice and video queues. Using specifications like the Trusted Computing Group's Trusted Network Connect (TNC), a system can be “validated” before it is allowed to use the network. That validation may include verifying that a program requiring high priority access is running before allowing access to high-priority queues.


In a non-limiting example, a verification engine may allow access to the voice queue only if a softphone is running on the client computer. It is not necessary that the application be a phone. However, a softphone is an example of an application that requires high priority access to the network for transmission of data because a phone provides low quality service when it is unable to transmit data for even a short period of time. Contrarily, many applications may provide high quality service while only utilizing the best efforts access class. By dynamically provisioning QoS parameters, a station may be authenticated and provided high priority access. The station can then provide high quality service at the expense of a second station that is dynamically provision with only a lower priority access class, wherein the second station needs only the lower priority access class to provide high quality service. The station may then transmit data while the second station is required to wait.


In continuing the non-limiting example, a phone is an example of a station requiring high priority access and a laptop is an example of a station that may require only low priority access. Each may each request a high priority access class in order to transmit data, however, the laptop should be denied the high priority access because it cannot prove it needs a high priority access class. Each of the phone and the laptop may or may not be validated as a part of authentication. In validating, the soft phone may be identified as an application that requires a high priority access class because it runs an application that depends on high priority transmission of data, e.g. a soft phone. In contrast, the laptop, which may have requested a high priority access class even though it may not be running a high priority application, may be denied the use of the high priority access class. QoS parameters may be dynamically created and provisioned. The dynamic assignment of the high priority access class may allow the phone to transmit data at high priority whereas the laptop may not.


In some embodiments verification engine 224 may be a component of server 202 (FIG. 2A), or in some embodiments verification engine 224 may be a separate component coupled to server 202. It is not necessary that verification engine 224 be operating on the same hardware software, physical or logical unit as server. Those skilled in the art know that the components portrayed in this figure can be arbitrarily combined or divided into separate software, firmware and/or hardware components. Furthermore, such components, regardless of how they are combined or divided, can execute on the same computing device or multiple computing devices, and wherein the multiple computing devices can be connected by one or more networks.



FIG. 3 depicts a flowchart 300 of an example of a method for dynamically provisioning QoS parameters. The method is organized as a sequence of modules in the flowchart 300. However, it should be understood that these and other modules associated with other methods described herein may be reordered for parallel execution or into different sequences of modules.


In the example of FIG. 3 flowchart 300 starts at module 302 with receiving at an access point (AP) a request for authentication. The request may come from a station desiring to transmit data through the access point in accordance with an access class.


In some embodiments a capacity management and prioritization system may include a network system that takes into account the capacity of a particular access device as part of authentication. For example, a station that has requested QoS resources to which it is administratively allowed but are not available at the target access point might be redirected to a device at which those resources are available. Stations that are allowed on the network for best-effort service may initially be allowed on the network, but moved to a different access point when additional QoS is requested by, for example, a softphone.


In the example of FIG. 3, the flowchart continues to module 304 with assigning, in response to the request, one or more access classes for transmission of data. The access classes may or may not be one or more of a number of access classes defined in accordance with the Institute of Electrical and Electronics Engineers (IEEE) standard 802.11. In a non-limiting example, the classes specify voice, video, best effort, and background in order from highest to lowest priority. Each class is associated with a priority queue. The highest priority is assigned to voice data as it suffers in quality when access to the queue is unavailable. The lowest priority is assigned to background level data which does not tend to suffer when encountering traffic and being required to wait. Additionally, a queue can be reserved for sending signals controlling the network, wherein data in the queue supersedes all other data in priority.


In the example of FIG. 3, the flowchart continues to module 306 with provisioning QoS parameters associated with the one or more access classes. As discussed in reference to FIG. 1, the server provisions these parameters. One way of provisioning parameters is through a station switching record. In this way, the QoS parameters, including any limits set by the dynamic configuration, can be passed around the network in the station switching record.


In some embodiments QoS parameters can be stored in a Lightweight Directory Access Protocol (LDAP) directory associated with the security credentials for a telephone. In such an implementation, the network could, for example, perform an LDAP query against the telephone's account and make that part of the session record.



FIG. 4 depicts a flowchart 400 of an example of a method for dynamically provisioning QoS parameters including verifying that a specific application is executing on a station. The method is organized as a sequence of modules in the flowchart 400. However, it should be understood that these and other modules associated with other methods described herein may be reordered for parallel execution or into different sequences of modules.


In the example of FIG. 4 flowchart 400 starts at module 402 with receiving a at an access point (AP) a request for authentication. The request may come from a station desiring to transmit data through the access point in accordance with an access class. It may be that the request asserts the right to use a particular access class to achieve high priority transmission of data. In a non-limiting example, a request may assert the right to use the voice queue because the station operates a softphone. However, users naturally want the best service possible and will be tempted to try and move their best effort traffic into the voice and video queues even when they are not transmitting voice and video. Using specifications like the Trusted Computing Group's Trusted Network Connect (TNC), a system can be “validated” before it is allowed to use the network. That validation may include verifying that an appropriate program is running before allowing access to high-priority queues. In a non-limiting example, a verification engine may allow access to the voice queue only if a softphone is running on the client computer.


In the example of FIG. 4, the flowchart 400 continues to decision module 403 with determining whether a specific application is (or specific applications are) executing. In some embodiments, a verification engine can determine whether or not a specific software application is executing on the station. In a non-limiting example, the verification engine determines whether a softphone is executing on the station and instructs a server to deny the station use of a high priority data transmission queue if the software application is not executing on the station.


In the example of FIG. 4, if the result of decision module 403 is yes, then the flowchart continues to module 406 with assigning an access class (or access classes) for transmission of data. A program running on a station may be associated with a particular level of priority. In this case, a program was presumably running on the station that is one a group of specific programs that enable access to high priority queues. Accordingly, the station is approved to use the high priority queue to transmit data.


In the example of FIG. 4, the flowchart 400 continues to module 408 with provisioning QoS parameters associated with the access class (or access classes) to the AP. In a non-limiting example, the QoS parameters are passed around the network in a station switching record. The QoS parameters having been provisioned, the flowchart 400 ends.


In the example of FIG. 4, from decision module 403, if the result of decision module 403 is no, then the flowchart continues to module 410 with assigning, in response to the request, an access class for transmission of data. In this case the station is found to be falsely asserting a request to use the high priority queue. An appropriate response is then denial of the request.


In the example of FIG. 4, the flowchart 400 continues to module 406 with assign access class for transmission of data. Although the request has been denied, it is not necessary to exclude the station from use of the network. The station could be assigned a lower priority class, in a non-limiting example the station is assigned to the best effort access class. This allows it to transmit data, but without the high priority it has requested. The flowchart 400 then continues to module 408, as described previously.



FIG. 5 depicts a flowchart 500 of an example of a method for dynamically provisioning QoS parameters. The method is organized as a sequence of modules in the flowchart 500. However, it should be understood that these and other modules associated with other methods described herein may be reordered for parallel execution or into different sequences of modules.


In the example of FIG. 5 flowchart 500 starts at module 502 with receiving a at an access point (AP) a request for authentication. The request may come from a station desiring to transmit data through the access point in accordance with an access class.


In the example of FIG. 5, the flowchart 500 continues to module 504 with assigning the station to one or more access classes for transmission of data. In the case that the station asserts the right to use a high priority class, it may be that the station is validated using a verification engine to make certain that a required program is executing on the station before allowing the station to use the high priority queue. In some embodiments, the access classes are defined by a network administrator and the one or more access classes are assigned in accordance therewith.


In the example of FIG. 5, the flowchart 500 continues to module 506 with setting QoS parameters in accordance with the one or more access classes. QoS parameters can be stored in a Lightweight Directory Access Protocol (LDAP) directory associated with the security credentials for a telephone. In such an implementation, the network could, for example, perform an LDAP query against the telephone's account and make that part of the session record.


In the example of FIG. 5, the flowchart 500 continues to module 508 with provisioning the QoS parameters to an access point. Provisioning could be accomplished by passing the parameters around the networking in a station switching record. Alternatively, they could be directly transmitted to the station by a server.


In the example of FIG. 5, the flowchart 500 continues to module 510 with controlling transmission of data in the one or more access classes in accordance with the QoS parameters. A capacity management and prioritization system may include a network system that takes into account the capacity of a particular access device as part of authentication. For example, a station that has requested QoS resources to which it is administratively allowed but are not available at the target access point might be redirected to a device at which those resources are available. Stations that are allowed on the network for best-effort service may initially be allowed on the network, but moved to a different access point when additional QoS is requested by, for example, a softphone.



FIG. 6 depicts a flowchart 600 of an example of a method for dynamically provisioning QoS parameters including checking a database, setting a utilization rate, and/or setting a RADIUS attribute. The method is organized as a sequence of modules in the flowchart 400. However, it should be understood that these and other modules associated with other methods described herein may be reordered for parallel execution or into different sequences of modules.


In the example of FIG. 6 flowchart 600 starts at module 602 with receiving a at an access point (AP) a request for authentication. The request may come from a station desiring to transmit data through the access point in accordance with an access class.


In the example of FIG. 6, the flowchart 600 continues to module 604 with assigning the station to an access class for transmission of data. The station may receive the class it requested, or it may be assigned to a lower class as needed.


In the example of FIG. 6, the flowchart 600 continues to module 606 with optionally check database for additional information about a user associated with the request for authentication. The QoS configuration stored in the database could restrict access to particular access classes. It might say that a particular device is only allowed to do voice (if it is a telephone), or that it is only allowed best effort data (for a general-purpose device such as a laptop).


In some embodiments, backend databases can be used to manage access to the high-priority queues. By way of example but not limitation, a backend database may include information about the relative importance of each user in access to a voice queue. By labeling priorities, the system may ensure that, for example, the CEO's telephone is always able to gain access to the voice queue at the expense of lower-ranking users.


In the example of FIG. 6, the flowchart 600 continues to module 608 with optionally set a utilization rate limiting the amount of station traffic through one or more priority queues. Each access class can optionally have a utilization rate associated with it. When a device associates with a particular access class using Traffic SPECification (TSPEC), the request can be denied if it asks for more than a utilization rate. For example, a network administrator may impose a limit of 100 kbps of traffic to the voice queue per device; if a station requests more than the limit, the network may respond with a denial and grant the maximum allowable rate. In a non-limiting example, network administrators could use this type of feature to require clients to use lower-bandwidth codecs for Voice over Internet Protocol (VoIP).


In the example of FIG. 6, the flowchart 600 continues to module 610 with optionally set a RADIUS attribute restricting the station to one or more access classes. Dynamic Quality of Service (QoS) parameters may be configured through the use of a Remote Access Dial In User Service (RADIUS) attribute. However, QoS parameters might be further enhanced to, for instance, allow or disallow use of a particular 802.11e access class. For example, a device may be permitted to send video, but not be permitted to send voice.


In the example of FIG. 6, the flowchart 600 continues to module 612 with provisioning the QoS parameters to an access point e.g. transmit a station switching record. In some embodiments, a station switching record containing QoS parameters is passed around a network.


In the example of FIG. 6, the flowchart 600 continues to module 614 with controlling transmission of data in the access class in accordance with the QoS parameters. A capacity management and prioritization system may include a network system that takes into account the capacity of a particular access device as part of authentication. For example, a station that has requested QoS resources to which it is administratively allowed but are not available at the target access point might be redirected to a device at which those resources are available. Stations that are allowed on the network for best-effort service may initially be allowed on the network, but moved to a different access point when additional QoS is requested by, for example, a softphone.



FIG. 7 depicts a computer system 700 for use in the system 100 (FIG. 1). The computer system 700 may be a conventional computer system that can be used as a client computer system, such as a wireless client or a workstation, or a server computer system. The computer system 700 includes a computer 702, I/O devices 704, and a display device 706. The computer 702 includes a processor 708, a communications interface 710, memory 712, display controller 714, non-volatile storage 716, and I/O controller 718. The computer 702 may be coupled to or include the I/O devices 704 and display device 706.


The computer 702 interfaces to external systems through the communications interface 710, which may include a modem or network interface. It will be appreciated that the communications interface 710 can be considered to be part of the computer system 700 or a part of the computer 702. The communications interface 710 can be an analog modem, ISDN modem, cable modem, token ring interface, satellite transmission interface (e.g. “direct PC”), or other interfaces for coupling a computer system to other computer systems.


The processor 708 may be, for example, a conventional microprocessor such as an Intel Pentium microprocessor or Motorola power PC microprocessor. The memory 712 is coupled to the processor 708 by a bus 770. The memory 712 can be Dynamic Random Access Memory (DRAM) and can also include Static RAM (SRAM). The bus 770 couples the processor 708 to the memory 712, also to the non-volatile storage 716, to the display controller 714, and to the I/O controller 718.


The I/O devices 704 can include a keyboard, disk drives, printers, a scanner, and other input and output devices, including a mouse or other pointing device. The display controller 714 may control in the conventional manner a display on the display device 706, which can be, for example, a cathode ray tube (CRT) or liquid crystal display (LCD). The display controller 714 and the I/O controller 718 can be implemented with conventional well known technology.


The non-volatile storage 716 is often a magnetic hard disk, an optical disk, or another form of storage for large amounts of data. Some of this data is often written, by a direct memory access process, into memory 712 during execution of software in the computer 702. One of skill in the art will immediately recognize that the terms “machine-readable medium” or “computer-readable medium” includes any type of storage device that is accessible by the processor 708 and also encompasses a carrier wave that encodes a data signal.


The computer system 700 is one example of many possible computer systems which have different architectures. For example, personal computers based on an Intel microprocessor often have multiple buses, one of which can be an I/O bus for the peripherals and one that directly connects the processor 708 and the memory 712 (often referred to as a memory bus). The buses are connected together through bridge components that perform any necessary translation due to differing bus protocols.


Network computers are another type of computer system that can be used in conjunction with the teachings provided herein. Network computers do not usually include a hard disk or other mass storage, and the executable programs are loaded from a network connection into the memory 712 for execution by the processor 708. A Web TV system, which is known in the art, is also considered to be a computer system, but it may lack some of the features shown in FIG. 7, such as certain input or output devices. A typical computer system will usually include at least a processor, memory, and a bus coupling the memory to the processor.


In addition, the computer system 700 is controlled by operating system software which includes a file management system, such as a disk operating system, which is part of the operating system software. One example of operating system software with its associated file management system software is the family of operating systems known as Windows® from Microsoft Corporation of Redmond, Wash., and their associated file management systems. Another example of operating system software with its associated file management system software is the Linux operating system and its associated file management system. The file management system is typically stored in the non-volatile storage 716 and causes the processor 708 to execute the various acts required by the operating system to input and output data and to store data in memory, including storing files on the non-volatile storage 716.


Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.


It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.


The present invention, in some embodiments, also relates to apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.


The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present invention is not described with reference to any particular programming language, and various embodiments may thus be implemented using a variety of programming languages.



FIG. 8 depicts an example of a system 800 for dynamically provisioning QoS parameters to stations. The system 800 includes a server 802, a network 804, a wireless access domain 806, parameter provisioning indicator 830, parameter provisioning indicator 832, phone 840, and laptop 842. The system 800 may or may not include multiple wireless access domains. Server 802 includes memory 820 and processor 822.


In the example of system 800, phone 840 and a laptop 842 each receive dynamically provisioned QoS parameters. Phone 840 is an example of a station requiring high priority access. Phone 840 executes a soft phone application. Laptop 842 is an example of a station that may require only relatively low priority access. It is noted that a laptop could operate a soft phone, however, for this non-limiting example, laptop 842 does not execute a soft phone, and operates only software requiring continuous transmission of large blocks of data having relatively time-insensitive requirements, e.g. gigantic blocks of meteorological data on weather patterns continuously recorded for long term analysis. Further, in this case, laptop 842 has been instructed to transmit data in the highest priority available in accordance with the design of the software by its creators.


In a case where there is no dynamic QoS provisioning, laptop 842 might interfere with phone 840's quality of transmission because laptop 842 would continuously transmit data in competition with phone 840 demanding highest priority. However, QoS parameters dynamically created in accordance with the granting of high or low priority access classes are provisioned in accordance with parameter provisioning indicator 830 and parameter provisioning indicator 832. Laptop 842 is provisioned, via provisioning indicator 832, QoS parameters that deny the laptop access to either the voice or video queues. Laptop 842 is denied the high priority access because it cannot prove it needs a high priority access class.


Because laptop 842 does not compete for the use of the voice or video queues, the dynamic assignment of high priority access classes allows phone 840 to transmit voice and/or video data in priority above laptop 842. Advantageously, to phone 840, there is no other traffic in the voice or video queues, and phone 840 performs in high quality in accordance with requirements for voice and video transmission. Laptop 842 does not suffer a loss of quality as applications that it executes continue to use best efforts and background queues in accordance with requirements set to maintain their quality.


As used herein, a wireless network refers to any type of wireless network, including but not limited to a structured network or an ad hoc network. Data on a wireless network is often encrypted. However, data may also be sent in the clear, if desired. With encrypted data, a rogue device will have a very difficult time learning any information (such as passwords, etc.) from clients before countermeasures are taken to deal with the rogue. The rogue may be able to confuse the client, and perhaps obtain some encrypted data, but the risk is minimal (even less than for some wired networks).


As used herein, the term “embodiment” means an embodiment that serves to illustrate by way of example but not limitation.


It will be appreciated to those skilled in the art that the preceding examples and embodiments are exemplary and not limiting to the scope of the present invention. It is intended that all permutations, enhancements, equivalents, and improvements thereto that are apparent to those skilled in the art upon a reading of the specification and a study of the drawings are included within the true spirit and scope of the present invention. It is therefore intended that the following appended claims include all such modifications, permutations and equivalents as fall within the true spirit and scope of the present invention.

Claims
  • 1. A system, comprising: a server configured to be coupled to a network and an access point transmitting data from a first station to the server and from a second station to the server;the server configured to dynamically determine quality of service (QoS) parameters for the first station and for the second station; andthe server configured to (1) restrict the first station from a first access class from a plurality of access classes based on the QoS parameters, (2) assign the first station a second access class from the plurality of access classes based on the QoS parameters, and (3) assign the second station the first access class and the second access class based on the QoS parameters, the first access class being uniquely associated with a first priority queue from a plurality of priority queues at the access point, the second access class being different from the first access class and being uniquely associated with a second priority queue, from the plurality of priority queues, different from the first priority queue.
  • 2. The system of claim 1, further comprising: the server configured to be coupled to a verification engine determining whether a software application is executing on the first station; andthe server configured to receive an instruction from the verification engine to deny the first station use of first priority queue from the plurality of priority queues if the software application is not executing on the station.
  • 3. The system of claim 1, wherein the QoS parameters include a RADIUS attribute defining permission for the first station to use the second access class.
  • 4. The system of claim 1, wherein the first access class is an 802.11 access class.
  • 5. The system of claim 1, wherein the first access class is associated with a utilization rate defining a limit on station traffic through first priority queue.
  • 6. The system of claim 1, wherein: the server configured to receive a request from the first station for the second access class from the plurality of access classes to transmit data at a rate; andthe server configured to deny the request when the rate exceeds a utilization rate.
  • 7. The system of claim 1, wherein the server is configured to be coupled to a database storing the QoS parameters.
  • 8. The system of claim 1, wherein the server is configured to transfer the QoS parameters to the access point in a station switching record.
  • 9. A method, comprising: receiving a request for authentication from a station, the request for authentication including a request for access to a first queue of an access point, the first queue of the access point associated with a first access class having a first level of priority;when the station is executing an application authorized to be assigned the first level of priority, (1) granting the station access to the first queue of the access point and access to a second queue of the access point, the second queue associated with the second access class having a level of priority lower than the first level of priority, and (2) setting a first QoS parameter for the station; andwhen the station is not executing an application authorized to be assigned the first level of priority, (1) granting the station access to the second queue of the access point without granting access to the first queue, and (2) setting a second QoS parameter for the station.
  • 10. The method of claim 9, further comprising storing the first QoS parameter or the second QoS parameter in a light-weight data access protocol (LDAP) directory associated with security credentials for the station.
  • 11. The method of claim 10, wherein the QoS parameters are further associated with information about a user associated with the request for authentication.
  • 12. A method, comprising: receiving a request from a mobile device for a first access class assignment from a server, the first access class assignment being associated with transmission of data from the mobile device to the server;verifying that the mobile device is executing an application authorized to be assigned the first access class; andwhen the mobile device is verified to be executing an application authorized to be assigned the first access class: (1) sending the first access class assignment to the server; (2) receiving a session quality of service (QoS) parameter associated with the first access class from the server for the mobile device; and (3) sending the session QoS parameter associated with the first access class to the mobile device; andwhen the mobile device is not verified to be executing the application authorized to be assigned the first access class: (1) sending a second access class assignment to the server; (2) receiving a session quality of service (QoS) parameter associated with the second access class from the server for the mobile device; and (3) sending the session QoS parameter associated with the second access class to the mobile device.
  • 13. The method of claim 12, wherein receiving the session QoS parameter associated with the first access class includes receiving a first station switching record, receiving the session QoS associated with the second access class includes receiving a second station switching record.
  • 14. The method of claim 12, wherein the first access class is an 802.11e access class.
  • 15. The method of claim 12, wherein the first access class is associated with a utilization rate defining a limit on station traffic through the first priority queue of an access point.
  • 16. The method of claim 12, wherein the session QoS parameter comprise a RADIUS attribute restricting the first station to the first access class.
  • 17. The method of claim 12, wherein the session QoS parameter is based on a QoS parameter associated with the first station and the first access class assignment.
RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent Application No. 60/845,147, filed Sep. 15, 2006, and entitled “Quality of Service Provisioning For Wireless Networks” by Matthew Stuart Gast, which is incorporated herein by reference.

US Referenced Citations (615)
Number Name Date Kind
3641433 Mifflin et al. Feb 1972 A
3906166 Cooper et al. Sep 1975 A
4168400 De Couasnon et al. Sep 1979 A
4176316 DeRoas et al. Nov 1979 A
4247908 Lockart et al. Jan 1981 A
4291401 Bachmann Sep 1981 A
4291409 Weinberg et al. Sep 1981 A
4409470 Shepard et al. Oct 1983 A
4460120 Shepard et al. Jul 1984 A
4475208 Ricketts Oct 1984 A
4494238 Groth, Jr. Jan 1985 A
4500987 Hasegawa Feb 1985 A
4503533 Tobagi et al. Mar 1985 A
4550414 Guinon et al. Oct 1985 A
4562415 McBiles Dec 1985 A
4630264 Wah Dec 1986 A
4635221 Kerr Jan 1987 A
4639914 Winters Jan 1987 A
4644523 Horwitz Feb 1987 A
4672658 Kavehrad et al. Jun 1987 A
4673805 Shepard et al. Jun 1987 A
4707839 Andren et al. Nov 1987 A
4730340 Frazier, Jr. Mar 1988 A
4736095 Shepard et al. Apr 1988 A
4740792 Sagey et al. Apr 1988 A
4758717 Shepard et al. Jul 1988 A
4760586 Takeda Jul 1988 A
4789983 Acampora et al. Dec 1988 A
4829540 Waggener et al. May 1989 A
4850009 Zook et al. Jul 1989 A
4872182 Mcrae et al. Oct 1989 A
4894842 Brockhoven et al. Jan 1990 A
4901307 Gilhousen et al. Feb 1990 A
4933952 Albrieux et al. Jun 1990 A
4933953 Yagi Jun 1990 A
4955053 Siegmund Sep 1990 A
4995053 Simpson et al. Feb 1991 A
5008899 Yamamoto Apr 1991 A
5027343 Chan et al. Jun 1991 A
5029183 Tymes Jul 1991 A
5103459 Gilhousen et al. Apr 1992 A
5103461 Tymes Apr 1992 A
5109390 Gilhousen et al. Apr 1992 A
5119502 Kallin et al. Jun 1992 A
5142550 Tymes Aug 1992 A
5151919 Dent Sep 1992 A
5157687 Tymes Oct 1992 A
5187675 Dent et al. Feb 1993 A
5231633 Hluchyj et al. Jul 1993 A
5280498 Tymes et al. Jan 1994 A
5285494 Sprecher et al. Feb 1994 A
5327144 Stilp et al. Jul 1994 A
5329531 Diepstraten Jul 1994 A
5339316 Diepstraten Aug 1994 A
5371783 Rose et al. Dec 1994 A
5418812 Reyes et al. May 1995 A
5432842 Kinoshita Jul 1995 A
5444851 Woest Aug 1995 A
5448569 Huang et al. Sep 1995 A
5450615 Fortune et al. Sep 1995 A
5465401 Thompson Nov 1995 A
5479441 Tymes et al. Dec 1995 A
5483676 Mahany et al. Jan 1996 A
5491644 Pickering et al. Feb 1996 A
5517495 Lund May 1996 A
5519762 Bartlett May 1996 A
5528621 Heiman et al. Jun 1996 A
5542100 Hatakeyama Jul 1996 A
5546389 Wippenbeck et al. Aug 1996 A
5561841 Markus Oct 1996 A
5568513 Croft et al. Oct 1996 A
5570366 Baker et al. Oct 1996 A
5584048 Wieczorek Dec 1996 A
5598532 Liron Jan 1997 A
5630207 Gitlin et al. May 1997 A
5640414 Blakeney et al. Jun 1997 A
5649289 Wang et al. Jul 1997 A
5668803 Tymes et al. Sep 1997 A
5670964 Dent Sep 1997 A
5677954 Hirata et al. Oct 1997 A
5706428 Boer et al. Jan 1998 A
5715304 Nishida et al. Feb 1998 A
5729542 Dupont Mar 1998 A
5734699 Lu et al. Mar 1998 A
5742592 Scholefield et al. Apr 1998 A
5774460 Schiffel et al. Jun 1998 A
5793303 Koga Aug 1998 A
5794128 Brockel et al. Aug 1998 A
5812589 Sealander et al. Sep 1998 A
5815811 Pinard et al. Sep 1998 A
5818385 Bartholomew Oct 1998 A
5828653 Goss Oct 1998 A
5828960 Tang et al. Oct 1998 A
5835061 Stewart Nov 1998 A
5838907 Hansen Nov 1998 A
5844900 Hong et al. Dec 1998 A
5852722 Hamilton Dec 1998 A
5862475 Zicker et al. Jan 1999 A
5872968 Knox et al. Feb 1999 A
5875179 Tikalsky Feb 1999 A
5887259 Zicker et al. Mar 1999 A
5896561 Schrader et al. Apr 1999 A
5909686 Muller et al. Jun 1999 A
5915214 Reece et al. Jun 1999 A
5920821 Seazholtz et al. Jul 1999 A
5933607 Tate et al. Aug 1999 A
5938721 Dussell et al. Aug 1999 A
5949988 Feisullin et al. Sep 1999 A
5953669 Stratis et al. Sep 1999 A
5960335 Umemoto et al. Sep 1999 A
5969678 Stewart Oct 1999 A
5970066 Lowry et al. Oct 1999 A
5977913 Christ Nov 1999 A
5980078 Krivoshein et al. Nov 1999 A
5982779 Krishnakumar et al. Nov 1999 A
5987062 Engwer et al. Nov 1999 A
5987328 Ephremides et al. Nov 1999 A
5991817 Rowett et al. Nov 1999 A
5999813 Lu et al. Dec 1999 A
6005853 Wang et al. Dec 1999 A
6011784 Brown Jan 2000 A
6012088 Li et al. Jan 2000 A
6029196 Lenz Feb 2000 A
6041240 McCarthy et al. Mar 2000 A
6041358 Huang et al. Mar 2000 A
6070243 See et al. May 2000 A
6073075 Kondou et al. Jun 2000 A
6073152 De Vries Jun 2000 A
6078568 Wright et al. Jun 2000 A
6088591 Trompower Jul 2000 A
6101539 Kennelly et al. Aug 2000 A
6115390 Chuah Sep 2000 A
6118771 Tajika et al. Sep 2000 A
6119009 Baranger et al. Sep 2000 A
6122520 Want et al. Sep 2000 A
6144638 Obenhuber et al. Nov 2000 A
6148199 Hoffman et al. Nov 2000 A
6154776 Martin Nov 2000 A
6160804 Ahmed et al. Dec 2000 A
6177905 Welch Jan 2001 B1
6188694 Fine et al. Feb 2001 B1
6199032 Anderson Mar 2001 B1
6208629 Jaszewki et al. Mar 2001 B1
6208841 Wallace et al. Mar 2001 B1
6212395 Lu et al. Apr 2001 B1
6218930 Katzenberg et al. Apr 2001 B1
6240078 Kuhnel et al. May 2001 B1
6240083 Wright May 2001 B1
6240291 Narasimhan et al. May 2001 B1
6246751 Bergl et al. Jun 2001 B1
6249252 Dupray Jun 2001 B1
6256300 Ahmed et al. Jul 2001 B1
6256334 Adachi Jul 2001 B1
6259405 Stewart et al. Jul 2001 B1
6262988 Vig Jul 2001 B1
6269246 Rao et al. Jul 2001 B1
6285662 Watannabe Sep 2001 B1
6304596 Yamano et al. Oct 2001 B1
6304906 Bhatti et al. Oct 2001 B1
6317599 Rappaport et al. Nov 2001 B1
6326918 Stewart Dec 2001 B1
6336035 Somoza et al. Jan 2002 B1
6336152 Richman et al. Jan 2002 B1
6347091 Wallentin et al. Feb 2002 B1
6356758 Almeida et al. Mar 2002 B1
6393290 Ulfongene May 2002 B1
6397040 Titmuss et al. May 2002 B1
6404772 Beach et al. Jun 2002 B1
6421714 Rai et al. Jul 2002 B1
6429879 Sturgeon et al. Aug 2002 B1
6446206 Feldbaum Sep 2002 B1
6456239 Werb et al. Sep 2002 B1
6470025 Wilson et al. Oct 2002 B1
6473449 Cafarella et al. Oct 2002 B1
6493679 Rappaport et al. Dec 2002 B1
6496290 Lee Dec 2002 B1
6512916 Forbes, Jr. Jan 2003 B1
6526275 Calvert Feb 2003 B1
6535732 McIntosh et al. Mar 2003 B1
6564380 Murphy May 2003 B1
6567146 Hirakata et al. May 2003 B2
6567416 Chuah May 2003 B1
6574240 Tzeng Jun 2003 B1
6580700 Pinard et al. Jun 2003 B1
6587680 Ata-Laurila et al. Jul 2003 B1
6587835 Treyz et al. Jul 2003 B1
6603970 Huelamo Platas et al. Aug 2003 B1
6614787 Jain et al. Sep 2003 B1
6615276 Mastrianni et al. Sep 2003 B1
6624762 End, III Sep 2003 B1
6625454 Rappaport et al. Sep 2003 B1
6640312 Thomson et al. Oct 2003 B1
6650912 Chen et al. Nov 2003 B2
6658389 Alpdemir Dec 2003 B1
6659947 Carter et al. Dec 2003 B1
6661787 O'Connell et al. Dec 2003 B1
6674403 Gray et al. Jan 2004 B2
6677894 Sheynblat et al. Jan 2004 B2
6678516 Nordman et al. Jan 2004 B2
6678802 Hickson Jan 2004 B2
6687498 McKenna et al. Feb 2004 B2
6697415 Mahany Feb 2004 B1
6721334 Ketcham Apr 2004 B1
6721548 Mohindra et al. Apr 2004 B1
6725260 Philyaw Apr 2004 B1
6738629 McCormick et al. May 2004 B1
6747961 Ahmed et al. Jun 2004 B1
6756940 Oh et al. Jun 2004 B2
6760324 Scott et al. Jul 2004 B1
6785275 Boivie et al. Aug 2004 B1
6798788 Viswanath et al. Sep 2004 B1
6801782 McCrady et al. Oct 2004 B2
6826399 Hoffman et al. Nov 2004 B1
6839338 Amara et al. Jan 2005 B1
6839348 Tang et al. Jan 2005 B2
6839388 Vaidyanathan Jan 2005 B2
6847620 Meier Jan 2005 B1
6847892 Zhou et al. Jan 2005 B2
6856800 Henry et al. Feb 2005 B1
6879812 Agrawal et al. Apr 2005 B2
6901439 Bonasia et al. May 2005 B1
6917688 Yu et al. Jul 2005 B2
6934260 Kanuri Aug 2005 B1
6937566 Forslow Aug 2005 B1
6938079 Anderson et al. Aug 2005 B1
6957067 Iyer et al. Oct 2005 B1
6973622 Rappaport et al. Dec 2005 B1
6978301 Tindal Dec 2005 B2
6980533 Abraham et al. Dec 2005 B1
6985469 Leung Jan 2006 B2
6990348 Benveniste Jan 2006 B1
6993683 Bhat et al. Jan 2006 B2
6996630 Masaki et al. Feb 2006 B1
7013157 Norman et al. Mar 2006 B1
7020438 Sinivaara et al. Mar 2006 B2
7020773 Otway et al. Mar 2006 B1
7024199 Massie et al. Apr 2006 B1
7024394 Ashour et al. Apr 2006 B1
7027773 McMillin Apr 2006 B1
7031705 Grootwassink Apr 2006 B2
7035220 Simcoe Apr 2006 B1
7039037 Wang et al. May 2006 B2
7058414 Rofheart et al. Jun 2006 B1
7062566 Amara et al. Jun 2006 B2
7068999 Ballai Jun 2006 B2
7079537 Kanuri et al. Jul 2006 B1
7089322 Stallmann Aug 2006 B1
7092529 Yu et al. Aug 2006 B2
7110756 Diener Sep 2006 B2
7116979 Backes et al. Oct 2006 B2
7126913 Patel et al. Oct 2006 B1
7134012 Doyle et al. Nov 2006 B2
7139829 Wenzel et al. Nov 2006 B2
7142867 Gandhi et al. Nov 2006 B1
7146166 Backes et al. Dec 2006 B2
7155236 Chen et al. Dec 2006 B2
7155518 Forslow Dec 2006 B2
7158777 Lee et al. Jan 2007 B2
7159016 Baker Jan 2007 B2
7221927 Kolar et al. May 2007 B2
7224970 Smith et al. May 2007 B2
7239862 Clare et al. Jul 2007 B1
7246243 Uchida Jul 2007 B2
7263366 Miyashita Aug 2007 B2
7274730 Nakabayashi Sep 2007 B2
7280495 Zweig et al. Oct 2007 B1
7290051 Dobric et al. Oct 2007 B2
7293136 More et al. Nov 2007 B1
7310664 Merchant et al. Dec 2007 B1
7317914 Adya et al. Jan 2008 B2
7320070 Baum Jan 2008 B2
7324468 Fischer Jan 2008 B2
7324487 Saito Jan 2008 B2
7324489 Iyer et al. Jan 2008 B1
7336961 Ngan Feb 2008 B1
7349412 Jones et al. Mar 2008 B1
7350077 Meier et al. Mar 2008 B2
7359676 Hrastar Apr 2008 B2
7370362 Olson et al. May 2008 B2
7376080 Riddle et al. May 2008 B1
7379423 Caves et al. May 2008 B1
7382756 Barber et al. Jun 2008 B2
7417953 Hicks et al. Aug 2008 B2
7421248 Laux et al. Sep 2008 B1
7421487 Peterson et al. Sep 2008 B1
7440416 Mahany et al. Oct 2008 B2
7443823 Hunkeler et al. Oct 2008 B2
7447502 Buckley Nov 2008 B2
7451316 Halasz et al. Nov 2008 B2
7460855 Barkley et al. Dec 2008 B2
7466678 Cromer et al. Dec 2008 B2
7475130 Silverman Jan 2009 B2
7477894 Sinha Jan 2009 B1
7480264 Duo et al. Jan 2009 B1
7483390 Rover et al. Jan 2009 B2
7489648 Griswold Feb 2009 B2
7493407 Leedom et al. Feb 2009 B2
7505434 Backes Mar 2009 B1
7509096 Palm et al. Mar 2009 B2
7519372 MacDonald et al. Apr 2009 B2
7529925 Harkins May 2009 B2
7551574 Peden, II et al. Jun 2009 B1
7551619 Tiwari Jun 2009 B2
7558266 Hu Jul 2009 B2
7570656 Raphaeli et al. Aug 2009 B2
7573859 Taylor Aug 2009 B2
7577453 Matta Aug 2009 B2
7592906 Hanna et al. Sep 2009 B1
7603119 Durig et al. Oct 2009 B1
7636363 Chang et al. Dec 2009 B2
7680501 Sillasto et al. Mar 2010 B2
7693526 Qian et al. Apr 2010 B2
7715432 Bennett May 2010 B2
7716379 Ruan et al. May 2010 B2
7724703 Matta et al. May 2010 B2
7724704 Simons et al. May 2010 B2
7729278 Chari et al. Jun 2010 B2
7733868 Van Zijst Jun 2010 B2
7746897 Stephenson et al. Jun 2010 B2
7788475 Zimmer et al. Aug 2010 B2
7805529 Galluzzo et al. Sep 2010 B2
7844298 Riley Nov 2010 B2
7865713 Chesnutt et al. Jan 2011 B2
7873061 Gast et al. Jan 2011 B2
7894852 Hansen Feb 2011 B2
7912982 Murphy Mar 2011 B2
7920548 Lor et al. Apr 2011 B2
7929922 Kubo Apr 2011 B2
7945399 Nosovitsky et al. May 2011 B2
7986940 Lee et al. Jul 2011 B2
8000724 Rayburn et al. Aug 2011 B1
8019082 Wiedmann et al. Sep 2011 B1
8019352 Rappaport et al. Sep 2011 B2
8116275 Matta et al. Feb 2012 B2
8150357 Aragon Apr 2012 B2
8161278 Harkins Apr 2012 B2
20010024953 Balogh Sep 2001 A1
20020021701 Lavian et al. Feb 2002 A1
20020038253 Seaman et al. Mar 2002 A1
20020052205 Belostofsky et al. May 2002 A1
20020060995 Cervello et al. May 2002 A1
20020062384 Tso May 2002 A1
20020069278 Forslow Jun 2002 A1
20020078361 Giroux et al. Jun 2002 A1
20020080790 Beshai Jun 2002 A1
20020087699 Karagiannis et al. Jul 2002 A1
20020094824 Kennedy et al. Jul 2002 A1
20020095486 Bahl Jul 2002 A1
20020101868 Clear et al. Aug 2002 A1
20020116655 Lew et al. Aug 2002 A1
20020157020 Royer Oct 2002 A1
20020174137 Wolff et al. Nov 2002 A1
20020176437 Busch et al. Nov 2002 A1
20020188756 Weil et al. Dec 2002 A1
20020191572 Weinstein et al. Dec 2002 A1
20020194251 Richter et al. Dec 2002 A1
20030014646 Buddhikot et al. Jan 2003 A1
20030018889 Burnett et al. Jan 2003 A1
20030043073 Gray et al. Mar 2003 A1
20030055959 Sato Mar 2003 A1
20030107590 Levillain et al. Jun 2003 A1
20030120764 Laye et al. Jun 2003 A1
20030133450 Baum Jul 2003 A1
20030134642 Kostic et al. Jul 2003 A1
20030135762 Macaulay Jul 2003 A1
20030156586 Lee et al. Aug 2003 A1
20030174706 Shankar et al. Sep 2003 A1
20030193910 Shoaib et al. Oct 2003 A1
20030204596 Yadav Oct 2003 A1
20030224735 Moursund et al. Dec 2003 A1
20030227934 White et al. Dec 2003 A1
20040002343 Brauel et al. Jan 2004 A1
20040003285 Whelan et al. Jan 2004 A1
20040019857 Teig et al. Jan 2004 A1
20040025044 Day Feb 2004 A1
20040029580 Haverinen et al. Feb 2004 A1
20040030777 Reedy et al. Feb 2004 A1
20040038687 Nelson Feb 2004 A1
20040044749 Harkin Mar 2004 A1
20040047320 Eglin Mar 2004 A1
20040053632 Nikkelen et al. Mar 2004 A1
20040054569 Pombo et al. Mar 2004 A1
20040054774 Barber et al. Mar 2004 A1
20040054926 Ocepek et al. Mar 2004 A1
20040062267 Minami et al. Apr 2004 A1
20040064560 Zhang et al. Apr 2004 A1
20040068668 Lor et al. Apr 2004 A1
20040078598 Barber et al. Apr 2004 A1
20040093506 Grawrock et al. May 2004 A1
20040095914 Katsube et al. May 2004 A1
20040095932 Astarabadi et al. May 2004 A1
20040106403 Mori et al. Jun 2004 A1
20040111640 Baum Jun 2004 A1
20040114546 Seshadri et al. Jun 2004 A1
20040119641 Rapeli Jun 2004 A1
20040120370 Lupo Jun 2004 A1
20040143428 Rappaport et al. Jul 2004 A1
20040143755 Whitaker et al. Jul 2004 A1
20040165545 Cook Aug 2004 A1
20040174900 Volpi et al. Sep 2004 A1
20040184475 Meier Sep 2004 A1
20040208570 Reader Oct 2004 A1
20040214572 Thompson et al. Oct 2004 A1
20040221042 Meier Nov 2004 A1
20040230370 Tzamaloukas Nov 2004 A1
20040233234 Chaudhry et al. Nov 2004 A1
20040236702 Fink et al. Nov 2004 A1
20040246937 Duong et al. Dec 2004 A1
20040246962 Kopeikin et al. Dec 2004 A1
20040252656 Shiu et al. Dec 2004 A1
20040255167 Knight Dec 2004 A1
20040259542 Viitamaki et al. Dec 2004 A1
20040259555 Rappaport et al. Dec 2004 A1
20040259575 Perez-Breva et al. Dec 2004 A1
20050015592 Lin Jan 2005 A1
20050021979 Wiedmann et al. Jan 2005 A1
20050025105 Rue Feb 2005 A1
20050026611 Backes Feb 2005 A1
20050030894 Stephens Feb 2005 A1
20050030929 Swier et al. Feb 2005 A1
20050037818 Seshadri et al. Feb 2005 A1
20050040968 Damarla et al. Feb 2005 A1
20050054326 Rogers Mar 2005 A1
20050054350 Zegelin Mar 2005 A1
20050058132 Okano et al. Mar 2005 A1
20050059405 Thomson et al. Mar 2005 A1
20050059406 Thomson et al. Mar 2005 A1
20050064873 Karaoguz et al. Mar 2005 A1
20050068925 Palm et al. Mar 2005 A1
20050073980 Thomson et al. Apr 2005 A1
20050078644 Tsai et al. Apr 2005 A1
20050097618 Arling et al. May 2005 A1
20050114649 Challener et al. May 2005 A1
20050120125 Morten et al. Jun 2005 A1
20050122927 Wentink Jun 2005 A1
20050122977 Lieberman Jun 2005 A1
20050128142 Shin et al. Jun 2005 A1
20050128989 Bhagwat et al. Jun 2005 A1
20050144237 Heredia et al. Jun 2005 A1
20050147032 Lyon et al. Jul 2005 A1
20050154933 Hsu et al. Jul 2005 A1
20050157730 Grant et al. Jul 2005 A1
20050159154 Goren Jul 2005 A1
20050163078 Oba et al. Jul 2005 A1
20050163146 Ota et al. Jul 2005 A1
20050175027 Miller et al. Aug 2005 A1
20050180345 Meier Aug 2005 A1
20050180358 Kolar et al. Aug 2005 A1
20050181805 Gallagher Aug 2005 A1
20050190714 Gorbatov et al. Sep 2005 A1
20050193103 Drabik Sep 2005 A1
20050207336 Choi et al. Sep 2005 A1
20050213519 Relan et al. Sep 2005 A1
20050220033 DelRegno et al. Oct 2005 A1
20050223111 Bhandaru et al. Oct 2005 A1
20050239461 Verma et al. Oct 2005 A1
20050240665 Gu et al. Oct 2005 A1
20050243737 Dooley et al. Nov 2005 A1
20050245258 Classon et al. Nov 2005 A1
20050245269 Demirhan et al. Nov 2005 A1
20050259597 Benedetotto et al. Nov 2005 A1
20050259611 Bhagwat et al. Nov 2005 A1
20050265321 Rappaport et al. Dec 2005 A1
20050270992 Sanzgiri et al. Dec 2005 A1
20050273442 Bennett Dec 2005 A1
20050276218 Ooghe et al. Dec 2005 A1
20050286466 Tagg et al. Dec 2005 A1
20060030290 Rudolf et al. Feb 2006 A1
20060035662 Jeong et al. Feb 2006 A1
20060039395 Perez-Costa et al. Feb 2006 A1
20060041683 Subramanian et al. Feb 2006 A1
20060045050 Floros et al. Mar 2006 A1
20060046744 Dublish et al. Mar 2006 A1
20060050742 Grandhi et al. Mar 2006 A1
20060073847 Pirzada et al. Apr 2006 A1
20060094440 Meier et al. May 2006 A1
20060098607 Zeng et al. May 2006 A1
20060104224 Singh et al. May 2006 A1
20060114872 Hamada Jun 2006 A1
20060117174 Lee Jun 2006 A1
20060128415 Horikoshi et al. Jun 2006 A1
20060143496 Silverman Jun 2006 A1
20060152344 Mowery Jul 2006 A1
20060160540 Strutt et al. Jul 2006 A1
20060161983 Cothrell et al. Jul 2006 A1
20060165103 Trudeau et al. Jul 2006 A1
20060168383 Lin Jul 2006 A1
20060173844 Zhang et al. Aug 2006 A1
20060174336 Chen Aug 2006 A1
20060178168 Roach Aug 2006 A1
20060182118 Lam et al. Aug 2006 A1
20060187878 Calhoun et al. Aug 2006 A1
20060189311 Cromer et al. Aug 2006 A1
20060190721 Kawakami et al. Aug 2006 A1
20060193258 Ballai Aug 2006 A1
20060200862 Olson et al. Sep 2006 A1
20060206582 Finn Sep 2006 A1
20060215601 Vieugels et al. Sep 2006 A1
20060217131 Alizadeh-Shabdiz et al. Sep 2006 A1
20060245393 Bajic Nov 2006 A1
20060248229 Saunderson et al. Nov 2006 A1
20060248331 Harkins Nov 2006 A1
20060268696 Konstantinov et al. Nov 2006 A1
20060274774 Srinivasan et al. Dec 2006 A1
20060276192 Dutta et al. Dec 2006 A1
20060285489 Francisco et al. Dec 2006 A1
20060292992 Tajima et al. Dec 2006 A1
20070002833 Bajic Jan 2007 A1
20070008884 Tang Jan 2007 A1
20070010248 Dravida et al. Jan 2007 A1
20070011318 Roth Jan 2007 A1
20070025265 Porras et al. Feb 2007 A1
20070025306 Cox et al. Feb 2007 A1
20070027964 Herrod et al. Feb 2007 A1
20070054616 Culbert Mar 2007 A1
20070058598 Ling Mar 2007 A1
20070064673 Bhandaru et al. Mar 2007 A1
20070064718 Ekl et al. Mar 2007 A1
20070067823 Shim et al. Mar 2007 A1
20070070937 Demirhan et al. Mar 2007 A1
20070076694 Iyer et al. Apr 2007 A1
20070081477 Jakkahalli et al. Apr 2007 A1
20070082677 Donald Hart et al. Apr 2007 A1
20070083924 Lu Apr 2007 A1
20070086378 Matta et al. Apr 2007 A1
20070086397 Taylor Apr 2007 A1
20070086398 Tiwari Apr 2007 A1
20070091845 Brideglall Apr 2007 A1
20070091889 Xiao et al. Apr 2007 A1
20070098086 Bhaskaran May 2007 A1
20070104197 King May 2007 A1
20070106776 Konno et al. May 2007 A1
20070109991 Bennett May 2007 A1
20070110035 Bennett May 2007 A1
20070115842 Matsuda et al. May 2007 A1
20070133494 Lai et al. Jun 2007 A1
20070135159 Sinivaara Jun 2007 A1
20070135866 Baker et al. Jun 2007 A1
20070136372 Proctor et al. Jun 2007 A1
20070150945 Whitaker et al. Jun 2007 A1
20070160046 Matta Jul 2007 A1
20070171909 Pignatelli Jul 2007 A1
20070183375 Tiwari Aug 2007 A1
20070183402 Bennett Aug 2007 A1
20070189222 Kolar et al. Aug 2007 A1
20070195793 Grosser et al. Aug 2007 A1
20070230457 Kodera et al. Oct 2007 A1
20070248009 Petersen Oct 2007 A1
20070253380 Jollota et al. Nov 2007 A1
20070255116 Mehta et al. Nov 2007 A1
20070258448 Hu Nov 2007 A1
20070260720 Morain Nov 2007 A1
20070268506 Zeldin Nov 2007 A1
20070268514 Zeldin et al. Nov 2007 A1
20070268515 Freund et al. Nov 2007 A1
20070268516 Bugwadia et al. Nov 2007 A1
20070286208 Kanada et al. Dec 2007 A1
20070287390 Murphy et al. Dec 2007 A1
20070291689 Kapur et al. Dec 2007 A1
20070297329 Park et al. Dec 2007 A1
20080002588 McCaughan et al. Jan 2008 A1
20080008117 Alizadeh-Shabdiz Jan 2008 A1
20080013481 Simons et al. Jan 2008 A1
20080014916 Chen Jan 2008 A1
20080031257 He Feb 2008 A1
20080039114 Phatak et al. Feb 2008 A1
20080056200 Johnson Mar 2008 A1
20080056211 Kim et al. Mar 2008 A1
20080064356 Khayrallah Mar 2008 A1
20080080441 Park et al. Apr 2008 A1
20080102815 Sengupta et al. May 2008 A1
20080107077 Murphy May 2008 A1
20080114784 Murphy May 2008 A1
20080117822 Murphy et al. May 2008 A1
20080130523 Fridman et al. Jun 2008 A1
20080151844 Tiwari Jun 2008 A1
20080159319 Gast et al. Jul 2008 A1
20080162921 Chesnutt et al. Jul 2008 A1
20080220772 Islam et al. Sep 2008 A1
20080226075 Gast Sep 2008 A1
20080228942 Lor et al. Sep 2008 A1
20080250496 Namihira Oct 2008 A1
20080261615 Kalhan Oct 2008 A1
20080276303 Gast Nov 2008 A1
20090010206 Giaretta et al. Jan 2009 A1
20090031044 Barrack et al. Jan 2009 A1
20090046688 Volpi et al. Feb 2009 A1
20090059930 Ryan et al. Mar 2009 A1
20090067436 Gast Mar 2009 A1
20090073905 Gast Mar 2009 A1
20090131082 Gast May 2009 A1
20090198999 Harkins Aug 2009 A1
20090247103 Aragon Oct 2009 A1
20090252120 Kim et al. Oct 2009 A1
20090257437 Tiwari Oct 2009 A1
20090260083 Szeto et al. Oct 2009 A1
20090274060 Taylor Nov 2009 A1
20090287816 Matta et al. Nov 2009 A1
20090293106 Peden, II et al. Nov 2009 A1
20100002610 Bowser et al. Jan 2010 A1
20100024007 Gast Jan 2010 A1
20100040059 Hu Feb 2010 A1
20100067379 Zhao et al. Mar 2010 A1
20100142478 Forssell et al. Jun 2010 A1
20100159827 Rhodes et al. Jun 2010 A1
20100172276 Aragon Jul 2010 A1
20100180016 Bugwadia et al. Jul 2010 A1
20100195549 Aragon et al. Aug 2010 A1
20100261475 Kim et al. Oct 2010 A1
20100271188 Nysen Oct 2010 A1
20100329177 Murphy et al. Dec 2010 A1
20110128858 Matta et al. Jun 2011 A1
20110158122 Murphy et al. Jun 2011 A1
20110255466 Gast et al. Oct 2011 A1
20120140705 Matta et al. Jun 2012 A1
Foreign Referenced Citations (19)
Number Date Country
0 992 921 Apr 2000 EP
1542 409 Jun 2005 EP
2 329 801 Mar 1999 GB
2429080 Feb 2007 GB
2000-215169 Aug 2000 JP
2003-234751 Aug 2003 JP
2003274454 Sep 2003 JP
2004-032525 Jan 2004 JP
WO9403986 Feb 1994 WO
WO9911003 Mar 1999 WO
WO 0006271 Feb 2000 WO
WO 0018148 Mar 2000 WO
WO 02089442 Nov 2002 WO
WO 03085544 Oct 2003 WO
WO 2004013986 Feb 2004 WO
WO 2004095192 Nov 2004 WO
WO 2004095800 Nov 2004 WO
WO 2006014512 Feb 2006 WO
WO 2010130133 Nov 2010 WO
Related Publications (1)
Number Date Country
20080069018 A1 Mar 2008 US
Provisional Applications (1)
Number Date Country
60845147 Sep 2006 US