# Patent

## Title
High level instruction convergence function

## Abstract

A convergence engine may provide a high level message for a high level engine representative of multiple messages received by a network interface or other physical layer transmission device. The high level engine may access one or more high level messages via functions describing the state of a non-network-portal station.

## Background
RELATED APPLICATIONS
This Application claims priority to U.S. Provisional Patent Application No. 60/973,406, filed Sep. 18, 2007, and entitled “STATE CONVERGENCE” by Matthew Stuart Gast, which is incorporated herein by reference.
This Application claims priority to U.S. Provisional Patent Application No. 60/978,401, filed Oct. 8, 2007, and entitled “MAC STATE GENERIC CONVERGENCE FUNCTION” by Matthew Stuart Gast, which is incorporated herein by reference.
This Application claims priority to U.S. Provisional Patent Application No. 60/980,158 filed Oct. 15, 2007, and entitled “MAC STATE GENERIC CONVERSION FUNCTION” by Matthew Stuart Gast & Stephen McCann, which is incorporated herein by reference.
This Application claims priority to U.S. Provisional Patent Application No. 60/985,910 filed Nov. 6, 2007, and entitled “MAC STATE GENERIC CONVERSION FUNCTION” by Matthew Stuart Gast, which is incorporated herein by reference.


BACKGROUND
A network may include one or more network portals, each network portal providing network services. Such network portals may be coupled to switches and monitored by controlled by network software. Individuals connecting to the network may select a network portal to connect to.
In connecting to a network, a station may transmit a scan for available network portals. Such a scan may be responded to by one or more network portals. The one or more network portals may provide one or more responses. It may be cumbersome to consider the one or more responses, particularly so when there are many available network portals providing access to the network.
At times an individual may exceed the range of an network portal. Where a station is about to exceed the range of a NP and no NP is available for the station to connect to the station may lose network connectivity. Environmental conditions, or the movement of the station may contribute to a loss of network connectivity.
The foregoing examples of the related art and limitations related therewith are intended to be illustrative and not exclusive. Other limitations of the related art will become apparent upon a reading of the specification and a study of the drawings.
SUMMARY
The following examples and aspects thereof are described and illustrated in conjunction with systems, tools, and methods that are meant to be exemplary and illustrative, not limiting in scope. In various examples, one or more of the above-described problems have been reduced or eliminated, while other examples are directed to other improvements.
A convergence engine may provide a high level message for a high level engine, the high level message a product filtered from of a plurality of messages. The plurality of messages may be received by a network interface or other physical layer transmission device. The messages received may be 802.11 messages. The high level engine may access one or more high level messages via functions describing the state of the STA in terms of a state machine.
For a non network portal (NP) station (STA), the convergence engine may identify various high level states by filtering the plurality of messages. Based on a high level state, the convergence engine may provide a single high level message to a high level engine (HLE) indicating the state of the STA.
In a non-limiting example, the STA may change physical location, environmental conditions may change, network conditions may change, or other conditions may change causing the state machine to change states from one state to one of a plurality of states. In changing, a plurality of messages from network portals, other stations, or the STA itself may be generated or received. The convergence engine may filter the messages and identify a state of the STA. The convergence engine may produce a high level message indicating the present state and provide it to the HLE.



DETAILED DESCRIPTION
FIG. 1 depicts an example of a system for providing high level instructions.
FIG. 2 depicts an example of a system for providing high level instructions separated into various hardware components.
FIG. 3 depicts an example of a system including an intelligent network portal connected to a client.
FIG. 4 depicts an example of a flowchart of a method for providing a summary of filtered messages.
FIG. 5 depicts an example of a flowchart of a method for attaching a STA to a NP.
FIG. 6 depicts an example of a flowchart of a method for managing a waning connection.
FIG. 7 depicts an example of a system including a STA in range of n overlapping networks.
FIG. 8 depicts a non-limiting example of a system including two overlapping networks and station passing through a boundary of the networks.
FIG. 9 depicts an example of a device for providing high level instructions.



