blob: 51889767770af5c538b7a230e10cdc57129d50bf [file] [log] [blame]
// Copyright 2018 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.
using zx;
/// Power State of the radio
enum RadioPowerState : uint8 {
OFF = 0x00;
ON = 0x01;
/// Errors that the Radio Interface Layer presents to modem
/// management interfaces
enum RilError : uint32 {
/// The radio on this interface is unavailable.
NO_RADIO = 0x01;
/// The request required a SIM card and none are unavailable.
NO_SIM = 0x02;
/// The baseband reported information for a type of cellular network
/// that is currently unsupported.
/// An unknown error.
/// An unknown transport error.
protocol NetworkConnection {
Stop() -> (bool success);
// currently only ipv4 stuff, to drastically change
struct NetworkSettings {
uint32 ip_v4_addr;
uint32 ip_v4_subnet;
uint32 ip_v4_gateway;
uint32 ip_v4_dns;
uint32 mtu;
/// The Standard Fuchsia RIL (FRIL)
protocol Setup {
/// Hand a transport `channel` to the RIL service connecting it to the modem. Most
/// modems will require this to be the first method called, since they are dependent
/// on this. If a connection is already active, it will return false. If the channel
/// is set successfully, it will return true.
/// Called globaly per-modem, not per client connection.
/// Implementation Detail: current services speak QMI but others will most likely speak other
/// binary formats.
ConnectTransport(zx.handle:CHANNEL channel) -> () error RilError;
/// The Standard Fuchsia RIL (FRIL)
protocol RadioInterfaceLayer {
/// Retrieve the identity of the modem (currently `imei` only).
GetDeviceIdentity() -> (string imei) error RilError;
/// Power state of the radio. Currently on On or Off.
RadioPowerStatus() -> (RadioPowerState state) error RilError;
/// Activate a network connection.
StartNetwork(string apn) -> (NetworkConnection conn) error RilError;
/// Network settings known to the modem.
GetNetworkSettings() -> (NetworkSettings settings) error RilError;
/// Signal Strength (dBm) for LTE networks (total received wideband power).
GetSignalStrength() -> (float32 dbm) error RilError;
/// Raw string to send to modem for development.
RawCommand(string command) -> (string result) error RilError;