5G Network Slicing

Android provides support for 5G network slicing, the use of network virtualization to divide single network connections into multiple distinct virtual connections that provide different amounts of resources to different types of traffic.

The deviceConnectivityManagement.preferentialNetworkServiceSettings and preferentialNetworkService settings configure 5G network slicing.

Set up

You can use preferentialNetworkServiceSettings to configure the 5 enterprise slices. Add networks you want to enable to preferentialNetworkConfigs.

Each ApplicationPolicy can specify a preferentialNetworkId to route traffic to a specific slice. If no value is specified, the defaultPreferentialNetworkId will be used instead. fallbackToDefaultConnection configures whether the default connection (e.g. general cell network or wifi) is used if no preferential network service connection is available.

You can configure apps not to use preferential network by setting preferentialNetworkId to NO_PREFERENTIAL_NETWORK.

Application support

5G network slicing does not require application support, network traffic will be routed based on the configuration. Applications can still explicitly select a different network, unless NON_MATCHING_NETWORKS_DISALLOWED is set.

Enterprise preferential networks map to NetworkCapabilities; Specifically NET_ENTERPRISE_ID_1 through NET_ENTERPRISE_ID_5 map to PREFERENTIAL_NETWORK_ID_ONE through PREFERENTIAL_NETWORK_ID_FIVE.

Version support

Starting from Android 12, IT Admins can use preferentialNetworkService to route traffic for all applications running in the Work Profile to a fixed enterprise network slice. Starting with Android 13, IT Admins can use preferentialNetworkService on fully managed devices as well.

On Android 13 and later, IT Admins can use preferentialNetworkServiceSettings to enable up to 5 preferential networks and assign applications to a specific network.

Example policy

{
  "applications": [
    {
      "packageName": "com.example.one",
      "installType": "AVAILABLE",
      "preferentialNetworkId": "PREFERENTIAL_NETWORK_ID_TWO"
    },
    {
      "packageName": "com.example.two",
      "installType": "AVAILABLE",
      "preferentialNetworkId": "PREFERENTIAL_NETWORK_ID_THREE"
    }
  ],
  "deviceConnectivityManagement": {
    "preferentialNetworkServiceSettings": {
      "defaultPreferentialNetworkId": "PREFERENTIAL_NETWORK_ID_TWO",
      "preferentialNetworkServiceConfigs": [
        {
          "preferentialNetworkId": "PREFERENTIAL_NETWORK_ID_TWO",
        },
        {
          "preferentialNetworkId": "PREFERENTIAL_NETWORK_ID_THREE",
        }
      ]
    }
  }
}