Automatic access point location, planning, and coverage optimization

A device receives distances between an access point, located on a floor of a building, and other access points located on the same floor, and determines, based on the distances, relative location information associated with the access point, where the relative location information provides a location of the access point relative to the other access points. The device also determines, using a triangulation method, an actual location of the access point based on the relative location information. The device further maps the actual location of the access point to a floor plan of the floor, and displays the floor plan with the mapped actual location of the access point.

BACKGROUND

A wireless access point (or access point) is a device that allows wired communication devices (e.g., network devices, such as routers, firewalls, switches, or gateways, which transfer or switch data, such as packets) to connect to a wireless network (e.g., a wireless local area network (WLAN)) using wireless technologies (e.g., Wi-Fi, Bluetooth, or related standards). The access point may connect to a network device (e.g., connected to a network), and may relay data between wireless devices (e.g., client devices, such as personal computers, laptop computers, printers, smart phones, etc.) and the network device. In one example, an access point may include a wireless network device, such as a wireless router.

A typical corporate use of access points involves attaching several access points to a wired network (e.g., a corporate intranet that includes one or more network devices) and providing wireless access to client devices located, for example, in a building. The access points may form a WLAN for the client devices, and may be managed by a WLAN controller. The WLAN controller may handle automatic adjustments to radio frequency (RF) power, channels, authentication, and/or security associated with the access points.

The typical access point location and coverage modeling process requires a network administrator to manually select access point locations, such as by using blueprints or other drawings of a facility. These locations may be used for RF coverage optimization (e.g., channels and power level selection) of the access points and for WLAN location-based services (e.g., client device tracking). The process requires the network administrator to import facility floor plans, and to either manually select potential access point locations or manually specify facility RF characteristics (e.g., RF characteristics of walls, ceilings, and other obstructions). However, this manual process is prone to human errors, such as assigning incorrect access point identifications (IDs) to locations, locating access points at incorrect locations, improperly orienting directional antennas of access points, not inputting access point locations, etc.

SUMMARY

According to one aspect, a method may include receiving, by the computing device, distances between an access point, located on a floor of a building, and other access points located on the same floor; and determining, by the computing device and based on the distances, relative location information associated with the access point, where the relative location information provides a location of the access point relative to the other access points. The method may also include determining, by the computing device and using a triangulation method, an actual location of the access point based on the relative location information; and mapping, by the computing device, the actual location of the access point to a floor plan of the floor. The method may further include providing, by the computing device and for display, the floor plan with the mapped actual location of the access point.

According to another aspect, a device may include a memory to store a plurality of instructions, and a processor to execute instructions in the memory to: receive distances between an access point, located on a floor of a building, and other access points located on the same floor, and determine, based on the distances, relative location information associated with the access point, where the relative location information provides a location of the access point relative to the other access points. The processor may also execute instructions in the memory to determine, using a triangulation method or a trilateration method, an actual location of the access point based on the relative location information, map the actual location of the access point to a floor plan of the floor, and provide, for display, the floor plan with the mapped actual location of the access point.

According to still another aspect, one or more computer-readable media may store instructions executable by one or more processors. The media may store one or more instructions for: receiving distances between an access point, located on a level of a building, and other access points located on the same level; determining, based on the distances, relative location information associated with the access point, where the relative location information provides a location of the access point relative to the other access points; determining, using a triangulation method or a trilateration method, an actual location of the access point based on the relative location information; mapping the actual location of the access point to a floor plan of the level; providing, for display, the floor plan with the mapped actual location of the access point; and providing, for display, one or more performance optimization recommendations with the floor plan and the mapped actual location of the access point.

DETAILED DESCRIPTION

Systems and/or methods described herein may utilize RF discovery to automatically determine locations of access points (e.g., in a WLAN) relative to other access points in the WLAN. The systems and/or methods may also utilize RF discovery to resolve access points into groups (e.g., access points residing on the same floor of a building). The systems and/or methods may provide the relative location information, relating to the access points, to a planning tool, and the planning tool may utilize the relative location information to determine the actual locations of the access points. The planning tool may map the actual locations of the access points to a floor plan (e.g., of a building), and may utilize the floor plan with the mapped actual locations of the access points to provide performance optimization recommendations for the WLAN.