DETAILED DESCRIPTION
In the following description, several specific details are presented to provide a thorough understanding. One skilled in the relevant art will recognize, however, that the concepts and techniques disclosed herein can be practiced without one or more of the specific details, or in combination with other components, etc. In other instances, well-known implementations or operations are not shown or described in detail to avoid obscuring aspects of various examples disclosed herein.
In wireless networking, one or more network portals (NPs) comprise a network. The NPs may use a variety of network protocols. In a non-limiting example, 802.11 is a protocol used by the network. An individual NP may have a coverage area, or range within the NP may communicate with a non-NP station (STA). At times the NP may be able to receive signals from the STA, but not be able to transmit to the STA. Contrarily, the STA may be able to transmit to the NP, but not receive signals from the NP. A STA is only in the coverage area of the NP where the NP and the STA may each transmit and receive signals from each other. In a non-limiting example, 802.11 is used and a STA is in range of a NP where all layer 2 setup activities have been completed and the STA is able to class 3 frames to peer Logical Link Control (LLC) entities.
Data transfer over one of the various protocols and via one of a plurality of NPs may be simply termed communication via a network. Multiple NPs may provide network connectivity as a common network having a common name. In some cases a NP providing a network may provide connectivity via more than one networking protocol. Providing connectivity via multiple protocols may be advantageous to provide access to STAs using various communication protocols. For one STA a protocol may be used, whereas for another other STA, a NP may use protocols unused by the STA. So long as the STA uses at least one protocol that is used by the NP, the STA may communicate with the STA, and may have network access.
At times multiple overlapping networks may provide connectivity to a STA via a plurality of NPs. The NPs may provide connectivity by one or more network interfaces. Nominally, a single network interface may communicate using a single protocol, and multiple network interfaces may be enabled to provide multiple protocols. Where convenient, the protocol of a single network interface may be, at times, changed.
Networks may overlap at parts. In some locations a single network may be available. However, even where a single network is available the network may be made available by more than one NP. In order to provide coverage free from “dead spots,” or areas lacking network connectivity, a plurality of NPs providing the network may be provided having overlapping coverage areas.
An overlapping coverage area may be defined as an area in which a STA may transmit and receive data from more than one NP. NPs having overlapping coverage areas may, but need not necessarily provide overlapping coverage for the same network, such as where a first NP and a second NP of a single network provide overlapping coverage.
Different Networks may overlap where at least one NP of a first network and at least one NP of a second network have overlapping coverage areas. In a non-limiting example, such a first NP and a second NP need not communicate using the same network protocol, and thus, may provide overlapping network coverage using more than one communications protocol. A STA could communicate with a first NPs using a first network protocol and a second NP using a second network protocol and thus, transmit and receive data with two NPs using different network protocols. In the non-limiting example, the two NPs could not communicate with each other for lack of a common communications protocol.
The extent of overlapping coverage areas of different networks may be termed a border of networks. At the border of networks, overlapping coverage areas may provide network connectivity to a STA via more than one network and via more than one NP per network.
A mobile non-NP station (STA) may physically move requiring it to transition between NPs of a single network and between NPs of multiple networks. Low level intelligence of the STA may require NP level connectivity information, such as the address of each NP the STA encounters while changing NPs through one or more networks. However, it may not be necessary for high level decisions of the STA to require NP level information. In a non-limiting example, a high level engine may only be notified at transitions between networks, and may not be notified when changing NPs on the same network.
An engine nominally includes a processor and a memory, the memory storing instructions for execution by the processor.
FIG. 1 depicts an example of a system 100 for providing high level instructions. FIG. 1 includes high level engine (HLE) 102, convergence engine (CE) 104, management engine (ME) 106, media access controller (MAC) 108, physical layer device (PHY) 110-1, physical layer device (PHY) 110-2, and physical layer device (PHY) 110-n (collectively physical layer devices PHY 110).
As depicted, the elements of FIG. 1, may be included on either a STA or a NP. Further, the elements as depicted may be separated and recombined as is known or convenient. It may be possible to include all the elements depicted in a single unit however, it may not be necessary to do so. Elements depicted may be included on separate units, and the separate units may be connected by one or more networks.
The HLE 102 could be an internetworking gateway, router, mobility manager, or other engine benefiting from high level instructions. The high level engine may include one or more functions for interaction with a service access point (SAP). The functions may include messaging capability and decision making capability for high level network operations. In a non-limiting example, the high level network operations may include connect, disconnect, enable new network protocol and other high level operations.
The HLE 102 may determine connectivity at the network level such a high level engine may require information such as which network the NP is connected to. It may be desirable to provide information to a high level engine when network level events occur such as, in a non-limiting example, first connection, disconnection, changing networks, or other high level events in accordance with the state machine.
The CE 104 may include a filter, a message monitor and a message generator. The monitor may interact with a SAP operable to capture messages provided and received by the ME 106. The filter may be operable to identify messages having high level importance. The message generator may be operable to create a high level message based on the captured messages. However, many lower level message may be considered by the CE 104 without generating a message for the HLE 102. The convergence engine may sit between lower level network management such as the ME 106 and the HLE 102.
For a non-NP STA, the CE 104 may operate based on a state machine. The state machine may have several states such as “connected,” “waning,” “disconnected,” and “standby.” Connected may be interpreted as the STA having completed all setup activities and the STA is able to transmit and receive frames from peer entities.
“Waning” may be interpreted as a state of anticipation of disconnection. The STA may be anticipating that it will lose all links to all NPs within the network in a defined time interval, however, the STA is presently able to transmit and receive data from peer entities. In a non-limiting example, the predictive failure of the link may be due to explicit disassociation by a peer, imminent invalidation of cryptographic keys as usage limits (such as sequence counter exhaustion), or predictive signal strength algorithms indicating an impending loss of connectivity.
“Disconnected” may be interpreted as the state where a STA is unable to transmit and receive frames and the STA has no available higher level communications protocols. In a non-limiting example, the STA is unable to transmit 802.11 class 3 frames, and is therefore disconnected.
Standby may be interpreted as the STA is powered down, and is unable to communicate with any other STA.
The ME 106 may include sub-layer management entities such as a media access control (MAC) layer management engine (MLME), a physical layer management engine (PLME), and a system management engine (SME). Where the ME 106 includes multiple sub-layer management entities, service access points (SAPs) may provide a point for monitoring and controlling the entities. However, individual units may be divided and combined as is known or convenient and the SAPs may be placed as is known or convenient. The ME 106 may be operable to control the activities of a MAC layer as well as one or more physical layer devices (PHY).
The MAC 108 may include SAPs. The SAPs may provide information about messages passed between the MAC 108 and the PHYs 110. The PHYs 110 may be radios, although a wired, optical, or other physical layer connections may be used. There need not be a plurality of PHYs 110; a single PHY 110 may be the only PHY.
In operation, one or more messages may be received via the PHYs 110 and passed to the MAC 108 and the ME 106. The CE 104 may access the messages via SAPs. The CE 104 monitors and creates a message for the HLE 102 describing a high level event.
In a non-limiting example, the CE 104 may not generate a message for the HLE 102 where the STA changes NPs but remains connected to the same network. To the extent that the HLE 102 need not receive information about lower level network activity, messages about such lower level activity may be suppressed by the CE 104. The messages which reach the HLE 102 may be configured as is known or convenient.
In a non-limiting example, only high level network messages may be provided to the HLE 102. The HLE 102 may then provide high level messages carrying commands to lower levels. Advantageously, a high level engine may provide and receive messages associated with high level network activity, while lower level network events may be monitored and filtered for high level events by a convergence engine.
FIG. 2 depicts an example of a system 200 for providing high level instructions separated into various hardware components. FIG. 2 includes high level engine 202, wireless access switch 204, and low intelligence network portal 206.
In the example of FIG. 2, the HLE 202 may be a high level management system including both hardware and software. The HLE 202 may be a centralized unit in control over a plurality of network portals via a plurality of wireless access switches.
The wireless access switch 204 includes CE 208, ME 210, and MAC 212. The wireless access switch 204 provide mid-level control and management of network portals as well as provide network connectivity between network portals and the HLE 202. An implementation of a wireless access switch, provided by way of example but not limitation, includes a Trapeze Networks® Mobility Exchange® switch.
The low intelligence network portal 206 includes MAC 216, PHY 214-1, PHY 214-2, PHY 214-n (collectively PHYs 214), and ME 218. In the example of FIG. 2, a management engine is divided into the management engine 210 and the management engine 218. The management engine 210 includes mid-level functions associated with controlling a plurality of low intelligence network portals. The ME 218 includes functions for controlling low level operations of a plurality of PHYs and the MAC 216.
In the example of FIG. 2, a MAC is divided into the MAC 212 and the MAC 216. The MAC 212 includes functions for controlling a plurality of low intelligence network portals. The MAC 216 includes functions for interacting with a plurality of PHYs and may receive instructions from the ME 218 as well as from the MAC 212.
The CE 208 monitors the ME 210 including communications between the MAC 212 and the ME 210. The CE 208 filters the monitored messages and identify high level events. For high level events, the CE 208 may provide a high level message to the HLE 202.
In operation, a plurality of messages are received by one or more of the PHYs 214. The messages are communicated to the MAC 216 and the ME 218. The messages may be communicated to the MAC 212 and the ME 210 over a network connecting the low intelligence network portal 206 and the wireless access switch 204. The CE 208 monitors the messages and identifies a high level event. The CE 208 provides a high level message to the HLE 202 over a network connecting the HLE 202 with the wireless access switch 204.
FIG. 3 depicts an example of a system 300 including an intelligent network portal connected to a client. FIG. 3 includes intelligent network portal 300 and client 304.
The intelligent network portal 302 includes a HLE 306, a CE 308, a PHY 310-1, a PHY 310-2, a PHY 310-n (collectively PHYs 310), a ME 312, and a MAC 314. The PHYs 310 may be radios or other communications devices. The MAC 314 may include functions to control the PHYs 310. The ME 312 may include management functions to provide instructions to the PHYs 310 and the MAC 314. The CE 308 may include monitoring and reporting functions. The HLE 306 may include high level network management functions.
The client 304 may be a non-NP STA able to communicate via a wireless connection using a common protocol with PHY 310-1.
In the example of FIG. 3, the intelligent network portal 302 may be connected to the client 304. The client 304 may transmit messages to the PHY 310-1. The message may be passed from the PHY 310-1 to the MAC 314 and to the ME 312. The CE 308 may monitor messages passed between the MAC 314 and the ME 312 as well as messages from the PHYs 310 to the ME 312 via a SAP. The CE 308 may filter the messages for any high level events. For any high level events, the CE 308 may create and provide a high level message to the HLE 306.
FIG. 4 depicts an example of a flowchart 400 of a method for providing a summary of filtered messages. The method is organized as a sequence of modules in the flowchart 400. However, it should be understood that these and modules associated with other methods described herein may be reordered for parallel execution or into different sequences of modules.
In the example of FIG. 4, the flowchart starts at module 402 with receiving a plurality of message from a network interface. The messages may be received by one or more PHYs in conjunction with a MAC. A management engine may control the PHYs and the MAC. Service access points at the connections between the PHY and the MAC and the ME may be used to monitor the messages.
In the example of FIG. 4, the flowchart continues to module 404 with filtering the plurality of messages. The messages may be filtered for high level events such as in a non-limiting example, a disconnection or a waning connection. A high level event may be identified.
In the example of FIG. 4, the flowchart continues to module 406 with synthesizing a summary of the plurality of messages. The summary may identify the high level event observed, and/or may indicate the nature of the high level event. Details such as address may or may not be included.
In the example of FIG. 4, the flowchart continues to module 408 with providing the summary. The summary may be provided as a message to a HLE. The message may be transmitted to the HLE over a network, or where the HLE resides on common hardware, the message may be provided to the HLE by placing the message in memory accessible to the HLE. Having provided the summary, the flowchart terminates.
FIG. 5 depicts an example of a flowchart 500 of a method for attaching a STA to a NP. The method is organized as a sequence of modules in the flowchart 500. However, it should be understood that these and modules associated with other methods described herein may be reordered for parallel execution or into different sequences of modules.
In the example of FIG. 5, the flowchart starts at module 502 with receiving a request for a list of networks. The list of networks may include only distinct networks, where multiple NPs may represent a single network. In a non-limiting example, although 12 NPs are in range, all 12 NPs are associated with a single network. The list should include only the identifier of the single network.
In the example of FIG. 5, the flowchart continues to module 504 with issuing one or more NP level scan requests. The requests seek to identify NPs in range, regardless of their network. The scan requests may be issued in one or more communications protocols. In a non-limiting example, three different communications protocols are in use and 802.11 is one of the three protocols.
In the example of FIG. 5, the flowchart continues to module 506 with receiving one or more NP level scan responses. The responses may be received via one or more communications protocols. A plurality of NP level scan responses may be received identifying a plurality of NPs in range.
In the example of FIG. 5, the flowchart continues to module 508 with sorting NP level scans by network as a list. This step may be optional, however, in discovering distinct networks in the following module, it may be helpful to have the networks sorted as a list.
In the example of FIG. 5, the flowchart continues to module 510 with identifying distinct networks. Each distinct network may be associated with one or more NPs in range. The networks may provide connectivity via one or more than one communication protocol. In a non-limiting example, the list may be a summary of the plurality of messages.
In the example of FIG. 5, the flowchart continues to module 512 with providing a list of distinct networks. The list may be provided to a HLE. In a non-limiting example, providing the list is the same as providing a summary.
In the example of FIG. 5, the flowchart continues to module 514 with receiving an instruction to attach to a chosen network. The instruction may be received from a HLE. The HLE may have decided upon a network based on the list of distinct networks. The network selection may be made by network rather than by NP; the difference being that in selecting a network, the NP in use may vary, whereas in selection by NP, a particular NP may be used.
In the example of FIG. 5, the flowchart continues to module 516 with identifying a target NP in the chosen network from the one or more NP level scan responses. The NP may be selected based on NP selection criteria. In a non-limiting example, various criteria for selecting a NP may include signal strength, NP loading, communications protocol or other known or convenient criteria for selecting a NP.
In the example of FIG. 5, the flowchart continues to module 518 with attaching to the target NP. The attachment to the NP will provide network connectivity. Having attached to the target NP, the flowchart terminates.
FIG. 6 depicts an example of a flowchart 600 of a method for managing a waning connection. The method is organized as a sequence of modules in the flowchart 600. However, it should be understood that these and modules associated with other methods described herein may be reordered for parallel execution or into different sequences of modules.
In the example of FIG. 6, the flowchart starts at module 602 with a STA connected to a network. A STA may be connected to a NP providing connectivity to the STA via the network. In a non-limiting example, the STA may transmit class 3 802.11 frames to LLC peers on the network indicating that it is connected.
In the example of FIG. 6, the flowchart continues to module 604 with identifying a waning connection. “Waning” may be interpreted as a state of anticipation of disconnection. The STA may be anticipating that it will lose all links to all NPs within the network in a defined time interval, however, the STA is presently able to transmit and receive data from peer entities. In a non-limiting example, the predictive failure of the link may be due to explicit disassociation by a peer, imminent invalidation of cryptographic keys as usage limits (such as sequence counter exhaustion), or predictive signal strength algorithms.
In the example of FIG. 6, the flowchart continues to module 606 with transmitting a message advising of potential loss of connectivity to the network. The message warns of the waning connection and provides an opportunity to take action to remain connected.
In the example of FIG. 6, the flowchart continues to module 608 with receiving a reply message including an instruction. The instruction may determine whether or not action is taken to remain connected. In particular, if an action is to be taken the action may be specified by the message.
In the example of FIG. 6, the flowchart continues to module 610 with determining: take action to remain connected?
In the example of FIG. 6, if the decision at module 610 is yes, then the flowchart continues to module 618 with optionally activating a second or nth network interface or connection device. Where no NPs, or at least no desirable NPs are available via a certain network communications protocol, a second or nth network communications protocol may be used. NPs operating on the second or nth communications protocol may be made accessible, and a NP may be selected to use for all subsequent communications using the second or nth communications protocol.
In the example of FIG. 6, the flowchart continues to module 620 with identifying a new point of connection to the network. If another network connection exists, such as a wired connection or another NP on the current communications protocol is available, the new point of connection may be used.
In the example of FIG. 6, the flowchart continues to module 622 with transitioning to the new point of connection. The new point of connection is selected and established.
In the example of FIG. 6, the flowchart continues to module 624 with transmitting a message informing a HLE of the successful transition to the new point of connection. Having transmitted the message informing of the successful transition to the new point of connection, the flowchart returns to module 602, connected to a network.
In the example of FIG. 6, if the decision at module 610 is no, then the flowchart proceeds to module 612 with ignoring the waning connection. It may be assumed that the device will remain connected for some time period before disconnection.
In the example of FIG. 6, the flowchart proceeds to decision module 616 with deciding: disconnect? Disconnecting manually is an option; a device may choose to drop off of the network prior to allowing the waning connection to fail. Alternatively, the device may lose connectivity before such a decision can be made.
If the decision at module 616 is yes, or the device loses connectivity before the decision can be made, the flowchart proceeds to module 614 with disconnected from the network. In a non-limiting example, the device no longer may transmit class 3 frames.
If the decision at module 618 is no, then the flowchart continues to module 602 with connected to the network. The waning connection may be re-identified and action may be taken, or alternatively, the waning connection may be disregarded, and communication may continue up until network connectivity is lost. Having chosen to ignore the waning connection and having not been connected the flowchart loops while the device remains connected.
FIG. 7 depicts an example of a system 700 including a STA in range of n overlapping networks. FIG. 7 includes STA 701, network 712-1, network 712-2, and network 712-n (collectively networks 712).
In the example of FIG. 7, the STA 701 includes HLE 702, CE 704, ME 706, MAC 708, PHY 710-1, PHY 710-2, and PHY 710-n (collectively PHYs 710). The HLE 702 may include a mobility manager, or other engine benefiting from high level instructions. The high level engine may include one or more functions for interaction with a service access point SAP. The functions may include messaging capability and decision making capability for high level network operations. In a non-limiting example, the high level network operations may include connect, disconnect, enable new network protocol and other high level operations.
The CE 704 may include a monitor and a message generator and a filter. The monitor may interact with a SAP operable to capture messages provided and received by the ME 106. The filter may be operable to identify messages having high level importance. The message generator may be operable to create a high level message based on the captured messages. The CE 704 may sit between lower level network management such as the ME 706 and the HLE 702.
The ME 706 may provide low level control over the MAC 708 and the PHYs 710. Messages passed between the ME 706, the MAC 708 and the PHYs 710 may be monitored by the CE 704.
Networks 712 may include n different networks operating on n distinct network protocols; one or more networks may operate on the same network protocol. As depicted network 712-n includes NP 714, network 712-2 includes NP 716-1 and NP 716-2 (collectively NPs 716), and network 712 includes NP 718-1 and 718-2 (collectively NPs 718).
In the example of FIG. 7, NP 714, NPs 716, and NPs 718 are all in range of the PHYs 710, and represent networks the STA 701 may connect to.
In operation, HLE 702 has issued an instruction to identify available networks, and network portal level scan requests have been transmitted. NP 714, NPs 716, and NPs 718 response to network portal level scan requests. Thus, five different messages associated with n different networks are received by the PHYs 710. The messages are provided to the ME 706 and the MAC 708. The CE 704 monitors the messages via SAPs between the PHYs 710, the MAC 708 and the ME 706. The CE filters the messages creating a list of distinct networks and identifies the networks 712 as n distinct networks. The list of n distinct networks is transmitted as a message to the HLE 702. The HLE may then select a network and provide an instruction to attach to a particular NP of the specified network.
FIG. 8 depicts a non-limiting example of a system 800 including two overlapping networks and station passing through a boundary of the networks. FIG. 8 includes NP 802-1, NP 802-2 (collectively NPs 801), NP 804-1, NP 804-2 (collectively NPs 804), STA 815, STA 816, and STA 818.
NPs 802 are each providing network connectivity to network A, and NPs 804 are each providing network connectivity to network B. Network A and network B operate using different communications protocols. The dotted lines indicate the extent of each NP's coverage area, and the dashed lines each indicate a connection between NPs and STAs.
The STA 815, the STA 816, and the STA 818 each correspond to different points in time for the same STA. In time, STA 815 is past, STA 816 is present and STA 818 is future. Each of STA 815, STA 816, and STA 818 include a CE and a HLE.
In operation, a user of the STA is carrying the STA passing through the boundaries of different networks having overlapping coverage areas. The STA 815 was first connected to the network A via NP 802-2 because STA 815 was closer to NP 802-2 and has a stronger signal. STA 815 could have connected to NP 802-1 if needed as STA 815 was in range of the NP 802-1. When presented with networks, STA 815's HLE was only presented with network A; notably both of NPs 802 responded to network portal level scan requests.
STA 816 has come into range of each of NP 802-1 and NP 804-2. STA 816 is presently connected to NP 802-2 as it was closest and had the strongest signal. However, the connection from NP 802-2 is waning as STA 816 is near the extent of the range of NP 802-2. STA 816 decides to enable a second network connection in the hopes of discovering an available NP prior to losing all network connectivity. STA 816's HLE issues a request for available networks. STA 816 issues a network portal level scan request for available network portals using the communications protocol of network B. NP 804-2 responds. STA 816 establishes a connection with NP 804-2, and begins communicating via NP 804-2. The STA 816's HLE will have been provided a message warning of the loss of network connectivity, but lower level messages regarding NP level connectivity will be filtered out.
The connection to NP 802-2 will be lost. However, STA 818 will have the connection with NP 804-2. As the user continues along, STA 818 will come into range of NP 804-1. Since the STA 818 will have a higher signal strength to NP 804-2, the STA 818 will remain connected to NP 804-2. Messages will not be passed to the STA 818's HLE as the NP 804-1 is on the same network as NP 804-2.
FIG. 9 depicts an example of a device 900 for providing high level instructions. The system 900 may be a conventional computer system that can be used as a client computer system, such as a wireless client or a workstation, or a server computer system. The computer system 900 includes a device 902, I/O devices 904, radio 924, and a display device 906. The device 902 includes a processor 908, a communications interface 910, memory 912, display controller 914, non-volatile storage 916, I/O controller 918, clock 922. The device 902 may be coupled to or include the I/O devices 904 display device 906, and radio 924.
The device 902 interfaces to external systems through the communications interface 910, which may include a modem or network interface. It will be appreciated that the communications interface 910 can be considered to be part of the system 900 or a part of the device 902. The communications interface 910 can be an analog modem, ISDN modem or terminal adapter, cable modem, token ring IEEE 802.5 interface, Ethernet/IEEE 802.3 interface, wireless 802.11 interface, satellite transmission interface (e.g. “direct PC”), WiMAX/IEEE 802.16 interface, Bluetooth interface, cellular/mobile phone interface, third generation (3G) mobile phone interface, code division multiple access (CDMA) interface, Evolution-Data Optimized (EVDO) interface, general packet radio service (GPRS) interface, Enhanced GPRS (EDGE/EGPRS), High-Speed Downlink Packet Access (HSPDA) interface, or other interfaces for coupling a computer system to other computer systems.
The processor 908 may be, for example, a conventional microprocessor such as an Intel Pentium microprocessor or Motorola power PC microprocessor. The memory 912 is coupled to the processor 908 by a bus 920. The memory 912 can be Dynamic Random Access Memory (DRAM) and can also include Static RAM (SRAM). The bus 920 couples the processor 908 to the memory 912, also to the non-volatile storage 916, to the display controller 914, and to the I/O controller 918.
The I/O devices 904 can include a keyboard, disk drives, printers, a scanner, and other input and output devices, including a mouse or other pointing device. The display controller 914 may control in the conventional manner a display on the display device 906, which can be, for example, a cathode ray tube (CRT) or liquid crystal display (LCD). The display controller 914 and the I/O controller 918 can be implemented with conventional well known technology.
The non-volatile storage 916 is often a magnetic hard disk, flash memory, an optical disk, or another form of storage for large amounts of data. Some of this data is often written, by a direct memory access process, into memory 912 during execution of software in the device 902. One of skill in the art will immediately recognize that the terms “machine-readable medium” or “computer-readable medium” includes any type of storage device that is accessible by the processor 908 and also encompasses a carrier wave that encodes a data signal.
Clock 922 can be any kind of oscillating circuit creating an electrical signal with a precise frequency. In a non-limiting example, clock 922 could be a crystal oscillator using the mechanical resonance of vibrating crystal to generate the electrical signal.
Radios 924 may be any combination of known or convenient electrical components including by way of example, but not limitation, transistors, capacitors, resistors, multiplexers, wiring, registers, diodes or any other electrical components known or convenient.
The system 900 is one example of many possible computer systems which have different architectures. For example, personal computers based on an Intel microprocessor often have multiple buses, one of which can be an I/O bus for the peripherals and one that directly connects the processor 908 and the memory 912 (often referred to as a memory bus). The buses are connected together through bridge components that perform any necessary translation due to differing bus protocols.
Network computers are another type of computer system that can be used in conjunction with the teachings provided herein. Network computers do not usually include a hard disk or other mass storage, and the executable programs are loaded from a network connection into the memory 912 for execution by the processor 908. A Web TV system, which is known in the art, is also considered to be a computer system, but it may lack some of the features shown in FIG. 9, such as certain input or output devices. A typical computer system will usually include at least a processor, memory, and a bus coupling the memory to the processor.
In addition, the system 900 is controlled by operating system software which includes a file management system, such as a disk operating system, which is part of the operating system software. One example of operating system software with its associated file management system software is the family of operating systems known as Windows® from Microsoft Corporation of Redmond, Wash. and their associated file management systems. Another example of operating system software with its associated file management system software is the Linux operating system and its associated file management system. The file management system is typically stored in the non-volatile storage 916 and causes the processor 908 to execute the various acts required by the operating system to input and output data and to store data in memory, including storing files on the non-volatile storage 916.
Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is Appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing 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 memories or registers or other such information storage, transmission or display devices.
The present example also relates to apparatus for performing the operations herein. This Apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, flash memory, magnetic or optical cards, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
The algorithms and displays presented herein are not inherently related to any particular computer or other Apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized Apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present example is not described with reference to any particular programming language, and various examples may thus be implemented using a variety of programming languages.

