Patent Description:
Home, office, and outdoor networks, a. wireless local area networks (WLAN) are established using a device called a Wireless Access Point (WAP). The WAP may include a router. The WAP wirelessly couples all the devices of the network, e.g. wireless stations such as: computers, printers, televisions, digital video (DVD) players, security cameras and smoke detectors to one another and to the Cable or Subscriber Line through which Internet, video, and television is delivered to the home. Most WAPs implement the IEEE <NUM> standard which is a contention-based standard for handling communications among multiple competing devices for a shared wireless communication medium on a selected one of a plurality of communication channels. The frequency range of each communication channel is specified in the corresponding one of the IEEE <NUM> protocols being implemented, e.g. "a", "b", "g", "n", "ac", "ad", "ax", "be". Communications follow a hub and spoke model with a WAP at the hub and the spokes corresponding to the wireless links to each 'client' device.

After selection of a single communication channel for the associated home network, access to the shared communication channel relies on a multiple access methodology identified as Collision Sense Multiple Access (CSMA). CSMA is a distributed random access methodology for sharing a single communication medium, by having a contending communication link back off and retry access a prospective collision on the wireless medium is detected, i.e. if the wireless medium is in use.

Communications on the single communication medium are identified as "simplex" meaning, one communication stream from a single source node to one or more target nodes at one time, with all remaining nodes capable of "listening" to the subject transmission. Starting with the IEEE <NUM>. 11ac standard and specifically "Wave <NUM>' thereof, discrete communications to more than one target node at the same time may take place using what is called Multi-User (MU) multiple-input multiple-output (MIMO) capability of the WAP. MU capabilities were added to the standard to enable the WAP to communicate with single antenna single stream or multiple-antenna multi-stream transceivers concurrently, thereby increasing the time available for discrete MIMO video links to wireless HDTVs, computers tablets and other high throughput wireless devices the communication capabilities of which rival those of the WAP. The IEEE <NUM>. 11ax standard integrates orthogonal frequency division multiple access (OFDMA) into the WAP or stations capabilities. OFDMA allows a WAP to communicate concurrently on a downlink with multiple stations, on discrete frequency ranges, identified as resource units.

The IEEE <NUM>. 11n and <NUM>. 11ac standards support increasing degrees of complexity in the signal processing required of fully compliant WLAN nodes including beamforming capability for focused communication of user data. One of the many capabilities of a fully compliant WLAN node under either of these standards is the ability to focus the signal strength of a transmitted communication toward a receiving device. Doing so requires multiple antenna and means for independently controlling the phase and amplitudes of the communication signals transmitted thereon.

<CIT> discloses a method for wireless data communication where data units are transmitted in parallel via multiple wireless links. <CIT> teaches a a technique for multi-link aggregation signaling, wherein a wireless device capable of multi-link aggregation transmits an indication of such capability to other wireless devices included in an information element of a frame. Patil et al. (<NPL>) describes a multi-link framework for transmitting data over multiple links concurrently.

The subject matter claimed in the present disclosure is not limited to implementations that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one example technology area where some implementations described in the present disclosure may be practiced.

An object of the invention is to provide an optimized method for multi-link wireless communication, an apparatus comprising means to perform a corresponding method and a machine-readable storage to implement a corresponding method or realize a corresponding apparatus.

This object is satisfied by the subject-matters of the independent claims.

A method may include establishing a multi-link security association between a transmitter upper media access control (MAC) logic entity of a transmitter and a receiver upper MAC logic entity of a receiver. The transmitter may include one or more transmitter links. The receiver may include one or more receiver links. The transmitter upper MAC logic entity is associated with a first service set identifier (SSID). The method further includes instantiating a second transmitter upper MAC logic entity for a second SSID.

The structure and operation of the example implementations will be understood from a review of the following detailed description and the accompanying drawings in which like reference numerals refer to like parts and in which:.

The following detailed description provides further details of the figures and example implementations of the present application. Reference numerals and descriptions of redundant elements between figures are omitted for clarity. Terms used throughout the description are provided as examples and are not intended to be limiting. For example, the use of the term "automatic" may involve fully automatic or semi-automatic implementations involving user or operator control over certain aspects of the implementation, depending on the desired implementation of one of ordinary skill in the art practicing implementations of the present application.

Conventional systems are not conducive to next-generation multi-link communications. For example, traditional wireless communication protocol fails to support identification of entities with multi-link connections. Moreover, existing headers and frame formats are unable to identify each entity in a multi-link system. Without identifying each entity in a multi-link system, communication may be difficult or not possible. Moreover, conventional systems are not able to establish a per-Traffic Identifier (TID) aggregation BlockACK agreement at a multi-link upper MAC level, are not able to assign frame Sequence Number (SN) at the transmission side of multi-link upper MAC entity, and are not able to construct BlockACK response and conduct Rx window reordering operations at a receive side of multi-link upper MAC entity. Conventional systems are also not able to assign PNs and perform replay checks at a lower MAC level.

In an example, under conventional PN assignment systems, PNs are expected to arrive at a receiver in order. This may be problematic in multi-link systems that have multiple links where data may travel through links at different speeds. For example, a PN=<NUM> may be sent via a first link and a PN=<NUM> may be sent via a second link. If the PN=<NUM> arrives before the PN=<NUM>, then a conventional system may treat the PN=<NUM> as a replay and discard or not transmit further. Thus, conventional approaches may erroneously determine that data is a replay, when that data is actually valid data.

Aspects of the present disclosure address these and other shortcomings of conventional systems by providing a framework and improved methods to enable multi-link communications. Described herein are aspects related to multi-link Security Association (SA), a frame MAC header for multi-link, various transmit and receive process and systems to improve functionality, performance, and compatibility that address failures in conventional systems. In some embodiments, a multi-link entity (e.g., a transmitter or receiver) may include two or more links operating on different frequency bands. Each link may include a link-specific PHY and lower MAC layer. In at least one embodiment, unified upper MAC layer interfaces with individual link-specific lower MACs may provide a unified MAC Service Access Point (SAP) to a logical link control (LLC) and upper layers. In at least one embodiment, one or more multi-link upper MAC entities may provide SAP and LLC services to a data forwarding path, a distribution system, and a networking upper layer protocol stack. The one or more multi-link upper MAC entities may each have a discrete identity, which may be used to identify the multi-link upper MAC entities as a target or a source for a frame traversing through a multi-link data path. In at least one embodiment, multi-link frames that belong to a particular TID can be flexibly scheduled to be sent on any or each of the links belonging to or associated with the pair of the multi-link entities.

A per-link security association may be established at the multi-link lower MAC. In at least one embodiment, a transmitter/receiver association is established at multi-link upper MAC entity level, a Security Association (SA) is established at the multi-link upper MAC entity level with pairwise master key PMK and at, the per link lower MAC level, a Security Association may be established based on the multi-link upper MAC entity level PMK.

