Set of optimizations applicable to a wireless networks operating in TV white space bands

A server acts as a proxy mechanism for node registration with a database. The node initially registers to participate in a wireless mesh network by transmitting a registration request to the server. The server forwards the request to the database, which validates the request. The server records that the registration request was, in fact, validated by the database. The node is then permitted to participate in the network. If the node becomes decoupled from the network, the node may then transmit a re-registration request to the server. Since the server recorded that the previous registration was validated, the server may then simply validate the re-registration request, without interacting with the database.

BACKGROUND OF THE INVENTION

Field of the Invention

Embodiments of the present invention relate generally to wireless digital communication and, more specifically, to a set of optimizations applicable to wireless networks operating in television (TV) whitespace bands.

Description of the Related Art

A conventional network system generally includes a collection of different nodes configured to interoperate with one another. Those nodes may be configured to communicate with one another on a variety of different channels, including, for example, television whitespace (TVWS) channels.

When a node initially joins a network of devices that communicate on TVWS channels, the node initiates a registration procedure with an access point in order to become authorized to communicate on one or more specific TVWS channels. In doing so, the node typically transmits a registration request to the access point. The access point may then communicate with a TVWS database in order to validate the registration request. The TVWS database stores, among other things, data indicating available TVWS channels in particular regions. When validating a registration request, the TVWS database generally provides a channel map for the node that indicates a list of available channels in the region occupied by the node.

In order to comply with federal communications committee (FCC) regulations, the registration request should include various types of information associated with the node. Specifically, the registration request should include a node address (e.g. media access control (MAC) address or Internet protocol (IP) address), a federal communication committee (FCC) identification number, a node serial number, the location of the node, the height of an antenna associated with the node, the name of the business that owns the node, and contact information for a person responsible for the node (name, street address, email address, and telephone number). The TVWS database relies on this information in order to validate the registration request.

In some situations, the node must initiate the registration procedure after having already registered to participate in the network. For example, if the node changes locations and becomes coupled to a new access point, the node would need to register with that new access point in order to participate in the network. Alternatively, if the node reboots (or the access point to which the node is coupled reboots), then the node would need to register with the access point again in order to participate in the network. Each time the node registers to participate in the network, the node must provide all of the information described above within the registration request. Similarly, the access point must perform the validation procedure described above and communicate that information to the TVWS database.

One problem with this approach is that a node may switch access points frequently, and, thus, the registration procedure described above may need to be performed repeatedly. For example, a modern node may be incorporated into a mobile device and may thus migrate between different regions associated with different access points. The node would thus need to register with each different access point upon entering each different region. Each registration request issued by the node includes data that is mostly identical to data associated with previous registration requests issued by the node. Consequently, the network may become clogged with registration requests that include mostly redundant data.

As the foregoing illustrates, what is needed in the art is an improved technique for registering nodes to participate in a TVWS network.

SUMMARY OF THE INVENTION

One embodiment of the present invention sets forth a computer-implemented method for registering a node to participate in a network, including receiving from a first node a first request to participate in the network from node, where the first request includes information that identifies the first node, permitting the first node to participate in the network, notifying the first node that participation in the network has been permitted, receiving from the first node a second request to participate in the network after the first node has become decoupled from the network, where the second request includes a subset of the information included in the first request that identifies the first node, determining that the node has already been permitted to participate in the network, and notifying the node that participation in the network has again been permitted.

One advantage of the disclosed technique is that network traffic may be reduced because node re-registration requests include far less data than initial node registration requests. Thus, when a node migrates between access points and temporarily becomes de-coupled from the network, the node need not transmit redundant registration information in order to re-join the network.

DETAILED DESCRIPTION

System Overview