The systems and/or methods may provide a simple and adaptive mechanism for planning and implementing access points in a WLAN, and may provide improved WLAN performance through adaptive planning operations. The systems and/or methods may also eliminate the human errors (e.g., assigning incorrect access point IDs, locating an access point at an incorrect location, improperly orienting a directional antenna of an access point, not inputting access point locations, etc.) associated with the typical access point location and coverage modeling process.

In an example implementation, the systems and/or methods may determine location information of access points, located on a floor (or level) of a building, relative to other access points located on the floor, and may receive location information of client devices associated with the access points. The systems and/or methods may receive location information associated with different access points located on a different floor (or level) of the building, and may determine, using triangulation, the actual locations of the access points based on the relative location information of the access points. The systems and/or methods may adjust, if necessary, the actual locations of the access points based on the location information of the clients and/or the location information of the different floor access points. The systems and/or methods may map the actual locations of the access points to a floor plan of the floor, and may display the floor plan with the mapped actual locations of the access points. The systems and/or methods may also display performance optimization recommendations for the floor plan with the mapped actual locations of the access points.

The term “component,” as used herein, is intended to be broadly construed to include hardware (e.g., a processor, a microprocessor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a chip, a memory device (e.g., a read only memory (ROM), a random access memory (RAM), etc.), etc.) or a combination of hardware and software (e.g., a processor, microprocessor, ASIC, etc. executing software contained in a memory device).

FIG. 1is a diagram of an example network100in which systems and/or methods described herein may be implemented. As illustrated, network100may include a WLAN110(e.g., that includes multiple access points (APs)120), multiple client devices130, and a computing device140(e.g., that includes a planning tool145). As further shown inFIG. 1, WLAN110, access points120, and client devices130may be provided in a building (e.g., on a floor of a building). Computing device140may be provided within the building or externally to the building.

Components of network100may interconnect via wired and/or wireless connections or links. One WLAN110, five access points120, four client devices130, one computing device140, and one planning tool145have been illustrated inFIG. 1for simplicity. In practice, there may be more WLANs110, access points120, client devices130, computing devices140, and/or planning tools145. Also, in some instances, one or more of the components of network100may perform one or more tasks described as being performed by another one or more of the components of network100.

WLAN110may include one or more networks of any type. For example, WLAN110may include a LAN, a wide area network (WAN), a metropolitan area network (MAN), an intranet, or a combination of networks. In one example implementation, WLAN110may include a wireless LAN that provides client devices130with wireless access (e.g., via access points120) to additional networks (e.g., the Public Switched Telephone Network (PSTN), Public Land Mobile Network (PLMN), an intranet, the Internet, etc.). WLAN110may provide client devices130wireless access to the additional networks via one or more network devices (not shown), such as a gateway, a router, a switch, a firewall, a network interface card (NIC), a hub, a bridge, a proxy server, an optical add-drop multiplexer (OADM), or some other type of device that processes and/or transfers traffic.

Access point120may include a device that allows wired communication devices (e.g., network devices) to connect to a wireless network (e.g., WLAN110) using wireless technologies (e.g., Wi-Fi, Bluetooth, or related standards). Access point120may connect to a network device, and may communicate data between wireless devices (e.g., client devices130) and the network device. In one example, access point120may include a wireless network device, such as a wireless router. In one example implementation, one or more access points120may be arranged on one or more floors of the building in order provide client devices130with wireless access to additional networks (not shown) via one or more network devices (not shown).

