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

流量类仲裁器(SCHED_NODE_TYPE_TC_ARBITER_TSAR) 和 SCHED_NODE_TYPE_RATE_LIMITER

在 Mellanox mlx5 驱动的 E-Switch QoS 体系中,SCHED_NODE_TYPE_TC_ARBITER_TSARSCHED_NODE_TYPE_RATE_LIMITER 是两种不同的调度节点类型,它们在功能和作用上有显著区别。


1. 流量类仲裁器(SCHED_NODE_TYPE_TC_ARBITER_TSAR)

  • 定义
    • 表示流量类(Traffic Class, TC)的仲裁器节点,负责管理和调度多个流量类之间的资源分配。
  • 功能
    • 仲裁调度:基于优先级或权重,在多个流量类之间分配带宽。
    • 层次结构:通常位于 QoS 层次结构的较高层,用于协调子节点(如速率限制器或虚拟端口)的行为。
  • 应用场景
    • 用于管理多个流量类别(TC),例如区分不同优先级的流量(如控制流量、数据流量等)。

2. 速率限制器(SCHED_NODE_TYPE_RATE_LIMITER)

  • 定义
    • 表示速率限制器节点,负责对特定流量进行带宽限制。
  • 功能
    • 流量整形:通过限制带宽,确保流量不会超过设定的速率。
    • 精细化控制:通常用于具体的虚拟端口或流,以实现更细粒度的 QoS 管理。
  • 应用场景
    • 用于限制单个 vport 或特定流的最大带宽。

3. 新父节点和原父节点为 SCHED_NODE_TYPE_TC_ARBITER_TSAR 的区别

当新父节点和原父节点都为 SCHED_NODE_TYPE_TC_ARBITER_TSAR 时,其主要区别在于它们可能属于不同的层次或表示不同的仲裁策略。例如:

  • 新旧父节点可能位于不同的 QoS 层次
    • 原父节点可能是一个更高层次的仲裁器,新父节点是一个更细化的仲裁器。
  • 仲裁策略可能不同
    • 新父节点可能具有不同的优先级或权重配置,从而影响 vport 的资源分配。

尽管它们类型相同,但切换到新父节点可能意味着 QoS 配置发生了变化,需要重新调整 vport 的 QoS 类型。


4. 当前 vport 的 QoS 类型设置

根据代码逻辑,当前 vport 的 QoS 类型取决于新旧父节点类型以及默认设置:

  1. 如果新父节点为 SCHED_NODE_TYPE_TC_ARBITER_TSAR

    • 当前 vport 的 QoS 类型设置为 SCHED_NODE_TYPE_RATE_LIMITER
      (因为挂载到 TC 仲裁器时,vport 通常需要速率限制器来控制其带宽。)
  2. 如果原父节点为 SCHED_NODE_TYPE_TC_ARBITER_TSAR 而新父节点不是:

    • 当前 vport 的 QoS 类型设置为 SCHED_NODE_TYPE_VPORT
      (因为从 TC 仲裁器切换到其他类型时,不再需要速率限制,而是直接作为虚拟端口处理。)
  3. 如果新旧父节点都不是 SCHED_NODE_TYPE_TC_ARBITER_TSAR

    • 当前 vport 的 QoS 类型保持不变,即继续使用 vport->qos.sched_node->type

总结

  • SCHED_NODE_TYPE_TC_ARBITER_TSAR 是用于管理多个流量类别的仲裁器,而 SCHED_NODE_TYPE_RATE_LIMITER 是用于具体限制带宽的工具。
  • 当新旧父节点均为 TC_ARBITER_TSAR 时,差异可能体现在层次结构或配置策略上。
  • 当前 vport 的 QoS 类型根据新旧父节点类型动态调整,以确保 QoS 配置与新的调度环境一致。

相关文章:

  • Java GC 基础知识快速回顾
  • Dockerfile 编写推荐
  • 前端(JS进阶)学习笔记(CLASS 2):构造函数数据常用函数
  • 1.10. 引用及内部可变性(简单回顾):引用、内部可变性、`Cell`类型及相关操作
  • 2.4.2 常量的定义与使用
  • Python怎样引用其他.py文件?怎样导入其他模块?
  • DeepSeek核心算法解析:如何打造比肩ChatGPT的国产大模型
  • 150,[5] BUUCTF WEB [BJDCTF2020]EasySearch
  • 【update 更新数据语法合集】.NET开源ORM框架 SqlSugar 系列
  • Mac Golang 开发环境配置
  • Python 模块加载机制导致的问题
  • 146,[1] BUUCTF WEB [SWPU2019]Web1
  • Python的imutils库详细介绍
  • Linux(socket网络编程)UDP---初学
  • nacos学习笔记
  • DeepSeek-R1:通过强化学习激励大型语言模型的推理能力
  • 【LeetCode】3.无重复字符的最长字串
  • Qt中基于开源库QRencode生成二维码(附工程源码链接)
  • Mac 开发工具推荐
  • 《云原生安全攻防》-- K8s镜像安全:镜像全生命周期安全管理
  • 专家:家长要以身作则,孩子是模仿者学习者有时也是评判者
  • 张广智︱“编年事辑”:打开学人心路历程的窗户
  • 微软宣布全球裁员约3%:涉及约6000人,侧重经理层
  • 昆明警方重拳打击经济领域违法犯罪:去年抓获905名嫌犯
  • 冰雹造成车损能赔吗?如何理赔?机构答疑
  • 菲律宾中期选举初步结果出炉,杜特尔特家族多人赢得地方选举