Android Telephony UrspRule 介绍

发布于:2025-07-25 ⋅ 阅读:(21) ⋅ 点赞:(0)

引言

什么是 ursp?

是网络切片独有的吗?有什么作用?

在 Android 系统开发时,可以如何获取 ursp 信息?

URSP 简介

1. 含义

URSP(User Route Selection Policy,用户路由选择策略)是 3GPP 规范(R16及以后标准)引入的一项网络能力。

  • R16=Release 16,正式冻结于 2020年7月
  • 3GPP R16 专门定义了 URSP,其详细规范在 TS 24.526
  • R16 项目 “Enhancements for user equipment route selection policies” 被认定为 5G 标准功能演进的一部分 。
  • 在 R15 开始有用Policy控制流量分流的概念(但极为简单),R16 才正式实现了基于用户、应用、DNN、切片多维度细粒度选路的URSP能力。

它允许运营商为终端(UE)下发多条匹配规则,规定不同流量(比如不同App、不同服务、不同DNN等)可以走不同的 PDU 会话(即走不同的网络切片、QoS、网络路径等)。
本质上是:根据用户、应用、DNN等精细规则,决定流量如何选路或落在哪个slice/QoS上。

有关协议详情:

  • 3GPP TS 24.526 “Support of user equipment route selection policies (URSP)” — 定义URSP实体与协议
  • 3GPP TR 23.755 “UE Route Selection Policy enhancements” — 描述了背景、需求和场景

2. 引入背景

5G 切片(Network Slicing)和端到端 SLA 是 5G 网络的重要特性。
现有的流量选路和切片映射方式较为静态/粗糙,无法实现不同流量种类、不同应用的定制化选路需求。
运营商需要一种灵活的、可扩展的策略机制,让不同类型的流量可以更智能、动态地分到合适的 PDU Session 和网络切片上。

主要需求和背景如下:
  • 使终端能够根据运营商策略为不同应用/数据流选择不同PDU会话(网络切片)
    如微信走EMBB、工控APP走uRLLC
  • 支持应用、DNN(接入点)、OS App ID等多条件匹配,实现更灵活颗粒度
  • 终端可本地自动化分流,而不是每次都人工/弱智路由
典型场景案例:
  • 企业用户要求某连企业OA只能走某专属slice,其它流量正常上网
  • 5G手机一边视频直播一边远程医疗,不同业务需求不同QoS环境,需自动智能分流

3. URSP包括哪些信息?

一条URSP规则通常包括如下内容:

  • precedence(优先级):规则的优先级
  • TrafficDescriptor(流量描述符):可以包含DNN、OS App ID、AppName等
  • RouteSelectionDescriptor:路径选择描述,包含PDU会话类型、SSC模式、slice信息(SST、SD),等
  • (可能还包含用户标识、允许的DNN列表等)

4. 网络切片与 URSP 的关系

  • 并不是所有网络切片配置都必须有URSP
  • URSP是切片能力的补充、增强,它用来实现“端到端的灵活选路”,比如让微信流量用eMBB slice,工控流量上uRLLC slice等。如果没有下发URSP,系统可能只用单一或简单的分流规则。
  • 在一般的5G网络未启用切片或未部署URSP功能时,UE通常拿不到URSP信息
  • 只有支持3GPP 16(或更高)且网络/终端侧都支持URSP功能时,才会下发这些粒度规则

总之,URSP 是用于5G切片和分流场景下,运营商下发给终端的灵活路由与切片策略信息,可以按App、服务、DNN等决定流量到底用哪个Slice、QoS等。它是切片增强能力,不是所有场景或设备都能见到。

5. Android 如何获取?

AOSP RIL规范标准指令是没有直接获取 SLICING_CONFIG 的接口的。常规Android App无法直接拿到URSP。

在 Android(特别是从 Android 12 "S" 及以后,包括 Android 14 "U"、Android 15 "V"、Android 16 "W")里,网络切片和 URSP 信息主要通过 RIL (Radio Interface Layer),也就是调用 modem 的接口来获取

流程大致如下:

  • Android 上层(如 TelephonyManager、NetworkSliceManager、或者自定义 Service)向 RILJ/RIL 发送获取切片配置的请求。
  • RILJ (RIL Java) ——> RILC (RIL C 层) ——> Modem(基带),通过专用协议/扩展下发命令。
  • Modem 读取自身/运营商当前配置(如 URSP、Slice List),再逐层上报回 framework。
  • Android Framework 层通过内部类(如 SlicingConfig)接收与解析,并可通过 Log/Rlog 或接口进一步主动展示或传递给 App。

URSP等详细信息,并不能直接通过 Android 公共 API 获取(如 TelephonyManager 没有公开的 getUrspRules),一般需要通过私有API/研发接口或修改源码方式实现。
但也可以通过 Telephony Registry 的 test/beta接口(需特权)、或通过把握 RIL 消息自己监听分析上报数据。

可以在源码的 frameworks/opt/telephony/src/java/com/android/internal/telephony/


网站公告

今日签到

点亮在社区的每一天
去签到