ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

5G——SDAP层

2021-11-15 22:03:10  阅读:363  来源: 互联网

标签:QoS 映射 PDU SDAP 规则 5G DRB


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有