blob: 123777f1c749f96b69e2d3083d14775e16c74f27 [file] [log] [blame]
// 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;
};