| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library fuchsia.lowpan; |
| |
| /// LoWPAN Role Type. |
| /// |
| /// This type describes the role a device can assume on a network. |
| enum Role : int32 { |
| /// Detached role. The interface is not |
| /// currently participating on the network, |
| /// either because it cannot find a parent |
| //// or the interface is not currently provisioned. |
| DETACHED = 1; |
| |
| /// End-device role. End devices do not route |
| /// traffic on behalf of other nodes. |
| END_DEVICE = 2; |
| |
| /// Router role. Routers help route traffic |
| /// around the mesh network. |
| /// |
| /// Note that this role is independent of the |
| /// device being a "border router". |
| /// |
| /// Not all network types support this role. |
| ROUTER = 3; |
| |
| /// Sleepy End-Device role. |
| /// |
| /// End devices with this role are nominally asleep, |
| /// waking up periodically to check in with their |
| /// parent to see if there are packets destined for |
| /// them. Such devices are capable of extraordinarily |
| /// low power consumption, but packet latency can be |
| /// on the order of dozens of seconds(depending on how |
| /// the node is configured). Not all network types |
| /// support this role. |
| /// |
| /// Not all network types support this role. |
| SLEEPY_END_DEVICE = 4; |
| |
| /// Sleepy-router role. |
| /// |
| /// Routers with this role are nominally asleep, |
| /// waking up periodically to check in with |
| /// other routers and their children. |
| /// |
| /// Not all network types support this role. |
| SLEEPY_ROUTER = 5; |
| |
| /// Leader role. |
| /// |
| /// On Thread networks, for each partition/fragment |
| /// one router is designated as the "leader", which |
| /// means that it is considered authoritative for |
| /// all network data. In most cases this role can be |
| /// considered as a synonym to Role::ROUTER. |
| /// |
| /// Not all network types support this role. |
| LEADER = 6; |
| |
| /// Coordinator role. |
| /// |
| /// Not all network types support this role. |
| COORDINATOR = 7; |
| }; |