MULTIPLE MEDIA ACCESS CONTROL (MAC) ADDRESS RESOLUTION VERTICAL TRAVEL

One or more devices or stations include a globally unique media access control (MAC) address, and one or more local virtual MAC Addresses. The local virtual MAC addresses are generated by an external entity, such as server. The stations and the server may be connected through an access point.

DETAILED DESCRIPTION

Additional Unique media access control (MAC) addresses are provided to one or more devices or stations in a network if the device needs more than one MAC address. The unique MAC addresses may be generated and verified by a MAC address generation and verification server.

Overview

Described herein are architectures, platforms and methods that allow unique MAC addresses to be provided to one or more devices or stations in a local network, where the unique MAC addresses are local to the network. Devices or stations may keep their globally unique assigned MAC addresses.

A personal wireless area network (WPAN) is a network used for communication among computing devices (for example, personal devices such as telephones and personal digital assistants) close to one person. The reach of a WPAN may be a few meters. WPANs may be used for interpersonal communication among personal devices themselves, the devices participating in the WPAN may be connected via an uplink to a higher level network, for example the Internet.

In order to support a WPAN, multiple MAC addresses may be used. Although in theory, using the OSI model, WPAN (and WLAN) may implement a single MAC address. However, the use of a single MAC addresses may be problematic. For example, when a device may have different host interfaces that are connected to different sub-systems. For example, there may be a display that is connected via a high definition multimedia interface (HDMI) connecting to the graphic sub-system while data is connected via peripheral component interconnect express to the main CPU sub-system. A different type of constrain could be a specific very low latency PAN service that use short messages. In this case, adding long structure to support OSI based routing creates high inefficiency.

The millimeter-wave WPAN and/or mmWave network may allow very high data rates (e.g., over 2 Gigabit per second (Gbps)) applications such as high speed Internet access, streaming content download (e.g., video on demand, high-definition television (HDTV), home theater, etc.), real time streaming and wireless data bus for cable replacement.

Sonic portions of the detailed description, which follow, are presented in terms of algorithms and symbolic representations of operations on data bits or binary digital signals within a computer memory. These algorithmic descriptions and representations may be the techniques used by those skilled in the data processing arts to convey the substance of their work to others skilled in the art.

Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining,” or the like, refer to the action and/or processes of a computer or computing system, or similar electronic computing device, that manipulates and/or transforms data represented as physical, such as electronic, quantities within the computing system's registers and/or memories into other data similarly represented as physical quantities within the computing system's memories, registers or other such information storage, or transmission devices. The terms “a” or “an”, as used herein, are defined as one, or more than one. The term plurality, as used herein, is defined as two, or more than two. The term another, as used herein, is defined as, at least a second or more. The terms including and/or having, as used herein, are defined as, but not limited to, comprising. The term coupled as used herein, is defined as operably connected in any desired form for example, mechanically, electronically, digitally, directly, by software, by hardware and the like.

The term personal basic service set (PBSS) as used herein is defined as a basic service set (BSS) which forms an ad hoc self-contained network, operates in the DBand, includes one PBSS control point (PCP), and in which access to a distribution system (DS) is not present but an intra-PBSS forwarding service is optionally present. The term PCP as used herein, is defined as a station or STA that operates as a control point of the mmWave network. The term access point (AP) as used herein, is defined as an entity that has STA functionality and provides access to the distribution services, via the wireless medium or WM for associated STAs. The term directional band (DBand) as used herein is defined as any frequency band wherein the Channel starting frequency is above 45 GHz. The term DBand STA as used herein is defined as a STA whose radio transmitter is operating on a channel that is within the DBand. The terms “traffic” and/or “traffic stream(s)” as used herein, are defined as a data flow and/or stream between wireless devices such as STAs. The term “session” as used herein is defined as state information kept or stored in a pair of stations that have an established a direct physical link (e.g., excludes forwarding); the state information may describe or define the session. The term “wireless device” as used herein includes, for example, a device capable of wireless communication, a communication device capable of wireless communication, a communication station capable of wireless communication, a portable or non-portable device capable of wireless communication, or the like. In some embodiments, a wireless device may be or may include a peripheral device that is integrated with a computer, or a peripheral device that is attached to a computer.