Each of client devices130may include any device that is capable of accessing WLAN110via one or more access points120. For example, client device130may include a radiotelephone, a personal communications system (PCS) terminal (e.g., that may combine a cellular radiotelephone with data processing and data communications capabilities), a personal digital assistant (PDA) (e.g., that can include a radiotelephone, a pager, Internet/intranet access, etc.), a wireless device (e.g., a wireless telephone), a smart phone, a laptop computer, a personal computer, a printer, or other types of computation or communication devices.

Computing device140may include one or more computation or communication devices, that gather, process, and/or provide information in a manner described herein. In one example, computing device140may include a server device, a laptop computer, a personal computer, a workstation computer, etc. As shown inFIG. 1, computing device140may communicate with one or more of WLAN110, access points120, and client devices130, and may receive information150from WLAN110, access points120, and/or client devices130. Information150may include, for example, relative location information associated with access points120(e.g., relative to other access points120), information provided by client devices130(e.g., regarding locations of access points120), location information associated with access points120provided on other floors of the building, etc. Client device140may provide information150to planning tool145.

Planning tool145may include software that, when executed by hardware components of computing device140, enables computing device140to utilize information150to generate planning output information160. Planning output information160may include actual locations of access points120on the floor of the building, a floor plan that includes a mapping of the actual locations of the access points120, performance optimization recommendations for WLAN110and/or access points120, etc.

In one example implementation, computing device140(e.g., via planning tool145) may determine location information of access points120(e.g., located at a floor of the building), relative to other access points120located on the building floor, and may receive location information of client devices130associated with access points120. Computing device140may receive location information associated with access points120located at a different floor of the building, and may determine, using triangulation, the actual locations of access points120based on the relative location information of access points120. Computing device140may adjust, if necessary, the actual locations of access points120based on the location information of client devices130and/or the location information of the different floor access points120. Computing device140may map the actual locations of access points120to a floor plan, and may provide, for display, the floor plan with the mapped actual locations of access points120. Computing device140may also provide, for display, performance optimization recommendations for the floor plan with the mapped actual locations of access points120.

AlthoughFIG. 1shows example components of network100, in other implementations, network100may include fewer components, different components, differently arranged components, or additional components than depicted inFIG. 1.

FIG. 2illustrates a diagram of example components of a device200that may correspond to computing device140(FIG. 1). As illustrated, device200may include a bus210, a processing unit220, a main memory230, a ROM240, a storage device250, an input device260, an output device270, and/or a communication interface280. Bus210may include a path that permits communication among the components of device200.

Processing unit220may include one or more processors, microprocessors, ASICs, FPGAs, or other types of processing units that may interpret and execute instructions. Main memory230may include a RAM or another type of dynamic storage device that may store information and instructions for execution by processing unit220. ROM240may include a ROM device or another type of static storage device that may store static information and/or instructions for use by processing unit220. Storage device250may include a magnetic and/or optical recording medium and its corresponding drive.

Input device260may include a mechanism that permits an operator to input information to device200, such as a keyboard, a mouse, a pen, a microphone, voice recognition and/or biometric mechanisms, a touch screen, etc. Output device270may include a mechanism that outputs information to the operator, including a display, a printer, a speaker, etc. Communication interface280may include any transceiver-like mechanism that enables device200to communicate with other devices and/or systems. For example, communication interface280may include mechanisms for communicating with another device or system via a network.

AlthoughFIG. 2shows example components of device200, in other implementations, device200may include fewer components, different components, differently arranged components, or additional components than depicted inFIG. 2. Alternatively, or additionally, one or more components of device200may perform one or more other tasks described as being performed by one or more other components of device200.

FIG. 3is a diagram of example interactions between components of an example portion300of network100. As illustrated, example network portion300may include access points120, client devices130, and planning tool145. Access points120, client devices130, and planning tool145may include the features described above in connection with, for example, one or more ofFIGS. 1 and 2.

