This disclosure relates generally to wireless communications, and more specifically, to enabling multi-link operation (MLO) in a mesh network.
Wireless communications systems are widely deployed to provide various types of communication content such as voice, video, packet data, messaging, broadcast, and so on. A wireless local area network (WLAN) may be formed by one or more access points (APs) that provide a shared wireless communication medium for use by a number of client devices also referred to as stations (STAs). The basic building block of a WLAN conforming to the Institute of Electrical and Electronics Engineers (IEEE) 802.11 family of standards is a Basic Service Set (BSS), which is managed by an AP. Each BSS is identified by a Basic Service Set Identifier (BSSID) that is advertised by the AP. An AP periodically broadcasts beacon frames to enable any STAs within wireless range of the AP to establish or maintain a communication link with the WLAN.
Mesh networks may be used in various environments including home entertainment systems, home automation, factory automation, and so on. In a mesh network, wireless devices operating as mesh nodes may be connected to one another in a non-hierarchical network topology via mesh links, and may cooperate with one another to efficiently route data from a source to a destination using one or more nodes and their corresponding mesh links. For example, intermediate mesh nodes that receive messages from upstream mesh nodes can broadcast or forward the messages to one or more downstream mesh nodes via corresponding mesh links until the messages reach the destination. In this way, mesh networks can extend the effective radio range of wireless devices that serve as mesh nodes in a mesh network.
The throughput of a mesh network may be based, at least in part, on the channel width of the mesh links interconnected between mesh nodes associated with the mesh network. Increasing the channel width of the mesh links may not be feasible, particularly in environments that include other wireless networks operating on the same or similar frequencies as the mesh network.
The systems, methods and devices of this disclosure each have several innovative aspects, no single one of which is solely responsible for the desirable attributes disclosed herein.
One innovative aspect of the subject matter described in this disclosure can be implemented in a multi-link device (MLD). The MLD can include a processing system and an interface coupled to the processing system. The interface may be configured to output a frame on a first communication link associated with a first device of the MLD, the frame including a medium access control (MAC) header carrying a plurality of addresses associated with a mesh basis service set (MBSS), each address of the plurality of addresses associated with one of a per-link address of the first communication link of the MLD or a MAC address of the MLD. In some implementations, the plurality of addresses may include first and second addresses indicating respective receiver and transmitter addresses of a peering instance on the first communication link, and may include third and fourth addresses indicating respective MBSS egress and MBSS ingress points of the peering instance on the first communication link. In some instances, the first and second addresses may be associated with the per-link address of the first communication link, and the third and fourth addresses may be associated with the MLD MAC address. In some other implementations, the plurality of addresses also may include fifth and sixth addresses indicating a destination and a source, respectively, of the peering instance, the fifth and sixth addresses associated with the MLD MAC address. In some aspects, the frame may include an indication that the per-link address is based on a domain of the first device of the MLD.
In some implementations, the frame may be one of a Hybrid Wireless Mesh Protocol (HWMP) Mesh Path Selection frame, a Mesh Peering Open frame, a Mesh Peering Confirm frame, a Mesh Peering Close frame, or a Mesh Data frame. In some instances, the frame may include a Multi-link element indicating discovery information for the first communication link of the MLD and discovery information for each of one or more second communication links associated with one or more respective second devices of the MLD. In some other instances, the frame may include a Traffic Identifier (TID)-to-Link Mapping (T2LM) element indicating, for each of a plurality of TIDs, on which of the first communication link or the one or more second communication links that mesh data frames belonging to the respective TID are permitted. In some aspects, the frame may include an Extremely High Throughput (EHT) Capability element indicating one or more capabilities of the first device of the MLD and one or more capabilities of each of the one or more second devices of the MLD. In some other aspects, the frame may include an EHT Operation element indicating one or more operation parameters for the first communication link of the MLD and one or more operation parameters for each of the one or more respective second communication links of the MLD.
In some implementations, the frame may be a Mesh Peering Open frame outputted over the first communication link to one or more candidate peer devices associated with the MBSS. The Mesh Peering Open frame may include a request to establish peering instances on each of the first communication link of the MLD and the one or more second communication links of the MLD. In some instances, the interface also may be configured to obtain a Mesh Peering Confirm frame on the first communication link from a respective candidate peer device, the Mesh Peering Confirm frame indicating whether the requested peering instance is accepted or rejected by the respective candidate peer device. The processing system also may be configured to associate with the candidate peer device on the first communication link of the MLD based on the Mesh Peering Open frame and the Mesh Peering Confirm frame.
In some other instances, the Mesh Peering Open frame may indicate MLD capabilities of the first device and the one or more second devices of the MLD. In some aspects, the interface may be configured to obtain a Mesh Peering Confirm frame on the first communication link from at least one candidate peer device including a respective station (STA) or access point (AP) associated with each of the first communication link of the MLD and the one or more second communication links of the MLD, the Mesh Peering Confirm frame indicating MLD capabilities of the respective STAs or APs of the at least one candidate peer device. The processing system may be configured to associate the first device of the MLD with a first STA or AP of the at least one candidate peer device on the first communication link responsive to the MLD capabilities of the at least one candidate peer device while associating the one or more second devices of the MLD with one or more respective second STAs or APs of the at least one candidate peer device on the one or more respective second communication links.
In some implementations, the interface also may be configured to obtain, from a peer MLD associated with the MBSS, a request for a Traffic Identifier (TID)-to-Link Mapping negotiation operation, a Target Wake Time (TWT) operation, or a restricted TWT (r-TWT) operation on a peering instance associated with the first communication link. In some instances, the processing system also may be configured to assign a Link Identifier (ID) to the requested operation. In various aspects, the assignment of the Link ID to the requested operation may be associated with one of the Link ID assigned to the peering instance by the MLD, the Link ID assigned to the peering instance by the peer MLD, or an agreement or negotiation between the MLD and the peer MLD indicating one of the Link ID assigned to the peering instance by the MLD or the Link ID assigned to the peering instance by the peer MLD.
Another innovative aspect of the subject matter described in this disclosure can be implemented as a method for wireless communication by an MLD. In some implementations, the method includes transmitting a frame on a first communication link associated with a first device of the MLD, the frame including a MAC header carrying a plurality of addresses associated with an MBSS, each address of the plurality of addresses associated with one of a per-link address of the first communication link of the MLD or a MAC address of the MLD. In some implementations, the plurality of addresses may include first and second addresses indicating respective receiver and transmitter addresses of a peering instance on the first communication link, and may include third and fourth addresses indicating respective MBSS egress and MBSS ingress points of the peering instance on the first communication link. In some instances, the first and second addresses may be associated with the per-link address of the first communication link, and the third and fourth addresses may be associated with the MLD MAC address. In some other implementations, the plurality of addresses also may include fifth and sixth addresses indicating a destination and a source, respectively, of the peering instance, the fifth and sixth addresses associated with the MLD MAC address. In some aspects, the frame may include an indication that the per-link address is based on a domain of the first device of the MLD.
In some implementations, the frame may be one of a HWMP Mesh Path Selection frame, a Mesh Peering Open frame, a Mesh Peering Confirm frame, a Mesh Peering Close frame, or a Mesh Data frame. In some instances, the frame may include a Multi-link element indicating discovery information for the first communication link of the MLD and discovery information for each of one or more second communication links associated with one or more respective second devices of the MLD. In some other instances, the frame may include a T2LM element indicating, for each of a plurality of TIDs, on which of the first communication link or the one or more second communication links that mesh data frames belonging to the respective TID are permitted. In some aspects, the frame may include an EHT Capability element indicating one or more capabilities of the first device of the MLD and one or more capabilities of each of the one or more second devices of the MLD. In some other aspects, the frame may include an EHT Operation element indicating one or more operation parameters for the first communication link of the MLD and one or more operation parameters for each of the one or more respective second communication links of the MLD.
In some implementations, the frame may be a Mesh Peering Open frame transmitted over the first communication link to one or more candidate peer devices associated with the MBSS. The Mesh Peering Open frame may include a request to establish peering instances on each of the first communication link of the MLD and the one or more second communication links of the MLD. In some instances, the method also may include obtaining a Mesh Peering Confirm frame on the first communication link from a respective candidate peer device, the Mesh Peering Confirm frame indicating whether the requested peering instance is accepted or rejected by the respective candidate peer device. The method also may include associating with the candidate peer device on the first communication link of the MLD based on the Mesh Peering Open frame and the Mesh Peering Confirm frame.
In some other instances, the Mesh Peering Open frame may indicate MLD capabilities of the first device and the one or more second devices of the MLD. In some aspects, the method also may include receiving a Mesh Peering Confirm frame on the first communication link from at least one candidate peer device including a respective STA or AP associated with each of the first communication link of the MLD and the one or more second communication links of the MLD, the Mesh Peering Confirm frame indicating MLD capabilities of the respective STAs or APs of the at least one candidate peer device. The method also may include associating the first device of the MLD with a first STA or AP of the at least one candidate peer device on the first communication link responsive to the MLD capabilities of the at least one candidate peer device while associating the one or more second devices of the MLD with one or more respective second STAs or APs of the at least one candidate peer device on the one or more respective second communication links.
In some implementations, the method also may include obtaining, from a peer MLD associated with the MBSS, a request for a TID-to-Link Mapping negotiation operation, a TWT operation, or an r-TWT operation on a peering instance associated with the first communication link. In some instances, the method also may include assigning a Link ID to the requested operation. In various aspects, the assignment of the Link ID to the requested operation may be associated with one of the Link ID assigned to the peering instance by the MLD, the Link ID assigned to the peering instance by the peer MLD, or an agreement or negotiation between the MLD and the peer MLD indicating one of the Link ID assigned to the peering instance by the MLD or the Link ID assigned to the peering instance by the peer MLD.
Details of one or more implementations of the subject matter described in this disclosure are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages will become apparent from the description, the drawings and the claims. Note that the relative dimensions of the following figures may not be drawn to scale.
Like reference numbers and designations in the various drawings indicate like elements.
The following description is directed to some particular implementations for the purposes of describing innovative aspects of this disclosure. However, a person having ordinary skill in the art will readily recognize that the teachings herein can be applied in a multitude of different ways. The described implementations can be implemented in any device, system or network that is capable of transmitting and receiving radio frequency (RF) signals according to one or more of the Long Term Evolution (LTE), 3G, 4G or 5G (New Radio (NR)) standards promulgated by the 3rd Generation Partnership Project (3GPP), the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards, the IEEE 802.15 standards, or the Bluetooth® standards as defined by the Bluetooth Special Interest Group (SIG), among others. The described implementations can be implemented in any device, system or network that is capable of transmitting and receiving RF signals according to one or more of the following technologies or techniques: code division multiple access (CDMA), time division multiple access (TDMA), frequency division multiple access (FDMA), orthogonal FDMA (OFDMA), single-carrier FDMA (SC-FDMA), single-user (SU) multiple-input multiple-output (MIMO) and multi-user (MU) MIMO. The described implementations also can be implemented using other wireless communication protocols or RF signals suitable for use in one or more of a wireless wide area network (WWAN), a wireless personal area network (WPAN), a wireless local area network (WLAN), or an internet of things (IOT) network.
Various implementations relate generally to mesh networks, and specifically, to enabling multi-link operation (MLO) in a mesh network. In various implementations, a plurality of multi-link devices (MLDs) operating as mesh nodes or peer devices may form a multi-link mesh network by establishing multi-link peering instances with one another as part of a mesh basic service set (MBSS). In some implementations, each peer MLD associated with the mesh network may include a first device associated with a first communication link of the mesh network, and may include one or more second devices associated with one or more respective second communication links of the mesh network. For example, in some instances, the first device of a respective peer MLD may include a first STA and a first AP, and each of the one or more second devices of the respective peer MLD may include a respective second STA and a respective second AP. The first STA of the respective peer MLD may be configured to communicate with one or more previous-hop peer MLDs and one or more next-hop peer MLDs on the first communication link, and the one or more second STAs of the respective peer MLD may be configured to communicate with the one or more previous-hop peer MLDs and the one or more next-hop peer MLDs on the one or more respective second communication links. The first AP of the respective peer MLD may establish a first BSS on the first communication link and communicate with one or more first client devices associated with the first BSS on the first communication link. Each of the one or more second APs of the respective peer MLD may establish a corresponding second BSS on a respective second communication link and communicate with one or more associated second client devices on the respective second communication link.
Aspects of the present disclosure recognize that employing MLDs as nodes in a mesh network may be associated with the exchange of multi-link protocol frames or elements over mesh links established between the MLDs. Although multi-link operation is supported in infrastructure WLANs, as defined in the 802.11be amendments to the Institute of Electrical and Electronic Engineers (IEEE) 802.11 standard, multi-link operation is not currently supported in mesh networks operating according to the 802.11REVme amendments to the IEEE 802.11 standard nor in mesh networks operating according to the Wi-Fi EasyMesh™ Specification published by the Wi-Fi Alliance. Moreover, mesh protocol frames and messages communicated over a mesh network use a different address format than multi-link protocol frames and packets exchanged between MLDs on one or more communication links. For example, while mesh protocol frames and messages use mesh addresses associated with the mesh network, multi-link protocol frames and packets use multi-link addresses that are based on per-link addresses and MLD addresses.
Aspects of the present disclosure recognize that multi-link operation may be enabled in a mesh network by replacing mesh protocol addresses associated with the medium access control (MAC) headers of mesh protocol frames with corresponding multi-link addresses based on per-link receiver and transmitter addresses and MLD source and destination addresses. For example, in some instances, the multi-link protocol addresses may include per-link addresses indicating the per-link receiver and per-link transmitter addresses of a corresponding peering instance, and may include MLD addresses indicating respective MBSS egress and ingress points of the corresponding peering instance. In some aspects, the multi-link protocol addresses also may include MLD addresses indicating source and destination addresses associated with a path established in the mesh network.
In some implementations, peer MLDs operating as nodes in the mesh network may determine, calculate, ascertain or obtain a mapping between mesh protocol addresses and their corresponding multi-link protocol addresses, and may use the mapping to populate the MAC headers of mesh protocol frames with the multi-link protocol addresses. The mesh protocol frames populated with multi-link protocol addresses may include Hybrid Wireless Mesh Protocol (HWMP) Mesh Path Selection frames, Mesh Peering Open frames, Mesh Peering Confirm frames, Mesh Peering Close frames, or Mesh Data frames, among other examples. In some instances, a multi-link context may allow the peer MLDs to discover and associate with one another on all of the communication links of the mesh network based on discovery information, capabilities, or parameters received or otherwise obtained on the first communication link. The multi-link context also may allow the peer MLDs to establish a common security context, common encryption keys, common acknowledgement (BA) sessions, and Traffic Identifier (TID)-to-Link Mappings on all of the communication links of the mesh network based on frame exchanges on the first communication link.
In various implementations, mesh protocol frames communicated on the multi-link peering instances of a mesh network may include a Multi-link element indicating discovery information for each of the communication links associated with the mesh network. The Multi-link element also may indicate one or more MLD capabilities common to the communication links of the mesh network. In some other instances, the mesh protocol frames also may include a Reduced Neighbor Report (RNR) element indicating channel information, operation parameters, and MLD parameters of the one or more second communication links of the mesh network. In some other instances, the mesh protocol frames also may include a TID-to-Link Mapping element indicating, for each of a plurality of TIDs, on which of the multiple communication links that mesh data frames belonging to the respective TID are permitted.
Particular implementations of the subject matter described in this disclosure can be implemented to realize one or more of the following potential advantages. In mapping mesh addresses included in the MAC headers of mesh protocol frames to multi-link protocol addresses indicating at least per-link receiver and transmitter addresses and MLD source and destination addresses, aspects of the present disclosure may allow mesh protocol frames and messages carrying multi-link protocol elements (such as Multi-link elements and TID-to-Link Mapping elements, among other examples) to be propagated across the mesh network by the peer MLDs. In this way, the mesh protocol frames may be used to establish multi-link peering instances between the peer MLDs, and to discover one or more multi-link paths between a source device and a destination device over the multi-link peering instances. The multi-link peering instances and multi-link paths established by the peer MLDs may allow mesh protocol data frames to be propagated across the mesh network on multiple communication links, concurrently, thereby increasing the effective bandwidth of mesh peering instances or mesh links (such as compared to conventional single-link mesh networks). By increasing the effective bandwidth of mesh peering instances or mesh links, implementations of the subject matter disclosed herein may reduce latencies and increase throughput associated with mesh networks.
Each of the STAs 114 also may be referred to as a mobile station (MS), a mobile device, a mobile handset, a wireless handset, an access terminal (AT), a user equipment (UE), a subscriber station (SS), or a subscriber unit, among other possibilities. The STAs 114 may represent various devices such as mobile phones, personal digital assistant (PDAs), other handheld devices, netbooks, notebook computers, tablet computers, laptops, display devices (for example, TVs, computer monitors, navigation systems, among others), music or other audio or stereo devices, remote control devices (“remotes”), printers, kitchen or other household appliances, key fobs (for example, for passive keyless entry and start (PKES) systems), among other possibilities.
A single AP 112 and an associated set of STAs 114 may be referred to as a basic service set (BSS), which is managed by the respective AP 112.
To establish a communication link 116 with the AP 112, each of the STAs 114 may be configured to perform passive or active scanning operations on frequency channels in one or more frequency bands (for example, the 2.4 GHz, 5.0 GHz, 6.0 GHz, or 60 GHz frequency bands). To perform passive scanning, a STA 114 listens for beacon frames transmitted by the AP 112 at a periodic time interval referred to as the target beacon transmission time (TBTT) (measured in time units (TUs), where one TU may be equal to 1024 microseconds (μs)). To perform active scanning, a STA 114 generates and sequentially transmits probe requests on each channel to be scanned, and listens for probe responses on the respective channels from the AP 112. Each STA 114 may be configured to identify or select the AP 112 with which to associate based on the scanning information obtained through the passive or active scans, and to perform association and authentication operations to establish the communication link 116 with the AP 112. The AP 112 assigns an association identifier (AID) to each STA 114 at the culmination of the association operations, which the AP 112 uses to track the STAs 114.
As a result of the increasing ubiquity of wireless networks, a STA 114 may have the opportunity to select one of many BSSs within range of the STA 114 or to select among multiple APs 112 that together form an extended service set (ESS) that includes multiple connected BSSs. An extended network station associated with the WLAN 110 may be connected to a wired or wireless distribution system that may allow multiple APs (such as the AP 112) to be connected to one another in such an ESS. As such, a STA 114 can be covered by more than one AP 112, and can associate with different APs 112 at different times for different transmissions. Additionally, after association with the AP 112, a STA 114 also may be configured to periodically scan its surroundings to find a more suitable AP 112 with which to associate. For example, a STA 114 that is moving relative to the STA's associated AP 112 may perform a “roaming” scan to find another AP having more desirable network characteristics such as a greater received signal strength indicator (RSSI) or a reduced traffic load.
In some instances, the STAs 114 may form networks without APs 112 or equipment other than the STAs 114 themselves. One example of such a network is an ad hoc network. Ad hoc networks also may be referred to as mesh networks or peer-to-peer (P2P) networks. As used herein, mesh networks also may include or refer to P2P networks, Personal Area Networks (PANs), and Neighborhood Aware Networks (NANs), among other examples. In some aspects, two of the STAs 114 may communicate with each other via a direct communication link (not shown for simplicity) regardless of whether both STAs 114 are associated with the AP 112. Examples of direct wireless links include Wi-Fi Direct connections, connections established by using a Wi-Fi Tunneled Direct Link Setup (TDLS) link, and other P2P group connections.
The AP 112 and STAs 114 may function and communicate with one another over respective communication links 116 according to the IEEE 802.11 family of standards. These standards define the WLAN radio and baseband protocols for the PHY and medium access control (MAC) layers. The AP 112 and STAs 114 transmit and receive wireless communications to and from one another in the form of physical layer convergence protocol (PLCP) protocol data units (PPDUs). The AP 112 and STAs 114 in the WLAN 110 may transmit PPDUs over an unlicensed spectrum, which may be a portion of spectrum that includes frequency bands traditionally used by Wi-Fi technology, such as the 2.4 GHz frequency band, the 3.6 GHz frequency band, the 5 GHz frequency band, the 60 GHz frequency band, and the 900 MHz frequency band. In some implementations, the AP 112 and STAs 114 described herein may communicate with one another in other frequency bands, such as the 6 GHz frequency band, which may support both licensed and unlicensed communications. The AP 112 and STAs 114 also can be configured to communicate over other frequency bands such as shared licensed frequency bands, where multiple operators may have a license to operate in the same or overlapping frequency band or bands.
Each of the frequency bands may include multiple channels (which may be used as subchannels of a larger bandwidth channel as described herein). For example, PPDUs conforming to the IEEE 802.11n, 802.11ac and 802.11ax standard amendments may be transmitted over the 2.4 GHz and 5 GHz frequency bands, each of which is divided into multiple 20 MHz channels. As such, these PPDUs are transmitted over a physical channel having a minimum bandwidth of 20 MHz, but larger channels can be formed through channel bonding. For example, PPDUs may be transmitted over physical channels having bandwidths of 40 MHz, 80 MHz, 160 or 320 MHz by bonding together multiple 20 MHz channels (which may be referred to as subchannels).
Each PPDU is a composite structure that includes a PHY preamble and a payload in the form of a PLCP service data unit (PSDU). The information provided in the preamble may be used by a receiving device to decode the subsequent data in the PSDU. In instances in which PPDUs are transmitted over a bonded channel, the preamble fields may be duplicated and transmitted in each of the multiple component channels. The PHY preamble may include both a first portion (or “legacy preamble”) and a second portion (or “non-legacy preamble”). The first portion may be used for packet detection, automatic gain control and channel estimation, among other uses. The first portion also may generally be used to maintain compatibility with legacy devices as well as non-legacy devices. The format of, coding of, and information provided in the second portion of the preamble is based on the particular IEEE 802.11 protocol to be used to transmit the payload.
The gateway 120 is communicatively coupled to the WLAN 110 and the mesh network 130, and may provide an interface through which devices associated with the mesh network 130 can connect to a core network (or some other remote network) via WLAN 110 and the AP 112. Specifically, the gateway 120 can forward frames or packets received from one or more devices associated with the mesh network 130 to the AP 112 for delivery to one or more of the associated STAs 114, or for delivery to other networks (not shown for simplicity) through the AP 112 and various backhaul connections (not shown for simplicity) associated with the AP 112. Similarly, the gateway 120 can forward frames or packets received from the associated STAs 114 or the core network via the AP 112 for delivery to one or more of the devices associated with the mesh network 130. The gateway 120 may include any suitable number of radios and associated transceiver chains that allow the gateway 120 to communicate with the mesh network 130 on multiple communication links, concurrently. In some other implementations, the AP 112 may perform the functions of the gateway 120, which may be omitted.
The mesh network 130 may include a plurality of peer devices 132a-132k configured to operate as mesh devices or “nodes” that can send, receive, broadcast, or forward messages and frames to one another over peering instances 134. As used herein, the term “peer devices 132” may refer to all of the peer devices 132a-132k shown in the example of
In some implementations, the peer devices 132 may operate according to a wireless mesh protocol that allows the peer devices 132 to establish the peering instances 134 between one another using a mesh path selection procedure. Specifically, the peering instances 134 established between a source device and a destination device may form a mesh path on which messages or frames can be propagated from the source device to the destination device by one or more peer devices 132 operating as intermediate nodes of the mesh network 130. In some aspects, the peer devices 132 may discover one another using path discovery messages, and may use discovery and capability information carried in the path discovery messages to determine whether or not neighbor peer devices 132 are suitable candidates with which to establish peering instances 134. For example, in some instances, peer device 132a may broadcast a Path Request (PREQ) message or a Mesh Peering Open frame that includes a request to establish a peering instance 134 with the peer device 132a. The PREQ message or Mesh Peering Open frame also may indicate the capabilities, supported data rates, supported channels, supported operating classes, mesh information, and other parameters associated with the peer device 132a.
Neighboring candidate peer devices 132b and 132c may receive the PREQ message or Mesh Peering Open frame, and may forward the PREQ message or Mesh Peering Open frame to one or more other peer devices 132, and so on, until the PREQ message or Mesh Peering Open frame reaches the destination device. The candidate peer devices 132b and 132c also may send a Path Reply (PREP) message or a Mesh Peering Confirm frame, to the peer device 132a, indicating whether the respective candidate peer device 132b or 132c accepts or rejects the request to establish a peering instance 134 with the peer device 132a. The PREQ message or Mesh Peering Confirm frame also may indicate the capabilities, supported data rates, supported channels, supported operating classes, mesh parameters, and other information pertaining to the respective candidate peer device 132b or 132c. In the example of
The frames exchanged during path discovery may carry or indicate one or more link metrics of each peering instance 134 along the discovered path. Each of the peer devices 132 may maintain a forwarding table that stores link metrics associated with one or more “previous hops” and one or more “next hops” traversed by the frames, along with identification information of one or more upstream peer devices 132 associated with the previous hops and one or more downstream peer devices 132 associated with the next hops. For example, when a respective peer device 132 receives a PREQ message from an upstream peer device, the respective peer device 132 may update a corresponding forwarding table with link metrics and identification information carried or indicated by the PREQ message, and may forward the PREQ message to one or more downstream peer devices. Similarly, when the respective peer device 132 receives a PREP message from a downstream peer device, the respective peer device 132 may update the corresponding forwarding table with link metrics and identification information carried or indicated by the PREP message, and may forward the PREP message to one or more upstream peer devices. The link metrics obtained during path discovery may be used to select the most suitable path from a source device to a destination device over the peering instances 134. In various aspects, the most suitable path may refer to one or more of the shortest path, the lowest cost path, or the path associated with the highest link quality.
The source device 210 may be any suitable device that can initiate path discovery in the mesh network, and the destination device 220 may be any suitable device that can receive messages or frames from the source device 210. In some instances, the source device 210 may be a mesh device associated with the mesh network. In some other instances, the source device 210 may be a mesh device located outside of the mesh network or not associated with the mesh network. In some other instances, the source device 210 may be a device associated with another network (such as one of the STAs 114 associated with the WLAN 110 of
The intermediate mesh nodes 231-233 may be any suitable device that can propagate messages or frames received from a first mesh node to one or more second mesh nodes over the peering instances 240. For example, in some instances, each of the intermediate mesh nodes 231-233 may receive discovery messages or frames from one or more previous-hop mesh nodes, update a corresponding forwarding table with discovery information, capability information, and node identification information obtained from the received discovery messages or frames, and forward the discovery messages or frames to one or more next-hop mesh nodes along the forward path 201 towards the destination device 220. Similarly, each of the intermediate mesh nodes 231-233 may receive discovery messages or frames from one or more next-hop mesh nodes, update the corresponding forwarding table with discovery information, capability information, and node identification information obtained from the received discovery messages or frames, and forward the discovery messages or frames to the one or more previous-hop mesh nodes along the reverse path 202 towards the source device 210.
For example, during path discovery, the source device 210 may broadcast PREQ messages over a shared wireless medium associated with the mesh network. Each of intermediate mesh nodes 231-233 that receives a PREQ message updates the corresponding forwarding table, and forwards the PREQ message to one or more next-hop mesh nodes, which in turn forward the PREQ message to one or more other next-hop mesh nodes closer to the destination device 220, and so on, until one or more PREQ messages reach the destination device 220. The intermediate mesh nodes 231-233 also may update the link metrics carried in PREQ messages received from previous-hop mesh nodes to include the link metrics of respective peering instances 240.
The destination device 220 may respond to receiving a PREQ message by broadcasting PREP messages over the shared wireless medium associated with the mesh network. The intermediate mesh nodes 231-233 receive the PREP messages, update their corresponding forwarding tables, and forward the PREP messages to the one or more previous-hop mesh nodes, which in turn forward the PREP messages to one or more other previous-hop mesh nodes closer to the source device 210, and so on, until one or more PREP messages reach the source device 210. When the source device 210 receives a PREP message, the path 200 may be established between the source device 210 and the destination device 220 along the peering instances 240 traversed by the PREP message and a corresponding PREQ message. In some instances, the destination device 220 may subsequently receive additional PREQ messages indicating better link metrics than the established path 200, and may send updated path information to the source device 210. In some aspects, the source device 210 may establish a new path to the destination device 220 based on the updated path information, for example, to achieve one or more of lower latencies, higher throughput, or lower cost.
In the example of
For example, in some instances, frames or messages exchanged between the source device 320 and the destination device 330 of
In the example of
In the example of
For example, in some instances, frames or messages exchanged between the source and destination devices 420 and 430 of
The L-STF 506 generally enables a receiving device to perform automatic gain control (AGC) and coarse timing and frequency estimation. The L-LTF 508 generally enables a receiving device to perform fine timing and frequency estimation and also to perform an initial estimate of the wireless channel. The L-SIG 510 generally enables a receiving device to determine a duration of the PDU and to use the determined duration to avoid transmitting on top of the PDU. For example, the L-STF 506, the L-LTF 508 and the L-SIG 510 may be modulated according to a binary phase shift keying (BPSK) modulation scheme. The payload 504 may be modulated according to a BPSK modulation scheme, a quadrature BPSK (Q-BPSK) modulation scheme, a quadrature amplitude modulation (QAM) modulation scheme, or another appropriate modulation scheme. The payload 504 may include a PSDU including a data field (DATA) 514 that, in turn, may carry higher layer data, for example, in the form of medium access control (MAC) protocol data units (MPDUs) or an aggregated MPDU (A-MPDU).
With reference to the A-MPDU 606, the MAC header 614 may include a number of fields containing information that defines or indicates characteristics or attributes of data encapsulated within the frame body 616. The MAC header 614 also includes a number of fields indicating addresses for the data encapsulated within the frame body 616. For example, the MAC header 614 may include a combination of a source address, a transmitter address, a receiver address, or a destination address. The MAC header 614 may include a frame control field containing control information. The frame control field specifies the frame type, for example, a data frame, a control frame, or a management frame. The MAC header 614 also may include a duration field indicating a duration extending from the end of the PPDU until the end of an acknowledgment (ACK) of the last PPDU to be transmitted by the wireless communication device (for example, a block ACK (BA) in the case of an A-MPDU). The use of the duration field serves to reserve the wireless medium for the indicated duration, thus establishing the NAV. Each A-MPDU subframe 608 also may include a frame check sequence (FCS) field 618 for error detection. For example, the FCS field 618 may include a cyclic redundancy check (CRC), and may be followed by one or more padding bits 620.
As described, APs 112 and STAs 114 can support multi-user (MU) communications. That is, concurrent transmissions from one device to each of multiple devices (for example, multiple simultaneous downlink (DL) communications from an AP 112 to corresponding STAs 114), or concurrent transmissions from multiple devices to a single device (for example, multiple simultaneous uplink (UL) transmissions from corresponding STAs 114 to an AP 112). To support the MU transmissions, the APs 112 and STAs 114 may utilize multi-user multiple-input, multiple-output (MU-MIMO) and partial bandwidth (BW) MU-MIMO techniques.
In partial BW MU-MIMO schemes, the available frequency spectrum of the wireless channel may be divided into multiple resource units (RUs) each including a number of different frequency subcarriers (“tones”). Different RUs may be allocated or assigned by an AP 112 to different STAs 114 at particular times. The sizes and distributions of the RUs may be referred to as an RU allocation. In some implementations, RUs may be allocated in 2 MHz intervals, and as such, the smallest RU may include 26 tones consisting of 24 data tones and 2 pilot tones. Consequently, in a 20 MHz channel, up to 9 RUs (such as 2 MHz, 26-tone RUs) may be allocated (because some tones are reserved for other purposes). Similarly, in a 160 MHz channel, up to 74 RUs may be allocated. Larger 52 tone, 106 tone, 242 tone, 484 tone and 996 tone RUs also may be allocated. Adjacent RUs may be separated by a null subcarrier (such as a DC subcarrier), for example, to reduce interference between adjacent RUs, to reduce receiver DC offset, and to avoid transmit center frequency leakage.
The wireless communication device 700 can be, or can include, a chip, system on chip (SoC), chipset, package, or device that includes one or more modems 702, for example, a Wi-Fi (IEEE 802.11 compliant) modem. In some implementations, the one or more modems 702 (collectively “the modem 702”) additionally include a WWAN modem (for example, a 3GPP 4G LTE or 5G compliant modem). In some implementations, the wireless communication device 700 also includes one or more radios 704 (collectively “the radio 704”). In some implementations, the wireless communication device 700 further includes one or more processors, processing blocks or processing elements (collectively “the processor 706”), and one or more memory blocks or elements (collectively “the memory 708”).
The modem 702 can include an intelligent hardware block or device such as, for example, an application-specific integrated circuit (ASIC) among other possibilities. The modem 702 is configured to implement a PHY layer. For example, the modem 702 is configured to modulate packets and to output the modulated packets to the radio 704 for transmission over the wireless medium. The modem 702 is similarly configured to obtain modulated packets received by the radio 704 and to demodulate the packets to provide demodulated packets. In addition to a modulator and a demodulator, the modem 702 also may include digital signal processing (DSP) circuitry, automatic gain control (AGC), a coder, a decoder, a multiplexer, and a demultiplexer. For example, while in a transmission mode, data obtained from the processor 706 is provided to a coder, which encodes the data to provide encoded bits. The encoded bits are mapped to points in a modulation constellation (using a selected MCS) to provide modulated symbols. The modulated symbols may be mapped to a number NSS of spatial streams or a number NSTS of space-time streams. The modulated symbols in the respective spatial or space-time streams may be multiplexed, transformed via an inverse fast Fourier transform (IFFT) block, and provided to the DSP circuitry for Tx windowing and filtering. The digital signals may be provided to a digital-to-analog converter (DAC). The resultant analog signals may be provided to a frequency upconverter, and the radio 704. In implementations involving beamforming, the modulated symbols in the respective spatial streams are precoded via a steering matrix prior to their provision to the IFFT block.
While in a reception mode, digital signals received from the radio 704 are provided to the DSP circuitry, which is configured to acquire a received signal, for example, by detecting the presence of the signal and estimating the initial timing and frequency offsets. The DSP circuitry is further configured to digitally condition the digital signals, for example, using channel (narrowband) filtering, analog impairment conditioning (such as correcting for I/Q imbalance), and applying digital gain to obtain a narrowband signal. The output of the DSP circuitry may be fed to the AGC, which is configured to use information extracted from the digital signals, for example, in one or more received training fields, to determine an appropriate gain. The output of the DSP circuitry also is coupled with the demodulator, which is configured to extract modulated symbols from the signal and, for example, compute the logarithm likelihood ratios (LLRs) for each bit position of each subcarrier in each spatial stream. The demodulator is coupled with the decoder, which may be configured to process the LLRs to provide decoded bits. The decoded bits from all of the spatial streams are fed to the demultiplexer for demultiplexing. The demultiplexed bits may be descrambled and provided to the MAC layer (the processor 706) for processing, evaluation, or interpretation.
The radio 704 includes at least one radio frequency (RF) transmitter (or “transmitter chain”) and at least one RF receiver (or “receiver chain”), which may be combined into one or more transceivers. For example, the RF transmitters and receivers may include various DSP circuitry including at least one power amplifier (PA) and at least one low-noise amplifier (LNA), respectively. The RF transmitters and receivers may in turn be coupled to one or more antennas. For example, in some implementations, the wireless communication device 700 can include, or be coupled with, multiple transmit antennas (each with a corresponding transmit chain) and multiple receive antennas (each with a corresponding receive chain). The symbols output from the modem 702 are provided to the radio 704, which transmits the symbols via the coupled antennas. Similarly, symbols received via the antennas are obtained by the radio 704, which provides the symbols to the modem 702.
The processor 706 can include an intelligent hardware block or device such as, for example, a processing core, a processing block, a central processing unit (CPU), a microprocessor, a microcontroller, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a programmable logic device (PLD) such as a field programmable gate array (FPGA), discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. The processor 706 processes information received through the radio 704 and the modem 702, and processes information to be output through the modem 702 and the radio 704 for transmission through the wireless medium. For example, the processor 706 may implement a control plane and MAC layer configured to perform various operations related to the generation and transmission of MPDUs, frames, or packets. The MAC layer is configured to perform or facilitate the coding and decoding of frames, spatial multiplexing, space-time block coding (STBC), beamforming, and OFDMA resource allocation, among other operations or techniques. In some implementations, the processor 706 may control the modem 702 to cause the modem to perform various operations described herein.
The memory 708 can include tangible storage media such as random-access memory (RAM) or read-only memory (ROM), or combinations thereof. The memory 708 also can store non-transitory processor- or computer-executable software (SW) code containing instructions that, when executed by the processor 706, cause the processor to perform various operations described herein for wireless communication, including the generation, transmission, reception, and interpretation of MPDUs, frames or packets. For example, various functions of components disclosed herein, or various blocks or steps of a method, operation, process, or algorithm disclosed herein, can be implemented as one or more modules of one or more computer programs.
The processing system of the AP 802 may interface with other components of the AP 802, and may process information received from other components (such as inputs or signals), output information to other components, and the like. For example, a chip or modem of the AP 802 may include a processing system, a first interface to receive or obtain information, and a second interface to output or transmit information. In some instances, the first interface may refer to an interface between the processing system of the chip or modem and a receiver, such that the AP 802 may receive information or signal inputs, and the information may be passed to the processing system. In some instances, the second interface may refer to an interface between the processing system of the chip or modem and a transmitter, such that the AP 802 may transmit information output from the chip or modem. A person having ordinary skill in the art will readily recognize that the second interface also may obtain or receive information or signal inputs, and the first interface also may output, transmit or provide information.
The processing system of the STA 804 may interface with other components of the STA 804, and may process information received from other components (such as inputs or signals), output information to other components, and the like. For example, a chip or modem of the STA 804 may include a processing system, a first interface to receive or obtain information, and a second interface to output or transmit information. In some instances, the first interface may refer to an interface between the processing system of the chip or modem and a receiver, such that the STA 804 may receive information or signal inputs, and the information may be passed to the processing system. In some instances, the second interface may refer to an interface between the processing system of the chip or modem and a transmitter, such that the STA 804 may transmit information output from the chip or modem. A person having ordinary skill in the art will readily recognize that the second interface also may obtain or receive information or signal inputs, and the first interface also may output, transmit or provide information.
The AP MLD 910 includes multiple APs 911-913 associated with (or operating on) respective communication links 901-903. In the example of
The non-AP MLD 920 includes multiple STAs 921-923 that may be configured to communicate on the communication links 901-903, respectively. Thus, the STA 921 may operate on the 2.4 GHz frequency band, the STA 922 may operate on the 5 GHz frequency band, and the STA 923 may operate on the 6 GHz frequency band. In the example of
In some implementations, the non-AP MLD 920 may include a single radio or may otherwise be capable of communicating on only one link at a time. In such implementations, the non-AP MLD 920 may operate in a multi-link single-radio (MLSR) mode or an enhanced MLSR (EMLSR) mode. A non-AP MLD operating in the EMLSR mode can listen for specific types of communications (such as buffer status report poll (BSRP) frames or multi-user request-to-send (MU-RTS) frames) on multiple communication links, concurrently, but can only transmit or receive on one communication link at any given time. For example, the STAs 921 and 922 may concurrently listen on their respective links 901 and 902 during a listen interval. However, if the STA 921 detects a BSRP frame on link 901, the non-AP MLD 920 subsequently tunes each of the non-AP MLD's antennas (including the antenna used by the STA 922 during the listen interval) to operate on link 901. By contrast, a non-AP MLD operating in the MLSR mode can only listen to, and transmit or receive on, one communication link at any given time. For example, the STA 921 must be in a power save mode at times during which the STA 922 is active.
In some other implementations, the non-AP MLD 920 may include multiple radios and may be capable of concurrent communications on each of the links 901-903. In such implementations, the non-AP MLD 920 may operate in a multi-link multi-radio (MLMR) simultaneous transmit and receive (STR) mode or a multi-link multi-radio non-STR (NSTR) mode. A non-AP MLD operating in the MLMR STR mode can simultaneously (or concurrently) transmit and receive on multiple communication links. For example, the STA 921 may transmit or receive on link 901 while the STA 922 concurrently transmits or receives on link 902, asynchronously. By contrast, a non-AP MLD operating in the MLMR NSTR mode can simultaneously transmit and receive on multiple communication links only if such communications are synchronous. For example, the STAs 922 and 923 may concurrently transmit on links 902 and 903 and may concurrently receive on links 902 and 903. However, the STA 922 cannot be transmitting on link 902 while the STA 923 is receiving on link 903.
Still further, a non-AP MLD may include multiple radios but may be capable of concurrent communications on only a subset of the links. In such implementations, the non-AP MLD 920 may operate in an enhanced MLMR (EMLMR) mode or a hybrid EMLSR mode. A non-AP MLD operating in the EMLMR mode supports MLMR STR operation between certain pairs of communication links. For example, the STAs 921 and 922 may concurrently communicate on their respective links 901 and 902 in accordance with the MLMR STR mode of operation.
The peer MLDs 1011-1016 may be any suitable wireless communication device capable of establishing multi-link peering instances 1035 between one another to form an ad hoc network that operates on multiple communication links, concurrently. In some instances, the peer MLDs 1011-1016 may be examples of one or both of the AP MLD 910 and the non-AP MLD 920 described with reference to
For example, although not shown in
In the example of
The wireless networks associated with each of BSS1—BSS6 may be indicated to users by a corresponding service set identifier (SSID), and may be indicated to other devices by a basic service set identifier (BSSID), which may be the MAC address of the respective peer multi-link device. In some instances, each of peer MLDs 1011-1016 broadcasts beacon frames that include the BSSID of the respective BSS to enable STAs or other client devices within wireless range of the respective peer multi-link device to associate or re-associate with the respective peer multi-link device.
As discussed, aspects of the present disclosure recognize that multi-link operation may be enabled in a mesh network by replacing mesh protocol addresses carried in the medium access control (MAC) headers of mesh protocol frames with corresponding multi-link addresses based on per-link MAC addresses and MLD MAC addresses. In various implementations, each of the peer MLDs 1011-1016 may include 2-layer MAC addressing that includes a per-link MAC address identifying a corresponding communication link associated with the peer MLD, and an MLD MAC address identifying the peer MLD. In some instances, the per-link MAC address may indicate a receiver address or a transmitter addresses of a respective peering instance 1035, and the MLD MAC address may indicate a corresponding MBSS egress point or MBSS ingress point of a mesh path established in the mesh network 1000. Specifically, in some instances, the MAC headers of mesh protocol frames communicated over peering instances 1035 of the mesh network 1000 may be populated with multi-link protocol addresses that include first and second addresses indicating respective per-link receiver and per-link transmitter addresses of a peering instance 1035 on the first communication link, and include third and fourth addresses indicating respective MLD path destination and source addresses. In some aspects, the MAC headers of the mesh protocol frames also may include fifth and sixth addresses indicating MLD MAC addresses associated with a destination and a source, respectively.
In some implementations, each of the peer MLDs 1011-1016 that receives a mesh protocol frame from a previous-hop peer MLD or a next-hop peer MLD may replace the mesh protocol addresses in the MAC header of the mesh protocol frame with multi-link protocol addresses based on a mapping between mesh protocol addresses and multi-link protocol addresses. For example, in some instances, the mesh receiver and transmitter addresses carried in the Addr1 and Addr2 fields of the MAC header may be mapped to the per-link receiver and transmitter addresses, respectively, and the mesh STA destination and mesh STA source addresses carried in the Addr3 and Addr4 fields of the MAC header may be mapped to the MAC addresses of the peer MLDs associated with the mesh path destination and path source addresses, respectively. In some aspects, the destination and source addresses carried in the Addr5 and Addr6 fields of the MAC header may be mapped to the MAC addresses of the peer MLDs associated with the destination and source, respectively.
In various implementations, the peer MLDs 1011-1016 may learn the mappings between mesh protocol addresses and multi-link protocol addresses based on routing or forwarding addresses associated with frames received from previous-hop peer MLDs and next-hop peer MLDs. For example, when a respective peer MLD receives a mesh protocol frame from a previous-hop peer MLD or a next-hop peer MLD, the respective peer MLD may extract the mesh protocol addresses from the MAC header of the mesh protocol frame, and search the forwarding table associated with the respective peer MLD to find multi-link protocol addresses corresponding to the extracted mesh protocol addresses. Specifically, when the corresponding multi-link protocol addresses are stored in the forwarding table (based on the address mappings), the peer MLD replaces the mesh protocol addresses in the received mesh protocol frame with the corresponding multi-link protocol addresses retrieved from the forwarding table, and forwards the mesh protocol frame to one or more other peer MLDs based on the corresponding multi-link protocol addresses. Conversely, when the corresponding multi-link protocol addresses are not stored in the forwarding table, the peer MLD may determine or obtain the multi-link protocol addresses corresponding to the extracted mesh protocol addresses, and may create or modify the corresponding entry in the forwarding table with the determined or obtained multi-link protocol addresses. In this way, the respective peer MLD may implement MAC address mapping learning operations.
In some instances, a multi-link context associated with the mesh network 1000 may allow the peer MLDs 1011-1016 to discover, associate, and authenticate with one another on all of the communication links of the mesh network 1000 based on one or more of discovery information, capabilities, or operation parameters received or otherwise obtained on one of the communication links of the mesh network 1000. The multi-link context also may allow the peer MLDs 1011-1016 to establish a common security context, common encryption keys, common acknowledgement (BA) sessions, and Traffic Identifier (TID)-to-Link Mappings on all of the communication links based on frame exchanges on one of the communication links.
Specifically, in some implementations, one or more of the peer MLDs 1011-1016 may broadcast, on the first communication link, one or more mesh protocol frames that carry or indicate discovery information, capabilities, and operation parameters for each of the multiple communication links associated with the mesh network 1000. For example, in some instances, the mesh protocol frames may include a Multi-link element indicating discovery information for each of the communication links of the mesh network 1000. The Multi-link element also may indicate one or more MLD capabilities common to each of the communication links of the mesh network 1000. In some instances, the mesh protocol frames also may include a Reduced Neighbor Report (RNR) element indicating channel information, operation parameters, and MLD parameters of the one or more second APs associated with the one or more respective second communication links of the mesh network 1000. In some aspects, the mesh protocol frames also may include one or both of an EHT Capability element indicating one or more capabilities of the first device and the one or more second devices of a respective peer MLD or an EHT Operation element indicating one or more operation parameters for each of the first communication link and the one or more second communication links of the mesh network 1000. In some other instances, the mesh protocol frames also may include a TID-to-Link Mapping element indicating, for each of a plurality of TIDs, on which of the multiple communication links established between the peer MLDs 1011-1016 that mesh data frames belonging to the respective TID are permitted.
Each of the peer MLDs 1011-1016 that receives the broadcast mesh protocol frames on the first communication link may use one or more of the indicated discovery information, capabilities, or parameters to discover, associate, and authenticate with another peer MLD on all of the communication links associated with the mesh network 1000. In some instances, each of the peer MLDs 1011-1016 also may use one or more of the discovery information, capabilities, or parameters indicated by the broadcast mesh protocol frames to determine whether or not any of the discovered peer MLDs are suitable candidates with which to establish peering instances 1035 during path selection.
The value carried in the Link ID subfield of the per-STA Profile subelement carried in the Multi-link element of a mesh protocol frame transmitted by an AP of a respective peer MLD may be unique to each AP associated with the respective peer MLD. In some aspects, the link ID value assigned to a communication link by the AP of the respective peer MLD may be a representation of the tuple consisting of the Operating Class, the Operating channel, and the BSSID associated with the AP. When the peer MLDs 1011-1016 are configured to operate as mesh nodes within the mesh network 1000, a pair of the peer MLDs 1011-1016 may assign different Link IDs to the same communication link during multi-link setup operations, TID-to-Link mapping negotiations, and Target Wake Time (TWT) setup operations, among other examples.
For example, during a multi-link setup procedure to establish the peering instance 1035B between peer MLDs 1013 and 1014, the peer MLD 1013 may initiate TID-to-Link mapping negotiation by including a TID-to-Link Mapping element in an Association Request frame sent to the peer MLD 1014. The peer MLD 1014 may respond by sending, to the initiating peer MLD 1013, an Association Response frame including a TID-to-Link Mapping element indicating whether the proposed TID-to-link mappings are accepted, rejected, or modified. However, the TID-to-Link Mapping element carried in the Association Request frame may include a first Link ID selected by the initiating peer MLD 1013, and the TID-to-Link Mapping element carried in the Association Response frame may include a second Link ID selected by the responding peer MLD 1014. When the first and second Link IDs assigned by respective peer MLDs 1013 and 1014 are not the same, the peer MLDs 1013 and 1014 may not be able to successfully negotiate the TID-to-Link mappings.
Aspects of the subject matter disclosed herein recognize that while multi-link operations are unidirectional in an infrastructure BSS (such as because each MLD typically operates as either an AP MLD or a non-AP MLD), multi-link operations performed by peer MLDs 1011-1016 associated with the mesh network 1000 are bidirectional in that each of the peer MLDs 1011-1016 may operate as both an AP MLD and a non-AP MLD, concurrently. For example, when peer MLDs 1011-1016 use Mesh Peering Open and Mesh Peering Confirm frames to associate with one another or to establish peering instances 1035 between each other, the requesting peer MLD may assign a first Link ID to a respective peering instance 1035, and the responding peer MLD may assign a second Link ID to the respective peering instance 1035. The requesting peer MLD may include the first Link ID in Mesh Peering Open frames sent to the responding peer MLD, and the responding peer MLD may include the second Link ID in Mesh Peering Confirm frames sent to the requesting peer MLD. The conflicting Link IDs assigned by the requesting peer MLD and the responding peer MLD may preclude the successful completion of multi-link operations in the mesh network 1000.
Implementations of the subject matter disclosed herein may reconcile conflicting Link IDs assigned by different peer MLDs by indicating the mesh domain to which each assigned Link ID is referenced, and using the Link ID associated with the indicated mesh domain when requesting or establishing certain multi-link operations (such as TID-to-Link mapping negotiations, TWT setup operations, or r-TWT setup operations, among other examples) between peer MLDs over the established peering instances 1035. For example, in some instances, each peer MLD that requests a configured operation on a multi-link peering instance 1035 associated with a Link ID uses the Link ID assigned by the responding peer MLD. In some other instances, the responding peer MLD uses the Link ID assigned by the requesting peer MLD. In some other implementations, the peer MLDs associated with the requested configured operation may determine, negotiate, or otherwise agree on the Link ID to be used for the configured operation.
In some implementations, the peer MLDs 1011-1016 may discover one another and establish peering instances 1035 between one another based on the HWMP path selection procedure specified by the 802.11s amendments to the IEEE 802.11 standard. As discussed, the HWMP is a mesh path selection protocol that combines the flexibility of on-demand path selection with proactive topology tree extensions to select a path from a source device to a destination device along one or more nodes or “hops” in a mesh network. For example, in some instances, the source device may discover a multi-link path through the mesh network 1000 to the destination device by broadcasting PREQ messages to one or more of the peer MLDs 1011-1016 of the mesh network 1000. Each of the peer MLDs 1011-1016 that receives a PREQ message may forward the PREQ message to one or more downstream or “next-hop” peer MLDs closer to the destination device. When a PREQ message reaches the destination device, at least one path can be discovered between the source device and the destination device through the mesh network 1000.
The validity of a discovered path may be confirmed by propagating PREP messages along a reverse path from the destination device to the source device through the mesh network 1000. In some instances, the destination device may broadcast PREP messages to one or more of the peer MLDs 1011-1016 associated with the forward path extending from the source device to the destination device. Each of the peer MLDs 1011-1016 that receives or obtains a PREP message updates the forwarding information, link identifications, and link metrics in the respective MLD's forwarding table, and forwards the PREP message to one or more upstream or “previous-hop” peer MLDs that are closer to the source device. When one or more of the PREP messages reach the source device, the source device may verify the validity of the discovered path through the mesh network 1000.
In some implementations, the path discovery messages propagated through the mesh network 1000 during path selection procedures may carry or indicate one or more link metrics of the peering instances 1035 traversed by the respective messages. Specifically, in some instances, each of the peer MLDs 1011-1016 that receives a PREQ message updates the link metrics associated with the previous-hop peering instance 1035 with link metrics of the peering instance associated with the respective peer MLD, and stores the accumulated link metrics for each discovered path in the respective MLD's forwarding table. The accumulated link metrics can be used by the peer MLDs 1011-1016 to select candidate peer MLDs as intermediate mesh nodes along one or more discovered paths from the source device to the destination device. Along the reverse path, each of the peer MLDs 1011-1016 that propagates a PREP message may update the link metrics of the next-hop peering instance 1035 with link metrics of the peering instance associated with the respective peer MLD, and may store the accumulated link metrics associated with the reverse path in the respective MLD's forwarding table. In some aspects, the reverse path link metrics may be used by one or more of the peer MLDs 1011-1016 to transmit unicast PREP messages to the peer MLD associated with the source device.
In some implementations, the peer MLDs 1011-1016 may use the link metrics obtained during path discovery to select the most-suitable path between the source device and the destination device. In some instances, the most-suitable path may refer to one or more of the shortest path, the lowest cost path, or the path associated with the highest link quality. The peer MLDs 1011-1016 also may use the link metrics to improve network performance, for example, by selecting paths associated with low latencies and high throughput.
In the example of
Each of the peer MLDs 1011-1016 that receives the Mesh Peering Open frame may forward the Mesh Peering Open frame to one or more downstream peer MLDs, which in turn may forward the Mesh Peering Open frame to one or more other downstream peer MLDs closer to STA2, and so on, until at least one Mesh Peering Open frame reaches the destination at STA2. Each of the peer MLDs 1011-1016 that receives the Mesh Peering Open frame also may send a Mesh Peering Confirm frame to one or more upstream peer MLDs, which in turn may forward the Mesh Peering Confirm frame to one or more other peer MLDs closer to STA1, and so on, until at least one Mesh Peering Confirm frame reaches STA2. The Mesh Peering Confirm frame may indicate whether the requested peering instance is accepted or rejected by the respective peer MLD.
After the multi-link path from STA1 to STA2 through the mesh network 1000 is established, STA1 can send mesh protocol data frames or messages to STA2 using one or more of the multiple communication links associated with the mesh network 1000. For example, in some instances, STA1 obtains a payload from the source, encapsulates the payload in a mesh protocol data frame, and sends the mesh protocol data frame to peer MLD 1013 on the first communication link of peering instance 1035A for delivery to the destination within or associated with STA2. The MAC header of the mesh protocol data frame sent by STA1 may carry multi-link addresses that include per-link receiver and transmitter addresses, and MLD path source and destination addresses.
In the example of
The mesh protocol data frame is received by the first AP of peer MLD 1013 on the peering instance 1035A, and passed to the first STA of peer MLD 1013 for communication to the destination by peer MLDs 1014-1016 on respective peering instances 1035B-1035D. The first STA of peer MLD 1013 determines or obtains multi-link addresses indicating STA1 as the source device, indicating STA2 as the destination device, and indicating the peering instance 1035B and next-hop peer MLD 1014. In the example of
The first STA of peer MLD 1013 forwards the mesh protocol data frame including the multi-link addresses to the next-hop peer MLD 1014 on the first communication link associated with peering instance 1035B. The first STA of peer MLD 1014 receives the mesh protocol data frame, and determines or obtains the multi-link addresses associated with the next-hop on peering instance 1035C based on, for example, on the mesh-to-MLD address mapping.
The first STA of peer MLD 1014 forwards the mesh protocol data frame including the multi-link addresses to the next-hop peer MLD 1015 on the first communication link associated with peering instance 1035C. The first STA of peer MLD 1015 receives the mesh protocol data frame, and determines or obtains the multi-link addresses associated with the next-hop peering instance 1035D based on the mesh-to-MLD address mapping.
The first STA of peer MLD 1015 forwards the mesh protocol data frame including the multi-link addresses to the next-hop peer MLD 1016 on the first communication link associated with peering instance 1035D. The mesh protocol data frame communicated on peering instance 1035D is received by the first STA of peer MLD 1016, and passed to the first AP of peer MLD 1016. The first AP of peer MLD 1016 determines or obtains the multi-link addresses associated with STA2 based on the mesh-to-MLD address mapping, and forwards the mesh protocol data frame including the multi-link addresses to STA2 on the first communication link associated with peering instance 1035E.
In the example of
In some implementations, the address field 1110 may be included in the MAC headers of mesh protocol frames sent from STA1 to peer MLD 1013 over peering instance 1035A of the mesh network 1000. Specifically, in some instances, the To DS address field carries a value of 1 to indicate that the mesh protocol frame is to be delivered to a destination that is not associated with the mesh network 1000, and the From DS address field carries a value of 0 to indicate that the mesh protocol frame is not received from a DS. The Addr1 field carries or indicates the per-link address of peer MLD 1013 (as the mesh RA), the Addr2 field carries or indicates the per-link address of STA1 (as the mesh TA), the Addr3 field carries or indicates the MLD MAC address of STA2 (as the destination), and the Addr4 field may indicate a null value.
The address field 1120 may be provided in the MAC headers of mesh protocol frames sent from peer MLD 1013 to peer MLD 1014 over peering instance 1035B. Specifically, in some instances, the To DS address field carries a value of 1 to indicate that the mesh protocol frame is to be delivered to a destination that is not associated with the mesh network 1000, and the From DS address field carries a value of 1 to indicate that the mesh protocol frame is received from a distribution system or gateway. The Addr1 field carries or indicates the per-link address of peer MLD 1014 (as the mesh RA), the Addr2 field carries or indicates the per-link address of peer MLD 1013 (as the mesh TA), the Addr3 field carries or indicates the MLD MAC address of peer MLD 1016 (as the mesh DA), the Addr4 field carries or indicates the MLD MAC address of peer MLD 1013 (as the mesh SA), the Addr5 field carries or indicates the MLD MAC address of STA2 (as the destination), and the Addr6 field carries or indicates the MLD MAC address of STA1 (as the source).
The address field 1130 may be provided in the MAC headers of mesh protocol frames sent from peer MLD 1014 to peer MLD 1015 over peering instance 1035C. The To DS and From DS address fields carry or indicate a value of 1, the Addr1 field carries or indicates the per-link address of peer MLD 1015 (as the mesh RA), the Addr2 field carries or indicates the per-link address of peer MLD 1014 (as the mesh TA), the Addr3 field carries or indicates the MLD MAC address of peer MLD 1016 (as the mesh DA), the Addr4 field carries or indicates the MLD MAC address of peer MLD 1013 (as the mesh SA), the Addr5 field carries or indicates the MLD MAC address of STA2 (as the destination), and the Addr6 field carries or indicates the MLD MAC address of STA1 (as the source).
The address field 1140 may be provided in the MAC header of mesh protocol frames sent from peer MLD 1015 to peer MLD 1016 over peering instances 1035D. The To DS and From DS address fields carry or indicate a value of 1, the Addr1 field carries or indicates the per-link address of peer MLD 1016 (as the mesh RA), the Addr2 field carries or indicates the per-link address of peer MLD 1015 (as the mesh TA), the Addr3 field carries or indicates the MLD MAC address of peer MLD 1016 (as the mesh DA), the Addr4 field carries or indicates the MLD MAC address of peer MLD 1013 (as the mesh SA), the Addr5 field carries or indicates the MLD MAC address of STA2 (as the destination), and the Addr6 field carries or indicates the MLD MAC address of STA1 (as the source).
The address field 1150 may be provided in the MAC header of mesh protocol frames sent from peer MLD 1016 to STA2. The To DS address field carries or indicates a value of 0, and the From DS address field carries or indicates a value of 1. The Addr1 field carries or indicates the per-link address of STA2 (as the mesh RA), the Addr2 field carries or indicates the per-link address of peer MLD 1016 (as the mesh TA), the Addr3 field carries or indicates the MLD MAC address of STA1 (as the mesh DA), and the Addr4 field carries or indicates a null value.
In some implementations, the operation 1200 may be performed by an MLD including a first device associated with a first communication link of the MLD and including one or more second devices associated with one or more respective second communication links of the MLD. In some instances, the first device may be associated with a first STA of the MLD and a first AP of the MLD. The first STA of the MLD may be configured to communicate with one of a previous-hop peer MLD or a next-hop peer MLD over the first communication link of the MLD, and the first AP of the MLD may be configured to communicate with the other of the previous-hop peer MLD or the next-hop peer MLD on the first communication link of the MLD. In some other instances, each of the one or more second devices of the MLD may be associated with a respective second STA of the MLD and a respective second AP of the MLD. The second STAs of the MLD may be configured to communicate with the one of the previous-hop peer MLD or the next-hop peer MLD over the one or more respective second communication links of the MLD, and each of the one or more second APs may be configured to communicate with the other of the previous-hop peer MLD or the next-hop peer MLD on the one or more respective second communication links of the MLD.
For example, at 1202, the MLD transmits a frame on the first communication link, the frame including a medium access control (MAC) header carrying a plurality of addresses associated with the MBSS, each address of the plurality of addresses associated with one of a per-link address of the first communication link or a MAC address of the MLD. In some instances, the plurality of addresses may include first and second addresses indicating respective receiver and transmitter addresses of a peering instance on the first communication link, and may include third and fourth addresses indicating respective MBSS egress and MBSS ingress points of the peering instance on the first communication link. The first and second addresses may be associated with per-link MAC addresses, and the third and fourth addresses may be associated with MLD MAC addresses. In some aspects, the plurality of addresses also may include fifth and sixth addresses indicating a destination and a source, respectively, of the peering instance, where each of the fifth and sixth addresses may be associated with MLD MAC addresses.
In some implementations, the frame may be one of a Hybrid Wireless Mesh Protocol (HWMP) Mesh Path Selection frame, a Mesh Peering Open frame, a Mesh Peering Confirm frame, a Mesh Peering Close frame, or a Mesh Data frame. In some instances, the frame may include a Multi-Link element indicating discovery information for the first communication link and discovery information for each of the one or more second communication links. In some other instances, the frame also may include a Traffic Identifier (TID)-to-Link Mapping element indicating, for each of a plurality of TIDs, on which of the first communication link or the one or more second communication links that mesh data frames belonging to the respective TID are permitted. In some other instances, the frame also may include one or both of an EHT Capability element indicating one or more capabilities of the first device of the MLD and one or more capabilities of the one or more second devices of the MLD, or an EHT Operation element indicating one or more operation parameters for the first communication link and one or more operation parameters for each of the one or more second communication links.
In some aspects, the operation 1300 may be performed after transmission of a Mesh Peering Open frame on the first communication link at 1202 of
In some aspects, the operation 1400 may be performed after transmission of the frame at 1202 of
In some aspects, the operation 1500 may be performed after transmission of a Mesh Peering Open frame on the first communication link at 1202 of
In some instances, the operation 1600 may be performed in conjunction with the operation 1200 of
The Multi-link element 1700 includes an Element ID field 1701, a Length field 1702, an Element ID Extension field 1703, a Multi-Link Control field 1704, a Common Info field 1705, and a Link Info field 1706. The Element ID field 1701 and the Element ID Extension field 1703 carry values indicating that the element is a Multi-link element and indicating the type of Multi-link element. The Length field 1702 carries a value indicating the length of the Multi-link element 1700. The Multi-Link Control field 1704 carries information indicating the presence of various fields and subfields in the Common Info field 1705. The Common Info field 1705 carries information common to one or more non-primary links associated with an AP MLD. The Link Info field 1706 carries information specific to each of the non-primary links associated with the AP MLD. In some instances, the Link Info field 1706 includes one or more Per-STA Profile subelements that carry or indicate the complete or partial profiles of one or more corresponding non-primary links of an AP MLD.
In some instances, the MLD MAC Address subfield 1722 may carry or indicate the MAC address of a peer MLD described with reference to
The Medium Synchronization Delay Information subfield 1725 carries a value indicating the duration of the MediumSyncDelay timer. The EML Capabilities subfield 1726 contains a number of subfields that are used to advertise the capabilities for EML Single-Radio (SR) operation and EML Multiple-Radio (MR) operation. The MLD Capabilities subfield 1727 indicates various capabilities of the MLD. For example, the MLD Capabilities subfield 1727 may indicate the maximum number of links that support the simultaneous transmission or reception of frames, whether the MLD supports the reception of frames that carry an SRS control subfield, whether the MLD supports TID-to-Link mapping negotiation, and the minimum frequency gap between any two links that is recommended by the non-AP MLD for STR operation.
The STA MAC Address Present subfield 1753 indicates the presence of the STA MAC Address subfield in the STA Info field 1744 of the Multi-link element 1700, and is set to 1 if the STA MAC Address subfield is present in the STA Info field, otherwise the STA MAC Address Present subfield 1753 is set to 0. A STA sets the STA MAC Address Present subfield 1753 to 1 when the Multi-link element 1700 carries the complete profile of a corresponding communication link.
The Beacon Interval Present subfield 1754 indicates the presence of the Beacon Interval subfield in the STA Info field 1744 and is set to 1 if the Beacon Interval subfield is present in the STA Info field 1744, otherwise the Beacon Interval Present subfield 1754 is set to 0. A non-AP STA sets the Beacon Interval Present subfield to 0 in the transmitted Basic Multi-Link element. An AP sets the Beacon Interval Present subfield 1754 to 1 when the Multi-link element 1700 carries the complete profile of a corresponding communication link. An AP affiliated with an NSTR mobile AP MLD and that is operating on nonprimary links sets the Beacon Interval Present subfield 1754 to 0.
The TSF Offset Present subfield 1755 indicates the presence of the TSF Offset subfield in the STA Info field 1744 and is set to 1 if the TSF Offset subfield is present in the STA Info field, otherwise the TSF Offset Present subfield 1755 is set to 0. A non-AP STA sets the TSF Offset Present subfield to 0 in the transmitted Basic Multi-Link element. An AP sets the TSF Offset Present subfield 1755 to 1 when the Multi-link element 1700 carries the complete profile of a corresponding communication link.
The DTIM Info Present subfield 1756 indicates the presence of the DTIM Info subfield in the STA Info field 1744 and is set to 1 if the DTIM Info subfield is present in the STA Info field 1744, otherwise the DTIM Info Present subfield 1756 is set to 0. A non-AP STA sets the DTIM Info Present subfield to 0 in the transmitted Basic Multi-Link element. An AP sets the DTIM Info Present subfield 1756 to 1 when the Multi-link element 1700 carries the complete profile of a corresponding communication link. An AP affiliated with an NSTR mobile AP MLD and that is operating on the nonprimary link set the DTIM Info Present subfield 1756 to 0.
The NSTR Link Pair Present subfield 1757 carries a value indicating whether the Per-STA Profile subelement 1740 carries information pertaining to a pair of communication links associated with an NSTR softAP MLD. The NSTR Bitmap Size subfield 1758 carries a value indicating the size of an NSTR Indication Bitmap field included in the Per-STA Profile subelement 1740 of
The BSS Parameters Change Count Present subfield 1759 indicates the presence of the BSS Parameters Change Count subfield in the STA Info field and is set to 1 if the BSS Parameters Change Count subfield is present in the STA Info field, otherwise the BSS Parameters Change Count Present subfield 1759 is set to 0. A non-AP STA sets the BSS Parameters Change Count Present subfield to 0 in the transmitted Basic Multi-Link element. If the Basic Multi-Link element carries the complete profile and is carried in the (Re)Association Response frame, an AP sets the BSS Parameters Change Count Present subfield 1759 to 1. Otherwise, an AP sets the BSS Parameters Change Count Present subfield 1759 to 0.
The TID-to-Link Mapping Control field 1804 may include a Direction subfield and a Default Link Mapping subfield (not shown for simplicity). For example, the Direction subfield is set to 0 if the TID-To-link Mapping element 1800 provides the TID-to-link mapping information for frames transmitted on the downlink, the Direction subfield is set to 1 if the TID-To-Link Mapping element 1800 provides the TID-to-link mapping information for frames transmitted on the uplink, and the Direction subfield is set to 2 if the TID-To-Link Mapping element 1800 provides the TID-to-link mapping information for frames transmitted both on the downlink and the uplink. The Default Link Mapping subfield is set to 1 if the TID-To-Link Mapping element represents the default TID-to-link mapping, and is otherwise set to 0.
Each of the Link Mapping of TID fields 1805(0)-1805(7) indicates the link or links on which frames belonging to a respective TID are allowed to be sent. In some instances, each of the Link Mapping of TID fields 1805(0)-1805(7) carries a bitmap of the links to which the respective TID is mapped to. For example, a value of 1 in bit position i (where i=0, 1, 2, . . . , 14) indicates that the respective TID is mapped to the link associated with the link ID i for the direction specified in the Direction subfield, and a value of 0 in bit position i indicates that the respective TID is not mapped to the link associated with the link ID i.
The RNR element 1900 may be used to indicate channel information, parameters, and other information related to the one or more second APs associated with the one or more second communication links of the peer MLDs described with reference to
The Neighbor AP Information field 1906 includes a TBTT Information header 1911, an Operating Class field 1912, a Channel Number field 1913, and a TB TT Information Set field 1914. The TBTT Information header 1911 carries general information pertaining to the corresponding AP. The Operating Class field 1912 indicates a channel starting frequency that, together with the Channel Number field 1913, indicates the primary channel of the BSS of the AP associated with the Neighbor AP Information field. The Channel Number field 1913 indicates the last known primary channel of the AP associated with the Neighbor AP Information field. The TBTT Information Set field 1914 contains one or more TBTT Information fields that carry TBTT information, operation parameters, and MLD parameters for the AP associated with the Neighbor AP Information field.
The Filtered Neighbor AP subfield 1922 is reserved except when the Reduced Neighbor Report element 1900 is carried in a Probe Response frame transmitted by an EHT AP. The reserved subfield 1923 includes one or more reserved or unused bits. The TBTT Information Count subfield 1924 indicates the number of TBTT Information fields included in the TBTT Information Set field 1914 of the Neighbor AP Information field 1906, minus one. The TBTT Information Length subfield 1925 indicates the length of each TB TT Information field included in the TBTT Information Set field of the Neighbor AP Information field.
The MLD Parameters subfield 1936 may include an MLD ID subfield 1941, a Link ID subfield 1942, a BSS Parameters Change Count subfield 1943, and a Reserved subfield 1944. The MLD ID subfield 1941 indicates the identifier of the AP MLD with which the reported AP is affiliated. If the reported AP is affiliated with the same MLD as the reporting AP sending the frame carrying the RNR element, the MLD ID subfield 1941 is set to 0. If the reported AP is affiliated with the same MLD as a non-transmitted BSSID that is in the same multiple BSSID set as the reporting AP sending the frame carrying the RNR element, the MLD ID subfield 1941 is set to the same value as in the BSSID Index field in the Multiple BSSID-Index element in the non-transmitted BSSID profile corresponding to the non-transmitted BSSID.
The Link ID subfield 1942 indicates the link identifier of the reported AP within the AP MLD with which the reported AP is affiliated. The Link ID subfield is set to 15 if the reported AP is not part of an AP MLD, or if the reporting AP does not have that information.
The BSS Parameters Change Count subfield 1943 is an unsigned integer, initialized to 0, that increments when a critical update to the Beacon frame of the reported AP occurs. The BSS Parameters Change Count subfield 1943 is set to 255 if the reported AP is not part of an AP MLD, or if the reporting AP does not have information pertaining to the critical updates.
The All Updates Included subfield 1944 indicates if the updated elements corresponding to the latest critical update that generated a change to the value carried in the BSS Parameters Change Count subfield for the AP are included in the frame carrying the RNR element 1900. The All Updates Included subfield 1944 is set to 1 if all of the updated elements are included, and is otherwise set to 0. The Reserved subfield 1945 includes one or more reserved or unused bits.
The wireless communication device 2000 includes a reception component 2010, a communication manager 2020, and a transmission component 2030. The communication manager 2020 includes a Multi-link Operation component 2021, a Mesh Protocol component 2022, and a TID-to-Link Mapping component 2023. Portions of one or more of the components 2021-2023 may be implemented at least in part in hardware or firmware. In some implementations, one or more of the components 2021-2023 are implemented at least in part as software stored in a memory (such as the memory 708 of
The reception component 2010 is configured to receive RX signals from one or more other wireless communication devices, and the transmission component 2030 is configured to transmit TX signals to one or more other wireless communication devices. The communication manager 2020 is configured to manage wireless communications with one or more other wireless communication devices.
The Multi-link Operation component 2021 may establish or setup multi-link operation on the peering instances or mesh links associated with a mesh network. In some instances, the Multi-link Operation component 2021 also may map the mesh addresses carried in the MAC header of mesh protocol frames or messages to one of a per-link address of a corresponding peering instance or a MAC address of a corresponding MLD.
The Mesh Protocol component 2022 may discover peer devices associated with a mesh network and within radio range of the wireless communication device 2000, and may determine whether any of the discovered peer devices are candidates suitable for establishing a peering instance or mesh link. In some instances, the Mesh Protocol component 2022 also may establish peering instances or mesh links in the mesh network with the suitable candidate peer devices. In some other instances, the Mesh Protocol component 2022 also may discover paths between a source device and a destination device over one or more of the established peering instances or mesh links. In some aspects, the Mesh Protocol component 2022 may employ HWMP path selections techniques described herein to establish peering instances or mesh links, and to discover the best-suited path from the source device to the destination device.
The TID-to-Link Mapping component 2023 may determine or obtain mappings between the TIDs of traffic flows associated with a respective device and the communication links of a MLD provisioned or allocated to the respective device. In some instances, the TID-to-Link Mapping component 2023 also may update the mappings based on changes in the communication links provisioned or allocated to the respective device.
Implementation examples are described in the following example aspects:
9. The MLD of any one or more of aspects 1-8, where the frame includes a Mesh Peering Open frame outputted over the first communication link of the MLD to one or more candidate peer devices associated with the MBSS, the Mesh Peering Open frame including a request to establish peering instances on each of the first communication link of the MLD and one or more second communication links associated with one or more respective second devices of the MLD.
As used herein, a phrase referring to “at least one of” or “one or more of” a list of items refers to any combination of those items, including single members. For example, “at least one of: a, b, or c” is intended to cover the possibilities of: a only, b only, c only, a combination of a and b, a combination of a and c, a combination of b and c, and a combination of a and b and c. As used herein, “based on” is intended to be interpreted in the inclusive sense, unless otherwise explicitly indicated. For example, “based on” may be used interchangeably with “based at least in part on,” unless otherwise explicitly indicated. Specifically, unless a phrase refers to “based on only ‘a,’” or the equivalent in context, whatever it is that is “based on ‘a,’” or “based at least in part on ‘a,’” may be based on “a” alone or based on a combination of “a” and one or more other factors, conditions or information.
The various illustrative components, logic, logical blocks, modules, circuits, operations and algorithm processes described in connection with the implementations disclosed herein may be implemented as electronic hardware, firmware, software, or combinations of hardware, firmware or software, including the structures disclosed in this specification and the structural equivalents thereof. The interchangeability of hardware, firmware and software has been described generally, in terms of functionality, and illustrated in the various illustrative components, blocks, modules, circuits and processes described herein. Whether such functionality is implemented in hardware, firmware or software depends upon the particular application and design constraints imposed on the overall system.
Various modifications to the implementations described in this disclosure may be readily apparent to persons having ordinary skill in the art, and the generic principles defined herein may be applied to other implementations without departing from the spirit or scope of this disclosure. Thus, the claims are not intended to be limited to the implementations shown herein, but are to be accorded the widest scope consistent with this disclosure, the principles and the novel features disclosed herein.
Additionally, various features that are described in this specification in the context of separate implementations also can be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation also can be implemented in multiple implementations separately or in any suitable subcombination. As such, although features may be described herein as acting in particular combinations, and even initially claimed as such, one or more features from a claimed combination can In some instances be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Further, the drawings may schematically depict one more example processes in the form of a flowchart or flow diagram. However, other operations that are not depicted can be incorporated in the example processes that are schematically illustrated. For example, one or more additional operations can be performed before, after, simultaneously, or between any of the illustrated operations. In some circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described herein should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.