It should be understood that the present invention may be used in a variety of applications. Although the present invention is not limited in this respect, the circuits and techniques disclosed herein may be used in many apparatuses such as stations of a radio system. Stations intended to be included within the scope of the present invention include, by way of example only, WLAN stations, wireless personal network (WPAN), and the like.

Types of WPAN stations intended to be within the scope of the present invention include, although are not limited to, stations capable of operating as a multi-band stations, stations capable of operating as PCP, stations capable of operating as an AP, stations capable of operating as DBand stations, mobile stations, access points, stations for receiving and transmitting spread spectrum signals such as, for example, Frequency Hopping Spread Spectrum (FHSS), Direct Sequence Spread Spectrum (DSSS), Complementary Code Keying (CCK), Orthogonal Frequency-Division Multiplexing (OFDM) and the like.

Some embodiments may be used in conjunction with various devices and systems, for example, a video device, an audio device, an audio-video (A/V) device, a Set-Top-Box (STB), a Blu-ray disc (BD) player, a BD recorder, a Digital Video Disc (DVD) player, a High Definition (HD) DVD player, a DVD recorder, a HD DVD recorder, a Personal Video Recorder (PVR), a broadcast HD receiver, a video source, an audio source, a video sink, an audio sink, a stereo tuner, a broadcast radio receiver, a display, a flat panel display, a Personal Media Player (PMP), a digital video camera (DVC), a digital audio player, a speaker, an audio receiver, an audio amplifier, a data source, a data sink, a Digital Still camera (DSC), a Personal Computer (PC), a desktop computer, a mobile computer, a laptop computer, a notebook computer, a tablet computer, a server computer, a handheld computer, a handheld device, a Personal Digital Assistant (PDA) device, a handheld PDA device, an on-board device, an off-board device, a hybrid device, a vehicular device, a non-vehicular device, a mobile or portable device, a consumer device, a non-mobile or non-portable device, a wireless communication station, a wireless communication device, a wireless AP, a wired or wireless router, a wired or wireless modem, a wired or wireless network, a wireless area network, a Wireless Video Are Network (WVAN), a Local Area Network (LAN), a WLAN, a PAN, a WPAN, devices and/or networks operating in accordance with existing WirelessHD™ and/or Wireless-Gigabit-Alliance (WGA) specifications and/or future versions and/or derivatives thereof, devices and/or networks operating in accordance with existing IEEE 802.11 (IEEE 802.11-2007: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications) standards and amendments, 802.11ad (“the IEEE 802.11 standards”), IEEE 802.16 standards, and/or future versions and/or derivatives thereof, units and/or devices which are part of the above networks, one way and/or two-way radio communication systems, cellular radio-telephone communication systems, Wireless-Display (WiDi) device, a cellular telephone, a wireless telephone, a Personal Communication Systems (PCS) device, a PDA device which incorporates a wireless communication device, a mobile or portable Global Positioning System (GPS) device, a device which incorporates a GPS receiver or transceiver or chip, a device which incorporates an RFID element or chip, a Multiple input Multiple Output (MIMO) transceiver or device, a Single input Multiple Output (SIMO) transceiver or device, a Multiple Input Single Output (MISO) transceiver or device, a device having one or more internal antennas and/or external antennas, Digital Video Broadcast (DVB) devices or systems, multi-standard radio devices or systems, a wired or wireless handheld device, a Wireless Application Protocol (WAP) device, or the like.

Some embodiments may be used in conjunction with suitable limited-range or short-range wireless communication networks, for example, “piconets”, e.g., a wireless area network, a WVAN, a WPAN, and the like.

Example System Environment

