| // 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. |
| library fuchsia.telephony.ril; |
| |
| using zx; |
| |
| /// Power State of the radio |
| type RadioPowerState = strict enum : uint8 { |
| OFF = 0x00; |
| ON = 0x01; |
| }; |
| |
| /// Errors that the Radio Interface Layer presents to modem |
| /// management interfaces |
| type RilError = strict enum : 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. |
| UNSUPPORTED_NETWORK_TYPE = 0x03; |
| /// An unknown error. |
| UNKNOWN_ERROR = 0x04; |
| /// An unknown transport error. |
| TRANSPORT_ERROR = 0x05; |
| }; |
| |
| protocol NetworkConnection { |
| Stop() -> (struct { |
| success bool; |
| }); |
| }; |
| |
| // currently only ipv4 stuff, to drastically change |
| type NetworkSettings = struct { |
| ip_v4_addr uint32; |
| ip_v4_subnet uint32; |
| ip_v4_gateway uint32; |
| ip_v4_dns uint32; |
| mtu uint32; |
| }; |
| |
| /// The Standard Fuchsia RIL (FRIL) |
| @discoverable |
| 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(resource struct { |
| channel zx.handle:CHANNEL; |
| }) -> (struct {}) error RilError; |
| }; |
| |
| /// The Standard Fuchsia RIL (FRIL) |
| @discoverable |
| protocol RadioInterfaceLayer { |
| /// Retrieve the identity of the modem (currently `imei` only). |
| GetDeviceIdentity() -> (struct { |
| imei string; |
| }) error RilError; |
| |
| /// Power state of the radio. Currently on On or Off. |
| RadioPowerStatus() -> (struct { |
| state RadioPowerState; |
| }) error RilError; |
| |
| /// Activate a network connection. |
| StartNetwork(struct { |
| apn string; |
| }) -> (resource struct { |
| conn client_end:NetworkConnection; |
| }) error RilError; |
| |
| /// Network settings known to the modem. |
| GetNetworkSettings() -> (struct { |
| settings NetworkSettings; |
| }) error RilError; |
| |
| /// Signal Strength (dBm) for LTE networks (total received wideband power). |
| GetSignalStrength() -> (struct { |
| dbm float32; |
| }) error RilError; |
| |
| /// Raw string to send to modem for development. |
| RawCommand(struct { |
| command string; |
| }) -> (struct { |
| result string; |
| }) error RilError; |
| }; |