Example aspects of multi-link implementations include providing per-SSID multi-link upper MAC entities and their identities; security association between multi-link upper MAC entities, a per-link Pairwise Transient Key Security Association (PTKSA) and Group Transient Key Security Association (GTKSA) key exchange, transmitter-side PN number assignment, and receiver-side replay check procedures, transmitter-side BlockACK window management, receiver-side BlockACK window reordering management, and a BlockACK retry procedure at the multi-link upper MAC level. Additional aspects may include per TID aggregation BlockACK agreements are established between the transmitter multi-link upper MAC entity and receiver multi-link upper MAC entity, frame sequence number assignment for multi-link frames can be done at the transmitter side multi-link upper MAC entity, receiver side window reorder operations can be done at the receiver side multi-link upper MAC entity, and BlockACK and frame retry procedures may be done at the multi-link upper MAC level.

To carry the multi-link information of the transmitter multi-link upper MAC entity ID and the receiver multi-link upper MAC entity ID, a new frame MAC header format may be used. As provided herein, the multi-link frame MAC header format enables differentiation between multi-link frames and existing frame formats (e.g., prior to IEEE <NUM>. An example aspect of the multi-link frame MAC header enables identification of a receiver side multi-link upper MAC entity and transmitter side multi-link upper MAC entity. The multi-link MAC layer processing can be applied based on the configuration options of a particular multi-link upper MAC entity.

<FIG> illustrates an example multi-link wireless communications system <NUM>. The multi-link wireless communications system <NUM> may include an Internet Protocol (IP) / Transmission Control Protocol (TCP) / User Datagram Protocol (UDP) networking stack <NUM>. The system may include a transmitter IP / TCP / UDP networking stack 105a and a receiver IP / TCP / UDP networking stack 105b. The transmitter IP / TCP / UDP networking stack 105a may be associated with a transmitter multi-link upper MAC entity <NUM> that may be associated with a transmitter, such as an access point (AP). A receiver, such as a station (STA), may include a receiver multi-link upper MAC entity <NUM>. The transmitter multi-link upper MAC entity <NUM> and the receiver multi-link upper MAC entity <NUM> may be associated with each other to enable multi-link communications between the transmitter and receiver. The transmitter multi-link upper MAC entity <NUM> and the receiver multi-link upper MAC entity <NUM> may be logic entities.

The transmitter may include one or more wireless radios. Each radio may be associated with one or more link lower MAC entities (which may be referred to herein as link lower MAC entities or lower MAC links). Multi-link upper MAC entities may coordinate communication over the radios using the one or more link lower MAC entities. As illustrated in <FIG>, the transmitter multi-link upper MAC entity <NUM> is coupled to three links: transmitter link lower MAC entity 120a, transmitter link lower MAC entity 120b, and transmitter link lower MAC entity 120n (collectively, transmitter link lower MAC entities <NUM>). The transmitter multi-link upper MAC entity <NUM> may interface with the transmitter link lower MAC entities <NUM>. Any number of transmitter link lower MAC entities <NUM> may be included in the multi-link wireless communications system <NUM>.

As illustrated the receiver multi-link upper MAC entity <NUM> is coupled to three links: receiver link lower MAC entity 125a, receiver link lower MAC entity 125b, and receiver link lower MAC entity 125n (collectively, receiver link lower MAC entities <NUM>). The receiver multi-link upper MAC entity <NUM> may interface with the receiver link lower MAC entities <NUM>. Any number of receiver link lower MAC entities <NUM> may be included in the multi-link wireless communications system <NUM>. In at least one embodiment, there may be more or fewer transmitter link lower MAC entities <NUM> than there are receiver link lower MAC entities <NUM>.

In an example, the transmitter link lower MAC entities <NUM> may include a <NUM> link, a <NUM> link, or a <NUM> link. For example, the transmitter link lower MAC entity 120a includes a <NUM> link, the transmitter link lower MAC entity 120b includes a <NUM> link, and the transmitter link lower MAC entity 120n includes a <NUM> link. Similarly, the receiver link lower MAC entities <NUM> may include any of a <NUM> link, a <NUM> link, or a <NUM> link.

A security association (SA) between the transmitter multi-link upper MAC entity <NUM> and the receiver multi-link upper MAC entity <NUM> may be created at a multi-link upper MAC entity <NUM>. In an example, the SA may be established between transmitter multi-link upper MAC entity <NUM> and the receiver multi-link upper MAC entity <NUM> using an authentication protocol, such as <NUM>. 1x, Pre-Shared Key (PSK), Simultaneous Authentication of Equals (SAE), etc. A result of establishing the SA at the multi-link upper MAC level <NUM> may include a mutually derived PMK. This PMK may be used to derive per-link PTKSA, such as through a <NUM>-way key exchange process.

At a lower MAC level <NUM>, the transmitter link lower MAC entities <NUM> and the receiver link lower MAC entities <NUM> may be associated on a per-link basis, such as using at least one of a PTKSA and/or a GTKSA.

Regarding the per-link PTKSA, once the Multi-Link SA is established with the mutually derived PMK at the multi-link upper MAC level <NUM>, then at the lower MAC level <NUM> and on a per-link basis, a PTKSA <NUM>-way key exchange process may be invoked to derive a per-link PTK[link]. An example algorithm for generating per-link PTK[link] is provided, with the input parameters of: PMK, AP_per_Link_nonce, STA_per_Link_nonce, AP_per_Link_MAC_address, STA_per_Link_MAC_address:
PTK[link] = KDF(PMK, AP_Lower_MAC[link], AP_nonce[link], STA_Lower_MAC[link], STA_nonce[link]).

Regarding the per-link GTKSA, a per-link GTK[link] may initially be delivered to the receiver per link lower MAC entity to the receiver during the PTKSA <NUM>-way key exchange, and the subsequent GTK[link] rekey process may be performed through a per-link <NUM>-way key exchange.

As a result, from one or both of the PTKSA and GTKSA, a transmitter l link lower MAC entity <NUM> may be associated with a corresponding receiver link lower MAC entity <NUM> forming a link pair. Links in the link pair may be a same type of link. For example, a link pair may include two <NUM> links. Each link pair may include a separate PTK and GTK. In an example, the transmitter link lower MAC entity 120a and the receiver link lower MAC entity 125a may form a first link pair, the transmitter link lower MAC entity 120b and the receiver link lower MAC entity 125b may form a second link pair, and the transmitter lower link lower MAC entity 120n and the receiver link lower MAC entity 125n may form a "nth" link pair.

In operation, MAC Protocol Data Unit (MPDU) sequence number (SN) assignment, BlockACK window management, MPDU Rx window reordering, and BlockACK responses may be handled at the at multi-link upper MAC level <NUM>. MPDU packet number (PN) assignment, encryption, decryption, and replay checking may be handled at the link lower MAC level <NUM>. In at least one embodiment, the PN may include an integer (e.g., <NUM> bit) for replay checking purposes.

The transmitter multi-link upper MAC entity <NUM> may construct frames for communication through the multi-link system <NUM>. In at least one embodiment, the transmitter multi-link upper MAC entity may encapsulate packets that may be received from a source. The packets from the source may include a header with various information, including a destination address, a source address, a type, a quality of service (QoS) marking, etc. The transmitter multi-link upper MAC entity may encapsulate the packet from the source into a Multi-Link frame format and assign various fields to a multi-link header, such as a receiver Multi-Link Entity ID (MLE ID1), a transmitter Multi-Link Entity ID (MLE ID <NUM>), an address <NUM> field (RA = receiver LinkX Lower MAC address), an address <NUM> field (TA = transmitter LinkX Lower MAC address), a TID, which may be mapped from the QoS marking in the header of the packet from the source, a sequence number (SN), which may include a next SN of the TID from a Tx BlockACK window.

To improve throughput, MPDUs belonging to the same TID may be transmitted over multiple links. In at least one embodiment, a transmitter side of the lower MAC level <NUM> may perform the allocation of MPDUs to different links. A same PN space may be used across all links, or each link may have a separate PN space.

A transmitter link lower MAC entity may assign a monotonic increasing PN to each MPDUs and may apply encryption to the MPDUs. The transmitter link lower MAC entity may transmit the MPDUs as a single MPDU (S-MPDU) or an aggregated MPDU (A-MPDU).

A receiver link lower MAC entity may receive the MPDUs. The receiver link lower MAC <NUM> may consolidate the MPDUs arriving over the different links, perform a cyclic redundancy code (CRC), decryption, conduct Rx replay operations, perform BlockACK operations, MPDUs reordering, etc. In at least one embodiment, the receiver link lower MAC entity may pass the MPDUs to the receiver multi-link upper MAC entity and the receiver multi-link upper MAC entity may send a BlockACK (partial state or full state) to the transmitter multi-link upper MAC entity. The receiver multi-link upper MAC entity may release the frames to a next stage of a forwarding path, or to the receiver IP / TCP / UDP networking stack 105b.

In at least one embodiment, a consolidated acknowledgment may be transmitted from the receiver side of the lower MAC level <NUM> to the transmitter side of the lower MAC level <NUM> over any of the links. In at least one embodiment, a BlockACK frame may consolidate acknowledgments for MPDUs received over the different links. The BlockACK frame may be transmitted over any of the links. In at least one embodiment, failed MPDUs may be retransmitted on the same link, or on a link different from the link used for the original transmission.

<FIG> illustrates example SSID configurations for a multi-link device (e.g., an AP). The multi-link device may be configured with one or more SSIDs. The particular multi-link device, for example, may be configured with one or more than one multi-link upper MAC entities, where each of the multi-link upper MAC entities may be associated with a unique SSID. Each of the one or more multi-link upper MAC entities may be associated with one or more link lower MAC entities.

As illustrated, the multi-link device may be configured with three SSIDs, where each SSID is associated with a respective multi-link upper MAC entity. Each of the three illustrated multi-link upper MAC entities may be configured for a unique SSID. For example, a first multi-link upper MAC entity <NUM> with a numeric identifier of "<NUM>" may be associated with an SSID1 <NUM> and any number of link lower MAC entities (e.g., link lower MAC entities 205a, 205b, and 205n). A second multi-link upper MAC entity <NUM> with a numeric identifier of "<NUM>" may be associated with an SSID2 <NUM> and any number of link lower MAC entities (e.g., link lower MAC entities 225a, 225b, and 225n). A third multi-link upper MAC entity <NUM> with a numeric identifier of "<NUM>" may be associated with an SSID3 <NUM>. and any number of link lower MAC entities (e.g., link lower MAC entities 245a, 245b, and 245n). While three SSIDs are illustrated, the multi-link device may be configured for any number of SSIDs. In at least one embodiment, a second transmitter upper MAC logic entity may be instantiated for a second SSID.

In at least one embodiment, the multi-link upper MAC entities may be identified by their respective numeric identifier. Additionally or alternatively, the multi-link upper MAC entities may have a MAC address that may be represented to a Distribution System (DS) or to a Networking Stack. In an example, the multi-link upper MAC entities can either use an address of an associated link lower MAC entity or may use a unique MAC address that may be assigned, such as by a network system administrator. Identities of the one or more multi-link upper MAC entities may also be used for basic service set (BSS) operations, such as association and security association procedures, as described herein.

<FIG> illustrates an example system <NUM> where packet numbers (PNs) may be assigned at a multi-link upper MAC level, which may include the transmitter multi-link upper MAC entity <NUM>. The system <NUM> may additionally include the transmitter link lower MAC entities <NUM>, the receiver link lower MAC entities <NUM> and the receiver multi-link upper MAC entity <NUM>. In at least one embodiment, PNs may be assigned at the transmitter multi-link upper MAC entity <NUM>, and replay checking may be performed at the receiver multi-link upper MAC entity <NUM>. In at least one embodiment, the PNs may be assigned in monotonic order. The system <NUM> may operate under the multi-link security association and per link PTKSA & GTKSA framework described herein. In at least one embodiment, the PNs may be assigned in monotonic order. Each link, or link pair, may have a separate PN space.

The system <NUM> may receive one or more MAC Service Data Unit (MPDU) (e.g., MPDUs <NUM>, <NUM>, <NUM>, and <NUM>) with a particular TID. The transmitter multi-link upper MAC entity <NUM> may include a PN manager <NUM>. The PN manager <NUM> may assign PNs to each MPDU. As illustrated, the system may receive a MPDU <NUM> and the PN manager <NUM> may assign a PN=M to the MPDU <NUM>. Similarly, the PN manager <NUM> may assign PN=M+<NUM> to a MPDU <NUM>, PN=M+<NUM> to a MPDU <NUM>, and PN=M+N to a MPDU <NUM>. In at least one embodiment, each of the MPDUs <NUM>, <NUM>, <NUM>, and <NUM> are associated with a same TID. The MPDUs <NUM>, <NUM>, <NUM>, and <NUM> may be sent from the transmitter to the receiver using different links. For example, and as illustrated, the MPDU <NUM> may be transmitted via the transmitter link lower MAC entity 120a to the receiver link lower MAC entity 125a. Similarly, the MPDU <NUM> may be transmitted via the transmitter link lower MAC entity 120b to the receiver link lower MAC entity 125b and the MPDU <NUM> may be transmitted via the transmitter link lower MAC entity 120n to the receiver link lower MAC entity 125n. In this manner, the system <NUM> may provide multi-link communication of the MPDUs.

In at least one embodiment, transmissions between the transmitter link lower MAC entity <NUM> and the receiver link lower MAC entity <NUM> may be encrypted, such as using PTK with a symmetric cypher. In at least one embodiment, a transmitter and receiver link lower MAC entity pair (e.g., the transmitter link lower MAC entity 120a and the receiver link lower MAC entity 125a) may share a link-specific PTK that may be used to encrypt and decrypt traffic between the two links in the link pair.

In at least one embodiment, the receiver multi-link upper MAC entity <NUM> may perform a replay check on one or more of the MPDUs <NUM>, <NUM>, <NUM>, and <NUM> using the PNs assigned by the transmitter multi-link upper MAC entity <NUM>. The receiver multi-link upper MAC entity <NUM> may include a replay manager <NUM> that may perform the replay check. A replay attack typically involves an interception of valid data. The valid data is then replayed or delay in an attempt to gain access to a system. As a way to thwart a replay attack, the replay manager <NUM> may check an order of the PNs of the MPDUs. A replay checking failure may indicate a security breach. For a PN assignment scheme that increments the PN number for each subsequent MPDU, the replay manager <NUM> may discard any PNs that have lower PNs than the most recent MPDU.

<FIG> illustrates an example system <NUM> where PNs may be assigned to MPDUs at one or more link lower MAC entities. The system <NUM> may include the transmitter multi-link upper MAC entity <NUM>, the transmitter link lower MAC entities <NUM>, the receiver link lower MAC entities <NUM>, and the receiver multi-link upper MAC entity <NUM>. The transmitter link lower MAC entities <NUM> may assign the PNs, such as on a per-link basis. The system <NUM> may operate under the multi-link security association and per link PTKSA & GTKSA framework described herein. In at least one embodiment, the PNs may be assigned in monotonic order. Each link, or link pair, may have a separate PN space. In at least one embodiment, per link PTKSA & GTKSA details are not shared with the multi-link upper MAC layer <NUM>. In a multi-link environment, PNs assigned at one or more link lower MAC entities may provide advantages over PNs that are assigned at a multi-link upper MAC entity because of increased ability for more accurate replay checking and reordering, as described in this document.

The system <NUM> may receive one or more MPDUs <NUM>, <NUM>, <NUM>, <NUM> with a particular TID. The transmitter multi-link upper MAC entity <NUM> may pass the MPDUs <NUM>, <NUM>, <NUM>, <NUM> to the transmitter link lower MAC entities <NUM>. Each of the transmitter link lower MAC entities <NUM> may include a respective PN manager <NUM>. As illustrated, a MPDU <NUM> and a MPDU <NUM> may be passed to the transmitter link lower MAC entity 120a, where a PN manager 455a may assign a PN=M to the MPDU <NUM> and a PN=M+<NUM> to MPDU <NUM>. Similarly, MPDU <NUM> and MPDU <NUM> may be passed by the transmitter multi-link upper MAC entity <NUM> to the transmitter link lower MAC entity 120b. A PN manager 455b may assign PN=K to MPDU <NUM> and PN=K+<NUM> to MPDU <NUM>. MPDU <NUM> and MPDU <NUM> may be passed by the transmitter multi-link upper MAC entity <NUM> to the link lower MAC entity 120n. A PN manager 455n may assign PN=J to MPDU <NUM> and PN=J+<NUM> to MPDU <NUM>. In at least one embodiment, the MPDUs <NUM>, <NUM>, <NUM>, <NUM> may be passed to the transmitter link lower MAC entities <NUM> by being placed into different links based on respective channel access conditions. At a given moment, if one particular link has channel access, then a MPDU may be sent from this link to transmit. Additionally or alternatively, the MPDUs <NUM>, <NUM>, <NUM>, <NUM> may be passed by the transmitter multi-link upper MAC entity <NUM> to the transmitter link lower MAC entities <NUM> by being placed into different links based on various parameters, such as link bandwidth capacity, interference conditions, etc. A link with a higher bandwidth capacity above a bandwidth capacity threshold, and/or with a low interference level below an interference threshold, for example, may be used to send more MPDUs. A link with lower bandwidth capacity (e.g., below the bandwidth capacity threshold) or high interference (e.g., above the interference threshold) may be used to send fewer MPDUs.

The MPDUs <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> may be sent, via a respective transmitter link lower MAC entity <NUM> to a corresponding receiver link lower MAC entity <NUM>. In at least one embodiment, transmissions between the transmitter link lower MAC entity <NUM> and the receiver link lower MAC entity <NUM> may be encrypted, such as using PTK with a symmetric cypher. In at least one embodiment, a transmitter and receiver link lower MAC entity pair (e.g., the transmitter link lower MAC entity 120a and the receiver link lower MAC entity 125a) may share a link-specific PTK that may be used to encrypt and decrypt traffic between the two links in the link pair.

On the receiver side, a replay check may be performed at the receiver per link lower MAC entities. In at least one embodiment, a replay check may be performed on a per-link or per-link pair basis. Each of the receiver link lower MAC entities <NUM> may include a respective replay manager <NUM>. As illustrated, the receiver link lower MAC entity 125a may include a replay manager 460a, the receiver link lower MAC entity 125b may include a replay manager 460b, and the receiver link lower MAC entity 125n may include a replay manager 460n.

Since the PN is assigned on a per-link basis by the PN manager <NUM> at the transmitter per link lower MAC entity, each link may maintain its own monotonic increase PN[link] space and a risk of false positives may be decreased. For example, false positives may be introduced when sending MPDUs over different links of different speeds and PHY rates. Those different speeds may cause MPDUs with higher PNs to arrive before other valid MPDUs with lower PNs. In that situation, the valid MPDUs with the lower PNs would be treated as replays and discarded. By performing the PN assignment and replay check on a per-link basis, the above mentioned false positive situation can be prevented. Thus, replay checking may be done on a per-link basis by the respective replay manager <NUM> at the receiver lower MAC level <NUM>.

Once replay checks have been performed at the replay managers <NUM>, the receiver link lower MAC entities <NUM> may pass the MPDUs to the receiver multi-link upper MAC entity <NUM>.

The receiver multi-link upper MAC entity <NUM> may include a reorder manager <NUM>. The reorder manger <NUM> may perform reorder operations to ensure that MPDUs received over the various links are in order. To check the order of the MPDUs, the reorder manger <NUM> may identify, for each MPDU, a sequence number (SN) that was assigned by the transmitter multi-link upper MAC entity <NUM>. If any of the SNs are out of order, the reorder manger <NUM> may reorder the MPDUs such that the MPDUs are sent to the destination address in a correct order.

<FIG> illustrates an example multi-link frame MAC header <NUM>. The multi-link frame MAC header <NUM> may be constructed by a transmitter multi-link upper MAC entity during an encapsulation process. To facilitate communication through a multi-link system, the MAC header <NUM> may include identification of each point of the multi-link system so that the frame can be properly processed (e.g., for replay checks and reordering operations) and forwarded from a source device to an ultimate destination device. These identifications of each point of the multi-link system are carried in the multi-link frame MAC header <NUM>. These identifications in the multi-link frame MAC header <NUM> may identify some or all of the following: transmitter multi-link upper MAC entity ID, receiver multi-link upper MAC entity ID, per Link Transmitter address (TA), per Link Receiver address (RA), frame's source address (SA), and destination address (DA).

In at least one embodiment, the transmitter multi-link upper MAC entity may encapsulate packets that may be received from a source. The packets from the source may include a destination address, a source address, a type, a quality of service (QoS) marking, etc. The transmitter multi-link upper MAC entity may encapsulate the packet from the source into a Multi-Link frame format and assign various fields to a multi-link MAC header, such as a receiver Multi-Link Entity ID (MLE ID1), a transmitter Multi-Link Entity ID (MLE ID <NUM>), an address <NUM> field (RA = receiver LinkX lower MAC address), an address <NUM> field (TA = transmitter LinkX lower MAC address), a TID, which may be mapped from the QoS marking in the header of the packet from the source, a sequence number (SN), which may include a next SN of the TID from a Tx BlockACK window. The SN may be used for Rx reordering, such as to ensure that frames associated with the same TID are released in order.

The multi-link frame MAC header <NUM> may include a frame control field <NUM>. The frame control field <NUM> may provide a "Protocol Version" field that may be used to inform devices a protocol of the multi-link frame MAC header <NUM>. For example, the protocol version field may indicate a particular wireless protocol, such as with a value 00b (which may indicate a prior MAC header format) or a value 01b (which may indicate a Multi-Link MAC header format, where one or both MLE ID <NUM> and MLE ID <NUM> fields are present). In an example implementation, the frame control field <NUM> Protocol Version field may include any value to indicate the Multi-Link frame MAC header is used.

<FIG> illustrate flow diagrams of example methods related to multi-link communication. The methods may be performed by processing logic that may include hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine), or a combination of both, which processing logic may be included in any transmitter (e.g., AP) or receiver (e.g., STA), or another computer system or device. However, another system, or combination of systems, may be used to perform the methods. For simplicity of explanation, methods described herein are depicted and described as a series of acts. However, acts in accordance with this disclosure may occur in various orders and/or concurrently, and with other acts not presented and described herein. Further, not all illustrated acts may be used to implement the methods in accordance with the disclosed subject matter. In addition, those skilled in the art will understand and appreciate that the methods may alternatively be represented as a series of interrelated states via a state diagram or events. Additionally, the methods disclosed in this specification are capable of being stored on an article of manufacture, such as a non-transitory computer-readable medium, to facilitate transporting and transferring such methods to computing devices. The term article of manufacture, as used herein, is intended to encompass a computer program accessible from any computer-readable device or storage media. Although illustrated as discrete blocks, various blocks may be divided into additional blocks, combined into fewer blocks, or eliminated, depending on the desired implementation.