As further shown inFIG. 3, the four access points120may be labeled120-1,120-2,120-3, and120-4for ease of explanation. It may be assumed that access points120-1through120-4are located on the same floor of a building. Access point120-1may provide (e.g., based on RF information associated with access point120-1) location information310-1to planning tool145. Location information310-1may include an estimated location of access point120-1relative to other access points120-2,120-3, and120-4. Access point120-2may provide (e.g., based on RF information associated with access point120-2) location information310-2to planning tool145. Location information310-2may include an estimated location of access point120-2relative to other access points120-1,120-3, and120-4. Access point120-3may provide (e.g., based on RF information associated with access point120-3) location information310-3to planning tool145. Location information310-3may include an estimated location of access point120-3relative to other access points120-1,120-2, and120-4. Access point120-4may provide (e.g., based on RF information associated with access point120-4) location information310-4to planning tool145. Location information310-4may include an estimated location of access point120-4relative to other access points120-1,120-2, and120-3. Location information310-1,310-2,310-3,310-4may be collectively referred to herein as location information310.

Client devices130may provide client information320to planning tool145. Client information320may include RF information (e.g., strength of RF signals provided by access points120to client devices130) of client devices130that may be used to determine actual locations of access points120. For example, client information320may include estimated locations of client devices130relative to access points120. Client devices130may be located on the same floor as access points120or may be located on different floor(s) than access points120.

As further shown inFIG. 3, planning tool145may receive other information330that may be used to determine actual locations of access points120. Other information330may include location information (e.g., RF information) associated with access points120provided on different floor(s) than access points120-1through120-4. The RF information of the different floor access points120may provide estimated locations of the different floor access points120relative to one or more of access points120-1through120-4. The RF information of the different floor access points120may also enable the different floor access points120to be resolved into groups based on an estimated number of floors in the building, base on floor and/or ceiling attenuation values, etc. Other information330may also include information provided by wired port virtual LAN (VLAN), traceroute, and other network topology discovery protocols, which may be used to resolve access points120-1through120-4into a same floor group. Other information330may further include information provided by two-dimensional and three-dimensional antenna patterns of access points120-1through120-4, and information provided by embedded accelerometers provided in access points120-1through120-4.

Planning tool145may receive location information310, client information320, and other information330, and may determine actual locations340of access points120-1through120-4(e.g., at the floor of the building) based on location information310. In one example implementation, planning tool145may utilize a triangulation method (e.g., similar to a global positioning satellite (GPS) triangulation method) to determine actual locations340of access points120-1through120-4based on location information310. Additionally, planning tool145may modify or adjust (if necessary) the determined actual locations340of access points120-1through120-4based on client information320and/or based on other information330(e.g., the location information of the different floor access points120). Planning tool145may map the determined actual locations340of access points120-1through120-4on a floor plan (e.g., of the floor where access points120-1through120-4are located), and may provide, for display, the floor plan with the mapped actual locations340of access points120-1through120-4.

As further shown inFIG. 3, planning tool145may determine performance optimization information350based on one or more of location information310, client information320, and other information330. Performance optimization information350may include, for example: providing recommendations that a user of computing device140rotate, scale, and reposition access points120-1through120-4in planning tool145relative to the floor plan; using actual locations340of access points120-1through120-4to recommend adding, moving, and/or removing access points120to optimize coverage and performance; using actual locations340of access points120-1through120-4for visualization-based connection, coverage, and throughput monitoring, debugging, and optimization; using actual locations340of access points120-1through120-4to automatically assign attenuation values to floor plan obstructions (e.g., walls, cubes, ceilings, ducts, doors, etc.); etc. Planning tool145may provide, for display, performance optimization information350with the floor plan and the mapped actual locations340of access points120-1through120-4.

In one example scenario, access points120-1through120-4may be provided in a building according to a combination of best practices (e.g., install an access point120every twenty (20) feet on the ceiling) and available mounting locations for access points120-1through120-4. Planning tool145may receive location information310, client information320, and other information330, and may determine actual locations340of access points120-1through120-4based on location information310, client information320, and/or other information330. Such an arrangement may enable the exact locations of access points120(e.g., on a floor of a building) to be determined, and may enable floor plans with the mapped access point locations to be generated without knowledge of access point IDs (e.g., serial numbers).