FIG. 1illustrates a network system100, according to one embodiment of the present invention. The network system100includes, without limitation, a wireless mesh network102, which may include a source node110, intermediate nodes130and destination node112. The source node110is able to communicate with certain intermediate nodes130via communication links132. The intermediate nodes130communicate among themselves via communication links134. The intermediate nodes130communicate with the destination node112via communication links136. The network system100may also include one or more access points150, a network152, a server154, a router156, a public database158, and a private database160. As a general matter, any of the elements of network system100, such as, e.g., nodes130, server154, and so forth, may operate as a source node, a destination node, or an intermediate node for payload data that is communicated across network system100and/or wireless mesh network102.

A discovery protocol may be implemented to determine node adjacency to one or more adjacent nodes. For example, intermediate node130-2may execute the discovery protocol to determine that nodes110,130-1,130-3, and130-5are adjacent to node130-2. Furthermore, this node adjacency indicates that communication links132-2,134-2,134-4and134-3may be established between the nodes110,130-1,130-3, and130-5, respectively. One skilled in the art will understand that any technically feasible discovery protocol may be implemented without departing from the scope and spirit of embodiments of the present invention.

The discovery protocol may also be implemented to determine the hopping sequences of adjacent nodes, i.e. the sequence of channels across which nodes periodically receive payload data. As is known in the art, a “channel” may correspond to a particular range of frequencies. Once adjacency is established between the source node110and at least one intermediate node130, the source node110may generate payload data for delivery to the destination node112, assuming a path is available. The payload data may comprise an Internet protocol (IP) packet, an Ethernet frame, or any other technically feasible unit of data. Similarly, any technically feasible addressing and forwarding techniques may be implemented to facilitate delivery of the payload data from the source node110to the destination node112. For example, the payload data may include a header field configured to include a destination address, such as an IP address or Ethernet media access control (MAC) address.

Each intermediate node130may be configured to forward the payload data based on the destination address. Alternatively, the payload data may include a header field configured to include at least one switch label to define a predetermined path from the source node110to the destination node112. A forwarding database may be maintained by each intermediate node130that indicates which communication link132,134,136should be used and in what priority to transmit the payload data for delivery to the destination node112. The forwarding database may represent multiple paths to the destination address, and each of the multiple paths may include one or more cost values. Any technically feasible type of cost value may characterize a link or a path within the network system100. In one embodiment, each node within the wireless mesh network102implements substantially identical functionality and each node may act as a source node, destination node or intermediate node.

The nodes130are configured to communicate with one another on many different channels, although the set of channels available to the nodes130may be limited for various reasons. For example, the nodes130may reside proximate to a TV tower that transmits on a particular TV channel, and so the nodes130may be restricted from communicating on that particular channel. A given node130may acquire a list of available channels associated with a region occupied by that node130from the public database158. The public database158includes channel availability data for a wide variety of different regions where the node130may reside. The node130may query the public database158directly for the list of available channels, although in practice, the node130relies on the server154to perform such queries on behalf of the node130. The node130may communicate with the server154via one or more of the access points150. In one embodiment, the public database158is a TVWS database that includes a list of available TV channels within various regions.

The node130may also acquire a quality of service (QOS) value for each channel that is available in a region where the node130may reside. The private database160includes channel QOS values for various channels associated with different regions. The node130may query the private database160directly for QOS values associated with a list of channels, although in practice, the node130relies on the server154to perform such queries on behalf of the node130. Again, the node130may communicate with the server154via one or more of the access points150. The server154may interact with the private database160in order to determine the QOS values for each available channel and then select, from the list of available channels, those channels that have a QOS value that is sufficient for the operating requirements of the node130.

In the context of this disclosure, a “channel map” represents one or more lists of available channels associated with one or more regions. A channel map may be derived from information stored within public database158and/or private database160. A channel map may include a list of available channels associated with just one region, or many lists of channels, where each list corresponds to a different region. A channel map may also include QOS values for available channels, or, alternatively, lists of channels that meet certain criteria, such as, e.g. a minimum QOS value.