<FIG> illustrates a flow diagram of an example method <NUM> to provide multi-link communications. The method <NUM> may begin at block <NUM>, where processing logic may select a multi-link capable transmitter from a list of available transmitters based on beacon advertising information indicating that the transmitter has multi-link support. In at least one embodiment, the beacon advertising information may include an identifier and/or a link type of available transmitter links.

At block <NUM>, the processing logic may establish a multi-link relationship between a transmitter multi-link upper MAC entity of a transmitter and a receiver multi-link upper MAC entity of a receiver. In at least one embodiment, the multi-link relationship may be used to determine a number of links available for multi-link use.

At block <NUM>, the processing logic may establish a multi-link security association between the transmitter multi-link upper MAC entity of the transmitter and the receiver multi-link upper MAC entity of the receiver. In at least one embodiment, the transmitter may include a first transmitter link and a second transmitter link and the receiver may include a first receiver link and a second receiver link. In at least one embodiment, establishing the multi-link security association between the transmitter multi-link upper MAC entity of the transmitter and the receiver multi-link upper MAC entity of the receiver include mutually deriving a PMK.

At block <NUM>, the processing logic may establish a security association for each link pair in the multi-link system at a lower MAC level. For example, a transmitter and a receiver may include one or more corresponding links of a same type that can be paired for communication. For example, a transmitter <NUM> link may be paired with a receiver <NUM> link. In at least one embodiment, the first transmitter link may be associated with the first receiver link at the lower MAC level with a PTKSA that is created using a four-way key exchange using the mutually derived PMK, a first transmitter link nonce, a first receiver link nonce, a first transmitter link address, and a first receiver link address. In at least one embodiment, the security association for each link pair in the multi-link system at a lower MAC level may also include a GTKSA that is derived during the four-way key exchange and established using a two-way key exchange at the lower MAC level and between the first transmitter link and the first receiver link. In at least one embodiment, establish a security association for each link pair in the multi-link system at a lower MAC level may include associating the first transmitter link with the first receiver link at a lower MAC level and associating the second transmitter link with the second receiver link at the lower MAC level.

