Patent Document

CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 13/205,159, filed Aug. 8, 2011, which is a continuation of U.S. patent application Ser. No. 11/390,704, filed on Mar. 28, 2006. This application claims the benefit of U.S. Provisional Application No. 60/738,267, filed on Nov. 18, 2005. The disclosures of the above applications are incorporated herein by reference in its entirety. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates to wireless networks, and more particularly to systems and methods for improving quality of service in wireless networks. 
     BACKGROUND OF THE INVENTION 
     IEEE sections 802.11, 802.11(a), 802.11(b), 802.11(g), 802.11(h), 802.11(n), 802.16, 802.20, which are incorporated herein by reference in their entirety, define ways for configuring wireless networks and network devices. According to these standards, a wireless Ethernet network device may operate in an ad-hoc mode or an infrastructure mode. 
     Referring now to  FIG. 1 , in the ad-hoc mode, each client station  10 - 1 ,  10 - 2 , . . . , and  10 -N (collectively client stations  10 ) communicates directly with other client stations without requiring an access point (AP). Referring now to  FIG. 2 , in the infrastructure mode, each client station  20 - 1 ,  20 - 2 , . . . , and  20 -M (collectively client stations  20 ) communicates with other client stations through an AP  24 . The AP  24  may provide a connection to a network  26 , a server  28 , and for the Internet  30 . 
     In the infrastructure mode, the AP  24  and the client stations  20  that use the AP  24  constitute a basic service set (BSS). A wireless network can comprise multiple BSS&#39;s. Each BSS is identified by a unique identifier for the AP in the BSS, called a BSSID. Typically, the AP transmits a beacon to inform the client stations in the BSS that the AP is ready to communicate with the client stations. The beacon includes the BSSID for the AP. The client stations in the BSS, in turn, communicate with the AP using the BSSID. 
     Referring now to  FIG. 3 , a network device such as an AP or a client station may be implemented using a system on chip (SOC) circuit  40  and/or individual components. The SOC circuit  40  generally includes one or more processors  42 , a medium access controller (MAC) device  44 , a base band processor (BBP)  46 , and a host interface such as a peripheral component interface (PCI) (not shown). Additionally, the SOC circuit  40  may include a radio frequency (RF) transceiver  48 , or the transceiver may be located externally. 
     Most modern wireless networks comprise different types of network devices as client stations. For example, in the wireless network shown in  FIG. 2 , the client station  20 - 1  may be a video device such as a high definition TV that may be utilized in applications such as video-conferencing. The client station  20 - 2  may be an audio device. Additionally, the client station  20 -M may be a laptop computer that may be used to transfer files, exchange emails, etc. 
     Different types of client stations may utilize different applications running on the network and may generate different data streams. For example, the client station  20 - 1  may generate data streams comprising video and audio data. The client station  20 - 2  may generate data streams comprising audio data. The client station  20 -M may generate data streams comprising text files, etc. Thus, different types of data streams may concurrently flow through the network. 
     Network users generally expect their individual applications to run smoothly regardless of other applications that concurrently utilize the network. Networks, however, have finite resources. For example, bandwidth of a network is limited. Therefore, networks typically service data streams of different applications at different priority levels to optimize network resources and deliver optimum performance to network users. For example, a network may service data streams of a video-conferencing application at a higher priority than data streams of an audio application or an email application. 
     Additionally employs admission control mechanisms to ensure that resources are not over-stretched. Admission control mechanisms allow applications to join the network only when available resources are adequate to optimally run the applications. meet the Quality of Service (QoS) requirements 
     The priority given to data streams, however, should be such that a data stream given a low priority is not substantially delayed or entirely lost. Quality of service (QOS) refers to an ability of a network to provide a particular level of service to a selected data stream. IEEE section 802.11e defines QOS mechanisms for wireless networks and is incorporated herein by reference in its entirety. 
     QOS mechanisms in wireless networks generally comprise scheduling mechanisms and signaling mechanisms that an access point uses to service applications used by client stations. Scheduling mechanisms ensure that different data streams in a network receive adequate priority to link to the network. Scheduling mechanisms are incorporated along with complimentary admission control mechanisms. Signaling mechanisms notify the network of a priority and characteristics of a data stream. Signaling mechanisms typically use protocols that request and establish a link to the network for a data stream. 
     For example, a signaling mechanism called resource reservation protocol (RSVP) enables an application to request the network for a specific level of service for a data stream and to dynamically reserve a part of network bandwidth for the data stream. Thus, the client station  20 - 1  may request the AP  24  a priority_ 1  for data streams of the video-conferencing application. The client station  20 - 2  may request the AP  24  a priority_ 2  for data streams of the audio application, where priority_ 2  is a lower priority level than priority_ 1 , etc. 
     Signaling mechanisms, however, burden network traffic. Additionally, signaling mechanisms use protocols that are preconfigured based on factors such as network resources, user demand, etc. Thus, signaling mechanisms lack flexibility and scalability. Additionally, signaling mechanisms need end-to-end support. That is, all devices need to implement the same signaling stack. The disparate nature of devices, however, precludes wide-spread adaptation of a single signaling protocol. 
     Scheduling of data streams in wireless networks may be improved by pre-configuring client stations with pre-set stream descriptors and service priority levels. The service priority levels can be pre-set based on a class of service a client station requires. The traffic characteristics of data streams can be set based on the perceived general behavior of network connections. 
     An AP may decipher a service priority level and stream descriptors from a data stream received from the client station. The AP can service the data stream according to that priority level and stream descriptors. This scheme, however, may be problematic since different original equipment manufacturers (OEM&#39;s) may assign service priority levels and stream descriptors to network devices (client stations) differently. 
     SUMMARY OF THE INVENTION 
     An access point (AP) comprises a control module that defines N basic service set identifiers (BSSID&#39;s) each corresponding to a class of service and having M service parameters, where N and M are integers greater than one. The AP comprises an AP scheduling module that schedules communication between the AP and a plurality of client stations based on the N BSSID&#39;s and that determines a quality of service for the communication based on the N BSSID&#39;s and the M service parameters. The M service parameters comprise service priority levels, a number of data streams, and unscheduled automatic power save delivery settings for the N BSSID&#39;s. 
     In another feature, a wireless network comprises the AP and further comprises P client stations, where P is an integer greater than one. Each of the P client stations comprises a client station scheduling module that schedules communication between the AP and the P client stations based on the N BSSID&#39;s and that determines a quality of service for the communication based on the N BSSID&#39;s and the M service parameters. The P client stations selectively communicate with the AP using more than one of the N BSSID&#39;s. 
     In another feature, the AP further comprises a multicast BSSID that is used to transmit data simultaneously to client stations identified by one of the N BSSID&#39;s. 
     In another feature, the control module selectively divides the N BSSID&#39;s into multiple BSSID&#39;s each having one data stream. 
     In still other features, a method for improving quality of service in wireless networks comprises defining N basic service set identifiers (BSSID&#39;s) for an access point (AP) wherein each one of the N BSSID&#39;s corresponds to a class of service and has M service parameters, where N and M are integers greater than one. The method comprises scheduling communication between the AP and a plurality of client stations based on the N BSSID&#39;s. 
     In another feature, the method comprises determining a quality of service for the communication based on the N BSSID&#39;s and the M service parameters. The M service parameters comprise service priority levels, a number of data streams, and unscheduled automatic power save delivery settings for the N BSSID&#39;s. The method comprises the client stations selectively communicating with the AP based on more than one of the N BSSID&#39;s. 
     In another feature, the method further comprises transmitting data simultaneously to client stations identified by one of the N BSSID&#39;s based on a multicast BSSID. 
     In another feature, the method further comprises selectively dividing the N BSSID&#39;s into multiple BSSID&#39;s each having one data stream. 
     In still other features, an access point (AP) comprises control means for defining N basic service set identifiers (BSSID&#39;s) each corresponding to a class of service and having M service parameters, where N and M are integers greater than one. The AP comprises AP scheduling means for scheduling communication between the AP and a plurality of client stations based on the N BSSID&#39;s and for determining a quality of service for the communication based on the N BSSID&#39;s and the M service parameters. The M service parameters comprise service priority levels, a number of data streams, and unscheduled automatic power save delivery settings for the N BSSID&#39;s. 
     In another feature, a wireless network comprises the AP and further comprises P client stations, where P is an integer greater than one. Each of the P client stations comprises client station scheduling means for scheduling communication between the AP and the P client stations based on the N BSSID&#39;s and for determining a quality of service for the communication based on the N BSSID&#39;s and the M service parameters. The P client stations selectively communicate with the AP using more than one of the N BSSID&#39;s. 
     In another feature, the AP further comprises multicast BSSID means for transmitting data simultaneously to client stations identified by one of the N BSSID&#39;s. 
     In another feature, the control means selectively divides the N BSSID&#39;s into multiple BSSID&#39;s each having one data stream. 
     In still other features, a computer method for improving quality of service in wireless networks comprises defining N basic service set identifiers (BSSID&#39;s) for an access point wherein each one of the N BSSID&#39;s corresponds to a class of service and has M service parameters, where N and M are integers greater than one. The computer method comprises scheduling communication between the AP and a plurality of client stations based on the N BSSID&#39;s. 
     In another feature, the computer method comprises determining a quality of service for the communication based on the N BSSID&#39;s and the M service parameters. The M service parameters comprise service priority levels, a number of data streams, and unscheduled automatic power save delivery settings for the N BSSID&#39;s. 
     In another feature, the computer method further comprises client stations selectively communicating with the AP based on more than one of the N BSSID&#39;s. 
     In another feature, the computer method further comprises transmitting data simultaneously to client stations identified by one of the N BSSID&#39;s based on a multicast BSSID. 
     In another feature, the computer method further comprises selectively dividing the N BSSID&#39;s into multiple BSSID&#39;s each having one data stream. 
     In still other features, a client station comprises a scheduling module that schedules communication between the client station and an access point (AP) based on N basic service set identifiers (BSSID&#39;s), where N is an integer greater than one, and a quality of service (QOS) determining module that determines QOS for the communication based on the N BSSID&#39;s and M service parameters, where M is an integer greater than one. 
     In another feature, the client station selectively communicates with the AP using more than one of the N BSSID&#39;s. 
     In another feature, the M service parameters comprise service priority levels, a number of data streams, and unscheduled automatic power save delivery settings for the N BSSID&#39;s. 
     In another feature, a wireless network comprises the client station and further comprises the AP wherein the AP comprises a control module defines the N BSSID&#39;s each corresponding to a class of service and having the M service parameters and an AP scheduling module that schedules communication between the AP and a plurality of client stations based on the N BSSID&#39;s and that determines a quality of service for the communication based on the N BSSID&#39;s and the M service parameters. 
     In another feature, the AP further comprises a multicast BSSID that is used to transmit data simultaneously to client stations identified by one of the N BSSID&#39;s. The control module of the AP selectively divides the N BSSID&#39;s into multiple BSSID&#39;s each having one data stream. 
     In still other feature, a method for improving quality of service in wireless networks comprises scheduling communication between the client station and an access point (AP) based on N basic service set identifiers (BSSID&#39;s), where N is an integer greater than one, and determining a quality of service for the communication based on the N BSSID&#39;s and M service parameters, where M is an integer greater than one. 
     In another feature, the method further comprises selectively communicating with the AP using more than one of the N BSSID&#39;s. 
     In another feature, the M service parameters comprise service priority levels, a number of data streams, and unscheduled automatic power save delivery settings for the N BSSID&#39;s. 
     In another feature, the method further comprises defining the N BSSID&#39;s for the AP wherein each one of the N BSSID&#39;s corresponds to a class of service and has the M service parameters, where N and M are integers greater than 1, scheduling communication between the AP and a plurality of client stations based on the N BSSID&#39;s, and determining a quality of service for the communication based on the N BSSID&#39;s and the M service parameters. 
     In another feature, the method further comprises transmitting data simultaneously to client stations identified by one of the N BSSID&#39;s based on a multicast BSSID. 
     In another feature, the method further comprises selectively dividing the N BSSID&#39;s into multiple BSSID&#39;s each having one data stream. 
     In still other features, a client station comprises scheduling means for scheduling communication between the client station and an access point (AP) based on N basic service set identifiers (BSSID&#39;s), where N is an integer greater than one, and quality of service (QOS) determining means for determining QOS for the communication based on the N BSSID&#39;s and M service parameters, where M is an integer greater than one. 
     In another feature, the client station selectively communicates with the AP using more than one of the N BSSID&#39;s. 
     In another feature, the M service parameters comprise service priority levels, a number of data streams, and unscheduled automatic power save delivery settings for the N BSSID&#39;s. 
     In another feature, a wireless network comprises the client station and further comprises the AP wherein the AP comprises control means for defining the N BSSID&#39;s each corresponding to a class of service and having the M service parameters, and AP scheduling means for scheduling communication between the AP and a plurality of client stations based on the N BSSID&#39;s and for determining a quality of service for the communication based on the N BSSID&#39;s and the M service parameters. 
     In another feature, the AP further comprises multicast BSSID means for transmitting data simultaneously to client stations identified by one of the N BSSID&#39;s. 
     In another feature, the control means selectively divides the N BSSID&#39;s into multiple BSSID&#39;s each having one data stream. 
     In still other features, a computer method for improving quality of service in wireless networks, comprising scheduling communication between the client station and an access point (AP) based on N basic service set identifiers (BSSID&#39;s), where N is an integer greater than one, and determining a quality of service for the communication based on the N BSSID&#39;s and M service parameters, where M is an integer greater than one. 
     In another feature, the computer method further comprises selectively communicating with the AP using more than one of the N BSSID&#39;s. 
     In another feature, the M service parameters comprise service priority levels, a number of data streams, and unscheduled automatic power save delivery settings for the N BSSID&#39;s. 
     In another feature, the computer method further comprises defining the N BSSID&#39;s for the AP wherein each one of the N BSSID&#39;s corresponds to a class of service and has the M service parameters, where N and M are integers greater than 1, scheduling communication between the AP and a plurality of client stations based on the N BSSID&#39;s, and determining a quality of service for the communication based on the N BSSID&#39;s and the M service parameters. 
     In another feature, the computer method further comprises transmitting data simultaneously to client stations identified by one of the N BSSID&#39;s based on a multicast BSSID. 
     In another feature, the computer method further comprises selectively dividing the N BSSID&#39;s into multiple BSSID&#39;s each having one data stream. 
     In still other features, the systems and methods described above are implemented by a computer program executed by one or more processors. The computer program can reside on a computer readable medium such as but not limited to memory, non-volatile data storage and/or other suitable tangible storage mediums. 
     Further areas of applicability of the present invention will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description and specific examples, while indicating the preferred embodiment of the invention, are intended for purposes of illustration only and are not intended to limit the scope of the invention. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present invention will become more fully understood from the detailed description and the accompanying drawings, wherein: 
         FIG. 1  is a functional block diagram of an exemplary wireless network illustrating network devices operating in an ad-hoc mode according to the prior art; 
         FIG. 2  is a functional block diagram of an exemplary wireless network illustrating network devices operating in an infrastructure mode according to the prior art; 
         FIG. 3  is a functional block diagram of a wireless network device illustrating an exemplary implementation using an SOC circuit according to the prior art; 
         FIG. 4  is a functional block diagram of an exemplary wireless network including an access point and a plurality of client stations according to the present invention; 
         FIG. 5  is a functional block diagram of an exemplary wireless network comprising a plurality of basic services sets comprising a plurality of virtual access points and a plurality of client stations according to the present invention; 
         FIG. 6  illustrates an exemplary service table comprising parameters for programming an access point according to the present invention; 
         FIG. 7  is a functional block diagram of an exemplary media access controller utilizing a scheduling scheme according to the present invention; 
         FIG. 8  shows an exemplary scheme for scheduling quality of service for a plurality of basic service sets according to the present invention; 
         FIG. 9  shows an exemplary scheme for scheduling quality of service for a plurality of client stations in a plurality of basic service sets according to the present invention; 
         FIG. 10  shows an exemplary polling scheme used by client stations in a BSS to receive data from an access point according to the present invention; 
         FIG. 11  shows an example of a client station sharing more than one basic service set in a wireless network according to the present invention; 
         FIG. 12  is a flowchart of an exemplary method for providing quality of service to a plurality of client stations in a wireless network according to the present invention; 
         FIG. 13A  is a functional block diagram of a high definition television; 
         FIG. 13B  is a functional block diagram of a cellular phone; 
         FIG. 13C  is a functional block diagram of a set top box; and 
         FIG. 13D  is a functional block diagram of a media player. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     The following description of the preferred embodiment(s) is merely exemplary in nature and is in no way intended to limit the invention, its application, or uses. For purposes of clarity, the same reference numbers will be used in the drawings to identify similar elements. As used herein, the term module, circuit and/or device refers to an Application Specific Integrated Circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and memory that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable hardware components that provide the described functionality. As used herein, the phrase at least one of A, B, and C should be construed to mean a logical (A or B or C), using a non-exclusive logical or. It should be understood that steps within a method may be executed in different order without altering the principles of the present invention. 
     An access point (AP) is divided into multiple virtual access points. Client stations of a particular type are associated with a dedicated virtual AP to form multiple basic service sets (BSS&#39;s). A distinct BSS identifier (BSSID) is assigned to each individual BSS. Service parameters for each BSS are predetermined. The AP is pre-programmed with the service parameters. The AP communicates with a client station in a BSS based on the service parameters for that BSS. The AP provides a quality of service (QOS) to a data stream to and from client stations in a BSS using the service parameters for the BSS instead of using a signaling mechanism. 
     Referring now to  FIGS. 4-5 , a wireless network  50  comprising an AP  60  and multiple client stations  70  is divided into multiple virtual networks. Specifically, the AP  60  is divided into multiple virtual access points such as a video AP  62 , an audio AP  64 , a data AP  66 , etc. (collectively virtual AP). 
     Each of the virtual APs has a unique basic service set identifier (BSSID). The BSSID&#39;s may be simple descriptive strings announcing the type of the virtual AP. For example, the video AP  62  may have a BSSID of Mynet.video (or BSSID 1 ), the audio AP  64  may have a BSSID of Mynet.audio (or BSSID 2 ), the data AP  66  may have a BSSID of Mynet.data (or BSSID 3 ), etc. 
     Multiple client stations  70  in the network  50  are divided into different groups based on a class of service of each client station. For example, video client stations video.client 1   72 - 1 , video.client 2   72 - 2 , etc., (collectively video client stations  72 ) associate with Mynet.video virtual AP  62 . Audio client stations audio.client 1   74 - 1 , Mudio.client 2   74 - 2 , etc., (collectively audio client stations  74 ) associate with Mynet.audio virtual AP  64 . Data client stations data.client 1   76 - 1 , data.client 2   76 - 2 , etc., (collectively data client stations  76 ) associate with Mynet.data virtual AP  66 , etc. 
     Multiple BSS&#39;s are formed wherein each BSS comprises one virtual AP and one group of client stations. For example, BSS 1   80 - 1  comprises the video AP  62  and the video client stations  72 . BSS 2   80 - 2  comprises the audio AP  64  and the audio client stations  74 . BSS 3   80 - 3  comprises the data AP  66  and the data client stations  76 , etc. BSS 1   80 - 1 , BSS 2   80 - 2 , BSS 3   80 - 3 , etc., are hereinafter collectively referred to as BSS  80 . 
     Each BSS  80  is assigned the BSSID of the respective virtual AP. For example, BSS 1   80 - 1  is assigned the BSSID Mynet.video, BSS 2   80 - 2  is assigned the BSSID Mynet.audio, BSS 3   80 - 3  is assigned the BSSID Mynet.data, etc. The AP  60  uses the BSSID&#39;s instead of signaling mechanisms to communicate with client stations  70  in BSS  80 . 
     Referring now to  FIG. 6 , a service table  90  is generated. Specifically, service parameters such as a BSSID for each BSS  80 , a service priority level for each BSS  80 , a maximum number of allowable data streams per BSSID, etc., are determined based on a class of service of each BSS  80 . For example, the number of allowable data streams for a BSS  80  can be calculated as follows. 
     If bandwidth of network  50  is 100 Mbps and if a throughput rate of video.client 1   71 - 1  such as a high-definition TV is 25 Mbps, then a number of data streams for BSSID 1  may be set equal to 2. This setting will allocate 50 Mbps (I.e., 2×25 Mbps) of the 100 Mbps network bandwidth for BSSID 1 . This bandwidth allocation will be sufficient for two client stations video.client 1   72 - 1  and video.client 2   72 - 2  in BSS 1   80 - 1  to receive QOS from the network  50 . That is, the client stations video.client 1   72 - 1  and video.client 2   72 - 2  in BSS 1   80 - 1  will perform optimally without any data loss. In other words, each client station  72  in BSS 1   80 - 1  will be guaranteed QOS from the network  50 . 
     Different categories of classes of service can be created based on types of network devices (e.g., video, audio, etc.). Service parameters such as service level priorities for data streams, throughput rates, etc., for each service class can be set in the service table  90 . 
     Referring now to  FIG. 7 , the AP  60  comprises a medium access control (MAC) module  100 . The MAC module  100  comprises a classification engine  102 , virtual queues  104 - 1 ,  104 - 2 , etc. (collectively  104 ), a level-1 scheduler  106 , and a level-2 scheduler  108 . 
     Based on the BSSID, the classification engine  102  routes the input data to one of the virtual queues  104 . The virtual queue  104  routes the data to a virtual AP that corresponds to the BSSID. The level-1 scheduler  106  schedules service for the BSS&#39;s  80 . The level-2 scheduler  108  schedules service for the client stations  70  within each BSS  80  according to the service parameters in the service table  90 . 
     For the upstream data, from the client to the AP  60  or for peer-to-peer data between two clients, the AP  60  uses service parameters of a traffic class and a scheduler state to announce transmission opportunities (TxOPs) so a client station  70  can transmit during these TxOPs. 
     Quality of service (QOS) may be achieved in two ways: distributed QOS or QOS by centralized scheduling. In the distributed QOS approach, the service table  90  serves as an access control list. Specifically, service parameters such as number of BSS&#39;s  80 , maximum number of data streams per BSS  80 , etc., are used to limit the number of client stations  70  in a BSS  80  that can access the network  50 . Limiting the number of data streams per BSSID facilitates admission control. That is, the number of data streams per BSSID determines the number of client stations that can be added to a particular BSS  80 . 
     When a new network device (i.e., a new client station  70 ) is added to the network  50 , the device is added to an appropriate BSS  80  based on the type of the device (e.g., video, audio, etc.), that is, based on the class of service the device requires. The virtual AP for the BSS  80  to which the new client station  70  is added automatically services the client station  70  based on the service parameters for the BSS  80  without requiring any signaling mechanism. The added client station  70  receives the QOS guaranteed for the BSS  80  to which the client station  70  is added. No network reconfiguration or modification is required to properly service the newly added device. 
     For example, when a new video device is added to the network  50 , the new video device is added as a client station video.client(n) to Mynet.video BSS  80 - 1 . The video AP  62  automatically services video.client(n) according to the service parameters set for Mynet.video BSS  80 - 1  in the service table  90 . Video.client(n) automatically receives the QOS guaranteed to Mynet.video BSS  80 - 1 . 
     Additionally, arbitrary client stations  70  that do not conform to the parameter settings in the service table  90  are denied access to the network  50 . Specifically, based on the number of data streams is set for a BSS  80 , an arbitrary client station  70  that is not part of a BSS  80  is denied access to the network  50 . Thus, traffic between the AP  60  and the client stations  70  is controlled by limiting the number of client stations  70  per BSS  80  in the service table  90 . 
     In centralized scheduling, the service table  90  is used to program a scheduler or a set of schedulers in the AP  60 . The virtual AP&#39;s communicate with the respective BSS&#39;s  80  using the BSSID&#39;s of the respective BSS&#39;s  80 . Each virtual AP services the client stations  70  within that BSS  80  using the BSSID of the BSS  80  and the service parameters in the service table  90  for that BSS  80 . The virtual AP&#39;s do not use any signaling mechanisms to service the client stations  70 . Instead, each virtual AP schedules traffic to and from the client stations  70  in a BSS  80  based on the BSSID of the BSS  80  and based on the service parameters for the service class of the BSS  80 . 
     Specifically, the level-1 scheduler  106  and the level-2 scheduler  108  schedule service for the data streams of the client stations  70  in the BSS&#39;s  80 . The level of priority for the service that a data stream of a client station  70  receives is based on the service parameters in the service table  90  for the BSS  80  that comprises the client station  70 . The level-1 scheduler  106  schedules service for the BSS&#39;s  80 . The level-2 scheduler  108  schedules service for the client stations  70  within each BSS  80  according to the service parameters in the service table  90 . A scheduler essentially creates transmit opportunities for virtual AP&#39;s to transmit data to client stations  70  within time slots reserved for each BSS  80  according to the service table  90 . Level-1 and level-2 schedulers can be combined into one scheduler, and traffic can be scheduled in multiple ways. 
     Referring now to  FIGS. 8-9 , the level-1 scheduler  106  and the level-2 scheduler use a round-robin scheme to schedule transmit times for BSS&#39;s  80  and client stations  70  within the BSS&#39;s  80 , respectively. For example, assuming transmission begins with BSS 1   80 - 1  as indicated by an arrow marked “A” in  FIG. 8  and proceeding clockwise, the level-1 scheduler  106  schedules transmit times for the BSS&#39;s  80  in the following order. BSSID 1 , BSSID 1 , BSSID 2 , BSSID 3 , BSSID 1 , BSSID 2 , BSSID 1 , and BSSID 3 . 
     The level-2 scheduler  108  schedules times for individual client stations  70  within the respective BSS&#39;s  80 . For example, assuming transmission begins with client 1   72 - 1  in BSS 1   80 - 1  as indicated by an arrow marked “B” in  FIG. 9  and proceeding clockwise, the level-2 scheduler  108  schedules transmit times for the client stations  70  within the BSS&#39;s  80  in the following order. BSSID 1 /Client 1 , BSSID 1 /Client 1 , BSSID 2 /Client 1 , BSSID 3 /Client 1 , BSSID 1 /Client 2 , BSSID 2 /Client 2 , BSSID 1 /Client 2 , and BSSID 3 /Client 2 . 
     Referring now to  FIG. 10 , data received by client stations  70  is not managed by queues  104 . Level-1 scheduler  106  and level-2 scheduler  108  manage the data received by the client stations  70 .  FIG. 10  shows an exemplary polling scheme used to receive data by two client stations  70  in a BSS  80 . 
     For example, Client 1   72 - 1  in BSS 1   80 - 1  transmits a request  120  for data to the virtual AP  62 . When Client 1   72 - 1  gains priority based on the round-robin scheduling scheme, Client 1   72 - 1  receives data  122  from the virtual AP  62 . Similarly, Client 2   72 - 2  in BSS 1   80 - 1  transmits a request  124  for data to the virtual AP  62 . When Client 2   72 - 2  gains priority based on the round-robin scheduling scheme, Client 2   72 - 2  receives data  126  from the virtual AP  62 , etc. 
     Additionally, unscheduled automatic power save delivery settings for client stations  70  can also be defined in the service table  90 . Generally, a client station  70  may go to sleep and request service upon waking up. Typically, a client station  70  informs an AP  60  when the client station  70  is going to sleep and when the client station  70  will wake up. 
     A parameter can be defined in the service table  90  to limit the number times a client station  70  may wake up. That is, a client station  70  in a BSS  80  may be programmed to sleep longer than normal. In other words, although a client station  70  in a BSS  80  wakes up, the virtual AP corresponding to the BSS  80  may ignore a request from the client station  70  if that virtual AP is not currently scheduled to service the BSS  80 . The virtual AP services the client station  70  only when the virtual AP is scheduled to service the BSS  80  that comprises that client station  70 . 
     The round-robin scheduling scheme for level-1 scheduler  106  and level-2 scheduler  108  can be predetermined, and the AP  60  can be pre-programmed accordingly. The round-robin scheduling scheme does not use a signaling mechanism such as RSVP protocol to schedule and guarantee QOS. 
     Instead, the round-robin scheduling scheme uses the BSSID of a BSS  80  and the service parameters for the BSS  80  in the service table  90  to guarantee QOS for the BSS  80  and to the client stations  70  within that BSS  80 . Additionally, the round-robin scheduling scheme limits access to a service class by limiting a number of client stations  70  that can join a BSS  80  based on service parameters such as the number of data streams per BSS  80  set in the service table  90 . 
     Referring now to  FIG. 11 , a single client station such as Client 4  may occasionally be part of more than one BSS and therefore may share multiple BSSID&#39;s. For example, Client 4  may be a laptop computer that is used for video-conferencing and for downloading a text file simultaneously. In that case, Client  4  may share BSSID 1  (for video service) and BSSID 3  (for data service). Thus, Client 4  can receive different QOS for video and data streams. 
     The AP  60  treats Client  4  as two virtual client stations with two virtual MAC addresses. A virtual client station using a video application is serviced by the video AP  61 , and a virtual client station downloading a text file is serviced by the data AP  66 . Each virtual client station is serviced by the respective virtual AP according to the schedule set for the respective virtual AP in the service table  90 . A module such as a service client may be installed in an appropriate layer of an operating system of a computer such as Client 4  to emulate multiple virtual clients as described herein. 
     When a consumer buys a new network device such as a high definition TV, the consumer may add the TV to the network  50  as follows. The consumer powers up the TV. The consumer uses a remote control to bring up a network configuration menu on the TV screen. From the menu, the consumer selects a virtual AP of an appropriate BSS  80  based on the service class of the device being added. For example, to add the TV, the consumer may select a video AP  62  that may be entitled Mynet.video. The TV joins the network as Mynet.video.client 1  or Mynet.video.client 2 . 
     The selection of Mynet.video.client 1  or Mynet.video.client 2  automatically associates the TV with the video AP  62 . The TV receives a quality of service that is guaranteed to the video AP  62  based on the parameter settings in the service table  90  for video AP  62 . The number of data streams for the video AP  62  in the service table  90  determines whether the consumer can add the TV to the network  50 . The TV is precluded from joining the network  50  if available bandwidth is insufficient to provide adequate QOS to the TV. Thus, the number of data streams setting serves as an admission control feature that limits the number of devices that can access the network  50 . 
     If a network  50  has multiple TV&#39;s, an additional BSSID called a multicast BSSID may be added to the service table  90 . The multicast BSSID functions like a TV broadcast station. The number of channels that a multicast BSSID can transmit is limited to the number of data streams pre-set for the video AP  61 . Multiple TV&#39;s can queue into one of the data streams. 
     Occasionally, a consumer may wish to view an identical channel on more than one TV, or two viewers may wish to watch an identical data stream on two TV&#39;s. A simple multicast, however, is not sufficient when the two TVs are located in different environments and receive different network performance. In that case, a content-based differentiation is needed to route identical data to more than one client station. This is achieved by subdividing the video AP  62  into multiple BSSID&#39;s such as Mynet.video 1 , Mynet.video 2 , etc., and by assigning one data stream per BSSID. 
     For example, a first BSSID and a first of the two data streams for the video AP  62  may be assigned to mynet.video 1  that services a first TV. A second BSSID and a second of the two data streams for the video AP  62  may be assigned to Mynet.video 2  that services a second TV. The TV connected to mynet.video 1  and the TV connected to Mynet.video 2  will display the same channel. Service priority levels for Mynet.video 1  and Mynet.video 2  may be set differently. 
     When the number of TV&#39;s seeking access to the network  50  exceeds the total number of data streams pre-set for the video AP  62 , the additional TV may be denied access to the network. Alternatively, the additional TV may attempt to join either the mynet.video 1  virtual AP or the mynet.video 2  virtual AP. The consumer may accomplish this by trying to select an appropriate AP in the network configuration menu of the TV using the remote control for the TV. If Mynet.video 1  and Mynet.video 2  are unavailable, the additional TV may join the network after one of Mynet.video 1  and Mynet.video 2  becomes available. 
     Referring now to  FIG. 12 , an exemplary method  140  for providing QOS using virtual AP&#39;s begins in step  142 . Using the method  140 , a MAC module  100  determines which client station  70  in a BSS  80  should be serviced based on a BSSID in a header of input data. To simplify explanation, the method  140  is shown to provide QOS to client stations  70  that utilize three classes of service, (i.e., video, audio, and data). As can be appreciated, however, QOS can be similarly provided to client stations  70  that may utilize many more classes of service. 
     In step  144 , a round-robin scheduling scheme for BSS&#39;s  80  and client stations  70  is programmed in a level-1 scheduler  106  and a level-2 scheduler  108  based on a set of service parameters in a service table  90 . The MAC module  100  determines the BSSID in the header of the input data in step  146 . 
     The MAC module  100  determines whether the BSSID matches a BSSID of a video AP  62  in step  154 . If true, a level-1 scheduler  106  determines whether BSS 1   80 - 1  is currently scheduled for service in step  156  based on the round-robin scheduling scheme. If true, a level-2 scheduler  108  determines whether the client station  72  requesting service is currently scheduled for service in step  158  based on the round-robin scheduling scheme. If true, the video AP  62  services the client station  72  in step  160 , and the method  140  returns to step  146 . If any of the results in steps  154 ,  156 , or  158  are false, the method  140  proceeds to step  162 . 
     The MAC module  100  determines whether the BSSID matches a BSSID of an audio AP  64  in step  162 . If true, a level-1 scheduler  106  determines whether BSS 2   80 - 2  is currently scheduled for service in step  164  based on the round-robin scheduling scheme. If true, a level-2 scheduler  108  determines whether the client station  74  requesting service is currently scheduled for service in step  166  based on the round-robin scheduling scheme. If true, the audio AP  64  services the client station  74  in step  168 , and the method  140  returns to step  146 . If any of the results in steps  162 ,  164 , or  166  are false, the method  140  proceeds to step  170 . 
     The MAC module  100  determines whether the BSSID matches a BSSID of a data AP  66  in step  170 . If true, a level-1 scheduler  106  determines whether BSS 3   80 - 3  is currently scheduled for service in step  172  based on the round-robin scheduling scheme. If true, a level-2 scheduler  108  determines whether the client station  76  requesting service is currently scheduled for service in step  174  based on the round-robin scheduling scheme. If true, the data AP  66  services the client station  76  in step  176 , and the method  140  returns to step  146 . If any of the results in steps  170 ,  172 , or  174  are false, the method  140  returns to step  146 . 
     Referring now to  FIGS. 13A-13D , various exemplary implementations of the present invention are shown. Referring now to  FIG. 13A , the present invention can be implemented in a high definition television (HDTV)  420 . The HDTV  420  receives HDTV input signals in either a wired or wireless format and generates HDTV output signals for a display  426 . In some implementations, signal processing circuit and/or control circuit  422  and/or other circuits (not shown) of the HDTV  420  may process data, perform coding and/or encryption, perform calculations, format data and/or perform any other type of HDTV processing that may be required. 
     The HDTV  420  may communicate with mass data storage  427  that stores data in a nonvolatile manner such as optical and/or magnetic storage devices. The HDD may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8″. The HDTV  420  may be connected to memory  428  such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. The HDTV  420  also may support connections with a WLAN via a WLAN network interface  429 . 
     Referring now to  FIG. 13B , the present invention can be implemented in a cellular phone  450  that may include a cellular antenna  451 . In some implementations, the cellular phone  450  includes a microphone  456 , an audio output  458  such as a speaker and/or audio output jack, a display  460  and/or an input device  462  such as a keypad, pointing device, voice actuation and/or other input device. The signal processing and/or control circuits  452  and/or other circuits (not shown) in the cellular phone  450  may process data, perform coding and/or encryption, perform calculations, format data and/or perform other cellular phone functions. 
     The cellular phone  450  may communicate with mass data storage  464  that stores data in a nonvolatile manner such as optical and/or magnetic storage devices for example hard disk drives HDD and/or DVDs. The HDD may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8″. The cellular phone  450  may be connected to memory  466  such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. The cellular phone  450  also may support connections with a WLAN via a WLAN network interface  468 . 
     Referring now to  FIG. 13C , the present invention can be implemented in a set top box  480 . The set top box  480  receives signals from a source such as a broadband source and outputs standard and/or high definition audio/video signals suitable for a display  488  such as a television and/or monitor and/or other video and/or audio output devices. The signal processing and/or control circuits  484  and/or other circuits (not shown) of the set top box  480  may process data, perform coding and/or encryption, perform calculations, format data and/or perform any other set top box function. 
     The set top box  480  may communicate with mass data storage  490  that stores data in a nonvolatile manner. The mass data storage  490  may include optical and/or magnetic storage devices for example hard disk drives HDD and/or DVDs. The HDD may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8″. The set top box  480  may be connected to memory  494  such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. The set top box  480  also may support connections with a WLAN via a WLAN network interface  496 . 
     Referring now to  FIG. 13D , the present invention can be implemented in a media player  500 . In some implementations, the media player  500  includes a display  507  and/or a user input  508  such as a keypad, touchpad and the like. In some implementations, the media player  500  may employ a graphical user interface (GUI) that typically employs menus, drop down menus, icons and/or a point-and-click interface via the display  507  and/or user input  508 . The media player  500  further includes an audio output  509  such as a speaker and/or audio output jack. The signal processing and/or control circuits  504  and/or other circuits (not shown) of the media player  500  may process data, perform coding and/or encryption, perform calculations, format data and/or perform any other media player function. 
     The media player  500  may communicate with mass data storage  510  that stores data such as compressed audio and/or video content in a nonvolatile manner. In some implementations, the compressed audio files include files that are compliant with MP3 format or other suitable compressed audio and/or video formats. The mass data storage may include optical and/or magnetic storage devices for example hard disk drives HDD and/or DVDs. The HDD may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8″. The media player  500  may be connected to memory  514  such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. The media player  500  also may support connections with a WLAN via a WLAN network interface  516 . Still other implementations in addition to those described above are contemplated. 
     Those skilled in the art can now appreciate from the foregoing description that the broad teachings of the present invention can be implemented in a variety of forms. Therefore, while this invention has been described in connection with particular examples thereof, the true scope of the invention should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, the specification and the following claims.

Technology Category: 5