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

UECC-UE连接协调的运作方式

文章目录

    • UECC 基础概念与核心原则
      • 什么是 UECC?
      • 核心原则
    • UE 任务详解
      • 任务定义
      • 任务组成要素
    • 特殊任务类型:透明 UE 任务
      • 核心特性
      • 启用方式
      • 执行机制
    • UECC 完整操作流程(3/3)
      • 基础信号交互(1/3)
      • 订阅与转发机制(2/3)
      • ueTaskInitInd
      • expectedMsgList
      • expectedMsgInd
    • 队列查询与消息转发(3/3)
      • forwardMsgInd
      • isTaskReqInQueue()
    • 任务调度与队列管理实例
      • 1. 无优先级调度场景
      • 2. 优先级调度场景
      • 3. 任务订阅场景
      • 4. 透明任务与普通任务并行场景
    • 架构协作流程(以 UE 接入为例)

UECC 基础概念与核心原则

什么是 UECC?

UECC 全称UE Connection Coordination(UE 连接协调),是 UEH(UE Handling,UE 处理)架构中负责任务管理的核心模块。它的本质是一个任务队列框架,通过协调 UE层面的各类任务,确保相互冲突的流程不会并行执行。

核心原则

所有 UE 层面的活动必须通过 UECC 发起
核心目标:

  1. 阻止不可交互的流程并行运行(比如E-RAB建立和释放)。
  2. 以 UE 任务为基本管理单位,通过队列机制实现有序调度。

UE 任务详解

任务定义

UE 任务是指为响应特定事件而执行的一系列操作,触发场景包括:
接收 RBS(Radio Base Station,无线基站)节点外部消息(如 RRC 连接请求)

RBS 节点内部事件(如超时、传输失败)

任务组成要素

  1. 任务名称(Task Name)
  2. 任务驱动者(Task Driver)
  3. 优先级(Priority)
  4. 重复处理策略------- >>>
    保留最后一个(Keep Last):仅保留最新任务
    保留第一个(Keep First):仅保留最早任务
    全部保留(Keep All):默认方式,所有任务入队
  5. 任务数据(Task Data)

特殊任务类型:透明 UE 任务

核心特性

可与其他任务并行执行,无需协调
运行时间原子化(操作不会被中断所需要的时间)
禁止修改任何 UE 相关数据(如 UE 上下文)

启用方式

优先级类别设为UEH_UE_PRIORITY_CLASS_TRANSPARENT

通过任务属性明确指定为透明任务

执行机制

由ueTaskInitInd信号触发(区别于普通任务的ueTaskInitReq)
独立于主线程运行,不阻塞其他任务队列

UECC 完整操作流程(3/3)

基础信号交互(1/3)

ueTaskRequestInd
发送方:任务请求者
接收方:UECC
作用:将新任务加入 UECC 队列(Class B 向 UECC 提交 TaskA)

ueTaskInitReq
发送方:UECC
接收方:任务驱动者
作用:启动队列中首个任务或上一任务指定的下一个任务。任务执行期间,新任务会被暂存队列,直到收到ueTaskInitCfm信号才视为完成。

ueTaskInitCfm
发送方:任务驱动者
接收方:UECC
作用:确认任务完成,可指定下一执行任务(实现任务顺序控制)

订阅与转发机制(2/3)

ueTaskInitInd

发送方:UECC
接收方:透明任务的驱动者
作用:启动透明任务

expectedMsgList

用途:正在执行的任务通过该列表订阅特定任务
规则:新订阅任务直接转发给订阅者;已在队列的订阅任务不转发
如:Class A->通过ueCtxtData->UECC

expectedMsgInd

发送方:订阅任务的类(如 Class A)
接收方:UECC
作用:立即请求队列中已存在的订阅任务,UECC 通过forwardMsgInd转发并从队列移除该任务

队列查询与消息转发(3/3)

forwardMsgInd