At block <NUM>, the processing logic may transmit and receive secure communication on one or more link of the relationship. In at least one embodiment, the communication may be secured using each of the derived PTKs with a symmetric cypher (e.g., CCMP, GCMP, etc.). Thus, method <NUM> may provide aspects related to multi-link security association at the upper MAC level and at the lower MAC level to improve functionality, performance, and compatibility that address failures in conventional systems.

<FIG> illustrates a flow diagram of an example method <NUM> of a transmitter flow in a multi-link system. The method <NUM> may begin at block <NUM>, where processing logic may receive a packet, such as from a distribution system. The packet may include a destination address, a source address, a type, a quality of service (QoS) marking, etc..

At block <NUM>, the processing logic may pass the packet to a multi-link upper MAC entity, such as the multi-link upper MAC entity <NUM>. At block <NUM>, the processing logic may select a link for transmission of the packet.

At block <NUM>, the processing logic may encapsulate the packet into a MSDU or an A-MSDU subframe and assign various fields that may be included in a multi-link MAC header. At block <NUM>, the processing logic may aggregate two or more MSDUs or two or more A-MSDU subframes into an Aggregate MAC Service Data Unit (A-MSDU).

At block <NUM>, the processing logic may construct a MAC Service Data Unit (MSDU) with the multi-link MAC header. At block <NUM>, the processing logic may populate the multi-link MAC header with various data. In at least one embodiment, the processing logic may populate the multi-link MAC header with a receiver Multi-Link Entity ID (MLE ID1), a transmitter Multi-Link Entity ID (MLE ID <NUM>), an address <NUM> field (RA = receiver LinkX lower MAC address), an address <NUM> field (TA = transmitter LinkX lower-MAC address), a TID, which may be mapped from the QoS marking in the header of the packet from the source, a sequence number (SN), which may include a next SN of the TID from a Tx BlockACK window.

