5G——SDAP层
作者:互联网
1 概要
本来是想继续上文对QoS的反射QoS进行介绍的,但是看了一下协议,SDAP协议和反射QoS形同一体,必须要先介绍一下SDAP协议才能比较好深入了解反射QoS机制;SDAP是5G新空口用户面新增加的一层协议,从其内容内来,可以认为SDAP协议是为了5G QoS而生的。
从协议的体量来说的话,这是我见过的最简单最短小的协议了。
我们先看一下SDAP在5G新空口用户面协议栈的位置,如下图:
1.1 定义和简称
QoS flow to DRB mapping rule:将一个QoS流的packet映射到哪条DRB上的规则;
Reflective QoS flow to DRB mapping: 是这样的一种QoS流到DRB的映射方案,UE监测下行的QoS流到DRB的映射规则,然后将其应用到上行方向上;
QFI QoS Flow ID
RDI Reflective QoS flow to DRB mapping Indication
RQI Reflective QoS Indication
SDAP Service Data Adaptation Protocol
1.2 SDAP架构
Figure 4.2.1-1是从协议结构的角度来展示SDAP子层的;SDAP子层是通过RRC信令来配置的,SDAP子层负责将QoS流映射到对应的DRB上;一个或者多个QoS流可以映射到同一个DRB上,一个QoS流只能映射到一个DRB上,如下图所示。
另外,QoS流和DRB的映射关系还可以从RRC信令中的DRB配置参数明显看出来,如下。
从一条DRB的SDAP-Config参数可以看出来,下面我们来细说一下这里的几个参数。
pdu-Session: PDU会话ID,表示这条DRB属于哪个PDU会话的,也就是说这个DRB是为哪个PDU会话建立的。
sdap-HeaderDL:下行数据传输是否配置SDAP头,如果没有配置就相当于SDAP层不存在,PDCP后就是应用packet了
sdap-HeaderUL:上行数据传输是否配置SDAP头,如果没有配置就相当于SDAP层不存在,packet直接扔给PDCP处理
defaultDRB:是否为这条PDU会话的默认DRB;一个PDU会话中的所有SDAP配置实例中,最多只能有一个默认DRB,可以没有默认DRB。
mappedQoS-FlowsToAdd:这是一个QFI列表,表示要再增加列表中的QoS流映射到这条DRB上;同一个PDU会话的所有SDAP配置实例中,一个QFI值只能出现一次,也就是说不能一条QoS流映射到多条DRB上。
mappedQoS-FlowsToRelease:这是一个QFI列表,表示这些QoS流不能再映射到这条DRB上了。
从中可以看出,ngNB会为一个PDU会话的QoS规则为其建立1个或多个DRB,每个DRB负责承载1个或多个QoS数据流。
上面是从结构的角度来看SDAP子层,下面从功能的角度来看SDAP子层有哪些功能。
- 传输用户面数据
-为上下行数据进行QoS Flow到DRB的映射
-在上下行数据包中标记QoS FLow ID
-为上行SDAP数据进行反射QoS流到DRB的映射
SDAP实体(或者叫实例)位于SDAP子层,每个PDU会话都会建立对应的SDAP实体(或叫实例),一个UE可以有多个SDAP实体(因为一个UE可以同时建立多个PDU会话)。
一个SDAP实体从上层接收SDAP SDU(也就是应用层的数据包),将其打包为SDAP PDU(增加了SDAP header),最后通过下层(PDCP)将SDAP PDU发给对端SDAP实体。
一个SDAP实体从下层(PDCP)接收对端SDAP实体发过来的SDAP PDU,去除SDAP header后,将SDAP SDU投递给上层。
2 SDAP流程
2.1 上行数据传输
一个发送SDAP实体接收到一个来自上层QoS流的SDAP SDU时,应该:
- 如果这个SDU没有满足已存在的任何一条QoS流到DRB的映射规则,则将这个SDAP PDU映射到默认DRB上
-否则,映射这个SDU到满足映射规则的DRB上
注:这点特别像PC上的路由表映射处理,大家可以类比学习。
- 如果映射到的DRB配置了SDAP header,则按照协议6.2.2.3章节构造上行SDAP data PDU
- 否则,按照协议6.2.2.1章节构造上行SDAP data PDU
- 将构造好的上行SDAP data PDU提交给下层(PDCP)
注:如果一个SDAP PDU不满足任何一个QoS流到DRB的映射规则,且对应PDU会话也没有配置默认DRB时,协议没有定义UE该如何处理这个SDAP PDU。
2.2 下行数据传输
一个接受SDAP实体在收到来自下层的SDAP PDU时,应该:
- 如果这个SDAP PDU所在的DRB配置了SDAP头(DRB建立的RRC信令会配置SDAP是否存在的):
-按照协议5.3.2章节进行反射QoS流到DRB的映射的处理
-按照协议5.4章节进行RQI处理
-按照协议6.2.2.2章节,去除SDAP data PDU的头,提取SDAP PDU
- 否则(没哟配置SDAP头):
-按照协议6.2.2.1章节,从SDAP data PDU中提取SDAP PDU
- 将提取出来的SDAP PDU递交给上层
2.3 QoS流到DRB的映射
2.3.1 配置
当RRC为一个上行QoS流配置"QoS流——DRB的映射"规则时,则SDAP实体应该:
- 如果SDAP实体已经建立,且还SDAP实体当前保存的"QoS流——DRB的映射"规则中还没有属于这条QoS流的规则,且存在默认的DRB:
>为这条QoS流构造一个end-marker控制PDU
>将这个end-marker控制PDU映射到默认DRB上
>提交这个end-marker控制PDU到底层(也就是PDCP)
- 如果SDAP实体当前已经存在了这条QoS流的"QoS流——DRB映射"规则,且已经存在的规则映射出来的DRB和新配置规则映射出来的DRB不同,且这条QoS流已经存在的"QoS流——DRB映射"规则对应的DRB是配置为SDAP header存在的,则:
>为这条QoS流构造一个end-marker控制PDU
>将这个end-marker控制PDU映射到这条流已经存在的"QoS流——DRB映射"规则映射出来的DRB上
>提交这个end-marker控制PDU到底层(也就是PDCP)
- 保存RRC配置的这条QoS流的"QoS流——DRB映射"规则
这一段协议写的非常拗口,简直就不是人话,我下面将其转化为人可以理解的话和相关的图示:
如果UE的SDAP实体收到RRC一条QoS流(记为QoSFlow_i)的"QoS流——DRB的映射"规则(记为Rule_k)的配置请求时,SDAP实体要:1)在QoSFLow_i当前传输的DRB上发一个end marker PDU,通知对端QoSFLow_i以后就不会在这条DRB上传了;2)更新和保存Rule_k到SDAP实体的映射规则表中。
当SDAP实体收到RRC释放一个上行QoS流到DRB的映射规则时,SDAP实体应该从其映射规则表中将对应的映射规则删除。
2.3.2 反射映射
主要的处理方式和前面2.3.1描述的差不多,唯一的区别是2.3.1是通过RRC信令配置"QoS流——DRB映射"规则,2.3.2是通过下行数据包的SDAP头推导出上行"QoS流——DRB的映射"规则。
对于收到的每个包头的RDI被设置为1的下行SDAP PDU时,SDAP实体应该:
- 处理SDAP头的QFI字段和确定QoS流
-如果SDAP实体当前保存的QoS流——DRB的映射规则中还没有属于这条QoS流的规则,且存在默认的DRB的话:
>为这条QoS流构造一个end-marker控制PDU
>将这个end-marker控制PDU映射到默认DRB上
>提交这个end-marker控制PDU到底层(也就是PDCP)
注:也就是在默认DRB上通知对端,这条QoS流的数据以后不再从默认DRB传输了
- 如果SDAP实体当前已经存在了这条QoS流的"QoS流——DRB映射"规则,且已经存在的规则映射出来的DRB和新配置规则映射出来的DRB不同,且这条QoS流已经存在的"QoS流——DRB映射"规则对应的DRB是配置为SDAP header存在:
>为这条QoS流构造一个end-marker控制PDU
>将这个end-marker控制PDU映射到这条流已经存在的"QoS流——DRB映射"规则映射出来的DRB上
>提交这个end-marker控制PDU到底层(也就是PDCP)
注:也就是在老映射规则映射的DRB上通知对端,这条QoS流的数据以后不再从这个DRB传输了
- 保存这条通过反射推导出来的"QoS流——DRB映射"规则
2.3.3 DRB释放
当一个DRB释放时,SDAP实体应该删除所有映射到该DRB上的QoS流映射规则。
2.4 RQI处理
每收到RQI为1的下行SDAP PDU时,SDAP实体都要将RQI和QFI报告给NAS层。
3 协议格式、参数
3.1 PDU
SDAP协议单元(PDU)可以分为data PDU和control PDU。
Data PDU用于传输用户面数据。
Control PDU在当前版本[TS37.324 f00]只有一个:
a)End-Marker PDU
UE使用End-Marker PDU通知网络,UE后续停止End-Marker PDU的QFI字段所指的QoS流在这条DRB(传输End-Marker PDU的DRB)上传输。
3.2 PDU的格式
3.2.1 没有SDAP头的 data PDU
3.2.2 有SDAP头的 data PDU(下行)
3.2.3 有SDAP头的 data PDU(上行)
3.2.4 End-Marker Control PDU
3.3 参数定义
字段名称 解释
Data
内容为SDAP SDU,也就是上层的数据内容。
长度:可变
D/C
指示这个SDAP PDU是data PDU还是control PDU。
长度:1bit
0 : Control PDU
1 : Data PDU
QFI
QoS Flow ID,指示这个SDAP PDU属于哪个QoS流。
长度:6 bits
R 保留位,所有保留为都应该置零
RQI
指示SDF到QoS流映射规则的变更是否需要通知NAS层
长度:1 bit
0 : 无动作
1 : 通知NAS
RDI
指示QoS流到DRB的映射规则是否需要更新。
长度:1 bit
0 : 无动作
1 : 保存QoS流到DRB的映射规则
注:对于下行SDAP PDU里的QFI和RQI参数,ngNB是从N3口的GTP-U的包头扩展参数里读出来的;5GS对TS29.281协议进行了扩展,扩展了两个扩展头类型,QoS相关的控制和扩展头“PDU Session Container”(type=1000 0101)【TS29.281 5.2.1】有关,这个扩展头的详细定义见TS38.425。
4 参考
TS37.324
TS29.281 5.2.1章节
TS38.425
标签:QoS,映射,PDU,SDAP,规则,5G,DRB 来源: https://blog.csdn.net/dxpqxb/article/details/121344484