In network system100, each node130is configured to acquire channel maps and other data by way of access points150. Each access point150is configured to communicate with one or more nodes130within the wireless mesh network102. Communication may include transmission of payload data, timing data, channel maps, registration information, or any other technically relevant data, between the access point150and various nodes130within the wireless mesh network102. For example, a communications link140-1may be established between the access point150-1and intermediate node130-1to facilitate transmission of payload data between wireless mesh network102and network152. Each access point150is coupled to the network152, which may comprise any wired, optical, wireless, or hybrid network configured to transmit payload data between the access point150and the server154. Router156may be configured to coordinate communications between the access point150and the server154across communication link142.

When a node130joins wireless mesh network102, the node130initiates a registration procedure by transmitting a registration request and a channel map request to an access point150to which the node130is coupled. The registration request generally includes information that identifies the node and/or information related to the operation of the node130. The registration request could include, for example, a media access control (MAC) address, a federal communication committee (FCC) identification (ID) number, a serial number, and other information that identifies the node130. The registration request could also include, for example, an antenna height associated with the node and the location of the node, among other information associated with the operation of the node130.

In response to the registration request, the access point150to which the node130is coupled initiates a registration validation procedure. In performing the registration validation procedure, the access point150interacts with the server154in order to (i) cause the server154to authorize the node130for operation and (ii) acquire a channel map for the node to satisfy the channel map request. The server154may interact with public database158and/or private database160on behalf of the access point150in order to authorize the node130for operation and acquire the channel map. In other words, the server154may act as a proxy for the access point150in order to facilitate the registration procedure. The registration procedure described herein is also described in greater detail below in conjunction withFIGS. 4A-4B, and 6-7.

At a later time, the node130may need to re-register with the access point150or with a new access point150. The node130could, for example, have recently rebooted or recently changed locations and/or access points150. As a general matter, the node130may need to re-join the wireless mesh network102and re-register with an access point150for a variety of different reasons. When the node130has already registered with an access point150within the wireless mesh network102, and that access point150has already performed the initial registration procedure mentioned above, the node130may re-register with any access point150by initiating a re-registration procedure. The re-registration procedure represents a simplified version of the registration procedure previously described.

When the node130re-joins wireless mesh network102, the node130initiates the re-registration procedure by transmitting a re-registration request and a channel map request to the access point150to which the node130is coupled. The node130may have been previously coupled to the access point150or newly coupled to that access point. The re-registration request includes only a subset of the information included within the initial registration request. In response to the registration request, the access point150initiates a re-registration validation procedure. In performing the re-registration validation procedure, the access point150interacts with the server154in order to validate the re-registration request and acquire a channel map for the node to satisfy the channel map request.

The server154may determine that a previous registration request issued by the node130was previously validated, and then provide the access point150with a registration validation, i.e. without explicitly authorizing the node130via public database158. The server154may also acquire a new channel map for the node based on the position of the node130. An advantage of the re-registration approach described herein is that a reduced amount of data needs to be transported across the wireless mesh network102when a node130re-joins that network, thereby decreasing network traffic. The registration procedure described herein is also described in greater detail below in conjunction withFIGS. 5A-5B, 6, and 8.

In one embodiment, the server154represents a destination for payload data originating within the wireless mesh network102and a source of payload data destined for one or more nodes within the wireless mesh network102. In another embodiment, the server154executes an application for interacting with nodes within the wireless mesh network102. For example, nodes within the wireless mesh network102may perform measurements to generate measurement data, such as power consumption data. The server154may execute an application to collect the measurement data and report the measurement data. In yet another embodiment, the server154queries nodes within the wireless mesh network102for certain data. Each queried node replies with requested data, such as consumption data, system status and health data, and so forth. In an alternative embodiment, each node within the wireless mesh network102autonomously reports certain data, which is collected by the server154as the data becomes available via autonomous reporting. An exemplary implementation of the server154is described in greater detail below in conjunction withFIG. 3.

