Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3543f3c2 authored by Sarah Chin's avatar Sarah Chin
Browse files

APIs for 5G slicing

Create TrafficDescriptor class
Create new APN ENTERPRISE
Update setupDataCall and DataCallResponse to take TrafficDescriptor and
matchAllRuleAllowed
Move ApnTypes from Annotation to ApnSetting

Bug: 179312227
Test: atest FrameworksTelephonyTests
Change-Id: I7433976bfe25bcb2af85ffb9338959cbcc9f42f3
parent 14c72817
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -26204,6 +26204,7 @@ package android.net {
    field public static final int NET_CAPABILITY_CBS = 5; // 0x5
    field public static final int NET_CAPABILITY_DUN = 2; // 0x2
    field public static final int NET_CAPABILITY_EIMS = 10; // 0xa
    field public static final int NET_CAPABILITY_ENTERPRISE = 29; // 0x1d
    field public static final int NET_CAPABILITY_FOREGROUND = 19; // 0x13
    field public static final int NET_CAPABILITY_FOTA = 3; // 0x3
    field public static final int NET_CAPABILITY_IA = 7; // 0x7
@@ -41152,6 +41153,7 @@ package android.telephony {
    field public static final int ACTIVATION_REJECT_GGSN = 30; // 0x1e
    field public static final int ACTIVATION_REJECT_UNSPECIFIED = 31; // 0x1f
    field public static final int ACTIVE_PDP_CONTEXT_MAX_NUMBER_REACHED = 65; // 0x41
    field public static final int ALL_MATCHING_RULES_FAILED = 2254; // 0x8ce
    field public static final int APN_DISABLED = 2045; // 0x7fd
    field public static final int APN_DISALLOWED_ON_ROAMING = 2059; // 0x80b
    field public static final int APN_MISMATCH = 2054; // 0x806
@@ -41301,6 +41303,7 @@ package android.telephony {
    field public static final int LTE_NAS_SERVICE_REQUEST_FAILED = 2117; // 0x845
    field public static final int LTE_THROTTLING_NOT_REQUIRED = 2127; // 0x84f
    field public static final int MAC_FAILURE = 2183; // 0x887
    field public static final int MATCH_ALL_RULE_NOT_ALLOWED = 2253; // 0x8cd
    field public static final int MAXIMIUM_NSAPIS_EXCEEDED = 2157; // 0x86d
    field public static final int MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED = 2166; // 0x876
    field public static final int MAX_ACCESS_PROBE = 2079; // 0x81f
+12 −1
Original line number Diff line number Diff line
@@ -12247,6 +12247,7 @@ package android.telephony.data {
    method public long getRetryDurationMillis();
    method @Nullable public android.telephony.data.SliceInfo getSliceInfo();
    method @Deprecated public int getSuggestedRetryTime();
    method @NonNull public java.util.List<android.telephony.data.TrafficDescriptor> getTrafficDescriptors();
    method public void writeToParcel(android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.data.DataCallResponse> CREATOR;
    field public static final int HANDOVER_FAILURE_MODE_DO_FALLBACK = 1; // 0x1
@@ -12282,6 +12283,7 @@ package android.telephony.data {
    method @NonNull public android.telephony.data.DataCallResponse.Builder setRetryDurationMillis(long);
    method @NonNull public android.telephony.data.DataCallResponse.Builder setSliceInfo(@Nullable android.telephony.data.SliceInfo);
    method @Deprecated @NonNull public android.telephony.data.DataCallResponse.Builder setSuggestedRetryTime(int);
    method @NonNull public android.telephony.data.DataCallResponse.Builder setTrafficDescriptors(@NonNull java.util.List<android.telephony.data.TrafficDescriptor>);
  }
  public final class DataProfile implements android.os.Parcelable {
@@ -12352,7 +12354,7 @@ package android.telephony.data {
    method public void setDataProfile(@NonNull java.util.List<android.telephony.data.DataProfile>, boolean, @NonNull android.telephony.data.DataServiceCallback);
    method public void setInitialAttachApn(@NonNull android.telephony.data.DataProfile, boolean, @NonNull android.telephony.data.DataServiceCallback);
    method public void setupDataCall(int, @NonNull android.telephony.data.DataProfile, boolean, boolean, int, @Nullable android.net.LinkProperties, @NonNull android.telephony.data.DataServiceCallback);
    method public void setupDataCall(int, @NonNull android.telephony.data.DataProfile, boolean, boolean, int, @Nullable android.net.LinkProperties, @IntRange(from=0, to=15) int, @Nullable android.telephony.data.SliceInfo, @NonNull android.telephony.data.DataServiceCallback);
    method public void setupDataCall(int, @NonNull android.telephony.data.DataProfile, boolean, boolean, int, @Nullable android.net.LinkProperties, @IntRange(from=0, to=15) int, @Nullable android.telephony.data.SliceInfo, @Nullable android.telephony.data.TrafficDescriptor, boolean, @NonNull android.telephony.data.DataServiceCallback);
  }
  public class DataServiceCallback {
@@ -12451,6 +12453,15 @@ package android.telephony.data {
    method @NonNull public android.telephony.data.ThrottleStatus.Builder setTransportType(int);
  }
  public final class TrafficDescriptor implements android.os.Parcelable {
    ctor public TrafficDescriptor(@Nullable String, @Nullable String);
    method public int describeContents();
    method @Nullable public String getDnn();
    method @Nullable public String getOsAppId();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.data.TrafficDescriptor> CREATOR;
  }
}
package android.telephony.euicc {
+15 −3
Original line number Diff line number Diff line
@@ -205,6 +205,7 @@ public final class NetworkCapabilities implements Parcelable {
            NET_CAPABILITY_OEM_PRIVATE,
            NET_CAPABILITY_VEHICLE_INTERNAL,
            NET_CAPABILITY_NOT_VCN_MANAGED,
            NET_CAPABILITY_ENTERPRISE,
    })
    public @interface NetCapability { }

@@ -415,8 +416,17 @@ public final class NetworkCapabilities implements Parcelable {
    @SystemApi
    public static final int NET_CAPABILITY_NOT_VCN_MANAGED = 28;

    /**
     * Indicates that this network is intended for enterprise use.
     * <p>
     * 5G URSP rules may indicate that all data should use a connection dedicated for enterprise
     * use. If the enterprise capability is requested, all enterprise traffic will be routed over
     * the connection with this capability.
     */
    public static final int NET_CAPABILITY_ENTERPRISE = 29;

    private static final int MIN_NET_CAPABILITY = NET_CAPABILITY_MMS;
    private static final int MAX_NET_CAPABILITY = NET_CAPABILITY_NOT_VCN_MANAGED;
    private static final int MAX_NET_CAPABILITY = NET_CAPABILITY_ENTERPRISE;

    /**
     * Network capabilities that are expected to be mutable, i.e., can change while a particular
@@ -474,7 +484,8 @@ public final class NetworkCapabilities implements Parcelable {
            | (1 << NET_CAPABILITY_MCX)
            | (1 << NET_CAPABILITY_RCS)
            | (1 << NET_CAPABILITY_VEHICLE_INTERNAL)
            | (1 << NET_CAPABILITY_XCAP);
            | (1 << NET_CAPABILITY_XCAP)
            | (1 << NET_CAPABILITY_ENTERPRISE);

    /**
     * Capabilities that force network to be restricted.
@@ -2028,8 +2039,9 @@ public final class NetworkCapabilities implements Parcelable {
            case NET_CAPABILITY_PARTIAL_CONNECTIVITY: return "PARTIAL_CONNECTIVITY";
            case NET_CAPABILITY_TEMPORARILY_NOT_METERED:    return "TEMPORARILY_NOT_METERED";
            case NET_CAPABILITY_OEM_PRIVATE:          return "OEM_PRIVATE";
            case NET_CAPABILITY_VEHICLE_INTERNAL:     return "NET_CAPABILITY_VEHICLE_INTERNAL";
            case NET_CAPABILITY_VEHICLE_INTERNAL:     return "VEHICLE_INTERNAL";
            case NET_CAPABILITY_NOT_VCN_MANAGED:      return "NOT_VCN_MANAGED";
            case NET_CAPABILITY_ENTERPRISE:           return "ENTERPRISE";
            default:                                  return Integer.toString(capability);
        }
    }
+2 −0
Original line number Diff line number Diff line
@@ -111,6 +111,7 @@ public class Annotation {
    public @interface NetworkType {
    }

    // TODO(b/180542000): remove and replace references with @ApnSetting.ApnType
    @IntDef(flag = true, prefix = {"TYPE_"}, value = {
            ApnSetting.TYPE_DEFAULT,
            ApnSetting.TYPE_MMS,
@@ -124,6 +125,7 @@ public class Annotation {
            ApnSetting.TYPE_EMERGENCY,
            ApnSetting.TYPE_MCX,
            ApnSetting.TYPE_XCAP,
            // ApnSetting.TYPE_ENTERPRISE
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface ApnType {
+1 −1
Original line number Diff line number Diff line
@@ -5316,7 +5316,7 @@ public class CarrierConfigManager {
        sDefaults.putStringArray(KEY_MISSED_INCOMING_CALL_SMS_ORIGINATOR_STRING_ARRAY,
                new String[0]);
        sDefaults.putStringArray(KEY_APN_PRIORITY_STRING_ARRAY, new String[] {
                "default:0", "mms:2", "supl:2", "dun:2", "hipri:3", "fota:2",
                "default:0", "enterprise:1", "mms:2", "supl:2", "dun:2", "hipri:3", "fota:2",
                "ims:2", "cbs:2", "ia:2", "emergency:2", "mcx:3", "xcap:3"
        });
        sDefaults.putStringArray(KEY_MISSED_INCOMING_CALL_SMS_PATTERN_STRING_ARRAY, new String[0]);
Loading