At block <NUM>, the processing logic may send the MPDU with the multi-link MAC header to the link that was selected at block <NUM>. In at least one embodiment, the processing logic may send the MPDU to the transmitter link lower-MAC.

At block <NUM>, the processing logic may assign a packet number (PN) to the MPDU. In at least one embodiment, the PN is assigned at the transmitter link lower-MAC. In at least one embodiment, the PN is assigned at the multi-link upper MAC entity. At block <NUM>, the processing logic may transmit the MPDU to a receiver link that is associated with the selected link. In at least one embodiment, MPDUs may be aggregated in an A-MPDU. In at least one embodiment, MPDUs and/or A-MPDUs may be transmitted from the transmitter link lower-MAC to the receiver link lower-MAC in a Physical Layer Convergence Procedure (PLCP) Protocol Data Unit (PPDU). Thus, method <NUM> may improve functionality, performance, and compatibility by providing benefits that address failures in conventional systems. Such benefits may be provided to transmitters in multi-link systems to support identification of entities with multi-link connections, provide headers and frame formats to identify each entity in a multi-link system, establish a per-TID aggregation BlockACK agreement at a multi-link upper MAC level, and assign frame SNs at the transmission side of multi-link upper MAC entity.

<FIG> illustrates a flow diagram of an example method <NUM> of a receiver flow in a multi-link system. The method <NUM> may begin at block <NUM>, where processing logic may receive a MPDU at a receiver link lower MAC entity, which may include the receiver link lower MAC entity <NUM>. The MPDU received at the receiver link lower MAC entity may include the MPDU (or A-MPDU) that was transmitted by the transmitter link lower MAC entity in <FIG>.

