Logo

Linux 内核

6.16.0-rc4

快速搜索

目录

  • 开发流程
  • 提交补丁
  • 行为准则
  • 维护者手册
  • 所有开发流程文档
  • 核心 API
  • 驱动 API
  • 子系统
    • 核心子系统
    • 人机接口
    • 网络接口
      • 网络
      • NetLabel
      • InfiniBand
      • ISDN
      • MHI
    • 存储接口
    • 其他子系统
  • 锁定
  • 许可规则
  • 编写文档
  • 开发工具
  • 测试指南
  • 开发指南
  • 追踪
  • 故障注入
  • 热补丁
  • Rust
  • 管理
  • 构建系统
  • 报告问题
  • 用户空间工具
  • 用户空间 API
  • 固件
  • 固件和设备树
  • CPU 架构
  • 未分类文档
  • 翻译

本页

  • 显示源

Family net-shaper netlink 规范¶

目录

  • Family net-shaper netlink 规范

    • 概述

    • 操作

      • 获取

      • 设置

      • 删除

      • 分组

      • 获取能力

    • 定义

      • 范围

      • 度量单位

    • 属性集

      • 流量整形器

      • 句柄

      • 叶子信息

      • 能力

概述¶

网络硬件限速配置。

此 API 允许在不同级别(队列、网络设备)配置网络设备上可用的硬件流量整形器,并允许对相关整形器的调度树进行任意操作。

每个 @shaper 在给定设备中通过一个 @handle 标识,该 @handle 包含 @scope 和 @id。

根据 @scope 值,整形器可以连接到特定的硬件对象(队列、设备),或者对于 @node 范围,表示一个调度组,可以放置在调度树中的任意位置。

整形器可以通过两种不同的操作创建:@set 操作用于创建和更新单个“附加”整形器,@group 操作用于创建和更新调度组。只有 @group 操作才能创建 @node 范围的整形器。

现有整形器可以通过 @delete 操作进行删除/重置。

用户可以通过 @get 操作查询当前运行的配置。

不同的设备可以提供不同的特性集,例如不支持复杂的调度层次结构,或不支持某些整形参数。用户可以通过 @cap-get 操作检查硬件能力。

操作¶

获取¶

获取给定设备的整形器信息。

属性集:

流量整形器

执行:
前置

net-shaper-nl-pre-doit

后置

net-shaper-nl-post-doit

请求
属性:

[ifindex, handle]

回复
属性:

[ifindex, parent, handle, metric, bw-min, bw-max, burst, priority, weight]

转储:
前置

net-shaper-nl-pre-dumpit

后置

net-shaper-nl-post-dumpit

请求
属性:

[ifindex]

回复
属性:

[ifindex, parent, handle, metric, bw-min, bw-max, burst, priority, weight]

设置¶

创建或更新指定的整形器。设置操作不能用于创建 @node 范围的整形器,请改用 @group 操作。

属性集:

流量整形器

标志:

[admin-perm]

执行:
前置

net-shaper-nl-pre-doit

后置

net-shaper-nl-post-doit

请求
属性:

[ifindex, handle, metric, bw-min, bw-max, burst, priority, weight]

删除¶

清除(移除)指定的整形器。当删除一个 @node 整形器时,将其所有叶子重新连接到被删除节点的父级。如果删除后,父整形器没有更多的叶子且父整形器范围是 @node,则父节点将被递归删除。当删除 @queue 整形器或 @netdev 整形器时,整形器会从层次结构中消失,但队列/设备仍然可以发送流量:它有一个无限带宽的隐式节点。队列的隐式节点会馈送到层次结构根部的隐式轮询节点。

属性集:

流量整形器

标志:

[admin-perm]

执行:
前置

net-shaper-nl-pre-doit

后置

net-shaper-nl-post-doit

请求
属性:

[ifindex, handle]

分组¶

创建或更新一个调度组,将指定的 @leaves 整形器附加到由 @handle 标识的指定节点下。@leaves 整形器的范围必须是 @queue,并且节点整形器的范围必须是 @node 或 @netdev。当节点整形器具有 @node 范围时,如果未指定 @handle @id,则会创建该范围的新整形器,否则指定的节点必须已经存在。当更新现有节点整形器时,指定的 @leaves 会添加到现有节点;该节点也将保留任何预先存在的叶子。新节点整形器的 @parent 句柄默认为所有叶子的父级,前提是所有叶子共享相同的父级。否则必须指定 @parent 句柄。用户可以选择为节点整形器提供整形属性。此操作是原子的,失败时不会对设备整形配置应用任何更改,否则会以回复的形式提供 @node 整形器的完整标识符(包括 @binding 和 @handle)。

