|
| 1 | +.. include:: ../disclaimer-zh_CN.rst |
| 2 | + |
| 3 | +:Original: Documentation/infiniband/opa_vnic.rst |
| 4 | + |
| 5 | +:翻译: |
| 6 | + |
| 7 | + 司延腾 Yanteng Si < [email protected]> |
| 8 | + |
| 9 | +:校译: |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | +.. _cn_infiniband_opa_vnic: |
| 15 | + |
| 16 | +============================================= |
| 17 | +英特尔全路径(OPA)虚拟网络接口控制器(VNIC) |
| 18 | +============================================= |
| 19 | + |
| 20 | +英特尔全路径(OPA)虚拟网络接口控制器(VNIC)功能通过封装HFI节点之间的以 |
| 21 | +太网数据包,支持Omni-Path结构上的以太网功能。 |
| 22 | + |
| 23 | +体系结构 |
| 24 | +======== |
| 25 | + |
| 26 | +Omni-Path封装的以太网数据包的交换模式涉及Omni-Path结构拓扑上覆盖的一个或 |
| 27 | +多个虚拟以太网交换机。Omni-Path结构上的HFI节点的一个子集被允许在特定的虚 |
| 28 | +拟以太网交换机上交换封装的以太网数据包。虚拟以太网交换机是通过配置结构上的 |
| 29 | +HFI节点实现的逻辑抽象,用于生成和处理报头。在最简单的配置中,整个结构的所有 |
| 30 | +HFI节点通过一个虚拟以太网交换机交换封装的以太网数据包。一个虚拟以太网交换机, |
| 31 | +实际上是一个独立的以太网网络。该配置由以太网管理器(EM)执行,它是可信的结 |
| 32 | +构管理器(FM)应用程序的一部分。HFI节点可以有多个VNIC,每个连接到不同的虚 |
| 33 | +拟以太网交换机。下图介绍了两个虚拟以太网交换机与两个HFI节点的情况:: |
| 34 | + |
| 35 | + +-------------------+ |
| 36 | + | 子网/ | |
| 37 | + | 以太网 | |
| 38 | + | 管理 | |
| 39 | + +-------------------+ |
| 40 | + / / |
| 41 | + / / |
| 42 | + / / |
| 43 | + / / |
| 44 | + +-----------------------------+ +------------------------------+ |
| 45 | + | 虚拟以太网切换 | | 虚拟以太网切换 | |
| 46 | + | +---------+ +---------+ | | +---------+ +---------+ | |
| 47 | + | | VPORT | | VPORT | | | | VPORT | | VPORT | | |
| 48 | + +--+---------+----+---------+-+ +-+---------+----+---------+---+ |
| 49 | + | \ / | |
| 50 | + | \ / | |
| 51 | + | \/ | |
| 52 | + | / \ | |
| 53 | + | / \ | |
| 54 | + +-----------+------------+ +-----------+------------+ |
| 55 | + | VNIC | VNIC | | VNIC | VNIC | |
| 56 | + +-----------+------------+ +-----------+------------+ |
| 57 | + | HFI | | HFI | |
| 58 | + +------------------------+ +------------------------+ |
| 59 | + |
| 60 | + |
| 61 | +Omni-Path封装的以太网数据包格式如下所述。 |
| 62 | + |
| 63 | +==================== ================================ |
| 64 | +位 域 |
| 65 | +==================== ================================ |
| 66 | +Quad Word 0: |
| 67 | +0-19 SLID (低20位) |
| 68 | +20-30 长度 (以四字为单位) |
| 69 | +31 BECN 位 |
| 70 | +32-51 DLID (低20位) |
| 71 | +52-56 SC (服务级别) |
| 72 | +57-59 RC (路由控制) |
| 73 | +60 FECN 位 |
| 74 | +61-62 L2 (=10, 16B 格式) |
| 75 | +63 LT (=1, 链路传输头 Flit) |
| 76 | + |
| 77 | +Quad Word 1: |
| 78 | +0-7 L4 type (=0x78 ETHERNET) |
| 79 | +8-11 SLID[23:20] |
| 80 | +12-15 DLID[23:20] |
| 81 | +16-31 PKEY |
| 82 | +32-47 熵 |
| 83 | +48-63 保留 |
| 84 | + |
| 85 | +Quad Word 2: |
| 86 | +0-15 保留 |
| 87 | +16-31 L4 头 |
| 88 | +32-63 以太网数据包 |
| 89 | + |
| 90 | +Quad Words 3 to N-1: |
| 91 | +0-63 以太网数据包 (pad拓展) |
| 92 | + |
| 93 | +Quad Word N (last): |
| 94 | +0-23 以太网数据包 (pad拓展) |
| 95 | +24-55 ICRC |
| 96 | +56-61 尾 |
| 97 | +62-63 LT (=01, 链路传输尾 Flit) |
| 98 | +==================== ================================ |
| 99 | + |
| 100 | +以太网数据包在传输端被填充,以确保VNIC OPA数据包是四字对齐的。“尾”字段 |
| 101 | +包含填充的字节数。在接收端,“尾”字段被读取,在将数据包向上传递到网络堆 |
| 102 | +栈之前,填充物被移除(与ICRC、尾和OPA头一起)。 |
| 103 | + |
| 104 | +L4头字段包含VNIC端口所属的虚拟以太网交换机ID。在接收端,该字段用于将收 |
| 105 | +到的VNIC数据包去多路复用到不同的VNIC端口。 |
| 106 | + |
| 107 | +驱动设计 |
| 108 | +======== |
| 109 | + |
| 110 | +英特尔OPA VNIC的软件设计如下图所示。OPA VNIC功能有一个依赖于硬件的部分 |
| 111 | +和一个独立于硬件的部分。 |
| 112 | + |
| 113 | +对IB设备分配和释放RDMA netdev设备的支持已经被加入。RDMA netdev支持与 |
| 114 | +网络堆栈的对接,从而创建标准的网络接口。OPA_VNIC是一个RDMA netdev设备 |
| 115 | +类型。 |
| 116 | + |
| 117 | +依赖于HW的VNIC功能是HFI1驱动的一部分。它实现了分配和释放OPA_VNIC RDMA |
| 118 | +netdev的动作。它涉及VNIC功能的HW资源分配/管理。它与网络堆栈接口并实现所 |
| 119 | +需的net_device_ops功能。它在传输路径中期待Omni-Path封装的以太网数据包, |
| 120 | +并提供对它们的HW访问。在将数据包向上传递到网络堆栈之前,它把Omni-Path头 |
| 121 | +从接收的数据包中剥离。它还实现了RDMA netdev控制操作。 |
| 122 | + |
| 123 | +OPA VNIC模块实现了独立于硬件的VNIC功能。它由两部分组成。VNIC以太网管理 |
| 124 | +代理(VEMA)作为一个IB客户端向IB核心注册,并与IB MAD栈接口。它与以太网 |
| 125 | +管理器(EM)和VNIC netdev交换管理信息。VNIC netdev部分分配和释放OPA_VNIC |
| 126 | +RDMA netdev设备。它在需要时覆盖由依赖HW的VNIC驱动设置的net_device_ops函数, |
| 127 | +以适应任何控制操作。它还处理以太网数据包的封装,在传输路径中使用Omni-Path头。 |
| 128 | +对于每个VNIC接口,封装所需的信息是由EM通过VEMA MAD接口配置的。它还通过调用 |
| 129 | +RDMA netdev控制操作将任何控制信息传递给依赖于HW的驱动程序:: |
| 130 | + |
| 131 | + +-------------------+ +----------------------+ |
| 132 | + | | | Linux | |
| 133 | + | IB MAD | | 网络 | |
| 134 | + | | | 栈 | |
| 135 | + +-------------------+ +----------------------+ |
| 136 | + | | | |
| 137 | + | | | |
| 138 | + +----------------------------+ | |
| 139 | + | | | |
| 140 | + | OPA VNIC 模块 | | |
| 141 | + | (OPA VNIC RDMA Netdev | | |
| 142 | + | & EMA 函数) | | |
| 143 | + | | | |
| 144 | + +----------------------------+ | |
| 145 | + | | |
| 146 | + | | |
| 147 | + +------------------+ | |
| 148 | + | IB 核心 | | |
| 149 | + +------------------+ | |
| 150 | + | | |
| 151 | + | | |
| 152 | + +--------------------------------------------+ |
| 153 | + | | |
| 154 | + | HFI1 驱动和 VNIC 支持 | |
| 155 | + | | |
| 156 | + +--------------------------------------------+ |
0 commit comments