FIG. 1illustrates a system-level overview of an exemplary system environment100for communicating between a wireless device or device102each one device may be identified by one or more MAC addresses. Device102may be referred to as STA in network or system environment100, one or more device(s)102may be considered a STA. Device102includes various devices, such as laptop computers, tablet computers, smart phones, etc. Furthermore, it is to be understood that device102may include other devices.

Device102is identified by one or more MAC addresses, including a unique globally assigned MAC address. The MAC addresses are used to communicate with various other devices and/or access points. In this example, device102communicates with an Internet access point or AP104through a wireless connection106. Traffic or traffic steams are sent through wireless connection106. In certain implementations, the wireless connection106may be implemented using WiGig or IEEE 802.11ad specification, and operate over the 60 GHz frequency spectrum. Device102may be a DBand STA operating in the DBand. In addition, the wireless connection106may be a directed or beam formed link to the AP104. Furthermore, device102may be in session with AP104.

When communicating with AP104, device102includes a unique MAC address in frames sent to the AP104, where the unique MAC address identifies the frames as sent by the device102. This unique MAC address may be a global MAC address that has been pre-assigned to the device104. For example, device102may include a NIC that is identified by the global MAC address. For example, when communicating with the Internet, a global MAC address is preferable. In this example, the AP104is connected via a wired/wireless (or combination) connection108to the Internet110.

In this example, device102further communicates with a docking station112. In general the docking station112may connect many devices such as a display, a mass storage and others to the device102(i.e., mobile device such as notebook or cellular phone) via a wireless link. A different unique MAC address or MAC addresses are is used to communicate with the docking station112. In other words, the MAC address used to communicate to AP104is different than the MAC addresses used to communicate to the docking station112. Device102may communicate with the docking station112through a wireless connection114. In certain implementations, the wireless connection106may be implemented using WiGig or IEEE 802.11ad specification, and operate over the60GHz frequency spectrum. In addition, the wireless connection114may be a directed or beam formed link to the docking station112. A display116may be connected to the docking station112through wired connection118, such as a high definition multimedia interface (HDMI) or display port connection. Furthermore a mass storage device120may have wired connection122, such as universal serial bus or serial advance technology attachment.

In particular, the different unique MAC addresses of device102may be used to provide different services, or support different applications resident on device102. Different applications may be supported by different communication layers on the OSI model. For example, an audio/video application in device102may employ one MAC address in the STA102to deliver audio/video traffic to the display via the docking STA112, and a file transfer application in device102may employ a different MAC address in the STA102to deliver data to/from mass storage via the docking station112. In certain implementations, the docking STA may also use different MAC addresses per different application/services.

Example System with MAC Address Generation and Verification Server

FIG. 2illustrates a system-level overview of an exemplary system environment200implementing multiple stations or STAs202that are assigned MAC addresses by a separate MAC Address Generation and Verification Server(s) or MAGV server204. The STAB202(1)-202(N) may be devices such as device102described above, and may include various devices such as laptop computers, tablet computers, smart phones, etc. It is to be understood that other devices, as described above, may also be included.

The MAGV server204may be a standalone device or reside in a PCP or AP station. In certain implementations, the MAGV server204may be part of another device defined as a “Group Owner”, where communication between the MAGV server204and the STAs202may be through various communication bands, including the mmWave band. The ACV204may be supported at complex controlled environment such as enterprise, as well as at ad-hoc user environment in which proximity is guaranteed. At complex environments, MAGV204may not necessarily be directly connected to a device via the same media. As an example, the mmWave signal of a specific device may not be adequate for MAGV. Therefore, service may be tunneled. At the ad-hoc environment, MAGV204functionality is likely to be provided by the same device that provides the PCP function.

STAs202may communicate through an AP, or personal basic service set control point (PCP)206, In certain implementations, the MAGV server204may be included as part of PCP206. In such implementations, the MAGV server204may communicate over the mmWave band, such as a mmWave network discussed above, In specific, the PCP206communicates with the STAs202over the mmWave band. In certain implementations communication may be over a mmWave or WiGig radio band, implementing a60GHz frequency, using directed or beam formed links. Such communication links are represented by communication links208(1) to208(N).

