Devlink 線卡¶
背景¶
devlink-linecard 機制旨在操作用作模組化交換機系統的可拆卸 PHY 模組的線卡。 提供以下操作
獲取支援的線卡型別列表。
為插槽配置特定線卡型別。
獲取和監視線卡狀態及其更改。
根據型別,線卡可能包含一個或多個齒輪箱,以將具有特定速度的通道與具有不同速度通道的多個埠進行多路複用。 線卡確保交換機 ASIC 模組和物理前面板埠之間的 N:M 對映。
概述¶
每個線卡 devlink 物件都由裝置驅動程式根據裝置上可用的物理線卡插槽建立。
類似於分線器電纜,裝置可能無法檢測分線器電纜的幾何形狀,裝置可能也無法檢測線卡型別。 對於這些裝置,引入了配置的概念。 它允許使用者
使用特定線卡型別配置線卡插槽
裝置驅動程式將指示 ASIC 相應地準備所有資源。 裝置驅動程式將根據線卡型別建立所有例項,即駐留在該線卡上的 devlink 埠和網路裝置
即使在未物理連線或通電的情況下,也可以操作線卡實體
線上卡埠上設定分線器電纜
與普通埠一樣,使用者可以配置某種型別的分線器電纜,而無需物理連線到埠
配置 devlink 埠和網路裝置
網路裝置載波決定如下
線卡未插入或斷電
載波始終斷開
線卡已插入並通電
載波的決定與普通埠網路裝置相同
線卡狀態¶
devlink-linecard 機制支援以下線卡狀態
unprovisioned:線卡未在插槽上配置。
unprovisioning:線卡插槽當前正在取消配置。
provisioning:線卡插槽當前正在配置線卡型別。
provisioning_failed:配置不成功。
provisioned:線卡插槽已配置型別。
active:線卡已通電並處於活動狀態。
下圖提供了 devlink-linecard 狀態轉換的一般概述
+-------------------------+
| |
+----------------------------------> unprovisioned |
| | |
| +--------|-------^--------+
| | |
| | |
| +--------v-------|--------+
| | |
| | provisioning |
| | |
| +------------|------------+
| |
| +-----------------------------+
| | |
| +------------v------------+ +------------v------------+ +-------------------------+
| | | | ----> |
+----- provisioning_failed | | provisioned | | active |
| | | | <---- |
| +------------^------------+ +------------|------------+ +-------------------------+
| | |
| | |
| | +------------v------------+
| | | |
| | | unprovisioning |
| | | |
| | +------------|------------+
| | |
| +-----------------------------+
| |
+-----------------------------------------------+
示例用法¶
$ devlink lc show [ DEV [ lc LC_INDEX ] ]
$ devlink lc set DEV lc LC_INDEX [ { type LC_TYPE | notype } ]
# Show current line card configuration and status for all slots:
$ devlink lc
# Set slot 8 to be provisioned with type "16x100G":
$ devlink lc set pci/0000:01:00.0 lc 8 type 16x100G
# Set slot 8 to be unprovisioned:
$ devlink lc set pci/0000:01:00.0 lc 8 notype