当前位置: 首页 > news >正文

Android Telephony UrspRule 介绍

引言

什么是 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/

http://www.xdnf.cn/news/1178569.html

相关文章:

  • Java设计模式-适配器模式
  • Docker4-容器化企业级应用
  • 不同头会关注输入序列中不同的部分和不同维度所蕴含的信息,这里的头和嵌入维度不是对应的,仅仅是概念上的吗?
  • 调节广告adload的算法:Contextual Bandits、多臂老虎机 Policy Gradient、Q-learning
  • C++ 中打开文件的多种方式及相关流类
  • 【重学数据结构】哈希表 Hash
  • 【学习路线】JavaScript全栈开发攻略:前端到后端的完整征程
  • MySQL高可用部署
  • MySQL的底层原理--InnoDB记录存储结构
  • Mysql大数据架构设计:当表中数据超过800万时,对数据表进行分表操作,以及分页查询优化详解
  • C++扩展 --- 并发支持库(下)
  • 【YOLO系列】YOLOv4详解:模型结构、损失函数、训练方法及代码实现
  • PA333H-2K功率计:光伏行业高压测试“刚需”
  • 智慧驾驶疲劳检测算法的实时性优化
  • ARM 学习笔记(四)
  • 嵌入式软件--stm32 DAY 9 定时器
  • Springmvc的自动解管理
  • 一文说清楚Hive中常用的聚合函数[collect_list]
  • 一文读懂 HTTPS:证书体系与加密流程
  • Percona pt-archiver 出现长事务
  • GISBox实操指南:如何将IFC文件高效转换为3DTiles格式‌‌
  • 【MAC电脑系统变量管理】
  • 基于Zig语言,opencv相关的c++程序静态交叉编译
  • 微服务-springcloud-springboot-Skywalking详解(下载安装)
  • 设置后轻松将 iPhone 转移到 iPhone
  • 基于SpringBoot+Uniapp的健身饮食小程序(协同过滤算法、地图组件)
  • Socket编程入门:从IP到端口全解析
  • C语言(长期更新)第5讲:数组练习(三)
  • Apache 消息队列分布式架构与原理
  • 开发避坑短篇(5):vue el-date-picker 设置默认开始结束时间