AlthoughFIG. 3shows example components of network portion300, in other implementations, network portion300may include fewer components, different components, differently arranged components, or additional components than depicted inFIG. 3. Alternatively, or additionally, one or more components of network portion300may perform one or more other tasks described as being performed by one or more other components of network portion300.

FIGS. 4A-4Care diagrams of example RF patterns400capable of being generated by access points120. Access points120may include the features described above in connection with, for example, one or more ofFIGS. 1-3. The four access points120depicted inFIGS. 4A and 4Bmay be labeled120-1,120-2,120-3, and120-4for ease of explanation. It may be assumed that access points120-1through120-4are located on the same floor of a building. The two access points120depicted inFIG. 4Cmay be labeled120-6and120-7for ease of explanation. It may be assumed that access points120-6and120-7are located on the same floor of a building.

As shown inFIG. 4A, each of access points120-1through120-4may calculate omnidirectional range estimates to other access points120based on the strengths of RF signals received from the other access points120. For example, access point120-1may calculate an omnidirectional range estimate410to access points120-2,120-3, and120-4based on the strengths of RF signals received from access points120-2,120-3, and120-4. Access point120-2may calculate an omnidirectional range estimate420to access points120-1,120-3, and120-4based on the strengths of RF signals received from access points120-1,120-3, and120-4. Access point120-3may calculate an omnidirectional range estimate430to access points120-1,120-2, and120-4based on the strengths of RF signals received from access points120-1,120-2, and120-4. Access point120-4may calculate an omnidirectional range estimate440to access points120-1,120-2, and120-3based on the strengths of RF signals received from access points120-1,120-2, and120-3.

Access points120-1,120-2,120-3, and120-4may provide omnidirectional range estimates410,420,430, and440, respectively, to computing device140(e.g., to planning tool145). In one example implementation, omnidirectional range estimates410,420,430, and440may correspond to location information310-1,310-2,310-3, and310-4(FIG. 3), respectively. Planning tool145may utilize a triangulation method (e.g., similar to a GPS triangulation method) to determine actual locations340of access points120-1through120-4based on omnidirectional range estimates410-440. In the triangulation method, for example, an actual location of access point120-1may be calculated from distance measurements (e.g., omnidirectional range estimate410) to access points120-2,120-3and120-4. Mathematically, a minimum of four access points120(e.g., four omnidirectional range estimates) may be needed to determine the exact position of an access point120, and an actual location of at least one access point120(e.g., relative to the building) may need to be known. However, with additional information (e.g., client information320and/or other information330), less than four access points120(e.g., four omnidirectional range estimates) may be needed to determine the exact position of an access point120. In other implementations, the triangular method may be replaced with other methods, such as a trilateration method used in GPS.

Planning tool145may utilize the triangulation method (or the trilateration method) to solve for overlap of omnidirectional range estimates410-440, which may be used to determine actual locations of access points120-1through120-4. For example, as shown inFIG. 4B, the triangulation method may determine an overlap region450-1(e.g., which may correspond to the actual location of access point120-1), an overlap region450-2(e.g., which may correspond to the actual location of access point120-2), an overlap region450-3(e.g., which may correspond to the actual location of access point120-3), and an overlap region450-4(e.g., which may correspond to the actual location of access point120-4). Planning tool145may utilize additional information (e.g., client information320and/or other information330) to modify or adjust the determined actual locations of access points120-1through120-4.

As shown inFIG. 4C, access points120may generate non-omnidirectional antenna patterns. For example, access point120-6may calculate a non-omnidirectional range estimate460to access point120-7based on the strengths of RF signals received from access points120-7. Access point120-7may calculate a non-omnidirectional range estimate470to access point120-6based on the strengths of RF signals received from access points120-6. In such a situation, computing device140(e.g., planning tool145) may utilize non-omnidirectional range estimates460and470to assist in determining locations of access points120-6and120-7relative to each other. Computing device140(e.g., planning tool145) may need to rely more heavily on other information (e.g., client information320and/or other information330) to determine the actual locations of access points120-6and120-7.