Certain implementations, where the MAGV server204is a standalone device, provide for a “Group Owner”, the PCP206, another AP, or other device to act as a “proxy” for the MAGV server204. In other words, device202(2) that needs service of allocation of multiple addresses connects to the MAGV server204through the proxy206using the connections208(2) and212. In the exemplary embodiment of the invention the PCP206is served as a proxy. In certain implementations, MAGV server204may be connected to multiple APs or PCPs to cover overlapping basic service sets (OBSS).

The MAGV server204may be part of a separate network210, connected to PCP206through wired/wireless connection212. The network210can include the Internet and cloud-based networks/services. In other implementations, server204is part of a local network, and in specific included as part of system200. In certain implementations, a direct link, such as a beam formed link, may be establish with the MAGV server204and one or more of the STAs202. Such a direct link is shown by example as link214.

MAGV server204may be discovered by the STAs202through various methods, including known Level 2 (L2) service discovery techniques. Other methods of discovering the MAGV server204, include the PCP206advertising or broadcasting services of the MAGV server204to the STAs202. In certain implementations, the PCP206is used as a proxy that redirects the STAs202(1) to the MAGV server204. In other cases the STAs202(N) and MAGV server204may communicate directly via direct link214.

The MAGV server204specifically provides unique MAC addresses to the STAs202. The unique MAC addresses may be local to the network of the STAs202, where such a network includes system200. Furthermore, each station may have more than one local, also known as “virtual”, MAC address. Each local/virtual MAC address is generated or verified by the MAGV server204. Since the MAC addresses are generated and verified at a central provider, i.e., MAGV server204, each MAC address is unique. Therefore, in a local network, such as system200, contention regarding same MAC addresses at different STAs202is avoided.

FIG. 3shows an example device or station (STA)300that implements multiple media access control (MAC) addresses. Device300includes one or more processors, processor(s)302. Processor(s)302may be a single processing unit or a number of processing units, all of which may include single or multiple computing units or multiple cores. The processor(s)302may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the processor(s)302may be configured to fetch and execute computer-readable instructions or processor-accessible instructions stored in a memory304or other computer-readable storage media.

Memory304is an example of computer-readable storage media for storing instructions which are executed by the processor(s)302to perform the various functions described above. For example, memory304may generally include both volatile memory and non-volatile memory (e.g., RAM, ROM, or the like). Memory304may be referred to as memory or computer-readable storage media herein. Memory304is capable of storing computer-readable, processor-executable program instructions as computer program code that may be executed by the processor(s)302as a particular machine configured for carrying out the operations and functions described in the implementations herein.

Memory304may include one or more operating system(s)306, and may store one or more applications308. The operating system(s)306may be one of various known and future operating systems implemented for personal computers, audio video devices, etc. The applications308may include preconfigured/installed and downloadable applications. In addition, memory304can include data310. The device300may include a module312for management of multiple locally administered MAC Addresses for allocation.

The device300may include communication interface(s), and particularly a radio314. Radio314may be coupled to two or more antennas. For example radio314may couple to antennas316and318. Radio314may include at least a receiver (RX)320, a transmitter (TX)322and a beam forming (BF) controller324, although the scope of the present invention is not limited in this respect.

The device300may include a network interface card or NIC326. As well known in the art, devices, such as device300may include various communication layers as defined by the International Organization for Standardization (ISO) Open Systems Interconnection model (OSI) model. The lowest layer (1) is the Physical layer that is called PHY and provides connection to the media. For example antennas are part of the PHY layer. The second layer is the Data. Link Layer that includes two sub layers , the MAC layer and Logical Link Control (LLC) layer. In general, NIC326is a physical representation of the logical layers. NIC326may include a global MAC address (not shown) that is unique to the device and NIC326, and one or More MAC Layers328. Furthermore, NIC326may include a beam forming control and management module330. NIC326supports global and local MAC addresses. Module312provides for separate support of multi MAC allocation. The beam forming may receive support from PHY and MAC. In general NIC326supports MAC level functionality fully or partially.