At block <NUM>, the processing logic may perform a CRC check to check the integrity of the packet on the receiving end. The receiving end computes a CRC value over the received MPDU and compares the computed value with a frame check sequence of the MPDU. If the values mismatch, the MPDU may be considered damaged. At block <NUM>, the processing logic may decrypt the MPDU at the receiver link lower-MAC.

At block <NUM>, the processing logic may perform a replay check at the receiver link lower-MAC. At block <NUM>, the processing logic may send the MPDU to a receiver multi-link upper MAC entity, such as the multi-link upper MAC entity <NUM>.

At block <NUM>, the processing logic may determine whether to use a partial-state BlockACK or a full-state BlockACK. Responsive to a determination to use a partial-state BlockACK ("YES" at block <NUM>), at block <NUM>, the processing logic may respond to a transmitter lower-MAC entity with a partial-state BlockACK. At block <NUM>, the processing logic may run a Rx reorder on multiple MPDUs to determine whether the MPDUs were received in a correct order. In at least one embodiment, the Rx reorder operation may be performed on a par-link basis, meaning a separate Rx reorder operation at each link in a system. If, during the Rx reorder operation, MPDUs are found to be out of order, the processing logic may reorder the MPDUs to be in the correct order.

At block <NUM>, the processing logic may decapsulate the MPDU and/or disaggregate A-MSDUs to yield a packet (which may include the packet received at block <NUM> of <FIG>). At block <NUM>, the processing logic may send the packet, such as to another device or to a network stack.

Responsive to a determination to use a full-state BlockACK ("NO" at block <NUM>), at block <NUM>, the processing logic may run a Rx reorder. At block <NUM>, the processing logic may respond to a transmitter link lower MAC entity with a partial-state BlockACK and proceed to block <NUM> and block <NUM>.

Thus, method <NUM> may improve functionality, performance, and compatibility by providing benefits that address failures in conventional systems. Such benefits may be provided to receivers in multi-link systems to perform per-link replay checks at the lower MAC level, construct BlockACK responses and conduct Rx window reordering operations at the receiver upper MAC level.

<FIG> illustrates a flow diagram of an example method <NUM> of a transmitter processing a BlockACK response using multi-link frame format in a multi-link system. The method <NUM> may begin at block <NUM>, where processing logic may receive a BlockACK at a transmitter link lower-MAC entity (e.g., transmitter link lower MAC entity <NUM>) from a receiver link lower MAC entity (e.g., receiver link lower MAC entity <NUM>). In a multi-link system, method <NUM> may be performed independently on each link in the multi-link system.

At block <NUM>, the processing logic may determine an associated transmitter multi-link upper MAC entity. In at least one embodiment, the transmitter multi-link upper MAC entity may be determined based on a BlockACK frame multi-link MAC header, which may include a value to identify the transmitter multi-link upper MAC entity that is associated with the BlockACK. In an example, the MLE ID <NUM> illustrated in <FIG> may include the value to identify the transmitter multi-link upper MAC entity. At block <NUM>, the processing logic may send the blockACK to the associated multi-link upper MAC entity identified at block <NUM>.

At block <NUM>, the processing logic may process the BlockACK at the transmitter multi-link upper MAC entity. Processing the BlockACK may include retiring all acknowledged MPDUs and advancing a Tx BlockACK window.

At block <NUM>, the processing logic may determine whether there are any unacknowledged MPDUs. When there are no unacknowledged MPDUs ("NO" at block <NUM>), the processing logic may proceed to block <NUM>.

When there is at least one unacknowledged MPDUs ("YES" at block <NUM>), at block <NUM> the processing logic may instruct the link lower-MAC to retransmit any unacknowledged MPDUs. In at least one embodiment, the processing logic may inform the transmitter link lower-MAC of the unacknowledged MPDUs and the transmitter link lower-MAC may request the unacknowledged MPDUs from the receiver link lower MAC. The receiver link lower-MAC may send the unacknowledged MPDUs to the transmitter link lower MAC and at block <NUM>, the processing logic may receive, at the multi-link upper MAC entity, the unacknowledged MPDUs.

<FIG> illustrates a flow diagram of an example method <NUM> to establish a multi-link upper MAC entity relationship at a transmitter for multi-link communication between the transmitter and a receiver. The method <NUM> may begin at block <NUM>, where processing logic may receive, from the receiver, a broadcast probe request with a multi-link designator (e.g., a SSID, a wildcard, etc.). At block <NUM>, the processing logic may determine that the receiver is multi-link capable based on the probe request.

At block <NUM>, the processing logic may transmit a probe response frame indicating a multi-link upper MAC entity identity of the transmitter. At block <NUM>, the processing logic may receive an authentication trigger from the receiver. In at least one embodiment, the authentication trigger may include an open mode authentication trigger.

At block <NUM>, the processing logic may transmit an authentication response. In at least one embodiment, the authentication response may include an open mode authentication response. At block <NUM>, the processing logic may receive an associate request from the receiver. In at least one embodiment, the associate request may include a multi-link upper MAC entity identifier of the receiver. At block <NUM>, the processing logic may transmit an association response including a transmitter multi-link upper MAC entity ID.

<FIG> illustrates a flow diagram of an example method <NUM> to establish a multi-link upper MAC entity relationship at a receiver for multi-link communication between a transmitter and the receiver. The method <NUM> may begin at block <NUM>, where processing logic may initiate a probe request informing the transmitter that the receiver has multi-link support and a receiver multi-link upper MAC entity ID. At block <NUM>, the processing logic may receive a probe response from the transmitter with a transmitter multi-link upper MAC entity ID.

At block <NUM>, the processing logic may transmit a first authentication frame that is addressed to the transmitter multi-link upper MAC entity ID. At block <NUM>, the processing logic may receive a second authentication frame that is addressed to the receiver multi-link upper MAC entity ID. At block <NUM>, the processing logic may transmit an association request to the transmitter multi-link upper MAC entity ID. At block <NUM>, the processing logic may receive an association response targeted to the receiver multi-link upper MAC entity ID.

Example transmit path/chain includes the following discrete and shared components. A WiFi medium access control (WMAC) component includes: hardware queues for each downlink and uplink communication stream; encryption and decryption circuits for encrypting and decrypting the downlink and uplink communication streams; medium access circuit for making the clear channel assessment (CCA), and making exponential random backoff and re-transmission decisions; and a packet processor circuit for packet processing of the transmitted and received communication streams. The WMAC component has access to a node table which lists each node/station on the WLAN, the station's capabilities, the corresponding encryption key, and the priority associated with its communication traffic.