AlthoughFIGS. 4A-4Cshow example RF patterns400capable of being generated by access points120, in other implementations, access points120may generate different RF patterns, differently arranged RF patterns, or additional RF patterns than depicted inFIGS. 4A-4C.

FIG. 5is a diagram of example functional components of planning tool145of computing device140. In one implementation, the functions described in connection withFIG. 5may be performed by one or more components of device200(FIG. 2). As illustrated inFIG. 5, planning tool145may include a location information determiner500, a client information receiver510, an other information receiver520, a triangulation component530, a floor plan mapper540, and an optimizer550.

Location information determiner500may include hardware or a combination of hardware and software that may receive RF information560from access points120. RF information560may include signal strength information associated with neighboring access points120. In one example, location information determiner500may convert RF information560into distance information between access points120, and may calculate location information310for each access point120based on the calculated distance information. Location information determiner500may provide location information310to triangulation component530.

Client information receiver510may include hardware or a combination of hardware and software that may receive client information320from one or more client devices130. As further shown inFIG. 5, client information receiver510may provide client information320to triangulation component530.

Other information receiver520may include hardware or a combination of hardware and software that may receive other information330. For example, other information receiver520may receive other information330from access points120located on different floors, network topology discovery protocols, from two-dimensional and three-dimensional antenna patterns of access points120-1through120-4, accelerometers provided in access points120-1through120-4, etc. As further shown inFIG. 5, other information receiver520may provide other information330to triangulation component530.

Triangulation component530may include hardware or a combination of hardware and software that may receive location information310from location information determiner500, client information320from client information receiver510, and other information330from other information receiver520. Triangulation component530may utilize a triangulation method (e.g., similar to a GPS triangulation method) to determine actual locations570of access points120(e.g., relative to the building) based on location information310. In the triangulation method, for example, an actual location of an access point120may be calculated from distance measurements (e.g., omnidirectional range estimates) to other access points120. Mathematically, a minimum of four access points120(e.g., four omnidirectional range estimates) may be needed by triangulation component530to determine the exact position of an access point120. However, with additional information (e.g., client information320and/or other information330), less than four access points120(e.g., four omnidirectional range estimates) may be needed by triangulation component530to determine the exact position of an access point120. In other implementations, triangulation component530may utilize other methods to determine actual locations570, such as a trilateration method used in GPS. As further shown inFIG. 5, triangulation component530may provide actual locations570to floor plan mapper540and to optimizer550.

Floor plan mapper540may include hardware or a combination of hardware and software that may receive actual locations570from triangulation component530, and may receive floor plan information580(e.g., from main memory230, ROM240, and/or storage device250). Floor plan information580may include a floor plan of the floor where access points120are located. Floor plan mapper540may map actual locations570of access points120on the floor plan, and may provide, for display, the floor plan with the mapped actual locations of access points120, as indicated by reference number340.

Optimizer550may include hardware or a combination of hardware and software that may receive actual locations570from triangulation component530, and may receive floor plan information580(e.g., from main memory230, ROM240, and/or storage device250). Optimizer550may determine performance optimization information350based actual locations570and floor plan information580. Performance optimization information350may include, for example: providing recommendations that a user of computing device140rotate, scale, and reposition access points120relative to the floor plan; using actual locations570to recommend adding, moving, and/or removing access points120to optimize coverage and performance; using actual locations570for visualization-based connection, coverage, and throughput monitoring, debugging, and optimization; using actual locations570to automatically assign attenuation values to floor plan obstructions (e.g., walls, cubes, ceilings, ducts, doors, etc.); etc. Optimizer550may provide, for display, performance optimization information350with the floor plan and the mapped actual locations of access points120.

