mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
7.2 KiB
156 lines
7.2 KiB
.. include:: ../disclaimer-zh_CN.rst |
|
|
|
:Original: Documentation/infiniband/opa_vnic.rst |
|
|
|
:翻译: |
|
|
|
司延腾 Yanteng Si <[email protected]> |
|
|
|
:校译: |
|
|
|
王普宇 Puyu Wang <[email protected]> |
|
时奎亮 Alex Shi <[email protected]> |
|
|
|
.. _cn_infiniband_opa_vnic: |
|
|
|
============================================= |
|
英特尔全路径(OPA)虚拟网络接口控制器(VNIC) |
|
============================================= |
|
|
|
英特尔全路径(OPA)虚拟网络接口控制器(VNIC)功能通过封装HFI节点之间的以 |
|
太网数据包,支持Omni-Path结构上的以太网功能。 |
|
|
|
体系结构 |
|
======== |
|
|
|
Omni-Path封装的以太网数据包的交换模式涉及Omni-Path结构拓扑上覆盖的一个或 |
|
多个虚拟以太网交换机。Omni-Path结构上的HFI节点的一个子集被允许在特定的虚 |
|
拟以太网交换机上交换封装的以太网数据包。虚拟以太网交换机是通过配置结构上的 |
|
HFI节点实现的逻辑抽象,用于生成和处理报头。在最简单的配置中,整个结构的所有 |
|
HFI节点通过一个虚拟以太网交换机交换封装的以太网数据包。一个虚拟以太网交换机, |
|
实际上是一个独立的以太网网络。该配置由以太网管理器(EM)执行,它是可信的结 |
|
构管理器(FM)应用程序的一部分。HFI节点可以有多个VNIC,每个连接到不同的虚 |
|
拟以太网交换机。下图介绍了两个虚拟以太网交换机与两个HFI节点的情况:: |
|
|
|
+-------------------+ |
|
| 子网/ | |
|
| 以太网 | |
|
| 管理 | |
|
+-------------------+ |
|
/ / |
|
/ / |
|
/ / |
|
/ / |
|
+-----------------------------+ +------------------------------+ |
|
| 虚拟以太网切换 | | 虚拟以太网切换 | |
|
| +---------+ +---------+ | | +---------+ +---------+ | |
|
| | VPORT | | VPORT | | | | VPORT | | VPORT | | |
|
+--+---------+----+---------+-+ +-+---------+----+---------+---+ |
|
| \ / | |
|
| \ / | |
|
| \/ | |
|
| / \ | |
|
| / \ | |
|
+-----------+------------+ +-----------+------------+ |
|
| VNIC | VNIC | | VNIC | VNIC | |
|
+-----------+------------+ +-----------+------------+ |
|
| HFI | | HFI | |
|
+------------------------+ +------------------------+ |
|
|
|
|
|
Omni-Path封装的以太网数据包格式如下所述。 |
|
|
|
==================== ================================ |
|
位 域 |
|
==================== ================================ |
|
Quad Word 0: |
|
0-19 SLID (低20位) |
|
20-30 长度 (以四字为单位) |
|
31 BECN 位 |
|
32-51 DLID (低20位) |
|
52-56 SC (服务级别) |
|
57-59 RC (路由控制) |
|
60 FECN 位 |
|
61-62 L2 (=10, 16B 格式) |
|
63 LT (=1, 链路传输头 Flit) |
|
|
|
Quad Word 1: |
|
0-7 L4 type (=0x78 ETHERNET) |
|
8-11 SLID[23:20] |
|
12-15 DLID[23:20] |
|
16-31 PKEY |
|
32-47 熵 |
|
48-63 保留 |
|
|
|
Quad Word 2: |
|
0-15 保留 |
|
16-31 L4 头 |
|
32-63 以太网数据包 |
|
|
|
Quad Words 3 to N-1: |
|
0-63 以太网数据包 (pad拓展) |
|
|
|
Quad Word N (last): |
|
0-23 以太网数据包 (pad拓展) |
|
24-55 ICRC |
|
56-61 尾 |
|
62-63 LT (=01, 链路传输尾 Flit) |
|
==================== ================================ |
|
|
|
以太网数据包在传输端被填充,以确保VNIC OPA数据包是四字对齐的。“尾”字段 |
|
包含填充的字节数。在接收端,“尾”字段被读取,在将数据包向上传递到网络堆 |
|
栈之前,填充物被移除(与ICRC、尾和OPA头一起)。 |
|
|
|
L4头字段包含VNIC端口所属的虚拟以太网交换机ID。在接收端,该字段用于将收 |
|
到的VNIC数据包去多路复用到不同的VNIC端口。 |
|
|
|
驱动设计 |
|
======== |
|
|
|
英特尔OPA VNIC的软件设计如下图所示。OPA VNIC功能有一个依赖于硬件的部分 |
|
和一个独立于硬件的部分。 |
|
|
|
对IB设备分配和释放RDMA netdev设备的支持已经被加入。RDMA netdev支持与 |
|
网络堆栈的对接,从而创建标准的网络接口。OPA_VNIC是一个RDMA netdev设备 |
|
类型。 |
|
|
|
依赖于HW的VNIC功能是HFI1驱动的一部分。它实现了分配和释放OPA_VNIC RDMA |
|
netdev的动作。它涉及VNIC功能的HW资源分配/管理。它与网络堆栈接口并实现所 |
|
需的net_device_ops功能。它在传输路径中期待Omni-Path封装的以太网数据包, |
|
并提供对它们的HW访问。在将数据包向上传递到网络堆栈之前,它把Omni-Path头 |
|
从接收的数据包中剥离。它还实现了RDMA netdev控制操作。 |
|
|
|
OPA VNIC模块实现了独立于硬件的VNIC功能。它由两部分组成。VNIC以太网管理 |
|
代理(VEMA)作为一个IB客户端向IB核心注册,并与IB MAD栈接口。它与以太网 |
|
管理器(EM)和VNIC netdev交换管理信息。VNIC netdev部分分配和释放OPA_VNIC |
|
RDMA netdev设备。它在需要时覆盖由依赖HW的VNIC驱动设置的net_device_ops函数, |
|
以适应任何控制操作。它还处理以太网数据包的封装,在传输路径中使用Omni-Path头。 |
|
对于每个VNIC接口,封装所需的信息是由EM通过VEMA MAD接口配置的。它还通过调用 |
|
RDMA netdev控制操作将任何控制信息传递给依赖于HW的驱动程序:: |
|
|
|
+-------------------+ +----------------------+ |
|
| | | Linux | |
|
| IB MAD | | 网络 | |
|
| | | 栈 | |
|
+-------------------+ +----------------------+ |
|
| | | |
|
| | | |
|
+----------------------------+ | |
|
| | | |
|
| OPA VNIC 模块 | | |
|
| (OPA VNIC RDMA Netdev | | |
|
| & EMA 函数) | | |
|
| | | |
|
+----------------------------+ | |
|
| | |
|
| | |
|
+------------------+ | |
|
| IB 核心 | | |
|
+------------------+ | |
|
| | |
|
| | |
|
+--------------------------------------------+ |
|
| | |
|
| HFI1 驱动和 VNIC 支持 | |
|
| | |
|
+--------------------------------------------+
|
|
|