// 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.wlan.mesh;

// This file is shared between SME and MLME.

type MeshPath = struct {
    dest_address array<uint8, 6>;
    next_hop array<uint8, 6>;
    metric uint32;
};

type MeshPathTable = struct {
    paths vector<MeshPath>;
};