Device300may include one or more communication stacks332, which may be actual or virtual, to process and implement the global MAC address the locally assigned MAC addresses. In this regard, each communication stack332may include a MAC layer328. The different communication stacks332may use different protocols, in communicating with other application devices like display, TV, mass storage, mouse, keyboard, printer, etc. or in communication with Internet specific applications like entailing, WEP browsing etc.

The example device300described herein is merely an example that is suitable for some implementations and is not intended to suggest any limitation as to the scope of use or functionality of the environments, architectures and frameworks that may implement the processes, components and features described herein.

Generally, any of the functions described with reference to the figures can be implemented using software, hardware (e.g., fixed logic circuitry) or a combination of these implementations. Program code may be stored in one or more computer-readable memory devices or other computer-readable storage devices. Thus, the processes and components described herein may be implemented by a computer program product.

MAC Address Data Structure

FIG. 4shows example data structures400for a MAC address which can for multiple MAC addresses of a device. As discussed above, a MAC address can be a globally unique MAC address or locally defined and administered MAC address. Data structure402shows a MAC address with 6 bytes, represented by 6 octets, with the most significant byte at the 1st octet, and the least significant byte at the 6th Octet.

Data structure404further defines the 6 octets or 6 bytes of data structure402. The three bytes of the 1st, 2nd and 3rd octets identify a unique “Organizationally Unique Identifier” or OUT406. The OUT406may identify a particular vendor of the device or NIC. The three bytes of the 4th, 5th and 6th octets may be specific to a network interface card or NIC, and may be referred to as a NIC specific identifier408.