## Claims

1. A system implemented in at least one of a non-transitory medium with instructions for execution on a processing device, a processing device or a combination thereof, comprising:
a convergence engine configured to receive a request for a high level message from a high level engine (HLE);
the convergence engine configured to monitor a plurality of 802.11 messages provided by a network interface to a management engine (ME), the high level message being a message from the plurality of messages;
the convergence engine configured to filter the high level message from the plurality of messages, the high level message comprises a list of networks; the convergence engine configured to forward the high level message to the HLE in response to the request; and
the convergence engine configured to receive from the HLE an instruction to associate with a network that is from the list of networks and that is selected by the HLE.

2. The system of claim 1, further comprising a media access controller configured to be coupled to the network interface and coupled to the ME, the media access controller configured to receive a message from the network interface and provides the message to the ME.

3. The system of claim 2, wherein the convergence engine is further configured to monitor messages passed between the ME, the media access controller (MAC) and the network interface.

4. The system of claim 1, wherein the convergence engine is configured to filter the high level message from the plurality of messages, the convergence engine is further configured to filter messages having a high level of importance from the plurality of messages.

5. The system of claim 1, wherein the convergence engine configured to filter the high level message from the plurality of messages, the convergence engine is further configured to filter out messages regarding network portal level connectivity from the plurality of messages.

