System and method for maintaining channel connectivity in wireless LAN
By using multi-processor and controller technology in wireless devices, wireless connections are dynamically managed, and the problem of connection interference during off-channel activities and roaming is solved, achieving more stable and efficient wireless connection management.
Patent Information
- Application Number
- CN202410707641.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-07-31
- Filing Date
- 2024-06-03
- Publication Date
- 2025-02-14
AI Technical Summary
When a wireless device performs off-channel activities or roaming processes, existing Wi-Fi connections may be disturbed, and the new connection of the roaming target may not perform better than the old connection, resulting in the need to re-establish the old connection.
Dynamic management of wireless connections is achieved by using multiple processors and controllers in wireless devices. Specifically, the main processor performs channel scanning or establishes a new connection, while the auxiliary processor is responsible for tracking existing connections, ensuring quick switching back to the old connection if necessary.
Improves the stability and efficiency of wireless connections, reduces power consumption, and evaluates and selects better wireless connections more quickly during roaming.
Smart Images

Figure CN119450799A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates generally to systems and methods for handling wireless connections, and more particularly, to efficiently handling wireless connections when a wireless device performs off-channel activity or roaming procedures. Background Art
[0002] In a wireless device (e.g., a device including a Wi-Fi chip or integrated circuit), when the device already has a Wi-Fi connection (e.g., a connection to an AP), but initiates an off-channel activity (e.g., channel scanning) for any purpose, the existing Wi-Fi connection on a specific channel / band may be disturbed as the radio goes off the channel. In another scenario, when roaming (e.g., Wi-Fi roaming) occurs, once a roaming target (e.g., a new AP) is found, the Wi-Fi device (or its Wi-Fi chip) may try to establish a new connection with the roaming target by assuming that the connection with the new AP will be better than the existing connection with the old AP (e.g., the connection to the old AP). However, sometimes, if the connection with the new AP does not perform better than the old AP, the Wi-Fi chip may return to the existing network by reestablishing the connection with the old AP. Summary of the invention
[0003] In one aspect, the present disclosure provides a device comprising: multiple processors coupled to one or more network interfaces configured to provide wireless connectivity; and a controller configured to: establish a wireless connection via a first processor among the multiple processors; transfer the established wireless connection from the first processor to a second processor among the multiple processors in response to a trigger of the first processor scanning one or more channels, wherein the second processor is different from the first processor; and transfer the established wireless connection from the second processor back to the first processor in response to the second processor detecting data to be received from the established wireless connection.
[0004] In another aspect, the present disclosure provides a device comprising: a plurality of processors coupled to one or more network interfaces configured to provide wireless connectivity; a controller configured to: establish a first wireless connection to a first access point via a first processor among the plurality of processors; transfer the first wireless connection from the first processor to a second processor among the plurality of processors, wherein the second processor is different from the first processor; establish a second wireless connection to a second access point via the first processor; and in response to determining that a performance metric of the first wireless connection is greater than a performance metric of the second wireless connection, transfer the first wireless connection from the second processor back to the first processor.
[0005] On the other hand, the present disclosure provides a method comprising: establishing a first wireless connection via a first processor among a plurality of processors coupled to one or more network interfaces configured to provide wireless connectivity; in response to a triggering of the first processor to perform an operation, transferring the established first wireless connection from the first processor to a second processor among the plurality of processors, wherein the second processor is different from the first processor; and transferring the established first connection from the second processor back to the first processor when the first processor performs the operation. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The various objects, aspects, features and advantages of the present disclosure will become more apparent and better understood by referring to the detailed description taken in conjunction with the accompanying drawings, wherein the same reference numerals identify corresponding elements throughout the entire text. In the drawings, the same reference numerals generally indicate the same, functionally similar and / or structurally similar elements.
[0007] Figure 1 is a schematic block diagram of a configuration including an example Always-On Channel Connectivity (AOCC) system (or AOCC device) and multiple access points (APs) according to an embodiment.
[0008] Figure 2 is a schematic block diagram of a computing system according to an embodiment.
[0009] Figure 3 is a timing diagram of AOCC operation for performing channel scanning according to an embodiment.
[0010] Figure 4 is a timing diagram of AOCC operation for connecting to a new AP according to an embodiment.
[0011] Figure 5 is a flow chart showing a process of performing AOCC operations according to an embodiment.
[0012] The details of various embodiments of the method and system are set forth in the accompanying drawings and the description below. DETAILED DESCRIPTION
[0013] The following disclosure provides many different embodiments or examples for implementing the different features of the provided subject matter. Specific examples of components and arrangements are described below to simplify the present disclosure. Of course, these are merely examples and are not intended to be limiting. For example, in the following description, forming a first feature above or on a second feature may include an embodiment in which the first and second features are formed in direct contact, and may also include an embodiment in which an additional feature may be formed between the first and second features so that the first and first features are not in direct contact. In addition, in various examples, the present disclosure may repeat reference numbers and / or letters. This repetition is for the purpose of simplicity and clarity and does not itself indicate the relationship between the various embodiments and / or configurations discussed.
[0014] Various embodiments disclosed herein relate to a device including multiple processors coupled to one or more network interfaces configured to provide wireless connectivity, and a controller. In some embodiments, the processor may be one or more microprocessor units or dedicated processors, one or more single-core or multi-core processors, or any circuit system that executes instructions (or computer programs) received from a memory. In some embodiments, the controller may be any hardware (e.g., microprocessor), software, firmware, or any combination thereof that can control multiple processors and network interfaces to provide wireless connectivity. In some embodiments, one or more network interfaces may include physical and data link layers of the OSI model for network communication, wireless (e.g., radio) receivers / transmitters (e.g., for any of the IEEE 802.11 protocols, near field communication "NFC", Bluetooth, ANT, or any other wireless protocols), or any hardware (e.g., microprocessor), software, firmware, or any combination thereof that can provide wireless connectivity to the device. The controller may be configured to establish or create a wireless connection via a first processor in a plurality of processors. In some embodiments, establishing or creating a wireless connection may include (1) the device associating with a network or another wireless device, (2) the device adding a network or another wireless device, (3) the device exchanging connection or association requests or connection or association responses with another wireless device, (4) the device obtaining an association or connection identifier indicating an association or connection with a network or another wireless device, or (5) any operation of associating, joining, or communicating with a network or another wireless network.
[0015] In some embodiments, the wireless connection may be one or more network connections for any of the IEEE 802.11 protocol, near field communication "NFC", Bluetooth, ANT, or any other wireless protocol, or any wireless connection in the layers of the OSI model for network communication (e.g., physical and data link layers). In response to a trigger of the first processor scanning one or more channels, the controller may be configured to transfer the established wireless connection from the first processor to a second processor of the plurality of processors. The second processor may be different from the first processor. In some embodiments, the trigger of the first processor scanning one or more channels may be any event or situation related to the start of scanning (e.g., an event of the first processor starting the scanning process, an event of the first processor conveying information about the start of scanning to the controller, etc.). In some embodiments, scanning may be any operation of scanning / inspecting / perspective / checking one or more wireless networks to select an appropriate channel (e.g., a channel with relatively low interference or low traffic). In response to the second processor detecting data to be received from the established wireless connection, the controller may be configured to transfer the established wireless connection from the second processor back to the first processor. In some embodiments, the transfer of the wireless connection from the second processor to the first processor may cause the first processor to handle / process traffic (e.g., wireless packets / frames) received from or transmitted to the wireless connection and cause the second processor to not handle / process such traffic.
[0016] In some embodiments, in response to completing the scan of one or more channels, the controller may be configured to transfer the established connection from the second processor back to the first processor. In some embodiments, the controller may be configured to establish a wireless connection to an access point via the first processor. In some embodiments, the access point may be a networking hardware device that allows Wi-Fi (802.11) devices to connect to a wired network, a software-enabled AP, or hardware (e.g., a microprocessor), software, firmware, or any combination thereof that can provide wireless connections using wireless LAN technology. In response to transferring the established connection from the first processor to the second processor, the second processor may be configured to receive one or more beacons from the access point. In some embodiments, the beacon may be a beacon frame or management frame in an IEEE 802.11-based WLAN, or any frame that is periodically transmitted to announce the presence of a wireless LAN and synchronize members of a service set of the wireless LAN.
[0017] In some embodiments, in response to transferring the established wireless connection from the second processor back to the first processor, the first processor may be configured to receive data from the access point. In response to completing the reception of data from the access point, the controller may be configured to transfer the established wireless connection from the first processor to the second processor. In some embodiments, completing the reception of data may be completing the reception of all data that has been detected to be received from the established wireless connection. In some embodiments, the data to be received from the established wireless connection may be unicast data addressed to the device. In some embodiments, unicast data may be any data exchanged / transmitted / received using unicast, which is a single direct request sent from one host / device (e.g., a wireless host / device) to another host / device.
[0018] Various embodiments disclosed herein are directed to a device comprising a plurality of processors coupled to one or more network interfaces configured to provide wireless connectivity, and a controller. The controller may be configured to establish a first wireless connection to a first access point via a first processor of the plurality of processors. The controller may be configured to transfer the first wireless connection from the first processor to a second processor of the plurality of processors. The second processor may be different from the first processor. The controller may be configured to establish a second wireless connection to a second access point via the first processor. In response to determining that a performance metric of the first wireless connection is greater than a performance metric of the second wireless connection, the controller may be configured to transfer the first wireless connection from the second processor back to the first processor.
[0019] In some embodiments, in response to determining that the performance metric of the second wireless connection is greater than the performance metric of the first wireless connection, the controller may be configured to terminate or disconnect the first wireless connection transferred to the second processor. In some embodiments, terminating or disconnecting the first wireless connection may include (1) the device disassociating from the network or another wireless device, (2) the device disconnecting from the network or another wireless device, (3) the device exchanging a disconnection or disassociation request or a disconnection or disassociation response with another wireless device, or (4) stopping or interrupting any operation maintaining the first wireless connection. In some embodiments, the performance of the wireless connection may be measured using a metric including at least one of bandwidth, processing power, signal strength, network jitter, uptime, packet loss, or latency of the wireless connection, or any metric that may indicate the efficiency and stability of various activities and components of the wireless network. In some embodiments, the controller may be configured to establish a second wireless connection to the second access point via the first processor while the second processor maintains the first wireless connection to the first access point.
[0020] In some embodiments, in response to transferring the first wireless connection from the first processor to the second processor, the second processor may be configured to receive one or more beacons from the first access point. In some embodiments, in response to the second processor detecting data to be received from the first access point, the controller may be configured to transfer the first wireless connection from the second processor back to the first processor. In response to transferring the first wireless connection from the second processor back to the first processor, the first processor may be configured to receive data from the first access point.
[0021] Various embodiments disclosed herein are directed to a method. The method includes establishing a first wireless connection via a first processor of a plurality of processors coupled to one or more network interfaces configured to provide wireless connectivity. The method may include, in response to a triggering of the first processor to perform an operation, transferring the established first wireless connection from the first processor to a second processor of the plurality of processors. The second processor may be different from the first processor. The method may include transferring the established first connection from the second processor back to the first processor when the first processor performs the operation.
[0022] In some embodiments, the operation may be scanning one or more channels. When transferring the established first connection from the second processor back to the first processor, in response to the second processor detecting data to be received from the established first connection, the established first connection may be transferred from the second processor back to the first processor. In response to completing the scanning of the one or more channels, the established first connection may be transferred from the second processor back to the first processor.
[0023] In some embodiments, a first connection to a first access point may be established. The operation may be to establish, via the first processor, a second wireless connection to a second access point. When transferring the established connection from the second processor back to the first processor, in response to determining that a performance metric of the first wireless connection is greater than a performance metric of the second wireless connection, the first wireless connection may be transferred from the second processor back to the first processor. In some embodiments, in response to determining that the performance metric of the second wireless connection is greater than the performance metric of the first wireless connection, the first wireless connection transferred to the second processor may be terminated.
[0024] In one aspect, in a wireless device (e.g., a device including a Wi-Fi chip or integrated circuit), when the device already has a Wi-Fi connection (e.g., a connection to an AP), but initiates off-channel activity (e.g., a channel scan) for any purpose, the existing Wi-Fi connection on a specific channel / band may be interfered with as the radio goes off-channel. To avoid this interference, the Wi-Fi device may simulate entering power saving and then scanning. However, since the entire scan may take several seconds to complete, the existing connection may not be off-channel (e.g., power saving state) for a long period of time, as this will affect the user experience. Therefore, the Wi-Fi chip may periodically move to the Wi-Fi on channel (e.g., active state) and query the AP whether the AP has any downlink (DL) traffic to be served, and then go off-channel again. This process may be repeated at almost every beacon interval or delivery traffic indication message (DTIM) interval, regardless of whether DL traffic is available.
[0025] In another aspect, when roaming (e.g., Wi-Fi roaming) occurs, once a roaming target (e.g., a new AP) is found, the Wi-Fi device (or its Wi-Fi chip) may attempt to establish a new connection with the roaming target by assuming that the connection with the new AP will be successful and will also be better than the existing connection (e.g., the connection to the old AP). However, this may not always be the case. Sometimes, if the connection with the new AP does not perform better than the old AP, the Wi-Fi chip may need to go back to the existing network. In such cases, the Wi-Fi chip may need to reestablish a connection with the old AP because the Wi-Fi device has briefly left the existing connection for a period of time when the Wi-Fi device has been connected to the new AP.
[0026] To address this issue, according to certain aspects, embodiments of the present disclosure relate to a technique for providing an efficient way to perform off-channel activities (e.g., channel scanning) when a Wi-Fi device is connected to a BSS network or AP, and / or to check for other Wi-Fi networks / APs for use (e.g., opportunistic roaming or location scanning, etc.).
[0027] In some embodiments, an always-on channel connectivity (AOCC) system (or AOCC device) may include a controller, multiple processors (e.g., a network processor, a network core, a media access control (MAC) / PHY processor, or a Wi-Fi processor), and / or multiple network interfaces (e.g., TX / RX chains or interfaces). For example, for any of the IEEE 802.11 protocol, near field communication "NFC", Bluetooth, ANT, or any other wireless protocol, the multiple network interfaces may include one or more wireless (e.g., radio) receivers and / or one or more wireless transmitters. The AOCC system or device may have a configuration similar to that of a computing system. In some embodiments, the multiple processors may include one or more MAC / PHY parallel processing units associated with a minimum 1x1 Tx / Rx chain / interface. In some embodiments, the multiple processors may include one or more MAC / PHY parallel processing units associated only with an Rx chain / interface. The multiple processors may include one or more high-power MAC / PHY processors as main (conventional) processors, and one or more low-power MAC / PHY processors (e.g., ultra-low power Wi-Fi (MAC / PHY) cores) as auxiliary (sub) processors. For example, a low-power MAC / PHY processor as an auxiliary processor may listen (or receive) frames at a lower data rate (e.g., 20 MHz bandwidth) in parallel with the main processor in a 1x1 Tx / Rx chain. The auxiliary processor may optionally have the ability to transmit at a lower data rate without affecting its ultra-low power characteristics. The auxiliary processor may share a Tx / Rx chain with the main processor.
[0028] In some embodiments, the AOCC system / device may establish and / or maintain one or more wireless connections with corresponding APs. The controller may be any hardware (e.g., microprocessor), software, firmware, or any combination thereof capable of controlling multiple processors and network interfaces to provide wireless connectivity to multiple APs. The processor may be one or more microprocessor units or dedicated processors, one or more single-core or multi-core processors, or any circuit system that executes instructions (or computer programs) received from a memory to perform wireless network operations (e.g., MAC / PHY layer operations). Multiple network interfaces may include the physical and data link layers of the OSI model for network communications, wireless (e.g., radio) receivers / transmitters (e.g., for any of the IEEE 802.11 protocols), or any hardware, software, firmware, or any combination thereof that may provide wireless connectivity from the AOCC system to multiple APs.
[0029] In some embodiments, the controller may control multiple processors to implement a scan offload or beacon offload mechanism. For example, if the multiple processors include a high-power Wi-Fi processor (or core / slice) as a main (or regular) processor and a low-power Wi-Fi processor (or core / slice) as an auxiliary (or sub) processor, the auxiliary processor may perform scan offload or beacon offload when necessary (e.g., when the main processor performs channel scanning or attempts to establish a new connection).
[0030] In some embodiments, if the secondary processor has transmit capability, the secondary processor may perform channel scanning for scan offloading while the primary processor is reserved for connection. If the secondary processor does not have transmit capability, the secondary processor may not effectively perform active scanning and may only be used for background scanning, but not for establishing a connection to a new AP.
[0031] In some embodiments, in response to the controller, the primary processor may be configured to sleep as an operation of a beacon offload mechanism, and in response to the controller, the secondary processor may be configured to periodically receive beacon frames, such as at a target beacon transmit time (TBTT). In this manner, the AOCC system may offload the connection to the secondary processor and use the primary processor to perform channel scans or attempt to establish a new connection in order to maintain both the existing and new connections for a short period of time to evaluate the performance of the existing and new connections and determine which of the two connections performs better.
[0032] In one approach, in an AOCC system (e.g., a Wi-Fi AOCC system) including a main processor and an auxiliary processor, when the main processor is about to perform a channel scan, the main processor may put the current wireless link (on a connected channel) into a power-saving mode and leave the channel, while the auxiliary processor is brought to the connected channel. Thus, the auxiliary processor may partially take over the existing connection to track beacons (e.g., beacon frames in 802.11). In this way, the main processor may complete the scan in a single stretch without having to disturb the existing connection because the connection has been offloaded to the auxiliary processor.
[0033] In some embodiments, the auxiliary processor (e.g., a low-power Wi-Fi processor) may be associated with only the Rx interface. In this case, if the auxiliary processor receives a beacon frame with a traffic indication message (TIM), the scanning operation may be interrupted because the main processor may switch back to the existing connection on the connected channel to receive / handle / process the data indicated in the TIM. This switch-back operation (or the operation of transferring the connection back to the main processor) may not be performed regularly or periodically, but only on an as-needed basis. Therefore, scanning and / or subsequent roaming connections may be faster and more efficient than existing available solutions (e.g., compared to solutions in which the switch-back operation is repeated almost every beacon interval or DTIM interval regardless of whether DL traffic is available). In addition, this switch-back mechanism can be used to save energy by completing off-channel activities early by parking / transferring the existing connection to the auxiliary processor and moving / transferring the connection back to the main processor only on an as-needed basis.
[0034] In some embodiments, when scanning or roaming is initiated or triggered when the AOCC system (and its Wi-Fi chip) already has a Wi-Fi connection, the connection can be offloaded or transferred from the main processor (e.g., a high-power Wi-Fi processor) to the auxiliary processor (e.g., a low-power Wi-Fi processor). During normal time, the auxiliary processor may be in an off state or standby mode, but the auxiliary processor may become awake just before the TBTT to receive the beacon frame. Once the beacon frame received via the auxiliary processor is processed, the controller of the AOCC system can decode the TIM information element (IE) in the beacon frame and decide / determine whether the controller is to return the main processor to the actual data exchange with the connected AP.
[0035] In some embodiments, in response to determining that the TIM IE indicates that there are no unicast packets to be processed for the client (corresponding to the AOCC system), the controller may retain the auxiliary processor on the connected channel and put it back into standby mode until the next wakeup on TBTT or DTIM. In response to determining that the TIM IE only indicates broadcast / multicast packets to be processed for the client, the controller may retain the auxiliary processor on the connected channel to receive broadcast / multicast packets, or put it back into standby mode until the next wakeup on TBTT or DTIM.
[0036] In some embodiments, in response to determining that the TIM IE indicates that unicast packets are pending or available at the AP for the client (corresponding to the AOCC system), the controller may cause the main processor to exit the energy saving mode and return to the connected channel. The controller may determine whether the auxiliary processor has the minimum transmission capability. In response to determining that the auxiliary processor has the minimum transmission capability, the controller may control the auxiliary processor to transmit a NULL frame or a PS-POLL frame to the AP, while causing the main processor to return to the connected channel in parallel. In response to determining that the auxiliary processor does not have the minimum transmission capability, the controller may cause the main processor to return to the connected channel, and then cause the main processor to send a NULL frame or a PS-POLL frame to the AP to indicate that the client has exited the energy saving mode and is ready to receive any unicast data traffic.
[0037] In some embodiments, while the main processor is receiving / processing unicast data traffic, the controller may control the auxiliary processor to perform a scan on a channel that the main processor has not yet completed scanning due to switching back to the connected channel (provided that the auxiliary processor has a transmit capability). When the main processor completes receiving / processing unicast data traffic, the controller may control the main processor to resume scanning and control the auxiliary processor to switch back to the connected channel to receive the beacon frame. After the main processor completes the scan, the controller may control the main processor to switch back to the connected channel to receive the beacon frame.
[0038] In one approach, in an AOCC system (e.g., a Wi-Fi AOCC system) that includes a primary processor and a secondary processor, when the primary processor is about to establish a connection with a new AP as part of roaming, or even after completing a connection with the new AP for a short period of time to evaluate which of the two connections performs better, the primary processor can put the current connection into a power-saving mode and attempt to connect with the new AP, while the secondary processor is brought to the old connection. Thus, the secondary processor can partially take over the existing connection to track beacons (e.g., beacon frames in 802.11). In this way, the controller can maintain the context of both connections and switch the (primary and secondary) processors appropriately. The primary processor can also make a new target connection as part of roaming without having to bother with the existing connection because the connection has been offloaded to the secondary processor.
[0039] In some embodiments, once the controller finds a new roaming target (e.g., a new AP) through roaming scanning, the controller can use the primary processor to make / establish a new connection by parking / transferring the existing connection to the secondary processor. The secondary processor can keep track of beacon frames from the existing connected AP and notify the controller of the data traffic to be processed (e.g., based on the TIM information element (IE) in the beacon frame). The controller can decide / determine when to switch the primary processor to the old connection to handle DL traffic from the existing connected AP.
[0040] In some embodiments, the controller may determine whether the controller is performing one of (1) an authentication frame exchange with the new AP, (2) an association frame exchange with the new AP, or (3) a 4-way handshake exchange with the new AP. In response to determining that the controller is performing one of exchanges (1) to (3) with the new AP, the controller may defer processing DL traffic from the old (existing) AP. In response to determining that the controller is between exchanges (1) to (3) with the new AP, the controller may switch the main processor to the old (existing) AP to process DL traffic with the old connection. In other words, when the main processor is performing critical activities on the new connection front end, then switching the connection back to the existing AP can be deferred to a logical point, but at the same time, the deferral can be limited within sensitive limits.
[0041] In some embodiments, when a new connection to a new AP is successfully made / established, the controller may evaluate the performance for the new AP by retaining the existing connection through the auxiliary processor. For example, the controller may compare the performance metric of the new connection with the performance metric of the existing connection, and determine whether the new connection performs better than the existing connection based on the result of the comparison (e.g., the performance metric of the new connection is greater than the performance metric of the existing connection). In some embodiments, the controller may compare the performance metric of the new connection with a corresponding threshold, and determine whether the new connection performs better than the existing connection based on the result of the comparison (e.g., the performance metric of the new connection is greater than the corresponding threshold). Examples of performance metrics of wireless connections may include, but are not limited to, bandwidth, processing power, signal strength, network jitter, uptime, packet loss or latency of the wireless connection, or any metric that may indicate the efficiency and stability of various activities and components of the wireless network.
[0042] In some embodiments, in response to determining that the new connection performs better than the existing connection (e.g., a performance metric of the new connection is greater than a performance metric of the existing connection), the controller may continue the new connection by disconnecting or terminating the existing connection. In response to determining that the new connection does not perform better than the existing connection, the controller may continue the existing connection by disconnecting or terminating the new connection.
[0043] In some embodiments, the auxiliary processor (e.g., a low-power Wi-Fi processor) may be associated only with the Rx interface. In this case, if the auxiliary processor receives a beacon frame with a TIM and the main processor is not performing critical activities on the new connection, the main processor may switch back to the existing connection to receive / handle / process the data indicated in the TIM. This switch-back operation (or the operation of transferring the connection back to the main processor) may not be performed regularly or periodically, but only on a needed basis. Therefore, subsequent roaming connections may be faster and more efficient than existing available solutions (e.g., compared to solutions in which the switch-back operation is repeated almost every beacon interval or DTIM interval regardless of whether DL traffic is available). In addition, this switch-back mechanism can be used to save energy by completing activities on the new connection early by parking / transferring the existing connection to the auxiliary processor and moving / transferring the connection back to the main processor only on a needed basis. In some embodiments, when transferring a connection from a first processor to a second processor, the controller may send / transfer context information (e.g., channel, address, connection status according to the IEEE 802.11 protocol or other wireless protocols) for maintaining the connection to the second processor, so that the second processor can take over and / or maintain the connection. In some embodiments, the context information (or connection information) may include (1) channel number, (2) bandwidth, (3) MAC addresses of local and remote devices, (4) timing synchronization function (TSF) timestamp or offset, or (5) hardware or firmware status or context or connection information. In some embodiments, the context information may be read or referenced by a first processor (e.g., a primary processor) and / or may be programmed on a second processor (e.g., an auxiliary processor). For example, the context information may be programmed on the processor in the same manner (using the same context information) as the processor establishes an initial connection.
[0044] In some embodiments, in response to determining that the TIM IE indicates that unicast packets are pending or available for the client (corresponding to the AOCC system) at the existing AP, the controller may cause the main processor to exit the power saving mode and return to the old connection. The controller may determine whether the auxiliary processor has the minimum transmission capability. In response to determining that the auxiliary processor has the minimum transmission capability, the controller may control the auxiliary processor to transmit a NULL frame or a PS-POLL frame to the AP, while causing the main processor to return to the old connection in parallel. In response to determining that the auxiliary processor does not have the minimum transmission capability, the controller may cause the main processor to return to the old connection, and then cause the main processor to send a NULL frame or a PS-POLL frame to the AP to indicate that the client has exited the power saving mode and is ready to receive any unicast data traffic.
[0045] In some embodiments, upon completion of the primary processor receiving / processing unicast data traffic, the controller may control the primary processor to resume activity on the new connection and control the secondary processor to switch back to the old connection to receive beacon frames. Upon completion of the primary processor performing activity on the new connection, or in response to determining that the new connection does not perform better than the existing connection, the controller may control the primary processor to switch back to the old connection to receive beacon frames.
[0046] The embodiments of the present disclosure have at least the following advantages and benefits. First, the embodiments of the present disclosure may provide useful techniques for efficiently performing channel scans or establishing new connections as part of roaming. When the main processor makes another connection to the roaming target AP, the existing connection may be retained on the auxiliary processor, and the controller may then decide which connection to use based on the performance of the connection. Using the AOCC system / device, any scans after the connection or any new connections as part of the roaming may be more efficient and at the same time have less power consumption, so the AOCC system / device may enhance the user experience with faster scanning, better roaming decisions, or concurrent operations, and save power in wireless devices (e.g., battery-powered Wi-Fi client devices).
[0047] Secondly, embodiments of the present disclosure may provide useful techniques for efficiently offloading connections to an auxiliary processor. When a connection is offloaded to an auxiliary processor, the main processor may not need to periodically return / switch back to an open channel to check if any DL data is available. Since this switch back operation is only performed on an as-needed basis, scan time and return time may be reduced. In addition, when a connection is offloaded to an auxiliary processor, broadcast / multicast packets may be received by the auxiliary processor itself.
[0048] Third, embodiments in the present disclosure may provide useful techniques for reducing power consumption in wireless devices. Power consumption may be smaller because the controller does not periodically return the main processor to the open channel, does not send a NULL frame with PM=0 without even knowing whether DL data is available at the AP, and does not send another NULL frame with PM=1 to get off the channel again. All of this power loss may be eliminated by parking the auxiliary processor in the open channel and waking up the auxiliary processor on TBTT or DTIM.
[0049] Fourth, embodiments of the present disclosure may provide useful techniques for managing concurrent connections using multiple network processors (eg, a primary processor and an auxiliary processor). AOCC may help maintain concurrent scenarios by better managing concurrent infrastructure mode Wi-Fi connections.
[0050] Figure 1is a schematic block diagram of a configuration 1000 including an example Always-On Channel Connectivity (AOCC) system (or AOCC device) 100 and a plurality of access points (APs) 150-1, 150-2, ..., 150-K (K is an integer greater than or equal to 1) according to an embodiment.
[0051] refer to Figure 1 , the AOCC system 100 may include a controller 10, a plurality of processors 12-1, 12-2, ..., 12-N, where N is an integer greater than 1 (e.g., a network processor, a network core, a MAC / PHY processor, or a Wi-Fi processor), and / or a plurality of network interfaces 14-1, 14-2, ..., 14-M, where M is an integer greater than 1 (e.g., a TX / RX chain or interface). The AOCC system or device 100 may have Figure 2 . The plurality of processors 12-1, 12-2, ..., 12-N may include one or more MAC / PHY parallel processing units associated with a minimum 1x1 Tx / Rx chain / interface (e.g., TX / RX interface 14-1). The plurality of processors may include one or more MAC / PHY parallel processing units associated only with an Rx chain / interface (e.g., TX / RX interface 14-2). The plurality of processors may include one or more high-power MAC / PHY processors (e.g., MAC / PHY processor 12-1) as main (conventional) processors, and one or more low-power MAC / PHY processors (e.g., ultra-low power Wi-Fi (MAC / PHY) core) as auxiliary (sub) processors (e.g., MAC / PHY processor 12-2). For example, the low power MAC / PHY processor 12-2 as an auxiliary processor may listen (or receive) frames at a lower data rate (e.g., 20 MHz bandwidth) in parallel with the main processor 12-1 in a 1x1 Tx / Rx chain. The auxiliary processor (e.g., TX / RX interface 14-M) may optionally have the ability to transmit at a lower data rate without affecting its ultra-low power characteristics. The auxiliary processor may share a Tx / Rx chain with the main processor.
[0052] refer to Figure 1 , the AOCC system / device 100 may establish and / or maintain one or more wireless connections 120-1, 120-2, ..., 120-K with corresponding APs 150-1, 150-2, ..., 150-K. The controller 10 may be any hardware (e.g., a processor 12-1, 12-2, ..., 12-N) capable of controlling a plurality of processors 12-1, 12-2, ..., 12-N and network interfaces 14-1, 14-2, ..., 14-M) to provide wireless connectivity to a plurality of APs 150-1, 150-2, ..., 150-K. Figure 2The microprocessor 2010 in the AOCC system may be a microprocessor 2010 in the AOCC system, software, firmware, or any combination thereof. The processors 12-1, 12-2, ..., 12-N may be one or more microprocessor units or special purpose processors, one or more single-core or multi-core processors, or any circuit system that executes instructions (or computer programs) received from a memory to perform wireless network operations (e.g., MAC / PHY layer operations). The multiple network interfaces 14-1, 14-2, ..., 14-M may include the physical and data link layers of the OSI model for network communications, wireless (e.g., radio) receivers / transmitters (e.g., for any of the IEEE 802.11 protocols), or any hardware, software, firmware, or any combination thereof that can provide wireless connectivity from the AOCC system to multiple APs.
[0053] In some embodiments, the controller 10 may control multiple processors 12-1, 12-2, ..., 12-N to implement a scan offload or beacon offload mechanism. For example, if the multiple processors include a high-power Wi-Fi processor (or core / slice) as a main (or regular) processor (e.g., 12-1) and a low-power Wi-Fi processor (or core / slice) as an auxiliary (or sub) processor (e.g., 12-2), the auxiliary processor 12-2 may perform scan offload or beacon offload when necessary (e.g., when the main processor performs channel scanning or attempts to establish a new connection). If the auxiliary processor has a transmit capability (e.g., processor 12-N), the auxiliary processor may perform channel scanning for scan offload while the main processor is reserved for connection. If the auxiliary processor does not have a transmit capability (e.g., processor 12-2), the auxiliary processor may not effectively perform active scanning and may only be used for background scanning, but not for establishing a connection to a new AP.
[0054] In some embodiments, the main processor 12-1 may be configured to sleep as an operation of a beacon offload mechanism in response to the controller 10, and the auxiliary processor 12-2 may be configured to periodically receive beacon frames, such as at TBTT, in response to the controller 10. In this way, the AOCC system 100 may offload the connection to the auxiliary processor 12-2 and use the main processor 12-1 to perform channel scanning or attempt to establish a new connection so as to maintain both the existing connection and the new connection for a short period of time to evaluate the performance of the existing and new connections and determine which of the two connections performs better.
[0055] Figure 22000 includes one or more processors 2010 communicating with memory 2060 via a communication system 2040 (e.g., a bus), at least one network interface controller 2030 having a network interface port for connecting to a network (not shown), and other components (e.g., input / output (“I / O”) components 2050). Typically, the processor 2010 will execute instructions (or computer programs) received from the memory. The illustrated processor 2010 incorporates or is directly connected to a cache memory 2020. In some examples, instructions are read from the memory 2060 into the cache memory 2020 and executed by the processor 2010 from the cache memory 2020.
[0056] In more detail, processor 2010 may be any logic circuitry that processes instructions (e.g., instructions extracted from memory 2060 or cache 2020). In many embodiments, processor 2010 is a microprocessor unit or a dedicated processor. Computing device 2050 may be based on any processor or processor group capable of operating as described herein. Processor 2010 may be a single-core or multi-core processor. Processor 2010 may be a plurality of different processors.
[0057] Memory 2060 may be any device suitable for storing computer-readable data. Memory 2060 may be a device with fixed storage or a device for reading removable storage media. Examples include all forms of volatile memory (e.g., RAM), nonvolatile memory, media and memory devices, semiconductor memory devices (e.g., EPROM, EEPROM, SDRAM, and flash memory devices), magnetic, magneto-optical disks, and optical disks (e.g., CD ROM, DVD-ROM, or The computing system 2000 may have any number of memory devices 2060 .
[0058] Cache memory 2020 is typically a form of computer memory placed in close proximity to processor 2010 for fast read times. In some implementations, cache memory 2020 is part of processor 2010, or is on the same chip as processor 2010. In some implementations, there are multiple levels of cache 2020, such as L2 and L3 cache layers.
[0059] The network interface controller 2030 manages data exchange via a network interface (sometimes referred to as a network interface port). The network interface controller 2030 handles the physical and data link layers of the OSI model for network communication. In some embodiments, some tasks of the network interface controller are handled by one or more processors 2010. In some embodiments, the network interface controller 2030 is part of the processor 2010. In some embodiments, the computing system 2000 has multiple network interfaces controlled by a single controller 2030. In some embodiments, the computing system 2000 has multiple network interface controllers 2030. In some embodiments, each network interface is a connection point of a physical network link (e.g., a Category 5 Ethernet link). In some embodiments, the network interface controller 2030 supports wireless network connections, and the interface port is a wireless (e.g., radio) receiver / transmitter (e.g., for any of IEEE 802.11 protocols, near field communication "NFC", Bluetooth, ANT, or any other wireless protocol). In some embodiments, the network interface controller 2030 implements one or more network protocols, such as Ethernet. Typically, computing device 2050 exchanges data with other computing devices via a physical or wireless link through a network interface. A network interface may be linked to another device directly or via an intermediate device (e.g., a network device that connects computing device 2000 to a data network such as the Internet, such as a hub, bridge, switch, or router).
[0060] The computing system 2000 may include, or provide an interface for, one or more input or output ("I / O") devices. Input devices include, but are not limited to, keyboards, microphones, touch screens, foot switches, sensors, MIDI devices, and pointing devices (e.g., a mouse or trackball). Output devices include, but are not limited to, video displays, speakers, refreshable Braille terminals, lights, MIDI devices, and 2-D or 3-D printers.
[0061] Other components may include I / O interfaces, external serial device ports, and any additional co-processors. For example, computing system 2000 may include interfaces (e.g., Universal Serial Bus (USB) interfaces) for connecting input devices, output devices, or additional memory devices (e.g., portable flash drives or external media drives). In some implementations, computing device 2000 includes additional devices such as co-processors, such as mathematical co-processors that can assist processor 2010 with high-precision or complex calculations.
[0062] Component 2050 may be configured to connect to external media, display 2070, input device 2080, or any other component or combination thereof in computing system 2000. Display 2070 may be a liquid crystal display (LCD), an organic light emitting diode (OLED), a flat panel display, a solid state display, a cathode ray tube (CRT), a projector, a printer, or other display device now known or later developed for outputting determined information. Display 2070 may serve as an interface for a user to view the operation of processor 2010, or specifically as an interface with software stored in memory 2060.
[0063] The input device 2080 may be configured to allow a user to interact with any component of the computing system 2000. The input device 2080 may be a plurality of pads, a keyboard, a cursor control device (such as a mouse), or a joystick. Moreover, the input device 2080 may be a remote control, a touch screen display (which may be a combination of the display 2070 and the input device 2080), or any other device operable to interact with the computing system 2000, such as any device operable to act as an interface between a user and the computing system 2000.
[0064] Figure 3 3000 is a timing diagram of AOCC operation for performing channel scanning according to an embodiment. In an AOCC system (e.g., Wi-Fi AOCC system) including a controller (e.g., controller 10), a main processor 31, and an auxiliary processor 32, when the main processor 31 is about to perform channel scanning (e.g., triggering scanning in step 301), the main processor 31 may place the current wireless link (on the connected channel) in a power saving mode and leave the channel, while the auxiliary processor 32 is brought to the connected channel (e.g., the current connection on the connected channel is switched to the auxiliary processor 32 in step 302). Therefore, the auxiliary processor 32 may partially take over the existing connection to track beacons (e.g., beacon frames 321, 322, 323, 324, 325, 327, 329). In this way, the main processor 31 can complete the scan (e.g., scanning different channels 341, 342, 343) in a single stretch without disturbing the existing connection because the connection has been offloaded to the auxiliary processor 32.
[0065] refer to Figure 3 , the auxiliary processor 32 (eg, a low power Wi-Fi processor) may be associated only with the Rx interface (eg, Figure 1304). In this case, if the auxiliary processor 32 receives a beacon frame with a TIM (e.g., the TIM indicates that unicast DL traffic is pending at the AP in step 304), then the scanning operation for the channel (e.g., channel 343) may be interrupted because the main processor 31 may switch back to the existing connection on the connected channel to receive / handle / process the data indicated in the TIM (e.g., the current connection on the connected channel is switched back to the main processor 31 in step 305). This switch-back operation (or the operation of transferring the connection back to the main processor) may not be performed regularly or periodically, but only on a needed basis. Therefore, scanning and / or subsequent roaming connections may be faster and more efficient than existing available solutions (e.g., compared to solutions in which the switch-back operation is repeated almost every beacon interval or DTIM interval regardless of whether DL traffic is available). In addition, this switch-back mechanism can be used to save energy by completing off-channel activities early by parking / transferring the existing connection to the auxiliary processor and moving / transferring the connection back to the main processor only on a needed basis.
[0066] refer to Figure 3 , when scanning or roaming is initiated or triggered in step 301 while the AOCC system (and its Wi-Fi chip) already has a Wi-Fi connection, the connection can be offloaded or transferred from the main processor 31 (e.g., a high-power Wi-Fi processor) to the auxiliary processor 32 (e.g., a low-power Wi-Fi processor). During normal time, the auxiliary processor 32 may be in an off state or standby mode, but the auxiliary processor 32 may become awake just before the TBTT to receive beacon frames (e.g., beacon frames 323, 324, 325). Once the beacon frames received via the auxiliary processor 32 are processed, the controller of the AOCC system (e.g., controller 10) can decode the TIM IE in the beacon frame and decide / determine whether the controller is to return the main processor 31 for actual data exchange with the connected AP.
[0067] In response to determining that the TIM IE indicates no unicast packets to be processed for the client (corresponding to the AOCC system) at step 303, the controller may retain the auxiliary processor 32 on the connected channel and put it back into standby mode until the next wakeup on TBTT or DTIM. In response to determining that the TIM IE only indicates broadcast / multicast packets to be processed for the client, the controller may retain the auxiliary processor 32 on the connected channel to receive broadcast / multicast packets at step 308, or put it back into standby mode until the next wakeup on TBTT or DTIM.
[0068] In response to determining at step 304 that the TIM IE indicates that unicast packets are pending or available for the client at the AP, the controller may cause the main processor to exit the energy saving mode and return to the connected channel (e.g., the current connection on the connected channel is switched back to the main processor 31 at step 305). The controller may determine whether the auxiliary processor 32 has the minimum transmission capability. In response to determining that the auxiliary processor 32 has the minimum transmission capability, the controller may control the auxiliary processor to transmit a NULL frame or a PS-POLL frame to the AP, while causing the main processor to return to the connected channel in parallel. In response to determining that the auxiliary processor 32 does not have the minimum transmission capability, the controller may cause the main processor to return to the connected channel, and then cause the main processor to send a NULL frame or a PS-POLL frame to the AP to indicate that the client has exited the energy saving mode and is ready to receive any unicast data traffic.
[0069] refer to Figure 3 , while the main processor 31 is receiving / processing 326 unicast data traffic, the controller may control the auxiliary processor 32 to perform scanning on the channel 343 that the main processor 31 has not yet completed scanning due to switching back to the connected channel in step 305 (provided that the auxiliary processor has the transmission capability). When the main processor 31 completes receiving / processing 326 unicast data traffic, the controller may control the main processor 31 to resume scanning (e.g., channels 345, 346), and control the auxiliary processor 32 to switch back to the connected channel to receive the beacon frame in step 307. After the main processor completes scanning in step 309, the controller may control the main processor 31 to switch back to the connected channel to receive the beacon frame (e.g., beacon frame 330) in step 310.
[0070] Figure 44000 is a timing diagram of AOCC operation for connecting to a new AP (e.g., AP2) according to an embodiment. In an AOCC system (e.g., Wi-Fi AOCC system) including a controller (e.g., controller 10), a main processor 41, and an auxiliary processor 42, when the main processor 41 is about to establish a connection with a new AP (e.g., AP2) as part of roaming (e.g., the main processor 41 attempts to connect to AP2 in step 401), or even after completing a connection with AP2 for a short period of time to evaluate which connection performs better between the two (e.g., connections to AP1 and AP2) (e.g., the controller evaluates the performance of the connection with AP2 in step 406), the main processor 41 may put the current connection in a power saving mode and attempt to connect to AP2, while the auxiliary processor 42 is brought to the old connection with AP1 (e.g., in step 402, the connection with AP1 is switched to the auxiliary processor 42). Thus, the auxiliary processor 42 can partially take over the existing connection (with AP1) to track beacons (e.g., beacon frames 421, 422, 423, 424, 425, 427, 428, 429). In this way, the controller can maintain the context of both connections (e.g., connections with AP1 and AP2) and switch the (primary and auxiliary) processors appropriately. The primary processor 41 can also make a new target connection as part of roaming without having to disturb the existing connection because the connection has been offloaded to the auxiliary processor 42.
[0071] refer to Figure 4 Once the controller finds a new roaming target (e.g., AP2) through roaming scanning, the controller can use the main processor 41 to make / establish a new connection 441 by parking the existing connection (to AP1) on / transferring it to the auxiliary processor 42. The auxiliary processor 42 can keep tracking beacon frames from AP1 (e.g., beacon frames 423, 424, 425), and notify the controller of pending data traffic based on the TIM IE in the beacon frame (e.g., TIM indicates no pending DL traffic at AP1 in step 403, and TIM indicates pending unicast DL traffic at AP1 in step 404). The controller can decide / determine when to switch the main processor to the old connection to handle DL traffic from the existing connected AP.
[0072] The controller may determine whether the controller is performing one of (1) an authentication frame exchange with AP2, (2) an association frame exchange with AP2, or (3) a 4-way handshake exchange with AP2. In response to determining that the controller is performing one of exchanges (1) to (3) with AP2, the controller may defer processing DL traffic from AP1. In response to determining that the controller is between exchanges (1) to (3) with AP2, the controller may switch the main processor 41 to AP1 to process DL traffic with the old connection 426 (e.g., in step 405, the connection with AP1 is switched to the main processor 41). In other words, when the main processor 41 performs critical activities on the new connection front end, then switching the connection back to AP1 can be deferred to a logical point, but at the same time, the deferral can be limited within a sensitive limit.
[0073] When a new connection with AP2 is successfully made / established, the controller may evaluate the performance of the new connection with AP2 by retaining the existing connection with AP1 via the auxiliary processor (e.g., the controller evaluates the performance of the new connection with AP2 during period 442 in step 406). For example, the controller may compare the performance metric of the new connection with the performance metric of the existing connection, and determine whether the new connection performs better than the existing connection based on the result of the comparison. In some embodiments, the controller may compare the performance metric of the new connection with a corresponding threshold, and determine whether the new connection performs better than the existing connection based on the result of the comparison. Examples of performance metrics of wireless connections may include, but are not limited to, bandwidth, processing power, signal strength, network jitter, uptime, packet loss or latency of the wireless connection, or any metric that may indicate the efficiency and stability of various activities and components of the wireless network. In some embodiments, in response to determining that the new connection performs better than the existing connection, the controller may continue the new connection by disconnecting or terminating the existing connection. On the other hand, in response to determining that the new connection does not perform better than the existing connection, the controller may continue the existing connection by disconnecting or terminating the new connection. For example, the controller terminates the new connection with AP2 in step 409 , and switches the existing connection with AP1 to the main processor 41 in step 410 , so that the main processor 41 can receive the beacon frame 430 .
[0074] The auxiliary processor 42 (e.g., a low-power Wi-Fi processor) may be associated only with the Rx interface (e.g., the auxiliary processor 12-2). In this case, if the auxiliary processor 42 receives a beacon frame with a TIM and the main processor 41 is not performing critical activities on the new connection, the main processor 41 may switch back to the existing connection to receive / handle / process the data indicated in the TIM (e.g., in step 405, the existing connection is switched to the main processor 41). This switch-back operation (or the operation of transferring the connection back to the main processor) may not be performed regularly or periodically, but only on a needed basis. Therefore, subsequent roaming connections may be faster and more efficient than existing available solutions (e.g., compared to solutions in which the switch-back operation is repeated almost every beacon interval or DTIM interval regardless of whether DL traffic is available). In addition, this switch-back mechanism can be used to save energy by completing activities on the new connection early by parking / transferring the existing connection to the auxiliary processor and moving / transferring the connection back to the main processor only on a needed basis.
[0075] refer to Figure 4 In response to determining that the TIM IE indicates that there are unicast packets pending or available for the client at the AP at step 404, the controller may cause the main processor 41 to exit the power saving mode and return to the old connection (e.g., the connection with AP1) at step 405. The controller may determine whether the auxiliary processor 42 has the minimum transmission capability. In response to determining that the auxiliary processor 42 has the minimum transmission capability, the controller may control the auxiliary processor 42 to transmit a NULL frame or a PS-POLL frame to AP1, while causing the main processor 41 to return to the old connection in parallel. In response to determining that the auxiliary processor 42 does not have the minimum transmission capability, the controller may cause the main processor 41 to return to the old connection, and then cause the main processor 41 to send a NULL frame or a PS-POLL frame to AP1 to indicate that the client has exited the power saving mode and is ready to receive any unicast data traffic. When the main processor completes receiving / processing unicast data traffic on the old connection 426, the controller may control the main processor 41 to resume activity on the new connection 442, and control the auxiliary processor 42 to switch back to the old connection to receive beacon frames (e.g., beacon frames 427, 428, 429). When the main processor 42 completes performing activity on the new connection, or in response to determining that the new connection does not perform better than the existing connection, the controller may control the main processor 41 to switch back to the old connection to receive beacon frames (e.g., beacon frame 430) at step 410.
[0076] Figure 52010 , the one or more processors 2010 , the network interface device 2030 . In some embodiments, the process 500 is performed by a controller (e.g., the controller 10 , the one or more processors 2010 , the network interface device 2030 ). In other embodiments, the process 500 is performed by other entities. In some embodiments, the process 500 includes Figure 5 More, fewer, or different steps than shown in FIG.
[0077] In step 502, the controller may establish a first wireless connection (e.g., a wireless connection) via a first processor (e.g., a main processor 31, 41) of a plurality of processors coupled to one or more network interfaces (e.g., network interfaces 14-1, 14-2) configured to provide wireless connectivity. Figure 3 connections on the current channel in; Figure 4 connection with AP1 in the ).
[0078] At step 504, in response to the first processor performing an operation (eg, Figure 3 Channel scanning in ; Figure 4 The controller may establish a first wireless connection (eg, Figure 3 connections on the current channel in; Figure 4 The connection with the API in the first processor (e.g., the connection with the API in the first processor) is transferred from the first processor (e.g., the main processor 31, 41) to the second processor (e.g., the auxiliary processor 32, 42) among the multiple processors. In some embodiments, the trigger for the first processor to perform the operation may be any event or situation related to the start of the operation (e.g., an event in which the first processor starts the process of the operation, an event in which the first processor conveys information about the start of the operation to the controller, etc.).
[0079] At step 506, when the first processor performs an operation (e.g., when the main processor performs Figure 3 Channel scanning in or Figure 4 The controller may establish a first connection (eg, Figure 3 connections on the current channel in; Figure 4 The connection with API 1 in the example is transferred from the second processor (eg, the auxiliary processor 32, 42) back to the first processor (eg, the main processor 31, 41).
[0080] In some embodiments, the operation may be to scan one or more channels (see Figure 3). When transferring the established first connection from the second processor (e.g., the auxiliary processor 32) back to the first processor (e.g., the main processor 31), in response to the second processor detecting data to be received from the established first connection (e.g., a TIM indicating unicast DL traffic to be processed at AP1 at step 304), the established first connection can be transferred from the second processor (e.g., the auxiliary processor 32) back to the first processor (e.g., the main processor 31). In response to the scanning of one or more channels being completed (e.g., the scanning is completed at step 309), the established first connection (e.g., the connection with AP1) can be transferred from the second processor back to the first processor (e.g., the connection with the AP is switched to the main processor 31 at step 310).
[0081] In some embodiments, a first connection to a first access point may be established (eg, an old connection to AP1; see Figure 4 The operation may be to establish, via the first processor, a second wireless connection to a second access point (eg, a new connection to AP2) (see Figure 4 ). When transferring the established connection from the second processor (e.g., the auxiliary processor 42) back to the first processor (e.g., the main processor 41), in response to determining that the first wireless connection performs better than the second wireless connection (e.g., the controller evaluates the performance of the new connection with AP2 in step 406), the first wireless connection (e.g., the old connection with AP1) can be transferred from the second processor back to the first processor (e.g., the connection with AP1 is switched to the main processor 410 in step 410). In some embodiments, in response to determining that the second wireless connection performs better than the first wireless connection, the first wireless connection transferred to the second processor can be terminated (e.g., the connection with AP1 is terminated via the auxiliary processor 42).
[0082] The term "coupled" and its variations include two components being directly or indirectly joined to each other. The term "electrically coupled" and its variations include two components being directly or indirectly joined to each other through a conductive material (e.g., a metal or copper trace). This joining (for both terms "coupled" and "electrically coupled") may be static (e.g., permanent or fixed) or movable (e.g., removable or releasable). This joining (for both terms "coupled" and "electrically coupled") may be achieved by virtue of two components being directly coupled to each other or directly coupled to each other, by virtue of two components being coupled to each other using a separate intermediary component and any additional intermediary components that are coupled to each other, or by virtue of two components being coupled to each other using an intermediary component that is integrally formed as a single, integral body with one of the two components. If "coupled" or its variations are modified by additional terms (e.g., directly coupled), the general definition of "coupled" provided above is modified by the colloquial language meaning of the additional terms (e.g., "directly coupled" means that two components are joined without any separate intermediary components), resulting in a narrower definition than the general definition of "coupled" provided above. This coupling may be mechanical, electrical or fluid.
[0083] The foregoing summarizes the features of several embodiments so that those skilled in the art can better understand aspects of the present disclosure. Those skilled in the art will appreciate that they can easily use the present disclosure as a basis for designing or modifying other processes and structures for implementing the same purposes and / or achieving the same advantages of the embodiments described herein. Those skilled in the art will also appreciate that such equivalent constructions do not depart from the spirit and scope of the present disclosure, and that they can make various changes, substitutions, and modifications to the present disclosure without departing from the spirit and scope of the present disclosure.
[0084] It should be noted that certain paragraphs of the present disclosure may reference terms such as "first" and "second" in relation to transmit spatial streams, sounding frames, responses, and subsets of devices for the purpose of identifying or distinguishing one from another or one from the other. These terms are not intended to relate entities (e.g., first device and second device) only in time or according to order, although in some cases, these entities may include such a relationship. These terms also do not limit the number of possible entities that can operate within a system or environment. It should be understood that the system described above may provide multiple of any or each of those components, and these components may be provided on a stand-alone machine or, in some embodiments, on multiple machines in a distributed system. In addition, the systems and methods described above may be provided as one or more computer-readable programs or executable instructions embodied on or in one or more articles of manufacture (e.g., floppy disk, hard disk, CD-ROM, flash memory card, PROM, RAM, ROM, or tape). The program may be implemented in any programming language (e.g., LISP, PERL, C, C++, C#) or in any byte code language (e.g., JAVA). The software program or executable instructions may be stored as object code on or in one or more articles of manufacture. In some embodiments, the ADC is used as an integrated circuit in a transmitter for wireless communication. The ADC is disposed on an integrated circuit that includes a calibration engine. In some embodiments, the ADC and the calibration engine are disposed in a single chip or multi-chip integrated package.
[0085] Although the foregoing written description of the methods and systems enables a person of ordinary skill to make and use embodiments thereof, the person of ordinary skill will understand and appreciate that variations, combinations, and equivalents of the specific embodiments, methods, and examples herein exist. The methods and systems should therefore not be limited by the embodiments, methods, and examples described above, but rather by all embodiments and methods within the scope and spirit of the present disclosure.
Claims
1. A device comprising: a plurality of processors coupled to one or more network interfaces configured to provide wireless connectivity; and A controller configured to: establishing a wireless connection via a first processor of the plurality of processors; In response to a triggering of the first processor scanning one or more channels, transferring the established wireless connection from the first processor to a second processor of the plurality of processors, wherein the second processor is different from the first processor; and In response to the second processor detecting data to be received from the established wireless connection, the established wireless connection is transferred from the second processor back to the first processor.
2. The device of claim 1, wherein the controller is configured to: Responsive to the scanning of the one or more channels being completed, the established connection is transferred from the second processor back to the first processor. 3 . The device of claim 1 , wherein the controller is configured to establish the wireless connection to an access point via the first processor.
4. The device of claim 3, wherein in response to transferring the established connection from the first processor to the second processor, the second processor is configured to receive one or more beacons from the access point.
5. The device of claim 1, wherein in response to transferring the established wireless connection from the second processor back to the first processor, the first processor is configured to receive the data from the access point.
6. The apparatus of claim 5, wherein in response to receiving the data completion from the access point, the controller is configured to: The established wireless connection is transferred from the first processor to the second processor.
7. The device of claim 1, wherein the data to be received from the established wireless connection is unicast data addressed to the device.
8. A device comprising: a plurality of processors coupled to one or more network interfaces configured to provide wireless connectivity, a controller configured to: establishing, via a first processor of the plurality of processors, a first wireless connection to a first access point; transferring the first wireless connection from the first processor to a second processor of the plurality of processors, wherein the second processor is different from the first processor; establishing, via the first processor, a second wireless connection to a second access point; and In response to determining that the performance metric of the first wireless connection is greater than the performance metric of the second wireless connection, the first wireless connection is transferred from the second processor back to the first processor.
9. The device of claim 8, wherein the controller is configured to: In response to determining that the performance metric of the second wireless connection is greater than the performance metric of the first wireless connection, terminating the first wireless connection transferred to the second processor.
10. The device of claim 8, wherein the controller is configured to: The second wireless connection to the second access point is established via the first processor while the second processor maintains the first wireless connection to the first access point.
11. The device of claim 8, wherein in response to transferring the first wireless connection from the first processor to the second processor, the second processor is configured to receive one or more beacons from the first access point.
12. The apparatus of claim 8, wherein in response to the second processor detecting data to be received from the first access point, the controller is configured to: The first wireless connection is transferred from the second processor back to the first processor.
13. The device of claim 12, wherein in response to transferring the first wireless connection from the second processor back to the first processor, the first processor is configured to receive the data from the first access point.
14. A method comprising: establishing a first wireless connection via a first processor of a plurality of processors coupled to one or more network interfaces configured to provide wireless connectivity; In response to a triggering of the first processor to perform an operation, transferring the established first wireless connection from the first processor to a second processor among the plurality of processors, wherein the second processor is different from the first processor; and When the first processor performs the operation, the established first connection is transferred from the second processor back to the first processor.
15. The method according to claim 14, wherein The operation is to scan one or more channels.
16. The method of claim 15, wherein transferring the established first connection from the second processor back to the first processor comprises: In response to the second processor detecting data to be received from the established first connection, the established first connection is transferred from the second processor back to the first processor.
17. The method according to claim 15, further comprising: In response to the scanning of the one or more channels being completed, the established first connection is transferred from the second processor back to the first processor.
18. The method according to claim 14, wherein establishing said first connection to a first access point, and The operation is establishing, via the first processor, a second wireless connection to a second access point.
19. The method of claim 18, wherein transferring the established connection from the second processor back to the first processor comprises: In response to determining that the performance metric of the first wireless connection is greater than the performance metric of the second wireless connection, the first wireless connection is transferred from the second processor back to the first processor.
20. The method of claim 19, further comprising: In response to determining that the performance metric of the second wireless connection is greater than the performance metric of the first wireless connection, terminating the first wireless connection transferred to the second processor.