The techniques described herein are sufficiently flexible to be utilized within any technically feasible network environment including, without limitation, a wide-area network (WAN), a local-area network (LAN), a personal area network (PAN), a TVWS network, a star network, and so forth. Moreover, multiple network types may exist within a given network system100. For example, communications between two nodes130or between a node130and the corresponding access point150may occur via a radio-frequency local-area network (RF LAN), while communications between access points150across the network152may occur via a WAN such as a general packet radio service (GPRS). As mentioned above, each node within wireless mesh network102includes a network interface that enables the node to communicate wirelessly with other nodes. An exemplary network interface is described below in conjunction withFIG. 2.

FIG. 2illustrates a network interface200configured to implement multi-channel operation, according to one embodiment of the present invention. Each node110,112,130within the wireless mesh network102ofFIG. 1includes at least one instance of the network interface200. The network interface200may include, without limitation, a microprocessor unit (MPU)210, a digital signal processor (DSP)214, digital to analog converters (DACs)220and221, analog to digital converters (ADCs)222and223, analog mixers224,225,226, and227, a phase shifter232, an oscillator230, a power amplifier (PA)242, a low noise amplifier (LNA)240, an antenna switch244, and an antenna246. A memory212may be coupled to the MPU210for local program and data storage. Similarly, a memory216may be coupled to the DSP214for local program and data storage. Memory212and/or memory216may be used to store data structures such as, e.g., a forwarding database, and/or routing tables that include primary and secondary path information, path cost values, and so forth.

In one embodiment, the MPU210implements procedures for processing IP packets transmitted or received as payload data by the network interface200. The procedures for processing the IP packets may include, without limitation, wireless routing, encryption, authentication, protocol translation, and routing between and among different wireless and wired network ports. In one embodiment, MPU210implements the techniques performed by the node, as described in conjunction withFIGS. 1 and 4-9, when MPU210executes a firmware program stored in memory within network interface200.

The DSP214is coupled to DAC220and DAC221. Each DAC220and221is configured to convert a stream of outbound digital values into a corresponding analog signal. The outbound digital values are computed by the signal processing procedures for modulating one or more channels. The DSP214is also coupled to ADC222and ADC223. Each ADC222and223is configured to sample and quantize an analog signal to generate a stream of inbound digital values. The inbound digital values are processed by the signal processing procedures to demodulate and extract payload data from the inbound digital values. Persons having ordinary skill in the art will recognize that network interface200represents just one possible network interface that may be implemented within wireless mesh network102shown inFIG. 1, and that any other technically feasible device for transmitting and receiving data may be incorporated within any of the nodes within wireless mesh network102.

FIG. 3is a block diagram illustrating the server154ofFIG. 1, according to one embodiment of the present invention. In this particular embodiment, server154comprises a computing device capable of processing data by executing program instructions stored in memory. Server154may also comprise any type of machine capable of processing data. As shown, server154includes, without limitation, a processing unit302, input/output (I/O) devices304, and memory306. As also shown, processing unit302, I/O devices304, and memory306are coupled to one another.