Data structure410further defines that the 1st octet (which is part of the OUI identifier406) has 8 bits “b1” to “b8”. At block412, if the bit “B1” is set to “0” the MAC address is unicast, if set to “1” the MAC address is multicast. Block414, defines that the if bit “b2” is set to “0” the MAC address is globally unique, and if the bit “b2” is set to “1” the MAC address is locally administered. The MAGV server204may generate the virtual MAC address. Therefore in an implementation, the second least significant bit of the most significant byte of the address shall be set to “locally administered” (never to match the globally unique. The OUT shall repeat the OUI of the globally unique address406of the STA. The 3rd byte shall repeat the 3rd byte of the globally unique address of the STA. The 1st and the 2nd bytes are used to generate the virtual addresses.

Data Structures for MAC Address Generation and Verification

As discussed above, STAs202may communicate through PCP206, to access and communicate with MAGV server204. In particular, MAGV server204provides and authenticates local or virtual MAC address for STAs202. STAs202may request and receive such MAC addresses from MAGV server204. PCP206need not know the context of the request and may be used to merely pass along the request and response between the STAs202and MAGV server204.

To provide the address generation and verification service, MAC Address (MA)resolution information elements are defined to be used with known action frames like probe request and response and information request and response.

FIG. 5shows example data structures for media access control (MAC) address generation and verification. MAC address resolution information element500is a data structure that includes an element ID field502, a length field504, an instruction filed506, a globally unique MAC address field508, and a virtual/locally administered MAC address field510. Instruction field506may further be defined by “number of virtual MAC addresses (e.g., 1 to 8)”512, “approve/rejected defined by ‘0’ or provided/approved defined by ‘1”’514, and keep alive field516. MAC address resolution information element500, also referred to as MAC address resolution information element500, is used by the STA202to request multiple MAC addresses from the MAGV server204, and is used by the MAGV server204to deliver the requested MAC addresses to the requesting STA202.

In an example, if the MAC address resolution information element500is received by the MAGV server204and the instruction506is set to “0” the MAGV server204may verity the addresses sent in the virtual/locally administered MAC address field510. In this case the field510contains the locally administered MAC addresses sent by STA202for verification and the MAGV server204may respond with field514set to “1” (approve) if after comparison with the data base it verifies that the addresses are locally unique. The MAGV server204shall respond with field514set to “0” (rejected) if after comparison with the data base it verifies that one or more of the addresses are not locally unique. If the instruction in the field506is set to “1” in the request frame the MAGV server204server shall provide as many virtual addresses as set in the number of virtual MAC addresses field512. in this case there is no need to include the virtual MAC addresses fields in the MAC address resolution information element sent by the STA202.

The MAGV server204may respond with the requested number of virtual MAC addresses, with field514set to “1” (i.e., approve) if the procedure succeeds, or “0” (i.e., rejected).

The globally unique MAC address in the field508may be used to generate the Locally unique MAC addresses by copying the OUI part of the address as defined in paragraph 47. The keep alive field516may be used to prevent the allocated addresses resetting by the MAGV server204.

In certain implementations, the MAGV server204may reset a “MAC address (MA) verification timer” when the MAGV server204receives a MAC resolution information element identified with the globally unique address508of the STA and with keep alive field516set to “1.” It does not matter which proxy, if any, is used to deliver the MA resolution information element. In certain implementations, the MAGV server204resets the allocation when the MA verification timer expires.

In certain implementations, MAC address resolution information element500contained in the management action frames may be enveloped in Quality of Service (QoS) data frames that the MAC frame body contains an LLC header with ethertype equal to 89-0d and specific payload type that indicates enveloping of management action frame. The MAC header of the enveloped action frame may contain the receiving address (RA) that is equal to the address of the MAGV server204. The envelope allows any device to be a proxy of the MAGV Server, for example the PCP206may provide the MAGV service or alternatively be PCP206may serve as a to deliver the management action frame to other device.

Example Process

FIG. 6shows a flow chart for an exemplary process600for assigning and verifying local media access control (MAC) addresses. The order in which the method is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method, or alternate method. Additionally, individual blocks may be deleted from the method without departing from the spirit and scope of the subject matter described herein. Furthermore, the method may be implemented in any suitable hardware, software, firmware, or a combination thereof, without departing from the scope of the invention.

At block602, request is generated or verification is performed. For example, a STA or device may request the MAGI server204to generate one or more virtual/local MAC addresses or to verify one or more addresses generated by the STA or device itself. In the latter case the STA or device includes the generated addresses in the MA Information element for verification. As discussed above, the request may be made by one or more devices or STAs in a network, connected to an AP or PCP. The AP or PCP may forward the requests to a MAC address generation and verification server.

At block604, a device or STA, sends an action frame with MAC address resolution information element that contains unique global MAC address, where the global MAC address is particular to the device or STA. Likewise, the action frame may be sent through an AP/PCP as discussed. Furthermore, as discussed above, the request of602and sending of604, may be in the form of a MAC address information element that is included in an existing or known action frame. For example, the action frame is enveloped in the QoS Data frame. The QoS data frame contains the LLC header with ethertype equal to 89-0d and the specified payload type.

At block606, a redirection may be performed. in particular, a frame (i.e., action frame) is redirected to the MAGV server, and may be performed by an AP or PCP.

At block608, the unique virtual/local MAC addresses may be generated or verified. The generating may be performed by and at the MAC address generation and verification server. The generated virtual/local MAC addresses may be specific to a network that the requesting device or STA resides. The verifying of the uniqueness of the virtual/local MAC addresses as delivered by the requesting device(s) or STA may be performed by the MAGV server.

At block610, the virtual/local MAC addresses are delivered to requesting devices or STAs. Furthermore confirmation may be made as to the virtual/local MAC addresses sent by devices or STAs. This may be performed by the MAGV server.

At block612, redirection may be performed as to an action frame that includes the MAC information element to the requesting STA. The redirection may be performed by an AP or PCP.