Patent Publication Number: US-8116201-B2

Title: Routing in a mesh network

Description:
CLAIM OF PRIORITY UNDER 35 U.S.C. §119 
     This application is related to and claims the benefit of the filing date of U.S. Provisional Application No. 60/799,828, filed on May 11, 2006, entitled “Optimal Tree Formation for WLANs”. 
    
    
     BACKGROUND 
     1. Field 
     The present disclosure relates generally to telecommunications, and more particularly, to routing in a mesh network. 
     2. Background 
     In wireless communication systems, access networks are generally employed to connect any number of access terminals to a wide area network (WAN), such as the Internet or a Public Switched Telephone Network (PSTN). These access networks are typically implemented with multiple wireless access points dispersed throughout a geographic region. Each of these access points provide a wired backhaul connection to a gateway for the WAN. 
     A mesh network differs from this tradition approach in that any number of access points may join together to connect access terminals to a gateway. The principle is similar to the way data is routed through the Internet. Basically, the data in the mesh network is routed from one access point to another until it reaches is destination. The throughput of the mesh network will depend on the routes established by the access points to forward data. Thus, it would be advantageous to be able to dynamically establish optimal routing through the mesh network 
     The selection of an optimal path through the mesh network is not a simple task. Changing wireless conditions and the availability of multiple paths through the mesh network presents various challenges. Also, the wireless links between access points do not have fixed data rates. As a result, the traditional approach of establishing the shortest path links between access points may not always be optimal if other arrangements can provide a higher data rate or reduce delay. Accordingly, there is a need in the art to optimize the routing of data through a mesh network to increase throughput. 
     SUMMARY 
     In accordance with one aspect of the disclosure, an apparatus includes a processing system configured to establish a link with any one of a plurality of access points in a mesh network, each of the access points providing the apparatus with a different data path through the mesh network, wherein the processing system is further configured to compute a metric for each of the data paths and select one of the access points to establish the link with based on the metrics. 
     In accordance with another aspect of the disclosure, an apparatus configured to operate in a mesh network having a plurality of access points includes a processing system configured to compute, for each of the access points, a metric for each of a plurality of data paths supportable by that access point, and establish interconnections between the access points based on the metrics. 
     In accordance with yet another aspect of the disclosure, a method of establishing a link with any one of a plurality of access points in a mesh network, with each of the access points providing a different data path through the mesh network, includes computing a metric for each of the data paths, and selecting one of the access points to establish a link with based on the metrics. 
     In accordance with a further aspect of the disclosure, a method of operating in a mesh network having a plurality of access points includes computing, for each of the access points, a metric for each of a plurality of data paths supportable by that access point, and establishing interconnections between the access points based on the metrics. 
     In accordance with yet a further aspect of the disclosure, an apparatus includes means for establishing a link with any one of a plurality of access points in a mesh network, each of the access points providing the apparatus with a different data path through the mesh network, computing means for computing a metric for each of the data paths, and selecting means for selecting one of the access points to establish the link with based on the metrics. 
     In accordance with still yet a further aspect of the disclosure, an apparatus configured to operate in a mesh network having a plurality of access points includes computing means for computing, for each of the access points, a metric for each of a plurality of data paths supportable by that access point, and means for establishing interconnections between the access points based on the metrics. 
     In accordance with yet another aspect of the disclosure, an access point includes a processing system configured to establish a link with any one of a plurality of access points in a mesh network, each of the access points providing the apparatus with a different data path through the mesh network, wherein the processing system is further configured to compute a metric for each of the data paths and select one of the access points to establish the link with based on the metrics, and a transceiver configured to support the link between the processing system and the selected access point. 
     In accordance with still yet another aspect of the disclosure, an apparatus configured to operate in a mesh network having a plurality of access points includes a processing system configured to compute, for each of the access points, a metric for each of a plurality of data paths supportable by that access point, and establish interconnections between the access points based on the metrics, and a transceiver configured to broadcast the information to the access points, the information relating to the interconnections established by the processing system. 
     In accordance with a further aspect of the disclosure, a computer program product for enabling an apparatus to operate in a mesh network includes computer-readable medium. The computer readable medium includes code to establish a link with any one of a plurality of access points in a mesh network, each of the access points providing the apparatus with a different data path through the mesh network, code to compute a metric for each of the data paths, and code to select one of the access points to establish the link with based on the metrics. 
     In accordance with yet a further aspect of the disclosure, a computer program product for enabling an apparatus to operate in a mesh network having a plurality of access points includes computer-readable medium. The computer readable medium includes code to compute, for each of the access points, a metric for each of a plurality of data paths supportable by that access point, and code to establish interconnections between the access points based on the metrics. 
     It is understood that other aspects of the present invention will become readily apparent to those skilled in the art from the following detailed description, wherein it is shown and described only various aspects of the invention by way of illustration. As will be realized, the invention is capable of other and different aspects and its several details are capable of modification in various other respects, all without departing from the scope of the present disclosure. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not as restrictive. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Various aspects of a wireless communications system are illustrated by way of example, and not by way of limitation, in the accompanying drawings, wherein: 
         FIG. 1  is a conceptual block diagram illustrating an example of a mesh network; 
         FIG. 2  is a conceptual block diagram illustrating an example of an access point attempting to join the mesh network of  FIG. 1 ; 
         FIG. 3  is a flow chart illustrating an example of an algorithm that may be implemented by the central server to optimize the data paths through a mesh network; 
         FIG. 4A  is a block diagram illustrating an example of the functionality of an access point; 
         FIG. 4B  is a block diagram illustrating another example of the functionality of an access point; 
         FIG. 5A  is a flow chart illustrating an example of a method of establishing a link with any one of a plurality of access points in a mesh network; 
         FIG. 5B  is a flow chart illustrating a further example of the method of  FIG. 5A ; and 
         FIG. 5C  is a flow chart illustrating an example of a method of establishing the interconnections in a centralized mesh network. 
     
    
    
     DETAILED DESCRIPTION 
     The detailed description set forth below in connection with the appended drawings is intended as a description of various aspects and is not intended to represent the only aspects that may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of the invention. However, it will be apparent to those skilled in the art that the invention may be practiced without these specific details. In some instances, well known structures and components are shown in block diagram to avoid obscuring the concepts of the invention. 
     In the following detailed description, various concepts will be described in the context of a mesh network. While these concepts are well suited for this application, those skilled in the art will readily appreciate that these concepts are likewise applicable to other access networks. By way of example, a mobile ad-hoc network may benefit from the various concepts provided throughout this disclosure. Accordingly, any reference to a mesh network is intended only to illustrate these concepts, with the understanding that such concepts have a wide range of applications. 
       FIG. 1  is a conceptual block diagram illustrating an example of a mesh network. The mesh network  100  includes a number of mesh access points (MAP)s  1021 - 1025  joined together to connect one or more access terminals (not shown) to a WAN  106 , such as the Internet. In this example, one of the MAPs  1021  has a wired backhaul connection the WAN  106 , and therefore, this MAP  1021  is sometimes referred to as the root access point (RAP). 
     The mesh network  100  is created by establishing radio links between the MAPs  1021 - 1025 . In the example shown in  FIG. 1 , the RAP  1021  has a radio link with the MAP  1022  that supports a data rate R 1 . The MAP  1022  has a radio link with the MAP  1023  that supports a data rate of R 2  and another radio link with the MAP  1024  that supports a data rate of R 3 . The MAP  1023  has a radio link with the MAP  1025  that supports a data rate R 4 . The radio links may be implemented with any suitable wireless protocol including, by way of example, IEEE 802.11 (Wi-Fi), IEEE 802.20 (Wi-Max), Bluetooth, Ultra Wideband (UWB), or any other wireless protocol having any suitable underlying air interface. Examples of air interfaces include Orthogonal Frequency-Division Multiple Access (OFDMA), Wideband Code Division Multiple Access (W-CDMA), and the like. Moreover, various concepts disclosed throughout this disclosure may be extended wide area networks employing various wireless protocols including, by way of example, CDMA2000, Global System for Mobile Communications (GSM), Ultra Mobile Broadband (UMB), Enhanced Data rates for GSM Evolution (EDGE), etc. The specific wireless protocol used for any mesh network will vary depending on the specific application and the overall design constraints imposed on the overall system. 
       FIG. 2  is a conceptual block diagram illustrating an example of a MAP  1026  attempting to join the mesh network  100  of  FIG. 1 . When the MAP  1026  attempts to join, it determines how it should forward data to the RAP  1021 . In this example, there are three neighboring MAPs  1023 ,  1024 ,  1025  that the MAP  1026  can establish a link with and each of the neighboring MAPs  1023 ,  1024 ,  1025  may route the data through different paths in the mesh network  100 . A number of possible link metrics for selecting the optimal MAP to link up with will now be presented. 
     The first link metric that will be presented will be referred to as a bottleneck rate based metric. Using this metric, the MAP  1026  computes a metric for each available data path and then selects the path that maximizes the metric. The metric is determined by taking the bottleneck link capacity (i.e., the minimum data rate along the path to the RAP  1021 ) divided by the number of hops. By way of example, the metric for the path through the MAP  1025  is calculated as follows: 
               (       min   ⁡     (       r   ⁢           ⁢   1     ,     R   ⁢           ⁢   4     ,     R   ⁢           ⁢   2     ,     R   ⁢           ⁢   1       )       4     )     ,         
