// Copyright 2022 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.
{
    include: [
        "//src/connectivity/network/testing/netemul/runner/default.shard.cml",
        "inspect/offer.shard.cml",
        "syslog/client.shard.cml",
    ],
    program: {
        networks: [
            {
                name: "net1",
                endpoints: [
                    { name: "local-ep1" },
                    { name: "remote-ep1" },
                ],
            },
            {
                name: "net2",
                endpoints: [
                    { name: "local-ep2" },
                    { name: "remote-ep2" },
                ],
            },
            {
                name: "net3",
                endpoints: [
                    { name: "local-ep3" },
                    { name: "remote-ep3" },
                ],
            },
        ],
        netstacks: [
            {
                name: "local",
                interfaces: [
                    {
                        name: "local-ep1",
                        static_ips: [ "192.168.0.1/24" ],
                        without_autogenerated_addresses: "true",
                    },
                    {
                        name: "local-ep2",
                        static_ips: [ "fe80::1/120" ],
                        without_autogenerated_addresses: "true",
                    },
                    {
                        name: "local-ep3",
                        static_ips: [ "2001::1/120" ],
                        without_autogenerated_addresses: "true",
                    },
                ],
            },
            {
                name: "remote",
                interfaces: [
                    {
                        name: "remote-ep1",
                        static_ips: [ "192.168.0.2/24" ],
                        without_autogenerated_addresses: "true",
                    },
                    {
                        name: "remote-ep2",
                        static_ips: [ "fe80::2/120" ],
                        without_autogenerated_addresses: "true",
                    },
                    {
                        name: "remote-ep3",
                        static_ips: [ "2001::2/120" ],
                        without_autogenerated_addresses: "true",
                    },
                ],
            },
        ],
        start: [ "remote" ],
    },
    children: [
        {
            name: "test-driver",
            url: "#meta/test-driver-multi-network.cm",
        },
        {
            name: "remote",
            url: "#meta/remote-multi-network.cm",
        },
        {
            name: "local-netstack",
            url: "#meta/configurable-netstack.cm",
        },
        {
            name: "remote-netstack",
            url: "#meta/configurable-netstack.cm",
        },
        {
            name: "sync-manager",
            url: "#meta/sync-manager.cm",
        },
    ],
    use: [
        {
            protocol: "fuchsia.test.Suite",
            from: "#test-driver",
        },
        {
            protocol: "fuchsia.netemul.ConfigurableNetstack",
            from: "#local-netstack",
            path: "/svc/local",
        },
        {
            protocol: "fuchsia.netemul.ConfigurableNetstack",
            from: "#remote-netstack",
            path: "/svc/remote",
        },
    ],
    offer: [
        {
            protocol: "fuchsia.netemul.sync.SyncManager",
            from: "#sync-manager",
            to: [
                "#remote",
                "#test-driver",
            ],
        },
        {
            protocol: "fuchsia.logger.LogSink",
            from: "parent",
            to: [
                "#local-netstack",
                "#remote",
                "#remote-netstack",
                "#sync-manager",
                "#test-driver",
            ],
        },
        {
            protocol: [
                "fuchsia.net.interfaces.State",
                "fuchsia.posix.socket.Provider",
            ],
            from: "#local-netstack",
            to: "#test-driver",
        },
        {
            protocol: [
                "fuchsia.net.interfaces.State",
                "fuchsia.posix.socket.Provider",
            ],
            from: "#remote-netstack",
            to: "#remote",
        },
    ],
}