AlthoughFIG. 5shows example functional components of planning tool145, in other implementations, planning tool145may include fewer functional components, different functional components, differently arranged functional components, or additional functional components than depicted inFIG. 5. Alternatively, or additionally, one or more functional components of planning tool145may perform one or more other tasks described as being performed by one or more other functional components of planning tool145.

FIGS. 6 and 7are diagrams of example user interfaces600and700capable of being provided by planning tool145. Each of the user interfaces depicted inFIGS. 6 and 7may include a graphical user interface (GUI) or a non-graphical user interface, such as a text-based interface. The user interfaces may provide information to users via a customized interface (e.g., a proprietary interface) and/or other types of interfaces (e.g., a browser-based interface). The user interfaces may receive user inputs via one or more input devices (e.g., input device260), may be user-configurable (e.g., a user may change the size of the user interfaces, information displayed in the user interfaces, color schemes used by the user interfaces, positions of text, images, icons, windows, etc., in the user interfaces, etc.), and/or may not be user-configurable. The user interfaces may be displayed to a user via one or more output devices (e.g., output device270).

As illustrated inFIG. 6, a user interface600may include a floor plan (e.g., of a floor of a building) that includes multiple rooms610defined by multiple walls620. In one example, the floor plan may include a floor where access points120are located. In another example, the floor plan may correspond to a floor of an office building, and rooms610may correspond to offices provided on the floor of the office building.

As described above, planning tool145may determine actual locations of access points120, and may map the determined actual locations of access points120on the floor plan. As shown inFIG. 6, access points120may be located at various locations of the floor plan. In one example implementation, user interface600may correspond to the floor plan with the mapped actual locations340of access points120-1through120-4, as described above in connection withFIG. 3.

As illustrated inFIG. 7, a user interface700may include a floor plan (e.g., of a floor of a building) that includes multiple rooms710defined by multiple walls720. In one example, the floor plan may include a floor where access points120are located. In another example, the floor plan may correspond to a floor of an office building, and rooms710may correspond to offices provided on the floor of the office building. As described above, planning tool145may determine actual locations of access points120, and may map the determined actual locations of access points120on the floor plan. As shown inFIG. 7, access points120may be located at various locations of the floor plan.

As further shown inFIG. 7, user interface700may provide RF coverage730associated with access points120. In one example, RF coverage730may not provide complete coverage for rooms710of the floor plan. Thus, user interface700may indicate coverage problems740associated with access points120(e.g., locations where access points120fail to provide RF coverage730). In one example implementation, user interface700may provide recommendations750for new access points120in order to address coverage problems740. In other example implementations, user interface700may provide other performance optimization information350(FIG. 3), such as providing recommendations to move or remove access points120to optimize coverage and performance, providing attenuation values to floor plan obstructions (e.g., walls720, cubes, ceilings, ducts, doors, etc.), etc.

Although user interfaces600and700depict a variety of information, in other implementations, user interfaces600and700may depict less information, different information, differently arranged information, and/or additional information than depicted inFIGS. 6 and 7.

FIGS. 8A-9are flow charts of an example process800for providing automatic access point location, planning, and coverage optimization according to implementations described herein. In one implementation, process800may be performed by computing device140(e.g., via planning tool145). In another implementation, some or all of process800may be performed by another device in conjunction with computing device140(e.g., via planning tool145).

As illustrated inFIG. 8A, process800may include determining location information of access points, located on a floor, relative to other access points located on the floor (block810), and receive information of client devices associated with the access points located on the floor (block820). For example, in implementations described above in connection withFIGS. 3 and 5, location information determiner500of planning tool145may receive RF information560from access points120. RF information560may include signal strength information associated with neighboring access points120. In one example, location information determiner500may convert RF information560into distance information between access points120, and may calculate location information310for each access point120based on the calculated distance information. Client devices130may provide client information320to planning tool145. Client information320may include RF information (e.g., strength of RF signals provided by access points120to client devices130) of client devices130that may be used to determine actual locations of access points120.