where r 1  is the data rate that can be supported by the radio link between the MAP  102   6  and the MAP  102   5 . The metric is computed in this manner for the remaining two data paths (i.e., through MAPs  102   3  and  102   4 ) and then the path that maximizes the metric is selected as follows:
 
               arg   ⁢           ⁢     max   ⁡     (         min   ⁡     (       r   ⁢           ⁢   1     ,     R   ⁢           ⁢   4     ,     R   ⁢           ⁢   2     ,     R   ⁢           ⁢   1       )       4     ,       min   ⁡     (       r   ⁢           ⁢   2     ,     R   ⁢           ⁢   2     ,     R   ⁢           ⁢   1       )       3     ,       min   ⁡     (       r   ⁢           ⁢   3     ,     R   ⁢           ⁢   3     ,     R   ⁢           ⁢   1       )       3       )         ,         
where r 2  is the data rate that can be supported by the radio link between the MAP  102   6  and the MAP  102   3 , and r 3  is the data rate that can be supported by the radio link between the MAP  102   6  and the MAP  102   4 .
 
     The bottleneck based rate metric is directed towards optimizing the data rate through the mesh network  100 , but does not take into consideration delay. A second link metric that will be presented accounts for the delay through the mesh network  100 . This metric may be referred to as a harmonic mean metric. Using this metric, the MAP  1026  computes the harmonic mean of the data rate available along each path and selects the path that offers the maximum harmonic mean rate. By way of example, the harmonic mean metric for the path through the MAP  1025  is calculated as follows: 
     
       
         
           
             
               ( 
               
                 1 
                 
                   
                     1 
                     
                       r 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       1 
                     
                   
                   + 
                   
                     1 
                     
                       R 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       4 
                     
                   
                   + 
                   
                     1 
                     
                       R 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       2 
                     
                   
                   + 
                   
                     1 
                     
                       R 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       1 
                     
                   
                 
               
               ) 
             
             . 
           
         
       
     
     The harmonic metric is computed in this manner for the remaining two paths (i.e., through MAPs  1023  and  1024 ) and then the path that maximizes the harmonic mean metric is selected as follows: 
     
       
         
           
             arg 
             ⁢ 
             
                 
             
             ⁢ 
             
               
                 max 
                 ( 
                 
                   
                     1 
                     
                       
                         1 
                         
                           r 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           1 
                         
                       
                       + 
                       
                         1 
                         
                           R 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           4 
                         
                       
                       + 
                       
                         1 
                         
                           R 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           2 
                         
                       
                       + 
                       
                         1 
                         
                           R 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           1 
                         
                       
                     
                   
                   , 
                   
                     1 
                     
                       
                         1 
                         
                           r 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           2 
                         
                       
                       + 
                       
                         1 
                         
                           R 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           2 
                         
                       
                       + 
                       
                         1 
                         
                           R 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           1 
                         
                       
                     
                   
                   , 
                   
                     1 
                     
                       
                         1 
                         
                           r 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           3 
                         
                       
                       + 
                       
                         1 
                         
                           R 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           3 
                         
                       
                       + 
                       
                         1 
                         
                           R 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           1 
                         
                       
                     
                   
                 
                 ) 
               
               . 
             
           
         
       
     
     It should be noted that the above computation is slightly different from the traditional notion of harmonic mean. The strict definition of harmonic mean of N variable 1/r 1 , . . . , 1/rN is N/(1/r 1 + . . . 1/rN). The harmonic mean computation provided above is modified in that the term N is dropped from the numerator. As used throughout this disclosure, the term “harmonic mean” shall refer to the computation above. 
     Another link metric that will be presented may be referred to as a time metric. The time metric is based on the time is takes to transmit a frame of size L along a particular data path in the mesh network. Instead of using the data rates, this metric computes the time to transmit a frame along each available path and then selects the path with that may require the least time. The time metric may be well suited for applications supporting frames with significant overhead. By way of example, the frame transmission time in IEEE 802.11 is given by: 
                 T   frame     =       T   o     +       L   +   H     R         ,         