属性集:

流量整形器

标志:

[admin-perm]

执行:
前置

net-shaper-nl-pre-doit

后置

net-shaper-nl-post-doit

请求
属性:

[ifindex, parent, handle, metric, bw-min, bw-max, burst, priority, weight, leaves]

回复
属性:

[ifindex, handle]

获取能力¶

获取给定设备在指定范围内支持的整形器能力。

属性集:

能力

执行:
前置

net-shaper-nl-cap-pre-doit

后置

net-shaper-nl-cap-post-doit

请求
属性:

[ifindex, scope]

回复
属性:

[ifindex, scope, support-metric-bps, support-metric-pps, support-nesting, support-bw-min, support-bw-max, support-burst, support-priority, support-weight]

转储:
前置

net-shaper-nl-cap-pre-dumpit

后置

net-shaper-nl-cap-post-dumpit

请求
属性:

[ifindex]

回复
属性:

[ifindex, scope, support-metric-bps, support-metric-pps, support-nesting, support-bw-min, support-bw-max, support-burst, support-priority, support-weight]

定义¶

范围¶

类型:

枚举

文档:

定义整形器 @id 的解释方式。

条目:
未指定:

范围未指定。

网络设备:

给定网络设备的主整形器。

队列:

整形器连接到给定设备的队列,@id 表示队列号。

节点:

整形器允许对队列或其他节点整形器进行分组;可以嵌套在 @netdev 整形器或其他 @node 整形器中,允许放置在调度树的任何位置,除了叶子和根。

度量单位¶

类型:

枚举

文档:

整形器支持的不同度量单位。

条目:
bps:

整形器以比特每秒为单位运行。

pps:

整形器以包每秒为单位运行。

属性集¶

流量整形器¶

句柄(nest)¶

嵌套属性:

句柄

文档:

给定整形器在其所属设备内的唯一标识符。

度量单位(u32)¶

枚举:

度量单位

文档:

给定整形器用于最小带宽、最大带宽和突发量的度量单位。

最小带宽(uint)¶

文档:

给定整形器的保证带宽。

最大带宽(uint)¶

文档:

给定整形器的最大带宽,或0表示无限制。

突发量(uint)¶

文档:

整形的最大突发量。不应解释为量子。

优先级(u32)¶

文档:

给定整形器的调度优先级。优先级调度应用于同级整形器。

权重(u32)¶

文档:

给定整形器进行轮询调度的相对权重。该调度应用于所有具有相同优先级的同级整形器。

接口索引(u32)¶

文档:

拥有指定整形器的接口索引。

父级(nest)¶

嵌套属性:

句柄

文档:

受影响整形器的父级标识符。仅在 @group 操作中需要。

叶子(nest)¶

多属性:

真

嵌套属性:

叶子信息

文档:

描述 @group 操作的叶子整形器集。

句柄¶

范围(u32)¶

枚举:

范围

文档:

定义整形器 @id 的解释方式。

ID(u32)¶

文档:

整形器的数字标识符。ID的语义取决于范围。对于 @queue 范围,它是队列ID;对于 @node 范围,它是节点标识符。

叶子信息¶

句柄¶

优先级¶

权重¶

能力¶

接口索引(u32)¶

文档:

查询整形器能力的接口索引。

范围(u32)¶

枚举:

范围

文档:

查询的能力所适用的范围。

支持比特每秒度量单位(flag)¶

文档:

设备接受“bps”作为最小带宽、最大带宽和突发量的度量单位。

支持包每秒度量单位(flag)¶

文档:

设备接受“pps”作为最小带宽、最大带宽和突发量的度量单位。

支持嵌套(flag)¶

文档:

设备支持将属于此范围的整形器嵌套在“节点”范围的整形器下方。只有“队列”和“节点”范围可以具有“支持嵌套”标志。

支持最小带宽(flag)¶

文档:

设备支持最小保证带宽。

支持最大带宽(flag)¶

文档:

设备支持最大带宽整形。

支持突发量(flag)¶

文档:

设备支持最大突发量。

支持优先级(flag)¶

文档:

设备支持优先级调度。

支持权重(flag)¶

文档:

设备支持加权轮询调度。

©内核开发社区。 | 由 Sphinx 5.3.0 & Alabaster 0.7.16 驱动 | 页面源