As further shown inFIG. 8A, process800may include receiving location information associated with access points located on a different floor (block830), and determining, using triangulation, actual locations of the access points located on the floor based on the relative location information of the access points located on the floor (block840). For example, in implementations described above in connection withFIG. 3, planning tool145may receive other information330that may be used to determine actual locations of access points120. Other information330may include location information (e.g., RF information) associated with access points120provided on different floor(s) than access points120-1through120-4. Other information330may also include information provided by wired port VLAN, traceroute, and other network topology discovery protocols, information provided by two-dimensional and three-dimensional antenna patterns of access points120-1through120-4, and information provided by embedded accelerometers provided in access points120-1through120-4. Planning tool145may receive location information310, client information320, and other information330, and may determine actual locations340of access points120-1through120-4(e.g., on the floor of the building) based on location information310. In one example implementation, planning tool145may utilize a triangulation method to determine actual locations340of access points120-1through120-4based on location information310.

Returning toFIG. 8A, process800may include adjusting, if necessary, the actual locations of the access points based on the location information of the client devices and/or the location information of access points located on the different floor (block850). For example, in implementations described above in connection withFIG. 3, planning tool145may modify or adjust (if necessary) the determined actual locations340of access points120-1through120-4based on client information320and/or based other information330(e.g., the location information of the different floor access points120).

As shown inFIG. 8B, process800may include mapping the actual locations of the access points, located on the floor, to a floor plan of the floor (block860), and providing, for display, the floor plan of the floor with the mapped actual locations of the access points (block870). For example, in implementations described above in connection withFIG. 3, planning tool145may map the determined actual locations340of access points120-1through120-4on a floor plan (e.g., of the floor where access points120-1through120-4are located), and may provide, for display, the floor plan with the mapped actual locations340of access points120-1through120-4.

As further shown inFIG. 8B, process800may include providing, for display, performance optimization recommendations for the floor plan with the mapped actual locations of the access points (block880). For example, in implementations described above in connection withFIG. 3, planning tool145may determine performance optimization information350based on one or more of location information310, client information320, and other information330. Planning tool145may provide, for display, performance optimization information350with the floor plan and the mapped actual locations340of access points120-1through120-4.

Process block880may include the process blocks depicted inFIG. 9. As shown inFIG. 9, process block880may include providing, for display, coverage problems associated with the actual locations of the access points located on the floor (block900), providing, for display recommendations to add, move, and/or remove access points located on the floor to optimize coverage and/or performance (block910), and using the actual locations of the access points located on the floor to assign attenuation values to obstructions provided on the floor (block920). For example, in implementations described above in connection withFIG. 3, performance optimization information350may include, for example: providing recommendations that a user rotate, scale, and reposition access points120-1through120-4relative to the floor plan; using actual locations340of access points120-1through120-4to recommend adding, moving, and/or removing access points120to optimize coverage and performance; using actual locations340of access points120-1through120-4for visualization-based connection, coverage, and throughput monitoring, debugging, and optimization; using actual locations340of access points120-1through120-4to automatically assign attenuation values to floor plan obstructions (e.g., walls, cubes, ceilings, ducts, doors, etc.); etc. Planning tool145may provide, for display, performance optimization information350with the floor plan and the mapped actual locations340of access points120-1through120-4.

Systems and/or methods described herein may utilize RF discovery to automatically determine locations of access points (e.g., in a WLAN) relative to other access points in the WLAN. The systems and/or methods may also utilize RF discovery to resolve access points into groups (e.g., access points residing on the same floor of a building). The systems and/or methods may provide the relative location information to a planning tool, and the planning tool may utilize the relative location information to determine the actual locations of the access points. The planning tool may map the actual locations of the access points to a floor plan (e.g., of a building), and may utilize the floor plan with the mapped actual locations of the access points to provide performance optimization recommendations for the WLAN.

For example, while series of blocks have been described with regard toFIGS. 8A-9, the order of the blocks may be modified in other implementations. Further, non-dependent blocks may be performed in parallel.