where T 0  refers the fixed overheads such as the preamble and T PLCP  overheads, and H represents the MAC header. The metric for the above example becomes:
 
     
       
         
           
             arg 
             ⁢ 
             
                 
             
             ⁢ 
             
               
                 max 
                 ( 
                 
                   
                     
                       
                         
                           1 
                           
                             
                               4 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 T 
                                 o 
                               
                             
                             + 
                             
                               
                                 ( 
                                 
                                   L 
                                   + 
                                   H 
                                 
                                 ) 
                               
                               ⁢ 
                               
                                 ( 
                                 
                                   
                                     1 
                                     
                                       r 
                                       ⁢ 
                                       
                                           
                                       
                                       ⁢ 
                                       1 
                                     
                                   
                                   + 
                                   
                                     1 
                                     
                                       R 
                                       ⁢ 
                                       
                                           
                                       
                                       ⁢ 
                                       4 
                                     
                                   
                                   + 
                                   
                                     1 
                                     
                                       R 
                                       ⁢ 
                                       
                                           
                                       
                                       ⁢ 
                                       2 
                                     
                                   
                                   + 
                                   
                                     1 
                                     
                                       R 
                                       ⁢ 
                                       
                                           
                                       
                                       ⁢ 
                                       1 
                                     
                                   
                                 
                                 ) 
                               
                             
                           
                         
                         , 
                       
                     
                   
                   
                     
                       
                         
                           1 
                           
                             
                               3 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 T 
                                 o 
                               
                             
                             + 
                             
                               
                                 ( 
                                 
                                   L 
                                   + 
                                   H 
                                 
                                 ) 
                               
                               ⁢ 
                               
                                 ( 
                                 
                                   
                                     1 
                                     
                                       r 
                                       ⁢ 
                                       
                                           
                                       
                                       ⁢ 
                                       2 
                                     
                                   
                                   + 
                                   
                                     1 
                                     
                                       R 
                                       ⁢ 
                                       
                                           
                                       
                                       ⁢ 
                                       2 
                                     
                                   
                                   + 
                                   
                                     1 
                                     
                                       R 
                                       ⁢ 
                                       
                                           
                                       
                                       ⁢ 
                                       1 
                                     
                                   
                                 
                                 ) 
                               
                             
                           
                         
                         , 
                       
                     
                   
                   
                     
                       
                         1 
                         
                           
                             3 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               T 
                               o 
                             
                           
                           + 
                           
                             
                               ( 
                               
                                 L 
                                 + 
                                 H 
                               
                               ) 
                             
                             ⁢ 
                             
                               ( 
                               
                                 
                                   1 
                                   
                                     r 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     3 
                                   
                                 
                                 + 
                                 
                                   1 
                                   
                                     R 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     3 
                                   
                                 
                                 + 
                                 
                                   1 
                                   
                                     R 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     1 
                                   
                                 
                               
                               ) 
                             
                           
                         
                       
                     
                   
                 
                 ) 
               
               . 
             
           
         
       
     
     When the MAP  1026  attempts to join the mesh network  100 , it may use various techniques to obtain the information it needs to compute the metric. In one configuration, the MAP  1026  associates with the mesh network  100  by broadcasting a message. Each MAP within the mesh network  100  that can hear the broadcast message will send a response indicating the number of hops to the RAP  1021  and the metric. The MAP  1026  may then calculate its own metric through each MAP that responded to the broadcast. Basically, for each responding MAP, the MAP  1026  computes its own metric using the data rate that can be supported with the responding MAP and the information in the response from that responding MAP (i.e., the number of hops to the RAP  1021  and the metric). The MAP  1026  then chooses the MAP which maximizes its own metric. The MAP  1026  may continuously update its path to the RAP  1021  by broadcasting the message and making any necessary adjustments to maximize its metric. 
     The mesh network  100  can be decentralized (with no central server) or centralized (with a central server). In centralized applications, the central server may be used to dynamically configure the data paths through the mesh network. The central server may be a separate entity (not shown), integrated into the RAP  1021 , or distributed across one or more access points (i.e., MAPs and/or RAP) in the mesh network  100 . 
     An example of an algorithm that may be implemented by the central server to optimize the data paths through the mesh network  100  will now be presented with reference to  FIG. 3 . The following notation will be used in this example:
         MAP i =the i th  MAP in the mesh network;   MAP 1 =the RAP   L i =the level of MAP i  (i.e., the number of hops from MAP i  to the RAP);   M i =the metric of MAP i ;   N i =the neighbor MAP of MAP i .       

     In step  302 , the variables are initialized. In this example, L 1  is set to 0, Li is set to 1 for all MAPi, where i&gt;1, and Mi is set to the metric for a direct connection with the RAP (i.e., one hop). The metric Mi may be zero for any MAPi that is too far away from the RAP to support a connection. 
     Once the variables are initialized, the algorithm may begin computing the metrics. The computation begins with step  304 . For each MAPn, a metric Mn,k is determined for each k, with Lk=j, where Mn,k is the metric of the nth MAP for the path through k at the level j. Next, in step  306 , the metric for each MAP is maximized by determining whether max(Mn,k: all k with Lk=j)&gt;Mn. If this equation is satisfied, then Mn is set to max(Mn,k: all k with Lk=j) in step  308 . Otherwise, this step is skipped. 
     In step  310 , it is determined whether Ln is equal to the maximum depth of the mesh network (i.e., the maximum number of hops between a MAP and the RAP). If Ln is less than the maximum depth of the mesh network, the level is incremented by setting Ln to j+1 in step  312 . The algorithm then loops back to step  304  to begin another computation of metrics. If, on the other hand, Ln is equal to the maximum depth of the mesh network, then the optimal path to the RAP is selected for each MAP in step  314  by establishing a link with the neighbor MAP that maximizes the matrix as follows Nn=arg max(Mn,k: all k with Lk=j). 
       FIGS. 4A and 4B  are block diagrams illustrating examples of the functionality of a MAP. The MAP  102  includes a transceiver  404  that provides an air interface with other MAPs in the mesh network. The MAP  102  also includes a processing system  402 , which is shown with functional blocks to illustrate its functionality. These functional blocks may be implemented with a processing system comprising hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. By way of example, the functional blocks may be implemented with a processing system that uses program code running on a microprocessor, a digital signal processor (DSP), or any other suitable platform. The processing system may also include computer-readable media for storing the program code. The computer readable media may include one or more storage devices, including by way of example, RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage media known in the art. Computer readable media may also include a carrier wave that encodes a data signal. 
     Alternatively, or in addition to, the functional blocks of the processing system may be implemented with an application specific integrated circuit (ASIC), a controller, microcontroller, a state machine, a field programmable gate array (FPGA) or other programmable logic component, discrete gate or transistor logic, discrete hardware components, or any combination thereof. These circuits may or may not use program code that is stored in computer-readable media. 
     Those skilled in the art will recognize the interchangeability of hardware, firmware, and software configurations under these circumstances, and how best to implement the described functionality for each particular application. 
     Turning to  FIG. 4A , the processing system  402  includes a module  406 A for establishing a link with any one of a plurality of MAPs in the mesh network, with each of the MAPs providing a different data path through the mesh network. The processing system  402  also includes a module  408 A for computing a metric for each of the data paths, and a module  410 A for selecting one of the access points to establish the link with based on the metrics. 
     Turning to  FIG. 4B , the processing system  402  includes a module  406 B for computing, for each of the MAPs in the mesh network, a metric for each of a plurality of data paths supportable by that MAP, and a module  408 B for establishing interconnections between the access points based on the metrics. 
       FIG. 5A  is a flow chart illustrating an example of a method of establishing a link with any one of a plurality of MAPs in a mesh network, with each of the MAPs providing a different data path through the mesh network. In step  502 A, a metric for each of the data paths is computed, and in step  504 A one of the access points is selected to establish a link with based on the metrics. The computation of the metrics may be performed by in a variety of ways. One way is to divide the minimum data rate supported by one or more hops through a corresponding data path by the number of hops in that path, with data path through the selected access point having the maximum metric. Another way to compute the metrics is by computing the harmonic mean of the data rates supported by the one or more hops through the corresponding data path, with the data path through the selected access point having the maximum harmonic mean data rate. In yet another way, the computation of the metrics may be performed by computing each of the metrics based on the time to transmit a frame of data through the corresponding data path, with the data path through the selected access point having the minimum transmission time. More specifically, the computation of the metrics may be performed by computing each of the metrics by based on the harmonic mean of the data rates supported by the one or more hops through the corresponding data path and the amount of overhead in the frame. 
     Turning to  FIG. 5B , the method of  FIG. 5A  may also include broadcasting a message in the mesh network in step  506 B, receiving one or more responses having information relating to the backhaul portion of the data paths in step  508 B, and using the information to compute the metrics in step  502 A. The information, in combination with its own metric to the neighboring MAPs, may be used to compute each of the metrics for the corresponding data paths. 
       FIG. 5C  is a flow chart illustrating an example of a method of operating in a mesh network having a plurality of access points. In step  502 C, for each MAP, a metric is computed for each of a plurality of data paths supportable by that MAP. In step  504 C, the interconnections between the MAPs are established based on the metrics. The computation may be performed by computing, for each of the MAPs, the metric for each of the data paths supported by that MAP having j hops through the mesh network, increasing j by one, and repeating the computation for each of the MAPs. The computation may be performed for each of the MAPs for each of the j hops through the mesh network as j goes from one to the maximum depth of the mesh network. An example of one algorithm has been described earlier in connection with  FIG. 3   
     The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but is to be accorded the full scope consistent with the language claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more.” All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. §112, sixth paragraph, unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for.”