6. A method comprising:
receiving a plurality of messages from a network interface;
filtering a high level message, the high level message being a message from the plurality of messages, the filtering including filtering out messages regarding network portal level connectivity, the high level message including a list of networks; and
providing the high level message to a high level engine.

7. The method of claim 6, wherein the plurality of messages are 802.11 messages.

8. The method of claim 6, wherein the plurality of messages are received by monitoring the messages as they are passed to a management engine by a network interface.

9. The method of claim 6, wherein the filtering the high level message further comprises the high level message having a high level of importance.

10. The method of claim 6, wherein the plurality of messages are a first plurality of messages, the method further comprising:
monitoring a second plurality of messages passed between a management engine (ME), a media access controller (MAC) and the network interface, the first plurality of messages being included in the second plurality of messages.

11. A system implemented in at least one of a non-transitory medium with instructions for execution on a processing device, a processing device or a combination thereof, comprising:
a convergence engine (CE) configured to receive a request from a high level engine (HLE) for a list of networks in range of a network interface;
the CE configured to send an instruction, in response to the request, to a management engine to (1) perform one or more scan requests for network portals in range of the network interface, (2) define a list of network portals, and (3) define a list of distinct networks based on the list of network portals;
the CE configured to receive the list of distinct networks from the management engine;
the CE configured to provide the list of distinct networks to the HLE as a response to the request from the HLE; and
the CE configured to receive from the HLE an instruction to associate with a network that is from the distinct list of networks and that is selected by the HLE.

