blob: 24810312f05d036250d6ce1ed92955a23ef62ca5 [file] [log] [blame]
// Copyright 2021 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.
{
// TODO(https://fxbug.dev/91474): Only include the network-test-realm shard
// in non-prod builds.
include: [ "//src/connectivity/network/meta/test-collection.shard.cml" ],
children: [
{
name: "dhcpd",
url: "#meta/dhcpv4_server.cm",
},
{
name: "dhcpv6-client",
url: "#meta/dhcpv6-client.cm",
},
{
name: "dns-resolver",
url: "#meta/dns_resolver.cm",
},
{
name: "http-client",
url: "#meta/http-client.cm",
},
{
name: "netstack",
url: "#meta/netstack.cm",
on_terminate: "reboot",
},
{
name: "reachability",
url: "#meta/reachability.cm",
startup: "eager",
},
],
offer: [
{
protocol: [
"fuchsia.device.NameProvider",
"fuchsia.scheduler.ProfileProvider",
],
from: "parent",
to: [ "#netstack" ],
},
{
protocol: [ "fuchsia.logger.LogSink" ],
from: "parent",
to: [
"#dhcpd",
"#dhcpv6-client",
"#dns-resolver",
"#http-client",
"#netcfg",
"#netstack",
"#reachability",
],
},
{
protocol: [ "fuchsia.stash.SecureStore" ],
from: "parent",
to: [
"#dhcpd",
"#netstack",
],
},
{
// TODO(https://fxbug.dev/85450): Only add this offer on the tracing
// variant of the network component.
protocol: [ "fuchsia.tracing.provider.Registry" ],
from: "parent",
to: [ "#netstack" ],
availability: "optional",
},
{
protocol: [ "fuchsia.diagnostics.persist.DataPersistence-netstack" ],
from: "parent",
to: [ "#netstack" ],
},
{
protocol: [ "fuchsia.net.dhcp.Server" ],
from: "#dhcpd",
to: [ "#netcfg" ],
},
{
protocol: [ "fuchsia.net.dhcpv6.ClientProvider" ],
from: "#dhcpv6-client",
to: [ "#netcfg" ],
},
{
protocol: [ "fuchsia.net.name.Lookup" ],
from: "#dns-resolver",
to: [
"#dhcpd",
"#http-client",
],
},
{
protocol: [ "fuchsia.net.name.LookupAdmin" ],
from: "#dns-resolver",
to: [ "#netcfg" ],
},
{
protocol: [
// TODO(https://fxbug.dev/74532): We won't need to reach out to
// debug once we don't have Ethernet interfaces anymore.
"fuchsia.net.debug.Interfaces",
"fuchsia.net.filter.Filter",
"fuchsia.net.interfaces.admin.Installer",
"fuchsia.netstack.Netstack",
],
from: "#netstack",
to: [ "#netcfg" ],
},
{
protocol: [
"fuchsia.net.interfaces.State",
"fuchsia.net.stack.Stack",
],
from: "#netstack",
to: [
"#netcfg",
"#reachability",
],
},
{
protocol: [ "fuchsia.net.routes.State" ],
from: "#netstack",
to: [ "#dns-resolver" ],
},
{
protocol: [ "fuchsia.posix.socket.Provider" ],
from: "#netstack",
to: [
"#dhcpd",
"#dhcpv6-client",
"#dns-resolver",
"#http-client",
"#reachability",
],
},
{
protocol: [ "fuchsia.posix.socket.packet.Provider" ],
from: "#netstack",
to: [ "#dhcpd" ],
},
{
protocol: [
"fuchsia.net.debug.Diagnostics",
"fuchsia.net.debug.Interfaces",
"fuchsia.net.neighbor.View",
],
from: "#netstack",
to: [ "#reachability" ],
},
{
directory: "dev-class-ethernet",
from: "parent",
to: [ "#netcfg" ],
},
{
directory: "dev-class-network",
from: "parent",
to: [ "#netcfg" ],
},
{
directory: "config-data",
from: "parent",
to: [ "#netcfg" ],
subdir: "netcfg",
},
{
directory: "root-ssl-certificates",
from: "parent",
to: [ "#http-client" ],
},
{
storage: "cache",
from: "parent",
to: [ "#netstack" ],
},
{
storage: "data",
from: "parent",
to: [ "#netcfg" ],
},
],
expose: [
{
protocol: [
"fuchsia.net.interfaces.admin.Installer",
"fuchsia.net.interfaces.State",
"fuchsia.net.routes.State",
"fuchsia.net.stack.Stack",
"fuchsia.netstack.Netstack",
"fuchsia.posix.socket.Provider",
// TODO(https://fxbug.dev/93579): once product assembly supports product-specific
// components running in the network realm, remove this.
"fuchsia.posix.socket.raw.Provider",
],
from: "#netstack",
},
// TODO (https://fxbug.dev/111695) Don't expose the Debug API once
// Weavestack no longer needs it.
{
protocol: [ "fuchsia.net.debug.Interfaces" ],
from: "#netstack",
as: "fuchsia.net.debug.Interfaces_OnlyForWeavestack",
},
{
protocol: [ "fuchsia.net.name.Lookup" ],
from: "#dns-resolver",
},
{
protocol: [ "fuchsia.net.http.Loader" ],
from: "#http-client",
},
],
}