Each sounding or data packet for wireless transmission on the transmit path components to one or more stations is framed in the framer. Next each stream is encoded and scrambled in the encoder and scrambler followed by demultiplexing in demultiplexer into separate streams. Next streams are subject to interleaving and mapping in a corresponding one of the interleaver mappers. Next all transmissions are spatially mapped with a spatial mapping matrix (SMM) in the spatial mapper. The spatially mapped streams from the spatial mapper are input to Inverse Discrete Fourier Transform (IDFT) components for conversion from the frequency to the time domain and subsequent transmission in the AFT and RF stage.

A IDFT is coupled to a corresponding one of the transmit path/chain components in the AFT RF stage for wireless transmission on an associated one of MIMO antenna. Specifically each IDFT couples to an associated one of the digital-to-analog converters (DAC) for converting the digital transmission to analog, filters, upconverters, coupled to a common voltage controlled oscillator (VCO) for upconverting the transmission to the appropriate center frequency of the selected channel(s), and power amplifiers for setting the transmit power level of the transmission on the MIMO antenna array.

The receive path/chain includes the following discrete and shared components. Received communications on the WAP's array of MIMO antenna are subject to RF processing including downconversion in the AFE-RF stage. There are six receive paths each including the following discrete and shared components: low noise amplifiers (LNA) for amplifying the received signal under control of an analog gain control (AGC) (not shown) for setting the amount by which the received signal is amplified, downconverters coupled to the VCO for downconverting the received signals, filters for bandpass filtering the received signals, analog-to-digital converters (ADC) for digitizing the downconverted signals. In an embodiment, an optional sampler at the output of the ADCs allows sampling of the received WiFi signals in the time domain, for subsequent WiFi spatial diagnostics by the processor and non-volatile memory. The digital output from each ADC is passed to a corresponding one of the discrete Fourier transform (DFT) components in the baseband portion of the WiFi stage for conversion from the time to the frequency domain.

Receive processing in the baseband stage includes the following shared and discrete components including: an equalizer to mitigate channel impairments which is coupled to the output of the DFTs. In an embodiment, the received WiFi signals in the frequency domain from the output of the DFTs either with or without equalization are provided to the processor and non-volatile memory. The received WiFi streams at the output of the equalizer are subject to demapping and deinterleaving in a corresponding number of the demappers and deinterleavers. Next the received stream(s) are multiplexed in multiplexer and decoded and descrambled in the decoder and descrambler component, followed by de-framing in the deframer. The received communication is then passed to the WMAC component where it is decrypted with the decryption circuit and placed in the appropriate upstream hardware queue for upload to the Internet.

A computer-readable storage medium may involve tangible mediums such as, but not limited to optical disks, magnetic disks, read-only memories, random access memories, solid state devices and drives, or any other types of tangible or non-transitory media suitable for storing electronic information. A computer readable signal medium may include mediums such as carrier waves. Computer programs can involve pure software implementations that involve instructions that perform the operations of the desired implementation.

Various general-purpose systems may be used with programs and modules in accordance with the examples herein, or it may prove convenient to construct a more specialized apparatus to perform desired method operations. In addition, the example implementations are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the example implementations as described herein. The instructions of the programming language(s) may be executed by one or more processing devices, e.g., central processing units (CPUs), processors, or controllers.

The components and processes disclosed herein may be implemented singly or in combination by: hardware, circuits, firmware, software, or a processor executing computer program code; coupled to the wireless transceiver's transmit and receive path components, without departing from the scope of the Claimed Disclosure.

The subject technology is illustrated, for example, according to various aspects described below. Various examples of aspects of the subject technology are described as numbered examples (<NUM>, <NUM>, <NUM>, etc.) for convenience. These are provided as examples and do not limit the subject technology. The aspects of the various implementations described herein may be omitted, substituted for aspects of other implementations, or combined with aspects of other implementations unless context dictates otherwise. For example, one or more aspects of example <NUM> below may be omitted, substituted for one or more aspects of another example (e.g., example <NUM>) or examples, or combined with aspects of another example. The following is a non-limiting summary of some example implementations presented herein.

Example <NUM> includes a method that may include establishing a multi-link security association between a transmitter upper media access control (MAC) logic entity of a transmitter and a receiver upper MAC logic entity of a receiver. The transmitter may include a first transmitter link and a second transmitter link. The receiver may include a first receiver link and a second receiver link.

Example <NUM> includes a method that may include establishing a multi-link security association between a transmitter upper media access control (MAC) logic entity and a receiver upper MAC logic entity. The transmitter may include a first transmitter link and a second transmitter link. The receiver may include a first receiver link and a second receiver link. The method may include receiving, at the first receiver link, first data from the first transmitter link. The method may include receiving, at the second receiver link, second data from the second transmitter link.

In an implementation of example <NUM>, the first data includes at least one of: a frame, a packet, a MAC service data unit (MSDU), an aggregate MSDU (A-MSDU), or a MAC protocol data unit (MPDU).

In another implementation of example <NUM>, the method further includes receiving a first identifier that is associated with the first data and a second identifier that is associated with the second data.

In another implementation of example <NUM>, the method further includes performing a reorder operation that includes determining, using the first identifier and the second identifier, that the first data was expected to arrive before the second data, determining that the second data arrived at the receiver before the first data, and reordering the first data and the second data to place the first data before the second data.

In another implementation of example <NUM>, the method further includes performing a replay check at a lower MAC level at the receiver.

In another implementation of example <NUM>, a first replay check is performed for the first data that is received via the first receiver link, wherein a second replay check is performed for the second data that is received via the second receiver link.

<FIG> illustrates a block diagram of an example computing system <NUM> that may be used to perform or direct performance of one or more operations described according to at least one implementation of the present disclosure. The computing system <NUM> may include a processor <NUM>, a memory <NUM>, and a data storage <NUM>. The processor <NUM>, the memory <NUM>, and the data storage <NUM> may be communicatively coupled.

In general, the processor <NUM> may include any suitable special-purpose or general-purpose computer, computing entity, or processing device including various computer hardware or software modules and may be configured to execute instructions stored on any applicable computer-readable storage media. For example, the processor <NUM> may include a microprocessor, a microcontroller, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a Field-Programmable Gate Array (FPGA), or any other digital or analog circuitry configured to interpret and/or to execute computer-executable instructions and/or to process data. Although illustrated as a single processor, the processor <NUM> may include any number of processors configured to, individually or collectively, perform or direct performance of any number of operations described in the present disclosure.

In some implementations, the processor <NUM> may be configured to interpret and/or execute computer-executable instructions and/or process data stored in the memory <NUM>, the data storage <NUM>, or the memory <NUM> and the data storage <NUM>. In some implementations, the processor <NUM> may fetch computer-executable instructions from the data storage <NUM> and load the computer-executable instructions in the memory <NUM>. After the computer-executable instructions are loaded into memory <NUM>, the processor <NUM> may execute the computer-executable instructions.