Processing unit302may include one or more central processing unit (CPUs), parallel processing units (PPUs), graphics processing units (GPUs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or any other type of processing unit capable of processing data. In addition, processing unit302may include various combinations of processing units, such as, e.g., a CPU coupled to a GPU.

I/O devices304may include input devices, such as a keyboard, a mouse, a touchpad, a microphone, a video camera, and so forth, as well as output devices, such as a screen, a speaker, a printer, a projector, and so forth. In addition, I/O devices304may include devices capable of performing both input and output operations, such as a touch screen, an Ethernet port, a universal serial bus (USB) port, a serial port, etc. I/O devices304, as well as processing unit302described above, are both configured to read data from and write data to memory306.

Memory306may include a hard disk, one or more random access memory (RAM) modules, a database, and so forth. In general, any technically feasible unit capable of storing data may implement memory306. Memory306includes an application308that may be executed by processing unit302to perform the various functions of server154described herein. Memory306also includes registration data310that includes registration requests previously received from nodes130that have registered to participate in the wireless mesh network102. When one such node130attempts to re-register to participate in the wireless mesh network (e.g., following a node status change that decoupled the node130from the wireless mesh network102), server154may validate the re-registration request by examining registration data310and verifying that the node130was previously registered.

With this approach, the server154need not validate re-registration requests by directly interacting with public database158. Further, registration data310may store a wide variety of information that identifies the node130transmitting the re-registration request, and so the node130need only transmit a subset of that identifying information with the re-registration request. Based on that subset, the server154may retrieve any other stored identifying information associated with node130from the registration data130.

Persons skilled in the art will recognize that the block diagram shown inFIG. 3illustrates just one possible implementation of server154, and that any system or combination of systems configured to perform the functionality of server154described herein falls within the scope of the present invention.

Optimizations for Wireless Networks Operating In TV White Space Bands

FIG. 4Ais a conceptual diagram illustrating message exchanges between devices within the network system ofFIG. 1when a node registers to participate in the wireless mesh network ofFIG. 1, according to one embodiment of the present invention. As shown,FIG. 4Aillustrates a sequence of messages that are transferred between node130, access point150, sever154, and public database158, each shown inFIG. 1. Access point150shown inFIG. 4Amay be either of access points150-1and150-2shown inFIG. 1. The message transfer sequence shown inFIG. 4Ais initiated when the node130initially attempts to join wireless mesh network102by transmitting a registration request402and a channel map request404to access point150. The registration request402includes specific data that is shown in greater detail inFIG. 4B.

FIG. 4Bis a more detailed diagram illustrating a registration request generated by a node when the node registers to participate in the wireless mesh network ofFIG. 1, according to one embodiment of the present invention. As shown, registration request402includes node address420, node FCC ID422, serial number424, node location426, node antenna height428, name of business430, and human contact information430. Node address420could be a hardware address such as, e.g., a media access control (MAC) address. Node FCC ID422is a unique string of alphanumeric characters assigned by the FCC to node130. Serial number424may be a number assigned by a manufacturer of node130. Node location426may include latitude and longitude values that reflect the physical position of node130. Node antenna height specifies a linear distance between the Earth and an antenna with which node130relies on for communication purposes. Name of business430typically reflects the name of a corporation or other legal entity that is responsible for node130. Human contact information432includes the name, street address, email address, and phone number of a person associated with the legal entity to which node130belongs. Generally, registration request includes a wide variety of different types of information that may identify the node, as well as various operating parameters associated with node130.

Referring back now toFIG. 4A, node130transmits the registration request402along with channel map request404to access point150, as mentioned. Channel map request404indicates that node130needs a list of channels available at the location of node130, on which node130may communicate. Access point150receives registration request402and channel map request404and then transmits a registration validation request406and a channel map query408to server154. Registration validation request406typically includes the information included in registration request402, and may also include additional information, such as instructions that reflect a particular registration validation scheme. Channel map query408may be specifically constructed to reflect a query format expected by public database158, such as, e.g., a MySQL query string, among other query formats.

Server154receives registration validation request406and channel map query406and then forwards them to public database158. Public database158performs a validation procedure by analyzing registration validation request406and determining whether the information provided meets certain criteria. Public database158could, for example, determine that FCC ID422is a valid FCC ID, determine that node location426indicates a location where node130is allowed to reside, or determine that node antenna height428falls within certain parameters.

When public database158determines that the information provided with registration validation request406is valid, public database158may then service channel map query408and retrieve a list of channels that are available at the location occupied by node130. Public database158then transmits a registration validation410and a channel map412to server154. Registration validation410indicates that the information provided with registration validation request406is, in fact, valid, while channel map412indicates the list of channels that are available at the location occupied by node130.

Server154receives the registration validation410and channel map412and forwards them to access point150. Server154also stores registration validation410for use when subsequently re-registering node130, as described in greater detail below in conjunction withFIG. 5A. Access point150receives registration validation410and channel map412and forwards them to node130. Upon receiving registration validation410and channel map412, node130may then select a channel from channel map412and commence participation in wireless mesh network102on the selected channel.

However, node130may subsequently become decoupled from wireless mesh network102under various circumstances. For example, node130could reboot, access point150could reboot, or node130could change locations and/or access points150. As a general matter, node130may be affected by a variety of factors that cause node130to become decoupled from wireless mesh network150. Node130may re-register to participate in wireless mesh network102by implementing a technique described in greater detail below in conjunction withFIGS. 5A-5B.

FIG. 5Ais a conceptual diagram illustrating message exchanges between devices within the network system ofFIG. 1when a node re-registers to participate in the wireless mesh network ofFIG. 1after becoming decoupled from the network, according to one embodiment of the present invention. As shown,FIG. 5Aillustrates a sequence of messages that are transferred between node130, access point150, sever154, and public database158, each shown inFIG. 1. Access point150shown inFIG. 5Amay be either of access points150-1and150-2shown inFIG. 1. The message transfer sequence shown inFIG. 5Ais initiated when the node130attempts to re-register to participate in wireless mesh network102by transmitting a re-registration request502and a channel map request504to access point150. The re-registration request502includes specific data that is shown in greater detail inFIG. 5B.

FIG. 5Bis a more detailed diagram illustrating a re-registration request generated by a node when the node re-registers to participate in the wireless mesh network system ofFIG. 1, according to one embodiment of the present invention. As shown, re-registration request502includes a node address520and a node location522. Node address520is typically equivalent to node address422shown inFIG. 4Band could thus be, e.g., a MAC address. Node location522typically has the same general format as node location426shown inFIG. 4B(e.g., latitude and longitude), although node location522may reflect a different physical location than node location426in situations where node130has moved after initially registering to participate in wireless mesh network102. Generally, registration request includes a small subset of the information included within registration request402and, thus, represents a much smaller amount of data.

Referring back now toFIG. 5A, node130transmits re-registration request502along with channel map request504to access point150, as mentioned. Channel map request504is similar to channel map request404shown inFIG. 4A, and, thus, indicates that node130needs a list of channels available at the location of node130on which node130may communicate. Access point150receives re-registration request502and channel map request504and then transmits a re-registration validation request506and a channel map query508to server154. Re-registration validation request506includes similar information as re-registration request502(i.e., a subset of the information included in registration request402and registration validation request406ofFIG. 4A). Channel map query508is similar to channel map query408.

Server154receives re-registration validation request506and channel map query506. Server154then performs a validation procedure by analyzing re-registration validation request506to determine whether the node130associated with the request previously registered to participate in wireless mesh network102. In doing so, server154inspects re-registration validation request506and extracts node address520. Server154then compares node address520to registration data310described above in conjunction withFIG. 3to determine whether registration data310stores previous registration data associated with node130. Previous registration data associated with node130indicates that a pre-existing registration occurred. In one embodiment, registration data310may store IP addresses assigned to nodes130. Server154may be configured to map node address520to an IP address, and then inspect registration data310to determine whether that IP address was previously assigned to node130, thereby indicating that a registration procedure was previously performed by that node130.

When registration data310indicates that the node130previously registered, server154may then determine that a re-registration validation via interaction with public database158(or, in some cases, private database160) is not necessary. Specifically, since node130previously registered, public database158(or private database160, as the case may be) already stores registration information associated with that node130, and so transmitting complete registration data to public database158(or private database160) is simply unnecessary.

However, in some situations, node130may have changed locations since becoming decoupled from wireless mesh network102, and so public database158may need to be updated to reflect the new location of node130. Server154is configured to extract node location522from re-registration validation request506and incorporate this information into node status data510along with node address520. Node status data510may also include other information associated with node130that may have changed, such as, e.g. other operating parameters including node antenna height, etc. Server154transmits node status data510to public database158. Public database158may then retrieve information associated with node130based on node address520and subsequently update that information to reflect node location522. In situations where node130has not changed locations, node status data510need not be transmitted to public database158. In one embodiment, server154may be configured to interact with private database160when performing the re-registration procedure described above. However, for the sake of simplicity, private database160is not shown inFIG. 5A.

In one embodiment, server154may not be capable of explicitly validating re-registration request506, and may need to communicate with public database158to perform that validation. In doing so, server154maps node address520to an FCC ID, incorporates the FCC ID into node status data510, and then transmits node status data510to public database. Public database158may then perform the validation procedure based on the FCC ID. Although server154still interacts with public database158to perform the re-registration procedure, the amount of data transmitted by server154to public database158is far less than the amount of data transmitted with the initial registration procedure described in conjunction withFIG. 4A.

Once server154determines that node130has already been registered, server154then transmits channel map query508to public database158. Public database158may then service channel map query508and retrieve a list of channels that are available at the location occupied by node130.

Server154receives channel map512and forwards that channel map, along with a registration validation514indicating that node130is registered, to access point150. As mentioned previously, server154may store registration validation410shown inFIG. 4A, e.g. during an initial registration procedure, and then re-send that registration validation as registration validation514. Access point150receives channel map512and registration validation514and forwards them to node130. Upon receiving channel map512and registration validation514, node130may then select a channel from channel map512and continue participation in wireless mesh network102on the selected channel.

The foregoing approach may reduce network traffic by limiting the information that is transmitted across the wireless mesh network102when node130attempts to re-join that network. When node130has already registered to participate in wireless mesh network102, node130need only transmit a subset of the registration information previously provided in order to re-register. Since server154stores the complete set of registration information for each node130that previously registered to participate in the network, server154may validate re-registrations independently of public database158(or via a limited exchange of data with that database).

Importantly, with the above approach, node registration is no longer tied specifically to individual access points150, and so node130is free to migrate between access points150without needing to repeatedly perform the complex registration procedure described in conjunction withFIG. 4A. Conceptually, the approach described herein allows server154to act as a proxy mechanism in order to perform registration validations on behalf of the many different access points150to which node130may be coupled. This approach is also described in greater detail below in conjunction withFIGS. 6-8.

FIG. 6is a flow diagram of method steps for registering and re-registering a node for participation in a wireless mesh network, according to one embodiment of the present invention. Although the method steps are described in conjunction with the systems ofFIGS. 1-5B, persons skilled in the art will understand that any system configured to perform the method steps, in any order, is within the scope of the present invention.

As shown, a method600begins at step610, where node130initiates the registration procedure discussed above on conjunction withFIG. 4Aby transmitting registration request402to access point150. Node130transmits registration request402in order to become registered to participate in wireless mesh network102. Registration request402includes complete node identification data, including node address420, node FCC ID422, serial number424, node location426, node antenna height428, name of business430, and human contact information430. The initial registration procedure is described in greater detail below in conjunction withFIG. 7.

At step630, node130determines that a re-registration is necessary in order to participate in wireless mesh network102because node130became decoupled from that network. Node130could be decoupled from wireless mesh network102due to a node status change, such as a forced reboot or a change of location, or node130could be decoupled because access point150rebooted. Node130could determine that a re-registration is needed due to a wide variety of different factors.

At step650, node130initiates the re-registration procedure described above in conjunction withFIG. 5Aby transmitting a re-registration request502to access point150. Node130transmits re-registration request502in order to once again participate in wireless mesh network102. Re-registration request502includes a subset of the node identification data included in registration request402, including node address520, and node location522. This re-registration procedure is described in greater detail below in conjunction withFIG. 8. Node130may perform step650repeatedly, as needed, in order to re-register to participate in wireless mesh network102.

Once node130is re-registered, the method600ends. With this approach, node130may change access points150, reboot, and generally become decoupled from wireless mesh network150, without needing to transmit complete registration information multiple times. Accordingly, network traffic composed of mostly redundant registration data may be reduced.

FIG. 7is a more detailed flow diagram of method steps for registering a node for participation in the wireless mesh network, according to one embodiment of the present invention. Although the method steps are described in conjunction with the systems ofFIGS. 1-5B, persons skilled in the art will understand that any system configured to perform the method steps, in any order, is within the scope of the present invention.

As shown,FIG. 7illustrates step610of the method600in greater detail, starting with step612. At step612, node130transmits registration request402and channel map request404to access point150. At step614, access point150transmits registration validation request406and channel map query408to server154. At step616, server154validates the registration request404by transmitting registration validation request406to public database158. At step618, server154queries public database158for a channel map by transmitting channel map query408to public database158. At step620, server154receives registration validation410and channel map412from public database158. At step622, server154transmits registration validation410and channel map412to access point150. At step624, access point150transmits registration validation410and channel map412to node130. Node130may then select a channel from channel map412and commence communications with other nodes130on wireless mesh network102.

Node130may subsequently become decoupled from wireless mesh network102, and, in response, perform the technique described below in conjunction withFIG. 8in order to re-register to participate in that network.

FIG. 8is a more detailed flow diagram of method steps for re-registering a node for participation in the wireless mesh network, according to one embodiment of the present invention. Although the method steps are described in conjunction with the systems ofFIGS. 1-5B, persons skilled in the art will understand that any system configured to perform the method steps, in any order, is within the scope of the present invention.

As shown,FIG. 8illustrates step650of the method600. At step652, node130transmits re-registration request502and channel map request504to access point150. At step654, access point150transmits registration validation request506and channel map query508to server154. At step656, server154determines that the node registration was previously validated with public database158, e.g. by inspecting registration data310. At step658, server154receives node status data510and then updates public database158to reflect status updates associated with node130, including, e.g., a change of location, as needed. At step660, server154queries public database158for a channel map by transmitting channel map query508to public database158. At step662, server154transmits channel map512and registration validation514to access point150. Registration validation514may have been stored during the initial registration procedure performed by node130. At step664, access point150transmits channel map512and registration validation514to node130. Node130may then re-join wireless mesh network102and continue communicating with other nodes130on wireless mesh network102.

In the approach described above in conjunction withFIGS. 6-8, node re-registration is streamlined because node130need not transmit complete registration information when attempting to re-join wireless mesh network102. To facilitate simplified re-registration, server154acts as a proxy mechanism for direct registration with public database158, and eliminates the need for redundant registration interactions with that database. Further, server154may validate registrations requests for a given node that are received from multiple different access points150to which the node130may be coupled, without directly interacting with public database150when performing each such validation. As a result, node130may freely migrate between access points150without incurring additional transactions with public database158.

In sum, a server acts as a proxy mechanism for node registration with a database. The node initially registers to participate in a wireless mesh network by transmitting a registration request to the server. The server forwards the request to the database, which validates the request. The server records that the registration request was, in fact, validated by the database. The node is then permitted to participate in the network. If the node becomes decoupled from the network, the node may then transmit a re-registration request to the server. Since the server recorded that the previous registration was validated, the server may then simply validate the re-registration request, without interacting with the database.

In some situations, the node may transmit updated status information to the server when performing the re-registration procedure. The server may then update the public database with the updated status information. In such a situation, the interaction between the server and the database is limited compared to the initial registration validation, as the updated status information includes a small subset of the information initially transmitted to the database during the initial node registration.

One advantage of the disclosed technique is that network traffic may be reduced because node re-registration requests include far less data than initial node registration requests. Thus, when a node migrates between access points and temporarily becomes de-coupled from the network, the node need not transmit redundant registration information in order to re-join the network.

In view of the foregoing, the scope of the present invention is determined by the claims that follow.