鲲鹏社区首页
EN
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

RDMA UCC开放编程

应用场景

RDMA UCC开放编程支持外部开发者可以基于华为标卡的RDMA业务进行扩展,将客户自有的RDMA拥塞控制算法嵌入到华为标卡的RDMA主流程中,用户通过修改配置文件的方式切换至自定义的拥塞控制算法。

实现原理

拥塞控制算法的工作原理如图1所示。

图1 拥塞控制算法原理
  • RP端:表示Reaction Point,作为数据发送端,同时也是拥塞控制算法的响应端。
  • NP端:表示Notify Point,作为数据接收端,同时也是拥塞控制算法的通知端。

RDMA UCC编程框架支持用户自定义拥塞控制算法,UCC编程框架支持窗口类和速率类算法。

  • 窗口类算法:UCC编程框架支持窗口探测机制,通过事件上下文提供给用户,为用户提供窗口探测的信息,用于用户实现窗口类拥塞控制算法。FlexDA编程框架Demo程序,提供窗口类算法LDCP的示例代码。
  • 速率类算法:UCC编程框架支持定制业界主流的速率类算法。FlexDA编程框架Demo程序,提供速率类算法DCQCN的示例代码。

拥塞检测:目前主流的拥塞检测方式有ECN(依赖交换机辅助)、RTT(依赖硬件辅助)。

图2 拥塞算法流程
  • UCC编程框架管理面

    RoCE驱动通过系统文件,为用户自定义拥塞算法提供配置接口。

    • 用户通过接口使能自定义拥塞算法
    • 用户通过接口配置自定义拥塞算法参数
    • 用户通过接口配置算法流控类型
    • 用户通过接口配置算法是否关注CNP报文
  • UCC编程框架

    基于RoCE流程实现UCC编程框架,UCC编程框架对接RoCE基础协议,封装拥塞控制协议,承载拥塞控制算子。

    UCC框架与算子间有两个方向的工作流:

    • UCC编程框架向算法方向:提供事件、提供LIB API、提供可操作空间,这些作为给算法开发人员的输入。
    • 算法向UCC编程框架方向:提供窗口或者速率,UCC编程框架根据窗口或速率值对报文发送限速。