|
|
/*
|
|
|
* Copyright (C) 2020 Google LLC
|
|
|
*
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
* You may obtain a copy of the License at
|
|
|
*
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
*
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
* See the License for the specific language governing permissions and
|
|
|
* limitations under the License.
|
|
|
*/
|
|
|
syntax = "proto2";
|
|
|
|
|
|
package com.google.carrier;
|
|
|
|
|
|
option java_multiple_files = true;
|
|
|
option java_outer_classname = "CarrierSettingsProtos";
|
|
|
|
|
|
// Settings of one carrier, including apns and configs
|
|
|
// This is the payload to be delivered from server
|
|
|
message CarrierSettings {
|
|
|
// A unique canonical carrier name
|
|
|
optional string canonical_name = 1;
|
|
|
|
|
|
// Version number of current carrier’s settings
|
|
|
optional int64 version = 2;
|
|
|
|
|
|
// Carrier APNs
|
|
|
optional CarrierApns apns = 3;
|
|
|
|
|
|
// Carrier configs
|
|
|
optional CarrierConfig configs = 4;
|
|
|
|
|
|
reserved 5;
|
|
|
|
|
|
// Vendor carrier configs
|
|
|
optional VendorConfigs vendor_configs = 6;
|
|
|
}
|
|
|
|
|
|
// A collection of multiple carriers’ settings
|
|
|
message MultiCarrierSettings {
|
|
|
// Version number
|
|
|
optional int64 version = 1;
|
|
|
|
|
|
// List of CarrierSettings
|
|
|
repeated CarrierSettings setting = 2;
|
|
|
}
|
|
|
|
|
|
// An access point name (aka. APN) entry
|
|
|
message ApnItem {
|
|
|
// The name of APN, map to xml apn "carrier" attribute
|
|
|
// eg. Verizon Internet, may visible to user in Settings
|
|
|
optional string name = 1;
|
|
|
// The value of APN, eg. send to modem for data call. map to xml
|
|
|
// "apn" attribute, eg. vzwinternet
|
|
|
optional string value = 2;
|
|
|
|
|
|
// Next two fields type and bearer_bitmask affect how APN is selected by
|
|
|
// platform. eg. type means APN capability and bearer_bitmask specifies
|
|
|
// which RATs apply.
|
|
|
// Note mcc/mnc and mvno data doesn't belong to this proto because they
|
|
|
// define a carrier.
|
|
|
// APN types as defined in Android code PhoneConstants.java
|
|
|
enum ApnType {
|
|
|
ALL = 0; // this APN can serve all kinds of data connections
|
|
|
DEFAULT = 1; // internet data
|
|
|
MMS = 2;
|
|
|
SUPL = 3;
|
|
|
DUN = 4;
|
|
|
HIPRI = 5;
|
|
|
FOTA = 6;
|
|
|
IMS = 7;
|
|
|
CBS = 8;
|
|
|
IA = 9; // Initial attach
|
|
|
EMERGENCY = 10;
|
|
|
XCAP = 11;
|
|
|
UT = 12;
|
|
|
RCS = 13;
|
|
|
}
|
|
|
repeated ApnType type = 3;
|
|
|
|
|
|
// Network types that this APN applies to, separated by "|". A network type
|
|
|
// is represented as an integer defined in TelephonyManager.NETWORK_TYPE_*.
|
|
|
// Default value "0" means all network types.
|
|
|
optional string bearer_bitmask = 4 [default = "0"];
|
|
|
|
|
|
// Below are all parameters for the APN
|
|
|
// APN server / auth parameters.
|
|
|
optional string server = 5;
|
|
|
optional string proxy = 6;
|
|
|
optional string port = 7;
|
|
|
optional string user = 8;
|
|
|
optional string password = 9;
|
|
|
optional int32 authtype = 10 [default = -1];
|
|
|
|
|
|
// MMS configuration.
|
|
|
optional string mmsc = 11;
|
|
|
optional string mmsc_proxy = 12;
|
|
|
optional string mmsc_proxy_port = 13;
|
|
|
|
|
|
// Protocols allowed to connect to the APN.
|
|
|
enum Protocol {
|
|
|
IP = 0;
|
|
|
IPV6 = 1;
|
|
|
IPV4V6 = 2;
|
|
|
PPP = 3;
|
|
|
}
|
|
|
optional Protocol protocol = 14 [default = IP];
|
|
|
optional Protocol roaming_protocol = 15 [default = IP];
|
|
|
|
|
|
// MTU for the connections.
|
|
|
optional int32 mtu = 16 [default = 0];
|
|
|
// An ID used to sync the APN in modem.
|
|
|
optional int32 profile_id = 17;
|
|
|
// Max connections.
|
|
|
optional int32 max_conns = 18 [default = 0];
|
|
|
// The wait time required between disconnecting and connecting, in seconds.
|
|
|
optional int32 wait_time = 19 [default = 0];
|
|
|
// The time to limit max connection, in seconds.
|
|
|
optional int32 max_conns_time = 20 [default = 0];
|
|
|
reserved 21;
|
|
|
// Whether to be persisted to modem.
|
|
|
optional bool modem_cognitive = 22 [default = false];
|
|
|
// Whether visible in APN settings.
|
|
|
optional bool user_visible = 23 [default = true];
|
|
|
// Whether editable in APN settings.
|
|
|
optional bool user_editable = 24 [default = true];
|
|
|
|
|
|
// If > 0: when an APN becomes a preferred APN on user/framework
|
|
|
// selection, other APNs with the same apn_set_id will also be preferred
|
|
|
// by framework when selecting APNs.
|
|
|
optional int32 apn_set_id = 25 [default = 0];
|
|
|
|
|
|
// The skip 464xlat flag. Flag works as follows.
|
|
|
// SKIP_464XLAT_DEFAULT: the APN will skip 464xlat only if the APN has type
|
|
|
// IMS and does not support INTERNET which has type
|
|
|
// DEFAULT or HIPRI.
|
|
|
// SKIP_464XLAT_DISABLE: the APN will NOT skip 464xlat
|
|
|
// SKIP_464XLAT_ENABLE: the APN will skip 464xlat
|
|
|
enum Xlat {
|
|
|
SKIP_464XLAT_DEFAULT = 0;
|
|
|
SKIP_464XLAT_DISABLE = 1;
|
|
|
SKIP_464XLAT_ENABLE = 2;
|
|
|
}
|
|
|
optional Xlat skip_464xlat = 26 [default = SKIP_464XLAT_DEFAULT];
|
|
|
}
|
|
|
|
|
|
// A collection of all APNs for a carrier
|
|
|
message CarrierApns {
|
|
|
reserved 1;
|
|
|
|
|
|
// APNs belong to this carrier
|
|
|
repeated ApnItem apn = 2;
|
|
|
}
|
|
|
|
|
|
// An array of text
|
|
|
message TextArray {
|
|
|
repeated string item = 1;
|
|
|
}
|
|
|
|
|
|
// An array of int
|
|
|
message IntArray {
|
|
|
repeated int32 item = 1;
|
|
|
}
|
|
|
|
|
|
// Carrier configs
|
|
|
message CarrierConfig {
|
|
|
reserved 1, 3;
|
|
|
|
|
|
// Key-Value pair as a config entry
|
|
|
message Config {
|
|
|
optional string key = 1;
|
|
|
|
|
|
oneof value {
|
|
|
string text_value = 2;
|
|
|
int32 int_value = 3;
|
|
|
int64 long_value = 4;
|
|
|
bool bool_value = 5;
|
|
|
TextArray text_array = 6;
|
|
|
IntArray int_array = 7;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// Key-value pairs, holding all config entries
|
|
|
repeated Config config = 2;
|
|
|
}
|
|
|
|
|
|
// The configs of one vendor client.
|
|
|
message VendorConfigClient {
|
|
|
// Name of the client for which the configuration items need to
|
|
|
// be stored
|
|
|
required string name = 1;
|
|
|
|
|
|
// Binary blob containing the configuration. The format
|
|
|
// of the configuration depends on the specific client.
|
|
|
// For some clients, the proto representation of {@link VendorConfigData}
|
|
|
// defined in vendorconfigdata.proto is used.
|
|
|
optional bytes value = 2;
|
|
|
|
|
|
// Range of extensions. The extensions from 100 to 1000 are reserved for
|
|
|
// Google's internal usage.
|
|
|
extensions 100 to 5000;
|
|
|
}
|
|
|
|
|
|
// A collection of configs from vendor clients.
|
|
|
message VendorConfigs {
|
|
|
reserved 1;
|
|
|
|
|
|
// Configuration
|
|
|
repeated VendorConfigClient client = 2;
|
|
|
}
|