发送方:UECC
接收方:订阅任务的类
作用:将新加入队列的订阅任务转发给订阅者

isTaskReqInQueue()

调用方:正在执行的任务(如 Class B)
作用:查询特定任务是否在队列中
特点:查询不影响任务状态,被查询任务仍保留在队列

任务调度与队列管理实例

1. 无优先级调度场景

当无任务运行时,新任务(如 TaskA)直接启动
流程:ueTaskRequestInd(提交 TaskA)→ ueTaskInitReq(启动 TaskA)→ ueTaskInitCfm(TaskA 完成)

2. 优先级调度场景

当 TaskB 正在执行时,TaskA 和 TaskC 先后入队,若 TaskC 优先级高于 TaskA:
流程:TaskB 运行→ TaskA 入队→ TaskC 入队→ TaskB 完成→ ueTaskInitReq(启动 TaskC)→ TaskC 完成→ ueTaskInitReq(启动 TaskA)

3. 任务订阅场景

Class B 执行 TaskB 时,通过expectedMsgList订阅 TaskA
当 TaskA 提交后,UECC 通过forwardMsgInd直接转发给 Class B
Class B 完成后,可通过ueTaskInitCfm指定启动 TaskA

4. 透明任务与普通任务并行场景

Class B 执行 TaskB 时,同时订阅普通任务 TaskA 和透明任务 TaskD
TaskD 提交后,UECC 通过ueTaskInitInd启动(与 TaskB 并行)
TaskA 提交后,UECC 通过forwardMsgInd转发给 Class B

架构协作流程(以 UE 接入为例)

UE 发送 RRC 连接请求(触发 Task)

UECC 接收ueTaskRequestInd,将任务入队

启动任务后,通过ueTaskInitReq通知 RRC 模块

完成 RRC 连接后,发送ueTaskInitCfm给 UECC

UECC 调度下一任务(如 E-RAB 建立)

http://www.lryc.cn/news/584369.html

相关文章:

  • 【会员专享数据】2013-2024年我国省市县三级逐月SO₂数值数据(Shp/Excel格式)
  • 2025年最新Python+Playwright自动化测试- 隐藏元素定位与操作
  • DSP的基础平台搭建
  • 24、企业设备清单管理(Equipment)详解:从分类到管理,设备全生命周期把控
  • 虚拟环境已安装该包,且已激活,但报错
  • 介绍 cnpm exec electron-packager
  • Apache http 强制 https
  • Qt使用脚本实现GUI扩展技术详解
  • Android View 绘制流程 优化 (Bitmap 复用+内容变化检测+防抖调度策略)
  • Canny边缘检测(cv2.Canny())
  • 2025年语言处理、大数据与人机交互国际会议(DHCI 2025)
  • MD5有什么特点吗
  • Linux入门篇学习——Linux 工具之 make 工具和 makefile 文件
  • fastMCP基础(一)
  • 如何将多个.sql文件合并成一个:Windows和Linux/Mac详细指南
  • STM32F103C8T6驱动无源蜂鸣器详解:从硬件设计到音乐播放
  • 【研报复现】方正金工:(1)适度冒险 因子
  • Boost.Asio学习(3):异步读写
  • Pytest之收集用例规则与运行指定用例
  • 读取按键的四种方式
  • Thrust库介绍与使用
  • AI进校园:北京中小学9月起开设AI通识课,每学年不少于8课时
  • 【PTA数据结构 | C语言版】链式栈的3个操作
  • AI 对话实现打字机效果 Vue3 setup
  • SEO算法更新应对:5大实战案例与优化策略
  • 力扣刷题记录(c++)06
  • The 2023 ICPC Asia Hangzhou Regional Contest(G. Snake Move(最短路))
  • Map容器用map优化程序
  • 《一起出发,“春”不“晚”》特别行动踏梦武当,探寻新春奇境
  • 动态规划疑惑总结