The memory <NUM> and the data storage <NUM> may include computer-readable storage media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable storage media may include any available media that may be accessed by a general-purpose or special-purpose computer, such as the processor <NUM>. By way of example, and not limitation, such computer-readable storage media may include tangible or non-transitory computer-readable storage media including Random Access Memory (RAM), Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Compact Disc Read-Only Memory (CD-ROM) or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory devices (e.g., solid state memory devices), or any other storage medium which may be used to carry or store particular program code in the form of computer-executable instructions or data structures and which may be accessed by a general-purpose or special-purpose computer. Combinations of the above may also be included within the scope of computer-readable storage media. Computer-executable instructions may include, for example, instructions and data configured to cause the processor <NUM> to perform a certain operation or group of operations.

Some portions of the detailed description refer to different modules configured to perform operations. One or more of the modules may include code and routines configured to enable a computing system to perform one or more of the operations described therewith. Additionally or alternatively, one or more of the modules may be implemented using hardware including any number of processors, microprocessors (e.g., to perform or control performance of one or more operations), DSP's, FPGAs, ASICs or any suitable combination of two or more thereof. Alternatively or additionally, one or more of the modules may be implemented using a combination of hardware and software. In the present disclosure, operations described as being performed by a particular module may include operations that the particular module may direct a corresponding system (e.g., a corresponding computing system) to perform. Further, the delineating between the different modules is to facilitate explanation of concepts described in the present disclosure and is not limiting. Further, one or more of the modules may be configured to perform more, fewer, and/or different operations than those described such that the modules may be combined or delineated differently than as described.

Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations within a computer. These algorithmic descriptions and symbolic representations are the means used by those skilled in the data processing arts to convey the essence of their innovations to others skilled in the art. An algorithm is a series of configured operations leading to a desired end state or result. In example implementations, the operations carried out require physical manipulations of tangible quantities for achieving a tangible result.

Unless specifically stated otherwise, as apparent from the discussion, it is appreciated that throughout the description, discussions utilizing terms such as detecting, determining, analyzing, identifying, scanning or the like, can include the actions and processes of a computer system or other information processing device that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system's memories or registers or other information storage, transmission or display devices.

Example implementations may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may include one or more general-purpose computers selectively activated or reconfigured by one or more computer programs. Such computer programs may be stored in a computer readable medium, such as a computer-readable storage medium or a computer-readable signal medium. Computer-executable instructions may include, for example, instructions and data which cause a general-purpose computer, special-purpose computer, or special-purpose processing device (e.g., one or more processors) to perform or control performance of a certain function or group of functions.

Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter configured in the appended claims is not necessarily limited to the specific features or acts described above.

An example apparatus can include a Wireless Access Point (WAP) or a station and incorporating a VLSI processor and program code to support. An example transceiver couples via an integral modem to one of a cable, fiber or digital subscriber backbone connection to the Internet to support wireless communications, e.g. IEEE <NUM> compliant communications, on a Wireless Local Area Network (WLAN). The WiFi stage includes a baseband stage, and the analog front end (AFE) and Radio Frequency (RF) stages. In the baseband portion wireless communications transmitted to or received from each user/client/station are processed. The AFE and RF portion handles the upconversion on each of transmit paths of wireless transmissions initiated in the baseband. The RF portion also handles the downconversion of the signals received on the receive paths and passes them for further processing to the baseband.

An example apparatus can be a multiple-input multiple-output (MIMO) apparatus supporting as many as NxN discrete communication streams over N antennas. In an example the MIMO apparatus signal processing units can be implemented as N×N. In various implementations, the value of N can be <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, etc. Extended MIMO operation enables the use of up to 2N antennae in communication with another similarly equipped wireless system. It should be noted that extended MIMO systems can communicate with other wireless systems even if the systems do not have the same number of antennae, but some of the antennae of one of the stations might not be utilized, reducing optimal performance.

Channel State Information (CSI) from any of the devices described herein can be extracted independent of changes related to channel state parameters and used for spatial diagnosis services of the network such as motion detection, proximity detection, and localization which can be utilized in, for example, WLAN diagnosis, home security, health care monitoring, smart home utility control, elder care, automotive tracking and monitoring, home or mobile entertainment, automotive infotainment, and the like.

Unless specific arrangements described herein are mutually exclusive with one another, the various implementations described herein can be combined in whole or in part to enhance system functionality and/or to produce complementary functions. Likewise, aspects of the implementations may be implemented in standalone arrangements. Thus, the above description has been given by way of example only and modification in detail may be made within the scope of the present invention.

With respect to the use of substantially any plural or singular terms herein, those having skill in the art can translate from the plural to the singular or from the singular to the plural as is appropriate to the context or application. A reference to an element in the singular is not intended to mean "one and only one" unless specifically stated, but rather "one or more. " Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the above description.

In general, terms used herein, and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as "open" terms (e.g., the term "including" should be interpreted as "including but not limited to," the term "having" should be interpreted as "having at least," the term "includes" should be interpreted as "includes but is not limited to," etc.). Further, in those instances where a convention analogous to "at least one of A, B, and C, etc." is used, in general, such a construction is intended in the sense one having skill in the art would understand the convention (e.g., "a system having at least one of A, B, and C" would include but not be limited to systems that include A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B, and C together, etc.). Also, a phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to include one of the terms, either of the terms, or both terms.

Additionally, the use of the terms "first," "second," "third," etc., are not necessarily used herein to connote a specific order or number of elements. Generally, the terms "first," "second," "third," etc., are used to distinguish between different elements as generic identifiers. Absence a showing that the terms "first," "second," "third," etc., connote a specific order, these terms should not be understood to connote a specific order. Further, absence a showing that the terms first," "second," "third," etc., connote a specific number of elements, these terms should not be understood to connote a specific number of elements.

Claim 1:
A method, comprising:
establishing a multi-link security association between a transmitter upper media access control (MAC) logic entity (<NUM>) of a transmitter and a receiver upper MAC logic entity (<NUM>) of a receiver, the transmitter including a first transmitter link and a second transmitter link, the receiver including a first receiver link and a second receiver link,
characterized in that the transmitter upper MAC logic entity (<NUM>) is associated with a first service set identifier (SSID) (<NUM>); and that the method comprises
instantiating a second transmitter upper MAC logic entity (<NUM>) for a second SSID (<NUM>);
associating the first transmitter link with the first receiver link at a lower MAC level (<NUM>); and
associating the second transmitter link with the second receiver link at the lower MAC level (<NUM>);
wherein an output of establishing the multi-link security association between the transmitter upper MAC logic entity (<NUM>) and the receiver upper MAC logic entity (<NUM>) comprises a mutually derived pairwise master key (PMK), and
wherein the first transmitter link is associated with the first receiver link at the lower MAC level (<NUM>) with a Pairwise Transient Key Security Association (PTKSA) that is created using a four-way key exchange using the PMK, a first transmitter link nonce, a first receiver link nonce, a first transmitter link address, and a first receiver link address.