5G学习笔记之SNPN系列之UE入网和远程配置
参考:3GPP 23.501 5.30.2.10 Onboarding of UEs for SNPNs
小小协议搬运工
目录
- 0. NPN系列
- 1. 概述
- 2. SNPN作为ONN
- 2.1 DCS参与的入网主鉴权
- 2.2 DCS不参与的入网主鉴权
- 2.3 UE入网
- 3. PLMN作为ONN
- 4. 远程配置
0. NPN系列
1. NPN概述
2. NPN R18
3. 【SNPN系列】SNPN ID和广播消息
4. 【SNPN系列】UE入网和远程配置
5. 【SNPN系列】SNPN选择
6. PNI-NPN
1. 概述
SNPN UE入网的目的是:UE接入到 ONN(Onboarding Network,配置网络),ONN向UE提供期望访问SNPN的凭证和配置,以支持UE后续接入这个SNPN。
UE根据自己拥有的凭证类型,选择一个ONN。这个ONN可以是SNPN,也可以是PLMN。如果UE配置了一个默认凭证,可能选择一个SNPN作为ONN,被UE选作ONN的SNPN称为ON-SNPN(Onboarding SNPN,入网SNPN);如果UE 配置了PLMN证书(在USIM中),可能选择一个PLMN作为ONN。
若UE已经配置了一组SNPN凭证或CH(Credentials Holder, 凭证持有者,可以是SNPN,也可以是PLMN,也可以是第三方)凭证,它需要再配置一组额外的SNPN凭证,UE可以使用SNPN接入模式来访问SNPN,不采用入网模式,执行正常的注册和PDU会话建立。然后使用SNPN用户面连接来访问 PVS(Provisioning Server,配置服务器)。
NG-RAN在系统消息SIB1中广播一个指示消息,指示该小区是否支持入网。
2. SNPN作为ONN
UE通过ON-SNPN获取SO-SNPN(Subscription Owner Standalone Non-Public Network)的签约凭证和配置。
对于支持SNPN入网的UE,需要预配置默认UE证书和ON-SNPN选择信息(可选)。
- 默认UE证书包含主鉴权的证书和辅鉴权的证书(可选)。
- ON-SNPN选择信息的内容取决于UE实现,可以包含SNPN网络ID、GIN等。ON-SNPN选网取决于UE具体的实现。
UE入网主鉴权分为两种情况:DCS(Default Credentials Server,默认凭证服务器)参与、DCS不参与。
2.1 DCS参与的入网主鉴权
ON-SNPN的AMF使用入网SUCI的Home Network Identifier来选择DCS。假设针对每一个Home Network Identifier,ON-SNPN配置了使用AUSF+UDM还是AAA服务器进行主鉴权。
DCS参与主鉴权的处理如下:
- DCS含AUSF+UDM时,AMF在DCS域中选择AUSF。ON-SNPN和DCS域通过N32和SEPP接口建立连接。
- DCS含AAA服务器时【仅SUPI是基于NSI】,AMF在ON-SNPN范围内选择AUSF。AUSF跳过UDM,根据本地配置(入网SUCI的域),直接通过NSSAAF把EAP消息转发给DCS进行默认UE证书的主鉴权。
- 当用户面远程配置的PDU建立完成,可能触发DN-AAA对默认证书的辅鉴权流程。
(1)DCS含AUSF+UDM
(2)AAA服务器
2.2 DCS不参与的入网主鉴权
DCS不参与主鉴权的处理如下:
- AMF选择一个本地AUSF,该AUSF中执行默认UE证书主鉴权。
- 当用户面远程配置的PDU建立完成,可能触发DCS或DN-AAA对默认证书的辅鉴权流程。若辅鉴权失败,SMF拒绝用于用户面远程配置的PDU会话建立,AMF发起去注册流程。
2.3 UE入网
(1)UE入网和远程配置流程图
(2)UE注册流程图
-
UE选择一个ON-SNPN,发起RRC连接,并携带原因值为onboardingRequest-r17。NG-RAN根据RRC连接原因值为UE选择一个合适的AMF。UE通过selectedPLMN-Identity IE指示选择的ON-SNPN,NG-RAN需要将ON-SNPN的PLMN ID和NID带给AMF(INITIAL UE MESSAGE:Selected NID IE)。
-
UE发起NAS注册流程,5GS注册类型设置为SNPN Onboarding。UE携带SUCI(From SUPI,SUPI From Default UE credentials)。ON-SNPN根据SUCI得到DCS ID或地址/域。
-
AMF收到5GS注册类型为SNPN Onboarding的NAS注册请求消息,处理如下:
- 根据SUCI的Home Network Identifier或者AMF本地配置选中一个合适的AUSF,发起鉴权流程。AMF可能提供DCS的PVS(Provisioning Server,配置服务器) IP地址或者PVS FQDN。
- AMF入网配置,如把用户网络限制为仅用于远程配置。
- 存储UE上下文,主要是入网目的,后续可用于ON-SNPN发起去注册流程。
- 处理SNPN等效PLMN列表
- 注:AMF配置AMF入网配置数据:1)用于入网的S-NSSAi和DNN,或者用于入网的S-NSSAi和DNN相关的SMF;2)入网的本地AUSF
当远程配置SO-SNPN证书完成后,从ON-SNPN去注册。
3. PLMN作为ONN
仅支持UE不在SNPN接入模式的情况下。
UE使用PLMN证书,按照PLMN网络选择和初始注册流程接入PLMN网络。UE注册到ON-PLMN网络后,使用用户面配置SO-SNPN。
4. 远程配置
远程配置基于远程配置的DNN和S-NSSAI的PDU会话上。
(1)PVS IP地址或/且PVS FQDN配置
为了支持远程配置,UE需要知道远程配置服务器信息,包括:PVS IP地址,或/且,PVS FQDN,后面简称UE配置信息。这些信息可以是UE预配置的,也可以是由ONN提供的。ONN提供的配置优先级高于UE预配置。在UE侧,可能存储在ME;在网络侧,可能在ONN SMF本地配置,也可能在鉴权流程中,由DCS提供给ON-SNPN AMF,AMF通过Nsmf_PDUSession_CreateSMContext Request消息发送给SMF。若PCF用于远程配置,SMF将配置提供给PCF。在PDU会话建立过程中,可通过协议配置选项(Protocol Configuration Options,PCO)将UE配置信息带给UE。若存在多个PVS IP地址或/且PVS FQDN,选择哪一个PVS,取决于UE具体实现。
若ON-SNPN不支持访问本地化服务,DCS提供的PVS IP地址或/且PVS FQDN优先级高于ON-SNPN本地配置的PVS IP地址或/且PVS FQDN。若ON-SNPN支持访问本地化服务,DCS提供的和本地配置的PVS IP地址或/且PVS FQDN,SMF都需要携带。
(2)ON-SNPN的远程配置
SMF选择:AMF根据AMF入网配置(S-NSSAI、DNN或/且SMF)选择SMF。AMF向SMF发送Nsmf_PDUSession_CreateSMContext Request消息,携带Onboarding Indication。AMF可能提供PVS IP地址或/且PVS FQDN给SMF。
UPF选择:根据入网配置S-NSSAI、DNN来选择UPF。
入网专用QoS流:远程配置会话初始QoS在SMF配置,不需要动态PCC。QoS流专用于入网服务。SMF可能在UPF PDR或FAR中配置PVS或DNS服务器IP地址,不允许其它流量承载在该QoS上。
(3)ON-PLMN的远程配置
前提:UE订阅数据需要包含用于入网的DNN和S-NSSAI。
SMF选择:AMF根据UE提供的入网的DNN和S-NSSAI,或UDM默认DNN和S-NSSAI选择SMF。
UPF选择:根据入网配置S-NSSAI、DNN来选择UPF。
一个DNN和S-NSSAI可能配置一个或多个PVS IP地址或/且PVS FQDN。
若满足以下所有条件,SMF可在PDU会话建立过程中,可通过协议配置选项(Protocol Configuration Options,PCO)将UE配置信息带给UE:
- UE订阅信息包含了用于入网的DNN和S-NSSAI。
- SMF从本地配置中获取的PVS IP地址或/且PVS FQDN。
- UE在PDU会话建立请求消息中,请求了PVS信息(via PCO)。
相关文章:

5G学习笔记之SNPN系列之UE入网和远程配置
参考:3GPP 23.501 5.30.2.10 Onboarding of UEs for SNPNs 小小协议搬运工 目录 0. NPN系列 1. 概述 2. SNPN作为ONN 2.1 DCS参与的入网主鉴权 2.2 DCS不参与的入网主鉴权 2.3 UE入网 3. PLMN作为ONN 4. 远程配置 0. NPN系列 1. NPN概述 2. NPN R18 3. 【SNPN系列】…...

C#版OpenCv常用函数大全
OpenCvSharp 是 OpenCV 的NET封装,提供了丰富的图像处理和计算机视觉功能。以下是一些常用函数及其详细说明。 1. 图像读取与显示 Cv2.ImRead 功能:读取图像文件并返回一个 Mat 对象。用法:Mat image Cv2.ImRead("path/to/image.jpg&…...

Spring Boot教程之五十二:CrudRepository 和 JpaRepository 之间的区别
Spring Boot – CrudRepository 和 JpaRepository 之间的区别 Spring Boot建立在 Spring 之上,包含 Spring 的所有功能。由于其快速的生产就绪环境,使开发人员能够直接专注于逻辑,而不必费力配置和设置,因此如今它正成为开发人员…...

蓝桥杯备考:数据结构之栈 和 stack
栈的概念以及栈的实现 栈是一种只允许在一端进行插入和删除的线性表 空栈:没有任何元素 入栈:插入元素 出栈:删除元素 栈本身就是一个线性表,我们可以写一个足够大的数组来实现栈 除此之外,我们还需要变量n来记录…...
solidity基础 -- 映射
在区块链的智能合约开发领域,Solidity 作为以太坊上最主流的编程语言之一,拥有诸多强大特性助力开发者构建复杂且高效的去中心化应用。其中,映射(Mapping)是一个极为关键的数据结构,它为合约中的数据存储与…...

Angular 11课程实践:构建高效单页应用的支持代码
本文还有配套的精品资源,点击获取 简介:Angular 11是Google支持的前端框架,适合构建复杂的单页应用(SPA)。本课程将深入介绍Angular核心特性,如组件化、依赖注入、数据绑定和路由,并且涵盖Ang…...

测试用例颗粒度说明
当我们在编写测试用例时,总是会遇到一个问题:如何确定测试用例的颗粒度?测试用例过于粗糙,可能无法全面覆盖系统的细节;而颗粒度过细,又会导致测试重复、冗余。掌握合适的颗粒度,不仅可以提高测…...

ESP32 IDF VScode出现头文件“无法打开 源 文件 ”,并有红色下划线警告
问题背景: ESP32 IDF VScode出现头文件“无法打开 源 文件 ”,并有红色下划线警告: 解决办法: 在工程里面的.vscode文件夹下,检查是否存在c_cpp_properties.json文件,如果没有可以手动创建添加。如图…...

Windows安装ES单机版设置密码
下载ES ES下载链接 我用的是7.17.26 启动前配置 解压之后打开D:\software\elasticsearch-7.17.26\bin\elasticsearch-env.bat 在elasticsearch-env.bat文件中修改jdk的路径 修改前 修改内容 if defined ES_JAVA_HOME (set JAVA"D:\software\elasticsearch-7.17.26\…...
Linux Docker
Docker 的定义 Docker 是一个开源的容器化平台,它允许开发者将应用程序及其依赖项打包成一个可移植的容器。容器是一种轻量级、独立的运行环境,与传统的虚拟机不同,容器共享主机操作系统的内核,通过隔离的文件系统、进程空间和网…...

MSE学习
MSE简介 媒体源拓展(Media Source Extensions,简称 MSE)是一个由 W3C 制定的标准,它允许 JavaScript 代码通过 AJAX 请求获取媒体数据,并将其提供给 HTML 的 <video> 或 <audio> 元素进行播放。 MSE特点…...

0-基于蚁群优化和带注意力机制的循环神经网络的新型混合算法用于解决旅行商问题(HAL science)(完)
文章目录 AbstractI INTRODUCTIONII 旅行商问题的正式描述III STATE OF THE ARTIV 使用的混合化技术原理4.1 Principle of ACO4.2具有注意机制的自动编码器模型V 蚁群优化与具有注意机制的神经网络的混合5.1 基本思想5.2 解决步骤5.2.1 模型训练5.2.2 寻找解VI EXPERIMENTS6.1 …...

MIUI显示/隐藏5G开关的方法,信号弱时开启手机Wifi通话方法
5G网速虽快,手机功耗也大。 1.取消MIUI强制的5G,手动设置4G的方法! 【小米澎湃OS, Xiaomi HyperOS显示/隐藏5G开关的方法】 1.1.小米MIUI系统升级后,被强制连5G,手动设置开关被隐藏,如下图: 1…...

挑战20天刷完leecode100
2025.1.5 二分查找 1 搜索插入位置 就是简单的二分查找 注意开闭就行 这里有一句话就是nums是升序的 如果他不是严格递增 就是有相同的数字的情况下应该怎么写? int lower_bound(vector<int>& nums, int target) {int left 0, right (int) nums.size() - 1; …...
Java列表示例
示例1:使用ArrayList创建并操作列表 ArrayList是List接口最常用的实现之一,它内部使用数组来存储元素,因此对于随机访问具有很高的效率。但是,当涉及到频繁的插入或删除操作时,它的性能可能会受到影响,因为…...
Objective-C语言的网络编程
Objective-C语言的网络编程 引言 在现代软件开发中,网络编程逐渐成为一个不可或缺的部分,特别是在移动应用和分布式系统中。Objective-C 是一种主要用于 iOS 和 macOS 开发的编程语言,它在网络编程方面也有着丰富的支持。在这篇文章中&…...
安卓OCR使用(Google ML Kit)
OCR是一个很常用的功能,Google ML Kit提供了OCR能力,用起来也很简单,本文介绍一下使用方法。 1. 相关概念 名词概念解释TextBlock块一个段落Line行一行文本Element元素单词;对汉字来说,类似"开头 (分隔符)中间&…...

《机器学习》——贝叶斯算法
贝叶斯简介 贝叶斯公式,又称贝叶斯定理、贝叶斯法则,最初是用来描述两个事件的条件概率间的关系的公式,后来被人们发现具有很深刻的实际意义和应用价值。该公式的实际内涵是,支持某项属性的事件发生得愈多,则该属性成…...

【博主推荐】 Microi吾码开源低代码平台,快速建站,提高开发效率
🍬引言 🍬什么是低代码平台? 低代码平台(Low-Code Platform)是一种使开发人员和业务用户可以通过图形化界面和少量的编程来创建应用程序的开发工具。与传统的编程方式相比,低代码平台大大简化了开发过程&a…...
网站自动签到
我研究生生涯面临两个问题,一是写毕业论文,二是找工作,这两者又有很大的冲突。怎么解决这两个冲突呢?把python学好是一个路子,因此从今天我要开一个专栏就是学python 其实我的本意不是网站签到,我喜欢在起点…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...

大模型——基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程
基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程 下载安装Docker Docker官网:https://www.docker.com/ 自定义Docker安装路径 Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。 新建安装目录:E:\MyS…...
js 设置3秒后执行
如何在JavaScript中延迟3秒执行操作 在JavaScript中,要设置一个操作在指定延迟后(例如3秒)执行,可以使用 setTimeout 函数。setTimeout 是JavaScript的核心计时器方法,它接受两个参数: 要执行的函数&…...