12. The system of claim 11, further comprising the HLE configured to be coupled to the CE.

13. A method comprising:
receiving, at a high level engine, an indication of a waning network connection from a convergence engine;
requesting, by the high level engine, a list of networks in range of a network interface from the convergence engine, the list of networks based on one or more portal level scans such that the convergence engine define the list of networks by sorting the one or more portal level scans by network;
selecting, by the high level engine, a network from the list of networks to transition to; and
instructing, by the high level engine, the convergence engine to associate with the selected network.

14. The method of claim 13, further comprising identifying, by the convergence engine, a target network portal associated with the selected network.

15. A method comprising:
identifying a waning network connection;
transmitting a message to a high level engine indicating the waning connection;
receiving a reply message from the high level engine including an instruction to define a list of available networks;
transmitting a message to the high level engine including the list of available networks, the message not including a plurality of portal level connectivity messages;
receiving an instruction from the high level engine to join a new network from the list of networks, and selected by the high level engine from the list of networks;
selecting a network portal providing access to the new network from a plurality of network portals associated with the new network; and
transitioning to the new network via the network portal.

16. The method of claim 15, wherein the waning connection is to an 802.11 network and the new network is not an 802.11 network.

17. The method of claim 15 wherein the waning network connection is associated with a first connection device, the method further comprising, receiving a message including an instruction to activate a second connection device in response to receiving the instruction from the high level engine to join the new network.

18. The method of claim 15 wherein the waning network connection is associated with a first network interface, the method further comprising, activating a second network interface in response to receiving the instruction from the high level engine to join the new network.

19. The method of claim 15 wherein the waning network connection is associated with a first connection device, the method further comprising, activating a second connection device in response to receiving the instruction from the high level engine to join the new network.