Added Satellite messaging data support
1. Added RCS APN type which maps to RCS network capability. Note
This APN type is not specific for satellite uses only. This
can be used for regular single registration RCS.
2. Added a new tri-state field "infrastructure" in APN entry. The
infrastructure type can be terrestrial only, non-terrestrial only, or
both. This is for some APNs can be used when the device is attached
to satellite.
Fix: 294065845
Test: atest ApnSettingTest DataNetworkControllerTest DataProfileManagerTest
DataProfileTest TelephonyNetworkRequestTest
Test: Basic phone functionality tests
Change-Id: I15741cbefdb459155e278ef3d197d50c747405f0
diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/current/android/hardware/radio/data/ApnTypes.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/current/android/hardware/radio/data/ApnTypes.aidl
index d2d3137..782dbbf 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.data/current/android/hardware/radio/data/ApnTypes.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.data/current/android/hardware/radio/data/ApnTypes.aidl
@@ -51,4 +51,5 @@
VSIM = (1 << 12) /* 4096 */,
BIP = (1 << 13) /* 8192 */,
ENTERPRISE = (1 << 14) /* 16384 */,
+ RCS = (1 << 15) /* 32768 */,
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/current/android/hardware/radio/data/DataProfileInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/current/android/hardware/radio/data/DataProfileInfo.aidl
index bd44275..7f3fdc7 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.data/current/android/hardware/radio/data/DataProfileInfo.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.data/current/android/hardware/radio/data/DataProfileInfo.aidl
@@ -55,6 +55,7 @@
boolean persistent;
boolean alwaysOn;
android.hardware.radio.data.TrafficDescriptor trafficDescriptor;
+ int infrastructureBitmap = INFRASTRUCTURE_UNKNOWN /* 0 */;
const int ID_DEFAULT = 0;
const int ID_TETHERED = 1;
const int ID_IMS = 2;
@@ -65,4 +66,7 @@
const int TYPE_COMMON = 0;
const int TYPE_3GPP = 1;
const int TYPE_3GPP2 = 2;
+ const int INFRASTRUCTURE_UNKNOWN = 0;
+ const int INFRASTRUCTURE_CELLULAR = (1 << 0) /* 1 */;
+ const int INFRASTRUCTURE_SATELLITE = (1 << 1) /* 2 */;
}
diff --git a/radio/aidl/android/hardware/radio/data/ApnTypes.aidl b/radio/aidl/android/hardware/radio/data/ApnTypes.aidl
index 366570a..f44c636 100644
--- a/radio/aidl/android/hardware/radio/data/ApnTypes.aidl
+++ b/radio/aidl/android/hardware/radio/data/ApnTypes.aidl
@@ -86,5 +86,9 @@
/**
* APN type for ENTERPRISE
*/
- ENTERPRISE = 1 << 14
+ ENTERPRISE = 1 << 14,
+ /**
+ * APN type for RCS (Rich Communication Services)
+ */
+ RCS = 1 << 15
}
diff --git a/radio/aidl/android/hardware/radio/data/DataProfileInfo.aidl b/radio/aidl/android/hardware/radio/data/DataProfileInfo.aidl
index 613387f..d01f8ff 100644
--- a/radio/aidl/android/hardware/radio/data/DataProfileInfo.aidl
+++ b/radio/aidl/android/hardware/radio/data/DataProfileInfo.aidl
@@ -40,6 +40,21 @@
const int TYPE_3GPP2 = 2;
/**
+ * Innfrastructure type unknown. This is only for initializing.
+ */
+ const int INFRASTRUCTURE_UNKNOWN = 0;
+
+ /**
+ * Indicating this APN can be used when the device is using terrestrial cellular networks.
+ */
+ const int INFRASTRUCTURE_CELLULAR = 1 << 0;
+
+ /**
+ * Indicating this APN can be used when the device is attached to satellite.
+ */
+ const int INFRASTRUCTURE_SATELLITE = 1 << 1;
+
+ /**
* ID of the data profile.
* Values are ID_
*/
@@ -131,4 +146,10 @@
* apn; apn must be used as the end point if one is not specified through URSP rules.
*/
TrafficDescriptor trafficDescriptor;
+ /**
+ * The infrastructure bitmap which the APN can be used on. For example, some APNs can only
+ * be used when the device is using cellular network, using satellite network, or can be used
+ * in either cases.
+ */
+ int infrastructureBitmap = INFRASTRUCTURE_UNKNOWN;
}