# Bluetooth Low Energy Mesh Networks: A Survey
## 4 BLE Mesh Networks: Academic Solutions
### BMN  
BLE Mesh Network (BMN) is another routing-based solution that transmits routing messages via advertising channels. BMN uses the Directed Acyclic Graph (DAG) structure as a basis for routing [14; 15], inspired by the IPv6 Routing Protocol for Low power and lossy networks (RPL) [44]. BMN was designed over Bluetooth 4.1, and its operation consists of three phases; namely, construction, maintenance, and optimization. The construction phase has the goal of establishing Link Layer connections between neighboring devices, determining nodes' parents, and creating routing tables. A parent is the next hop for a node in its path towards the DAG root, and thus the parent of a node is placed in a higher hierarchical location than the node. When a node wants to join a network, it transmits DAG Information Solicitation (DIS) messages to announce its presence and solicit DAG information. DAG Information Object (DIO) messages are sent by neighboring nodes in response to DIS messages. Based on the DIO messages received, the node must determine a parent and an alternative parent. A parameter named Rank is defined to specify the quality of routes between nodes and the DAG root. Nodes with lower Rank values are parent (and alternative parent) candidates for new nodes. In BMN, Rank is computed basedon nodes' residual energy and distance towards the DAG root. Each node maintains a table where it stores its parent, its alternative parent, and the list of its children (i.e., the nodes that have chosen this one as their parent). On the other hand, the root has a routing table that stores routes for all possible destinations in the network. The maintenance phase aims to improve BMN parameter settings and forward packets to their intended destinations. To forward a packet, each source node first looks for a route to the destination in its routing table. If a route is not found, the node sends the packet to its parent. The parent performs the same process, which is repeated until a route to the destination is found. In the worst case, a packet must be sent to the DAG root to be routed to its destination. The optimization phase has the purpose of node weight balancing so that all nodes in the network have nearly equal distance to the DAG root. BMN sends data messages over data channels, while control messages are sent through advertising channels. Being based on a DAG structure, this solution may suffer issues similar to those of tree-like networks such as single-node failure (although it is mitigated by alternative parents when available) and congestion in the area close to the root. The authors measured the power consumption, latency, and data loss experimentally over a network composed of smartphones [14; 15]. In [16], the authors present a protocol for forming scatternets and on-demand routing for Bluetooth 4.1. Scatternets are network topologies composed of interconnected piconets, while the latter are simple star topology networks comprised of a master and its slaves. In order to interconnect piconets, the nodes may act as both a master and a slave. This protocol consists of two phases; scatternet formation and route discovery. In the scatternet formation phase, masters create a list of their connected slaves and vice versa. Nodes acting as both roles elaborate both slave and master lists. In order to allow connection establishment between a new node and its neighbors, the node alternates scanning and advertising states. The node assumes the master or the slave role, depending on its role as a scanner or an advertiser, at connection establishment time. In route discovery, the source node first sends a route request to its master. If the target destination is not in the slave list of the master, the latter initiates a breadth-first search by forwarding the route request to any slave in its piconet that participates in another piconet. Such slaves resend the route request to their masters in other piconets. This process will continue until the destination is found.