cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

opa_vnic.rst (7327B)


      1.. include:: ../disclaimer-zh_CN.rst
      2
      3:Original: Documentation/infiniband/opa_vnic.rst
      4
      5:翻译:
      6
      7 司延腾 Yanteng Si <siyanteng@loongson.cn>
      8
      9:校译:
     10
     11 王普宇 Puyu Wang <realpuyuwang@gmail.com>
     12 时奎亮 Alex Shi <alexs@kernel.org>
     13
     14.. _cn_infiniband_opa_vnic:
     15
     16=============================================
     17英特尔全路径(OPA)虚拟网络接口控制器(VNIC)
     18=============================================
     19
     20英特尔全路径(OPA)虚拟网络接口控制器(VNIC)功能通过封装HFI节点之间的以
     21太网数据包,支持Omni-Path结构上的以太网功能。
     22
     23体系结构
     24========
     25
     26Omni-Path封装的以太网数据包的交换模式涉及Omni-Path结构拓扑上覆盖的一个或
     27多个虚拟以太网交换机。Omni-Path结构上的HFI节点的一个子集被允许在特定的虚
     28拟以太网交换机上交换封装的以太网数据包。虚拟以太网交换机是通过配置结构上的
     29HFI节点实现的逻辑抽象,用于生成和处理报头。在最简单的配置中,整个结构的所有
     30HFI节点通过一个虚拟以太网交换机交换封装的以太网数据包。一个虚拟以太网交换机,
     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
     61Omni-Path封装的以太网数据包格式如下所述。
     62
     63==================== ================================
     64位                   域
     65==================== ================================
     66Quad Word 0:
     670-19                 SLID (低20位)
     6820-30                长度 (以四字为单位)
     6931                   BECN 位
     7032-51                DLID (低20位)
     7152-56                SC (服务级别)
     7257-59                RC (路由控制)
     7360                   FECN 位
     7461-62                L2 (=10, 16B 格式)
     7563                   LT (=1, 链路传输头 Flit)
     76
     77Quad Word 1:
     780-7                  L4 type (=0x78 ETHERNET)
     798-11                 SLID[23:20]
     8012-15                DLID[23:20]
     8116-31                PKEY
     8232-47                熵
     8348-63                保留
     84
     85Quad Word 2:
     860-15                 保留
     8716-31                L4 头
     8832-63                以太网数据包
     89
     90Quad Words 3 to N-1:
     910-63                 以太网数据包 (pad拓展)
     92
     93Quad Word N (last):
     940-23                 以太网数据包 (pad拓展)
     9524-55                ICRC
     9656-61                尾
     9762-63                LT (=01, 链路传输尾 Flit)
     98==================== ================================
     99
    100以太网数据包在传输端被填充,以确保VNIC OPA数据包是四字对齐的。“尾”字段
    101包含填充的字节数。在接收端,“尾”字段被读取,在将数据包向上传递到网络堆
    102栈之前,填充物被移除(与ICRC、尾和OPA头一起)。
    103
    104L4头字段包含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
    118netdev的动作。它涉及VNIC功能的HW资源分配/管理。它与网络堆栈接口并实现所
    119需的net_device_ops功能。它在传输路径中期待Omni-Path封装的以太网数据包,
    120并提供对它们的HW访问。在将数据包向上传递到网络堆栈之前,它把Omni-Path头
    121从接收的数据包中剥离。它还实现了RDMA netdev控制操作。
    122
    123OPA VNIC模块实现了独立于硬件的VNIC功能。它由两部分组成。VNIC以太网管理
    124代理(VEMA)作为一个IB客户端向IB核心注册,并与IB MAD栈接口。它与以太网
    125管理器(EM)和VNIC netdev交换管理信息。VNIC netdev部分分配和释放OPA_VNIC
    126RDMA netdev设备。它在需要时覆盖由依赖HW的VNIC驱动设置的net_device_ops函数,
    127以适应任何控制操作。它还处理以太网数据包的封装,在传输路径中使用Omni-Path头。
    128对于每个VNIC接口,封装所需的信息是由EM通过VEMA MAD接口配置的。它还通过调用
    129RDMA 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        +--------------------------------------------+